林鴻嘆了口氣,給他回了一封郵件,希望對方能夠從感情的打擊中儘快恢復過來。
回完郵件,他正式開始動手編寫新版通訊軟體的程式碼。
*J
第222章 位元信使
第222章位元信使
新版cqcq編寫進展速度很快,畢竟之前林鴻已經有過類似的程式設計經驗,其中很多程式碼都可以進行重用,不過由於架構變化比較大,還有一些重要的程式碼需要重新構想。""
按照這一次的設計,中繼伺服器上不儲存任何可能使用者的私密內容,包括使用者的賬號、密碼,以及個人資訊,傳送的聊天內容,ip地址,資訊傳送目的地……等等。
中繼伺服器被林鴻命名為“目錄伺服器”,只是儲存著當前線上的客戶端的網路拓撲節點,每一個使用這個軟體的使用者,都可以充當伺服器端,都有可能被選作跳轉中繼節點。
而當真正建立了一條使用者資料交換的私密通道的時候,當前中繼節點只知道兩個資訊,當前的資料包來自哪個節點,以及要傳送給哪一個節點。至於上級的上級、下級的下級中繼節點就完全不得而知了。
沒有一臺單獨的中繼節點會知道資料包的完整路徑,這是因為客戶端為每一跳都分配獨立的加密金鑰以保證連線資料透過時不被跟蹤。
這個金鑰是臨時生成的,就算是使用者一直和同一個人聯絡,這條路徑也並不是固定的,按照林鴻的設計,每隔十分鐘就會更換一次金鑰,即建立一條完全不同的連線通道。
林鴻將自己所能想到的所有可能被監聽的環節都考慮到了,這樣做只有一個目的,為了安全,為了避免被第三方監聽。
因為不想使用中央伺服器的方式來儲存資料和資訊,所有資料將會被分散地儲存在客戶端裡面。
最為安全的方式,就是每一個客戶端中都將已註冊的所有使用者資訊都下載到本地儲存,這樣無論哪一個消失了,都不用擔心自己的資訊會因此而丟失,因為使用了最夠安全的加密演算法,也不用擔心有誰對這些賬號進行暴力破解,就算破解了也沒用,無非是得到了這個賬號而已,聊天記錄是不會上傳儲存的。
但是如果使用這種方式,剛開始的時候可能還可以勝任,畢竟僅僅只是賬號和密碼的話,也不用多大的空間,當時當人數增加到一定數量級的時候,就會出現資料過大的問題。
每一個新註冊的使用者,可能都必須先從網路上下載其他使用者的所有資訊,如果硬碟不夠大的話,很可能就會將硬碟撐爆。
林鴻便放棄了這個方式。他換了一種比較取巧的方式,那就是每個客戶端裡面只儲存自己好友的資訊。
也就是說,當你新增一個好友的時候,你的資訊會全部同步給對方,而對方的資訊也會同步給你。
這樣一來,要儲存的資料就極大減少。一個人就算有一千個好友,加密再壓縮之後的資訊大小也可以承受。
不過這樣一來,也會有一些情況出現。例如如果有人的好友非常少,並且這些好友常年都不上線的話,他的本地資料如果丟失,就很可能會失去自己的賬號和密碼。
不過林鴻轉念一想,沒有好友的使用者,那就根本不是使用者,這個賬號保留了也沒什麼意義,如果再次想使用這個軟體,那就重新註冊一個賬號即可,以前的賬號讓其徹底報廢
最初賬號儲存的地方,可以隨機選擇一兩個“目錄伺服器”進行儲存,一段時間之後,這些資料就會徹底被銷燬,以免被有心人獲得實現不良目的。…;
原本這只是很簡單的一個軟體,但是為了讓其擁有足夠的保密特性和安全性,林鴻將其複雜度提升了整整一個等級,可謂是絞盡腦汁、費盡心思。
最終編寫出來的程