當今網絡通信已經是廣為人知并且不可或缺的數字世界的一部分,任何通過網絡發送和接受的資料都是公開的,這一點相信懂得網絡基本知識的人都知道。但是看看我們的世界,好像網絡通信挺和諧的啊,并沒有想象中的資料洩漏什麼之類的事件大爆發啊,也沒有因為資料安全性問題而被公衆抛棄啊。這裡面究竟是如何的一個流程,以及是怎樣運作和采取什麼方法來解決資料安全問題的呢?下面就我個人對網絡的了解講講屬于皮毛層的一個流程過程吧。
資料在網絡中傳輸時是以位元組形式傳送的,除了某些内部網絡還有具有自定義協定的通信網絡之外,基本上網絡通信最常見的就是浏覽器形式,也就是符合HTTP協定的資料傳送。那麼既然是用HTTP協定進行組裝和解析資料的話,隻要懂得HTTP協定的人都可以解析在網絡上傳送的消息的意義,又因為HTTP是公開的一個國際協定标準,是以誰都可以根據HTTP文本來截取相關資訊,這樣的話使用HTTP協定的消息就很明顯是透明的了,至少對于懂得通信協定的人來說完全不是秘密。照這樣說來網絡豈不是一點安全性可講都沒有??沒錯,事實上就是很不安全的,畢竟資料傳送形式都是人人皆知的。但是安全是必須的啊,是以我們隻能尋找方法來解決網絡資料的防僞造、防篡改、防洩密等安全性問題。
其實前輩們早就想好了解決方案了。
由于HTTP協定是公開的,是以資料傳送形式也是衆所周知的。在這種情形下尋求資料安全性的解決方案無疑是相當有難度的。幸運的是,許多數學家在理論上已經證明并給出了很多對資料進行加密和摘要的算法,用來幫助解決資料安全性的問題,如著名的RSA算法和MD5摘要算法。那麼這樣看來,問題好像是解決了,但僅僅用加密和摘要的方案并不能讓我們高枕無憂,新的問題也是接踵而來的。怎樣才能使人們相信通信的對方就是真正的想要通信的對方呢?而且針對RSA算法來說,資料加密問題解決得挺完美,但是撇開其速度慢的缺點不說,從生成的公鑰在網上公開到對方取得公鑰這一過程中,又是安全無保障的環節。你怎麼知道網上的公鑰就是對方公開的?也許你會說可以在公鑰上面加入對方的一些資訊啊,并且也可以使用摘要來處理加上去的資訊。沒錯,事實上也是這樣解決的,這便是數字簽名技術。但是還是有問題存在,因為簽名也可能被他人截獲并篡改,即使不被改動,你也不能确定簽名就是對方所簽的。說到底,如果沒有彼此都信任的第三方來做鑒定工作的話,那麼所謂安全的通信就不可能存在。而通過第三方來确認身份的技術,便是數字證書技術。
世界各國都需要保證各自國内網絡通信的安全,加上網絡建設屬于基礎設施建設,也即公共事業的一部分,那麼網絡認證中心這樣的角色隻能由政府或是有能力、足夠權威的機構或企業擔任了。因為如果你不選擇相信别人,那麼你也就不用和别人交流了,那也就不用進行網絡通信了。是以到最後,你還是必須嘗試着去相信别人,并由此來確定對方的身份,那麼其他問題也就迎刃而解了。
最後就整個流程做一個較細緻的介紹:
A和B為通信雙方,C是認證中心。A給B發送資料前使用RSA算法(也可以是其他算法,這裡用RSA做例子)處理将要發送的資料,生成了公私鑰對,A儲存私鑰,然後對公鑰簽名,簽名内容為A的資訊摘要,可使用MD5算法處理得到。之後A找C認證,即C用RSA算法處理A所送出的公鑰(含A的簽名),C儲存私鑰,并将用公鑰加密的A的公鑰公開在網上,B拿到C公開的A的公鑰後,到C那裡使用C的私鑰解密,并确認摘要資訊是否為A的資訊,若通過确認,則可以相信對方的身份,并進行通信。
可見相信第三方是解決這個問題的關鍵,是以信譽是多麼重要的,得人心者得天下!