网络传输数据的加密过程详解
常見的明文傳輸協(xié)議有:http,smtp,dns,pop3,imap4。
常見的攻擊方式有:竊聽,數據注入,會話劫持
為了保證互聯網上的數據傳輸的安全性,于是各種的加密方式和加密算法誕生了:
數據加密方式:對稱加密、公鑰加密、單向加密。
1.對稱加密:加密方和解密方使用同一個密鑰,其優(yōu)點是:加密解密的速度快,適合于大量數據的加密。缺點是:無法進行密鑰交換。
2.公鑰加密:使用接受方的公鑰進行加密,接收方在使用自己的密鑰進行解密。缺點是:加密效率低,一般不用在數據加密上,通常是用在數據加密的密鑰交換上的加密。
3.單向加密:獲取數據的特征碼,其特點是:定長的輸出,加密過程不可逆,具有雪崩效應也稱作蝴蝶效應。
由上面的加密方式可以得知,每一種加密方式都具有缺點,要想在互聯網上傳輸數據既要保證數據的完整性和數據的保密性,以及數據發(fā)送者的身份驗證 ,顯然使用一種加密方式是遠遠不夠的。
單說要完成數據發(fā)送者的身份驗證:
發(fā)送者使用自己的私鑰對某一數據的特征碼或其他進行加密,當接受者收到數據時在使用發(fā)送者的公鑰進行解密,這一過程就可以完成發(fā)送者的什么驗證,該過程又稱作"數字簽名"。
在既保證數據的完整性,保密性以及實現發(fā)送者的身份驗證的數據傳送過程:
首先發(fā)送者對自己要發(fā)送的數據進行單行加密,計算出數據的特征碼,并且使用自己的私鑰講該段特征碼進行加密,并且將其特征碼附加至數據的尾部,之后在使用對稱加密,隨機生成一個加密密碼,使用該密碼對包含有特征碼和數據這一整塊進行加密,之后在使用接受者的公鑰對隨機生成的這個密碼進行加密,附加至所有數據之后發(fā)送給接受者!
整個加密過程如圖所示:
在這個傳送過程中,為保證數據的完整性,首先使用了單向加密,計算出數據的特征碼。
又為實現數據的保密性,使用對稱加密,隨機生成加密密碼對數據和特征碼加密。
其次實現發(fā)送者的身份驗證:使用公鑰加密方式,使用發(fā)送者的私鑰對密碼進行加密。
最后為保證所有的數據的保密性,再次的使用公鑰加密方式,使用接收者的公鑰進行加密。
在這個過程看似完美,但是有個細節(jié),接受者如何獲取發(fā)送者的公鑰,以及發(fā)送者如何獲取接收者的公鑰?這時就要借住一個第三方CA。
CA:證書辦法機構。
PKI:公鑰基礎設施。
PKI的核心就是CA
CA的組成:??? 1.證書的持有者;
??? ??? 2.CA的相關信息;
??? ??? 3.證書的使用方法;
??? ??? 4.持有者的公鑰;
??? ??? 5.證書的有效日期。
下面就來說,接收者如何確認發(fā)送者的公鑰:
首先:CA是一個接收者和發(fā)送者共同信任的第三方,也可以說是中間人。
其次:CA為了保證自己的權威性,在頒發(fā)證書之前一定回去實地考查申請證書的用戶或主機的真實情況,一切屬實才會為其辦法證書。
再而:CA為了保證證書確實是由自己頒發(fā),并且證書內容沒有被篡改過,這里就要CA進行數字簽名。
首先:CA使用單向加密方式計算出真?zhèn)€證書的特征碼;
之后:使用公鑰加密方式,使用CA自己的私鑰對特征碼進行加密,并且附加在證書的后面。
當接受者或發(fā)送者收到對方的證書后,首先使用CA的公鑰進行解密出特征碼,然后使用單行加密方式計算出證書的特征碼,相比較兩個特征碼,如果相同,則表示證書中的公鑰確實是對方的公鑰。于是獲得了對方的公鑰。
而此時CA的公鑰又從何而來呢?在操作系統(tǒng)的制作時,就會植入一部分權威的CA機構的公鑰,也就是本機自帶嘍!而如果你所需要的CA并沒有在系統(tǒng)中,那么你就需要到這家CA獲得其公鑰,然后導入到您的服務器中。
本文轉自 向陽草米奇 51CTO博客,原文鏈接:http://blog.51cto.com/grass51/797995,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的网络传输数据的加密过程详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AngularJS之代码风格36条建议【
- 下一篇: Oracle Data Integrat