小說博覽 第222章 比特信使 文 / 瘋狂小強
第222章比特信使
版qq編寫進展速很快,畢竟之前林鴻已經有過類似的編程經驗,其很多代碼都可以進行重用,不過由於架構變化比較大,還有一些重要的代碼需要重構想。聖堂
按照這一次的設計,繼服務器上不保存任何可能用戶的私密內容,包括用戶的賬號、密碼,以及個人信息,送的聊天內容,ip地址,信息送目的地……等等。
繼服務器被林鴻命名為「目錄服務器」,只是保存著當前線的客戶端的網絡拓撲節點,每一個使用這個軟件的用戶,都可以充當服務器端,都有可能被選作跳轉繼節點。
而當真正創建了一條用戶數據交換的私密通道的時候,當前繼節點只知道兩個信息,當前的數據包來自哪個節點,以及要送給哪一個節點。至於上級的上級、下級的下級繼節點就完全不得而知了。
沒有一台單獨的繼節點會知道數據包的完整路徑,這是因為客戶端為每一跳都分配**的加密密鑰以保證連接數據通過時不被跟蹤。
這個密鑰是臨時生成的,就算是用戶一直和同一個人聯繫,這條路徑也並不是固定的,按照林鴻的設計,每隔十分鐘就會換一次密鑰,即建立一條完全不同的連接通道。
林鴻將自己所能想到的所有可能被監聽的環節都考慮到了,這樣做只有一個目的,為了安全,為了避免被第三方監聽。
因為不想使用央服務器的方式來存儲數據和信息,所有數據將會被分散地保存客戶端裡面。
為安全的方式,就是每一個客戶端都將已註冊的所有用戶信息都下載到本地保存,這樣無論哪一個消失了,都不用擔心自己的信息會因此而丟失,因為使用了夠安全的加密算法,也不用擔心有誰對這些賬號進行暴力破解,就算破解了也沒用,無非是得到了這個賬號而已,聊天記錄是不會上傳保存的。聖堂
但是如果使用這種方式,剛開始的時候可能還可以勝任,畢竟僅僅只是賬號和密碼的話,也不用多大的空間,當時當人數增加到一定數量級的時候,就會出現數據過大的問題。
每一個註冊的用戶,可能都必須先從網絡上下載其他用戶的所有信息,如果硬盤不夠大的話,很可能就會將硬盤撐爆。
林鴻便放棄了這個方式。他換了一種比較取巧的方式,那就是每個客戶端裡面只保存自己好友的信息。
也就是說,當你添加一個好友的時候,你的信息會全部同步給對方,而對方的信息也會同步給你。
這樣一來,要保存的數據就極大減少。一個人就算有一千個好友,加密再壓縮之後的信息大小也可以承受。
不過這樣一來,也會有一些情況出現。例如如果有人的好友非常少,並且這些好友常年都不上線的話,他的本地數據如果丟失,就很可能會失去自己的賬號和密碼。
不過林鴻轉念一想,沒有好友的用戶,那就根本不是用戶,這個賬號保留了也沒什麼意義,如果再次想使用這個軟件,那就重註冊一個賬號即可,以前的賬號讓其徹底報廢
初賬號保存的地方,可以隨機選擇一兩個「目錄服務器」進行保存,一段時間之後,這些數據就會徹底被銷毀,以免被有心人獲得實現不良目的。
原本這只是很簡單的一個軟件,但是為了讓其擁有足夠的保密特性和安全性,林鴻將其複雜提升了整整一個等級,可謂是絞腦汁、費心思。
終編寫出來的程序,還是分為兩部分,一部分是「目錄服務器端」,專門用來保存節點拓撲結構和初的註冊信息。
另外一部分則是「客戶端」,當然這個客戶端也集成了轉服務功能。《網》
早晨的時候,版qq的原型便編寫出來了。
林鴻興致勃勃地登錄老版軟件,想要將這個消息告訴inu,可是上線之後才想起,對方已經當兵去了。
於是,他登錄a官方的bb,寫了一篇有關這個軟件的詳細的介紹,想正是對外布,讓大家一起來幫忙測試和使用。
不過,當他的手指接觸到回車鍵的時候,終還是沒有按下去。
這個軟件是林鴻親自設計的,自然清楚一旦布之後會對網絡世界造成什麼樣的影響,甚至也會對現實世界造成衝擊。
可以說,這是一把雙刃劍,黑客們可以用其進行自由溝通,犯罪分子也可以它來幹一些違法的事情,對他們來說肯定是一個絕好的消息。
但是,對於各國政府來說,這就是個壞消息了。可以預料,這個軟件會遭到這些人的強烈反對和封殺。
林鴻將放回車鍵上的手收了回來,坐計算機前想了好長時間,終按下退格鍵,將剛剛所寫的內容全部給刪除了。
剛才他腦海模擬了一下,一旦這個軟件流行起來之後,到底會生什麼情況。
終模擬的結果是,自己可能會被fbi的人請去喝咖啡,或者像凱那樣過上隱姓埋名的流亡生活。
這兩種情況他暫時都還承受不起,也不想因為這個原因而導致這個軟件還沒壯大起來就被扼殺搖籃當。
現林鴻已經開始有了隱藏自己身份的意識,這點凱早就跟他說過,他可不想讓自己的名字出現fbi的黑名單上。
「哎!」
林鴻歎了口氣,現實是有點小鬱悶。
自己花了整整一天一夜的時間,將這個軟件給編寫出來了,可是竟然沒有膽量將其布出去,實是夠鬱悶的。不知道計算機的展歷史上,有沒有這樣的例子。
林鴻想了半天,終想到一個非常鬼鬼祟祟的辦法,那就是入侵幾台服務器,先將目錄服務器端安裝服務器上,然後再想辦法匿名布帖子,讓大家下載使用。
可是現林鴻對入侵方面的技術還並不是很熟悉,如果冒然這麼做,也很容易被人給挖出來,到時候不小心暴露了,結果和自己直接進行佈一個摸樣。
「看來還是得花點心思研究一下入侵技術。」
林鴻之前雖然覺得自己也應該學習一下入侵技術,但這是建立防止別人入侵的心思之上,需求並不是很迫切,但是現看來,掌握了網絡入侵技術,有時候做起事情來要方便得多。
他看看時間,離晨練還有半個小時,於是繼續著手改進這個軟件。
再取名為qq顯然是不合適了。
他決定給這個軟件取個的名字。
原本按照其結構,林鴻想取名為「糖葫蘆」,意為信息通過多個節點進行跳轉,終達到目的地。但是轉念一想,這樣一看這名字就知道肯定是國人編寫的軟件,一下子就將作者的範圍大大縮小,想想還是放棄了。
終的名稱定為「bit_uri《網》名稱為「比特信使」,簡稱「b」。
和qq不同的是,比特信使並沒有再使用一連串的數字來表示id,取而代之的是一連串沒有任何規律的散列字符串,這個字符串有數字也有字母,還區分大小寫,總共多達十三位,稱為b地址。
這是通過hah加密算法經過二次加密而計算出來的,比特信使的規則,具有唯一性,每個人都有唯一的b地址,通過這個地址可以加對方為好友。
這樣做的目的,是林鴻不希望別人可以簡單地通過按照數字順序累加,對所有賬號進行遍歷,從而避免大範圍的暴力密碼破解攻擊。
不過很顯然,這樣做b地址太難記了,只能通過複製粘的方式進行操作,林鴻的設想,比特信使初期的用戶,應該是那些懂計算機技術的用戶或者黑客,只有他們暫時才有這類需求。至於犯罪團伙,根本不他的考慮範圍之內,當然,如果這些人也有計算機技術,那算你好運,可以找到一個相當安全的通信方式。
另外,林鴻將自動技術也集成到比特信使了,這樣一旦布版本,全網客戶端將可以選擇是否進行自動升級。
由於比特信使本身就使用了點對點的技術,下載升級將非常方便,當一個客戶端將升級程序下載之後,就立刻變成了一個下載源,可以為其他人提供下載服務。客戶端越多,下載速就越快。
理論上來說,比特信使是完全不受任何人控制的,林鴻一旦布,他也立刻對比特信使失去了控制權,他也無法監聽任何一個節點,或者說,沒有任何人能夠監聽。這是一個沒有心的架構,整個世界都是平坦的,相互之間都是平等的,沒有誰能夠控制誰。
不過林鴻還是給自己留下了一個後門,那就是自動功能。這是唯一有可能對其進行控制的地方。這個功能可以讓程序加強大,也可以讓程序失去作用。
剛開始的時候,林鴻是沒有這個設計的,但是他想要按下回車鍵的那一刻,他的內心突然產生了一種莫名的感覺,說不上是興奮還是恐懼,很複雜。
考慮再三之後,他還是決定給自己留下一個後門,因為他實無法預知,到底這個程序布之後會產生什麼樣的影響。
「如果這個程序真的沒有存的必要,那麼就讓它消失。」林鴻對自己說。