網路資料加密的三種技術
在常規密碼中,收信方和發信方使用相同的密鑰,即加密密鑰和解密密鑰是相同或等價的。比較著名的常規密碼演算法有:美國的DES及其各種變形,比如TripleDES、GDES、NewDES和DES的前身Lucifer;歐洲的IDEA;日本的FEALN、LOKI91、Skipjack、RC4、RC5以及以代換密碼和轉輪密碼為代表的古典密碼等。在眾多的常規密碼中影響最大的是DES密碼。
常規密碼的優點是有很強的保密強度,且經受住時間的核對總和攻擊,但其密鑰必須通過安全的途徑傳送。因此,其密鑰管理成為系統安全的重要因素。
在公鑰密碼中,收信方和發信方使用的密鑰互不相同,而且幾乎不可能從加密密鑰推導解密密鑰。比較著名的公鑰密碼演算法有:RSA、背包密碼、McEliece密碼、DiffeHellman、Rabin、OngFiatShamir、零知識證明的演算法、橢圓曲線、EIGamal演算法等等。最有影響的公鑰密碼演算法是RSA,它能抵抗到目前為止已知的所有密碼攻擊。
公鑰密碼的優點是可以適應網路的開放性要求,且密鑰管理問題也較為簡單,尤其可方便的實現數位簽名和驗證。但其演算法複雜,加密資料的速率較低。儘管如此,隨著現代電子技術和密碼技術的發展,公鑰密碼演算法將是一種很有前途的網路安全加密體制。
當然在實際應用中人們通常將常規密碼和公鑰密碼結合在一起使用,比如:利用DES或者IDEA來加密資訊,而採用RSA來傳遞會話密鑰。如果按照每次加密所處理的比特來分類,可以將加密演算法分為序列密碼和分組密碼。前者每次只加密一個比特而後者則先將資訊序列分組,每次處理一個組。
密碼技術是網路安全最有效的技術之一。一個加密網路,不但可以防止非授權用戶的搭線竊聽和入網,而且也是對付惡意軟體的有效方法之一。
一般的資料加密可以在通信的三個層次來實現:鏈路加密、節點加密和端到端加密。
■ 鏈路加密
對於在兩個網路節點間的某一次通信鏈路,鏈路加密能為網上傳輸的資料提供安全保證。對於鏈路加密(又稱在線加密),所有消息在被傳輸之前進行加密,在每一個節點對接收到的消息進行解密,然後先使用下一個鏈路的密鑰對消息進行加密,再進行傳輸。在到達目的地之前,一條消息可能要經過許多通信鏈路的傳輸。
由於在每一個中間傳輸節點消息均被解密後重新進行加密,因此,包括路由資訊在內的鏈路上的所有資料均以密文形式出現。這樣,鏈路加密就掩蓋了被傳輸消息的源點與終點。由於填充技術的使用以及填充字元在不需要傳輸資料的情況下就可以進行加密,這使得消息的頻率和長度特性得以掩蓋,從而可以防止對通信業務進行分析。
儘管鏈路加密在電腦網路環境中使用得相當普遍,但它並非沒有問題。鏈路加密通常用在點對點的同步或非同步線路上,它要求先對在鏈路兩端的加密設備進行同步,然後使用一種鏈模式對鏈路上傳輸的資料進行加密。這就給網路的性能和可管理性帶來了副作用。
在線路/信號經常不通的海外或衛星網路中,鏈路上的加密設備需要頻繁地進行同步,帶來的後果是資料丟失或重傳。另一方面,即使僅一小部分資料需要進行加密,也會使得所有傳輸資料被加密。
在一個網路節點,鏈路加密僅在通信鏈路上提供安全性,消息以明文形式存在,因此所有節點在物理上必須是安全的,否則就會泄漏明文內容。然而保證每一個節點的安全性需要較高的費用,為每一個節點提供加密硬體設備和一個安全的物理環境所需要的費用由以下幾部分組成:保護節點物理安全的雇員開銷,為確保安全策略和程式的正確執行而進行審計時的費用,以及為防止安全性被破壞時帶來損失而參加保險的費用。
在傳統的加密演算法中,用於解密消息的密鑰與用於加密的密鑰是相同的,該密鑰必須被秘密保存,並按一定規則進行變化。這樣,密鑰分配在鏈路加密系統中就成了一個問題,因為每一個節點必須存儲與其相連接的所有鏈路的加密密鑰,這就需要對密鑰進行物理傳送或者建立專用網路設施。而網路節點地理分佈的廣闊性使得這一過程變得複雜,同時增加了密鑰連續分配時的費用。
■ 節點加密
儘管節點加密能給網路資料提供較高的安全性,但它在操作方式上與鏈路加密是類似的:兩者均在通信鏈路上為傳輸的消息提供安全性;都在中間節點先對消息進行解密,然後進行加密。因為要對所有傳輸的資料進行加密,所以加密過程對用戶是透明的。
然而,與鏈路加密不同,節點加密不允許消息在網路節點以明文形式存在,它先把收到的消息進行解密,然後採用另一個不同的密鑰進行加密,這一過程是在節點上的一個安全模組中進行。
節點加密要求報頭和路由資訊以明文形式傳輸,以便中間節點能得到如何處理消息的資訊。因此這種方法對於防止攻擊者分析通信業務是脆弱的。
■ 端到端加密
端到端加密允許資料在從源點到終點的傳輸過程中始終以密文形式存在。採用端到端加密(又稱脫線加密或包加密),消息在被傳輸時到達終點之前不進行解密,因為消息在整個傳輸過程中均受到保護,所以即使有節點被損壞也不會使消息泄露。
端到端加密系統的價格便宜些,並且與鏈路加密和節點加密相比更可靠,更容易設計、實現和維護。端到端加密還避免了其他加密系統所固有的同步問題,因為每個報文包均是獨立被加密的,所以一個報文包所發生的傳輸錯誤不會影響後續的報文包。此外,從用戶對安全需求的直覺上講,端到端加密更自然些。單個用戶可能會選用這種加密方法,以便不影響網路上的其他用戶,此方法只需要源和目的節點是保密的即可。
端到端加密系統通常不允許對消息的目的地址進行加密,這是因為每一個消息所經過的節點都要用此位址來確定如何傳輸消息。由於這種加密方法不能掩蓋被傳輸消息的源點與終點,因此它對於防止攻擊者分析通信業務是脆弱的。