Tor routing 和 bitcoin關係
做了這麼久的比特幣研究,結果第一篇博文不是比特幣哈哈 我今天要來談談洋蔥網路1,洋蔥網路之所要叫做洋蔥因為他將原始的封包層層的包裹起來。
在我的認知中,洋蔥網路在全世界中有很多中繼站2,這些自願的洋蔥中繼站會負責轉送我們丟上去的封包,但在丟上去之前,發送者也得知道有那些中繼站阿,所以應該會有一個server存取所有中繼站的資料,資料不確定有沒有包括IP,但沒有IP我覺得不太能run,但裡面一定會有一把rsa生成的public key(這個rsa因為太舊了不安全了,v3的洋蔥已經把它修掉了改成ecc),private key 當然也就是洋蔥中繼站本身啦,他要拆包裹阿。
下一步我們去跟這台server要資料。假定我們要了一百台,此時我們隨機抽了10台,並將其public key排序,慢慢的將封包一層一層的包起來,包好了之後我就把它丟進洋蔥網路去(包了10層能夠拆開全部的人我看也不簡單),此時最外層會被持有最外層的public key的中繼站收到,並且看到了裡面下一層的public key,看到之後往下一顆中繼站丟,就這樣丟壓丟,丟到了出口。值得注意的是在這傳球的過程,每一個中繼站只會知道前一個與下一個是誰,不能再多了。也就是因為這樣所以難以追根究柢到底在網路中徘徊的路徑長甚麼樣子,或許把全部的自願者都監聽了應該就有機會吧。
上段簡單的說了封包在洋蔥網路中轉送的過程,在其他的博文也看到,洋蔥網路最大的痛點在於入口跟出口,入口我想,對ISP(網際網路提供者,中華電信應該是)而言他的認知或許是,有個傢伙要進洋蔥網路,出口可能是有來自洋蔥網路的封包要送往Facebook,在這過程就像比特幣洗錢似。談到入口跟出口,又有一個值得一提的是,入口的封包通常被包裹最多曾的rsa公鑰加密,出口的話應該已經被拆得差不多了,可能只剩下https了吧,所以一開始如採用http協議那在出口應該被看光光了。
ps.現在大家常見的Tor 瀏覽器,是一種Firefox+Tor的合體,這樣的合體他有加裝onion域名的解析,在hidden 服務中當然不是取得IP啦,但是可以取得一個路徑到達目的地,這又是另外一個故事了。所以說Tor瀏覽器可以拆掉變成一個Tor 的一支程式,運作時會直接啟用127.0.0.1:9050的socks 5 proxy 在本地端,這也就是你在本地開個洋蔥網路入口啦,因為傳統的瀏覽器and app都是用﹝正常﹞的dns解析,所以也不要覺得沒有onion域名解析很奇怪啦,樣這域名就用合體的,合體的啥都可以看。
結論:洋蔥路由會讓ISP追蹤(忘記說,節點的選擇通常都會故意跨國家的樣子,一下子跳了10個國家,國際刑警未必關西這麼好)更加困難,這樣的匿蹤技術,在比特幣的應用上,我想應該是要預防有心的ISP或是駭客看到交易的發起源,說白了我看得發起源阿比特幣地址的持有者不就肯定是這傢伙了嗎。而除了保護發起源,在比特幣的資料傳輸的過程中好像也沒加密,給人家看光光,雖然也都是公開沒有見不得人,但依照過往的經驗,這會使得封包被竄改變得容易,畢竟沒加密阿,被改了也沒感覺,有加密還需要破解了再包回去,之前好像有看到bip3有提案要做https 的區塊鏈同步機制。現在的bitcoin core 4也支持洋蔥網路的選項。
- #4587 0c465f5 allow users to set -onion via GUI (Diapolo)