數(shù)據(jù)加密作為一項基本技術(shù)是所有通信安全的基石,。數(shù)據(jù)加密過程是由形形色色的加密算法來具體實施,它以很小的代價提供很大的安全保護(hù),。在多數(shù)情況下,,數(shù)據(jù)加密是保證信息機密性的唯一方法。據(jù)不完全統(tǒng)計,,到目前為止,,已經(jīng)公開發(fā)表的各種加密算法多達(dá)數(shù)百種。如果按照收發(fā)雙方密鑰是否相同來分類,,可以將這些加密算法分為常規(guī)密碼算法和公鑰密碼算法,。
信息安全防護(hù)問題是技術(shù)問題,更是涉及人因的系統(tǒng)問題,,而目前最好的方法就是使用專業(yè)的加密軟件對其機密數(shù)據(jù)進(jìn)行加密,,這樣的話,加密直接作用于數(shù)據(jù)本身,,只要加密算法不被破解,,數(shù)據(jù)依然是安全的,。
在常規(guī)密碼中,收信方和發(fā)信方使用相同的密鑰,,即加密密鑰和解密密鑰是相同或等價的,。比較著名的常規(guī)密碼算法有:美國的DES及其各種變形,比如TripleDES,、GDES,、New DES和DES的前身Lucifer; 歐洲的IDEA,;日本的FEALN,、LOKI91,、Skipjack,、RC4、RC5以及以代換密碼和轉(zhuǎn)輪密碼為代表的古典密碼等,。在眾多的常規(guī)密碼中影響最大的是DES密碼,。
常規(guī)密碼的優(yōu)點是有很強的保密強度,且經(jīng)受住時間的檢驗和攻擊,,但其密鑰必須通過安全的途徑傳送,。因此,其密鑰管理成為系統(tǒng)安全的重要因素,。
在公鑰密碼中,,收信方和發(fā)信方使用的密鑰互不相同,而且?guī)缀醪豢赡軓募用苊荑€推導(dǎo)解密密鑰,。比較著名的公鑰密碼算法有:RSA,、背包密碼、McEliece密碼,、DiffeHellman,、Rabin、OngFiatShamir,、零知識證明的算法,、橢圓曲線、EIGamal算法等等,。最有影響的公鑰密碼算法是RSA,,它能抵抗到目前為止已知的所有密碼攻擊。
公鑰密碼的優(yōu)點是可以適應(yīng)網(wǎng)絡(luò)的開放性要求,,且密鑰管理問題也較為簡單,,尤其可方便的實現(xiàn)數(shù)字簽名和驗證。但其算法復(fù)雜,,加密數(shù)據(jù)的速率較低,。盡管如此,,隨著現(xiàn)代電子技術(shù)和密碼技術(shù)的發(fā)展,公鑰密碼算法將是一種很有前途的網(wǎng)絡(luò)安全加密體制,。
當(dāng)然在實際應(yīng)用中人們通常將常規(guī)密碼和公鑰密碼結(jié)合在一起使用,,比如:利用DES或者IDEA來加密信息,而采用RSA來傳遞會話密鑰,。如果按照每次加密所處理的比特來分類,,可以將加密算法分為序列密碼和分組密碼。前者每次只加密一個比特而后者則先將信息序列分組,,每次處理一個組,。
一般的數(shù)據(jù)加密可以在通信的三個層次來實現(xiàn): 鏈路加密、節(jié)點加密和端到端加密,。
鏈路加密:
對于在兩個網(wǎng)絡(luò)節(jié)點間的某一次通信鏈路, 鏈路加密能為網(wǎng)上傳輸?shù)臄?shù)據(jù)提供安全保證,。對于鏈路加密(又稱在線加密), 所有消息在被傳輸之前進(jìn)行加密, 在每一個節(jié)點對接收到的消息進(jìn)行解密, 然后先使用下一個鏈路的密鑰對消息進(jìn)行加密, 再進(jìn)行傳輸。在到達(dá)目的地之前, 一條消息可能要經(jīng)過許多通信鏈路的傳輸,。
由于在每一個中間傳輸節(jié)點消息均被解密后重新進(jìn)行加密, 因此, 包括路由信息在內(nèi)的鏈路上的所有數(shù)據(jù)均以密文形式出現(xiàn),。這樣, 鏈路加密就掩蓋了被傳輸消息的源點與終點。由于填充技術(shù)的使用以及填充字符在不需要傳輸數(shù)據(jù)的情況下就可以進(jìn)行加密,這使得消息的頻率和長度特性得以掩蓋, 從而可以防止對通信業(yè)務(wù)進(jìn)行分析,。
盡管鏈路加密在計算機網(wǎng)絡(luò)環(huán)境中使用得相當(dāng)普遍, 但它并非沒有問題,。鏈路加密通常用在點對點的同步或異步線路上, 它要求先對在鏈路兩端的加密設(shè)備進(jìn)行同步, 然后使用一種鏈模式對鏈路上傳輸?shù)臄?shù)據(jù)進(jìn)行加密。這就給網(wǎng)絡(luò)的性能和可管理性帶來了副作用,。
在線路/信號經(jīng)常不通的海外或衛(wèi)星網(wǎng)絡(luò)中,鏈路上的加密設(shè)備需要頻繁地進(jìn)行同步, 帶來的后果是數(shù)據(jù)丟失或重傳,。另一方面, 即使僅一小部分?jǐn)?shù)據(jù)需要進(jìn)行加密, 也會使得所有傳輸數(shù)據(jù)被加密。
在一個網(wǎng)絡(luò)節(jié)點, 鏈路加密僅在通信鏈路上提供安全性, 消息以明文形式存在, 因此所有節(jié)點在物理上必須是安全的, 否則就會泄漏明文內(nèi)容,。然而保證每一個節(jié)點的安全性需要較高的費用, 為每一個節(jié)點提供加密硬件設(shè)備和一個安全的物理環(huán)境所需要的費用由以下幾部分組成: 保護(hù)節(jié)點物理安全的雇員開銷,為確保安全策略和程序的正確執(zhí)行而進(jìn)行審計時的費用, 以及為防止安全性被破壞時帶來損失而參加保險的費用,。
在傳統(tǒng)的加密算法中, 用于解密消息的密鑰與用于加密的密鑰是相同的,該密鑰必須被秘密保存, 并按一定規(guī)則進(jìn)行變化。這樣, 密鑰分配在鏈路加密系統(tǒng)中就成了一個問題, 因為每一個節(jié)點必須存儲與其相連接的所有鏈路的加密密鑰, 這就需要對密鑰進(jìn)行物理傳送或者建立專用網(wǎng)絡(luò)設(shè)施,。而網(wǎng)絡(luò)節(jié)點地理分布的廣闊性使得這一過程變得復(fù)雜, 同時增加了密鑰連續(xù)分配時的費用,。
鏈路加密(又稱在線加密)是傳輸數(shù)據(jù)僅在物理層前的數(shù)據(jù)鏈路層進(jìn)行加密。接收方是傳送路徑上的各臺節(jié)點機,,信息在每臺節(jié)點機內(nèi)都要被解密和再加密,,依次進(jìn)行,直至到達(dá)目的地,。
采用鏈路加密方式,,從起點到終點,要經(jīng)過許多中間節(jié)點,,在每個節(jié)點地均要暴露明文(節(jié)點加密方法除外),,如果鏈路上的某一節(jié)點安全防護(hù)比較薄弱,那么按照木桶原理(木桶水量是由最低一塊木板決定),雖然采取了加密措施,,但整個鏈路的安全只相當(dāng)于最薄弱的節(jié)點處的安全狀況,。
鏈路加密,,每條物理鏈路上,,不管用戶多少,可使用一種密鑰,。在極限情況下,,每個節(jié)點都與另外一個單獨的節(jié)點相連,密鑰的數(shù)目也只是n*(n-1)/2 種,。這里n是節(jié)點數(shù)而非用戶數(shù),,一個節(jié)點一般有多個用戶。
節(jié)點加密:
盡管節(jié)點加密能給網(wǎng)絡(luò)數(shù)據(jù)提供較高的數(shù)據(jù)安全性, 但它在操作方式上與鏈路加密是類似的: 兩者均在通信鏈路上為傳輸?shù)南⑻峁┌踩? 都在中間節(jié)點先對消息進(jìn)行解密,然后進(jìn)行數(shù)據(jù)加密,。因為要對所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密, 所以數(shù)據(jù)加密過程對用戶是透明的,。
然而,與鏈路加密不同, 節(jié)點加密不允許消息在網(wǎng)絡(luò)節(jié)點以明文形式存在,它先把收到的消息進(jìn)行解密, 然后采用另一個不同的密鑰進(jìn)行加密, 這一過程是在節(jié)點上的一個安全模塊中進(jìn)行。
節(jié)點加密要求報頭和路由信息以明文形式傳輸, 以便中間節(jié)點能得到如何處理消息的信息,。因此這種方法對于防止攻擊者分析通信業(yè)務(wù)是脆弱的,。
節(jié)點加密能給網(wǎng)絡(luò)數(shù)據(jù)提供較高的安全性,但它在操作方式上與鏈路加密是類似的兩者均在通信鏈路上為傳輸?shù)南⑻峁┌踩?都在中間節(jié)點先對消息進(jìn)行解密,然后進(jìn)行加密,。因為要對所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密,所以加密過程對用戶是透明的,。然而,與鏈路加密不同,節(jié)點加密不允許消息在網(wǎng)絡(luò)節(jié)點以明文形式存在,它先把收到的消息進(jìn)行解密,然后采用另一個不同的密鑰進(jìn)行加密,這一過程是在節(jié)點上的一個安全模塊中進(jìn)行?!?/p>
節(jié)點加密要求報頭和路由信息以明文形式傳輸,以便中間節(jié)點能得到如何處理消息的信息,。因此這種方法對于防止攻擊者分析通信業(yè)務(wù)是脆弱的。
端到端加密:
端到端加密允許數(shù)據(jù)在從源點到終點的傳輸過程中始終以密文形式存在,。采用端到端加密(又稱脫線加密或包加密),消息在被傳輸時到達(dá)終點之前不進(jìn)行解密,因為消息在整個傳輸過程中均受到保護(hù),所以即使有節(jié)點被損壞也不會使消息泄露,。
端到端加密系統(tǒng)的價格便宜些,并且與鏈路加密和節(jié)點加密相比更可靠,更容易設(shè)計,、實現(xiàn)和維護(hù),。端到端加密還避免了其它加密系統(tǒng)所固有的同步問題,因為每個報文包均是獨立被加密的,所以一個報文包所發(fā)生的傳輸錯誤不會影響后續(xù)的報文包。此外,從用戶對安全需求的直覺上講,端到端加密更自然些,。單個用戶可能會選用這種加密方法,以便不影響網(wǎng)絡(luò)上的其他用戶,此方法只需要源和目的節(jié)點是保密的即可,。端到端加密系統(tǒng)通常不允許對消息的目的地址進(jìn)行加密,這是因為每一個消息所經(jīng)過的節(jié)點都要用此地址來確定如何傳輸消息。由于這種加密方法不能掩蓋被傳輸消息的源點與終點,因此它對于防止攻擊者分析通信業(yè)務(wù)是脆弱的,。
加密傳輸方式的比較:
端到端加密系統(tǒng)的價格便宜些,并且與鏈路加密和節(jié)點加密相比更可靠,更容易設(shè)計,、實現(xiàn)和維護(hù)。端到端加密還避免了其它加密系統(tǒng)所固有的同步問題, 因為每個報文包均是獨立被加密的, 所以一個報文包所發(fā)生的傳輸錯誤不會影響后續(xù)的報文包,。此外,從用戶對安全需求的直覺上講,端到端加密更自然些,。單個用戶可能會選用這種加密方法, 以便不影響網(wǎng)絡(luò)上的其他用戶,此方法只需要源和目的節(jié)點是保密的即可。
端到端加密系統(tǒng)通常不允許對消息的目的地址進(jìn)行加密, 這是因為每一個消息所經(jīng)過的節(jié)點都要用此地址來確定如何傳輸消息,。由于這種加密方法不能掩蓋被傳輸消息的源點與終點, 因此它對于防止攻擊者分析通信業(yè)務(wù)是脆弱的,。
數(shù)據(jù)保密變換使數(shù)據(jù)通信更安全,,但不能保證在傳輸過程中絕對不會泄密。因為在傳輸過程中,,還有泄密的隱患,。
采用鏈路加密方式,從起點到終點,,要經(jīng)過許多中間節(jié)點,,在每個節(jié)點地均要暴露明文(節(jié)點加密方法除外),如果鏈路上的某一節(jié)點安全防護(hù)比較薄弱,,那么按照木桶原理(木桶水量是由最低一塊木板決定),,雖然采取了加密措施,但整個鏈路的安全只相當(dāng)于最薄弱的節(jié)點處的安全狀況,。鏈路加密,,每條物理鏈路上,不管用戶多少,,可使用一種密鑰,。在極限情況下,每個節(jié)點都與另外一個單獨的節(jié)點相連,,密鑰的數(shù)目也只是n*(n-1)/2 種,。這里n是節(jié)點數(shù)而非用戶數(shù),一個節(jié)點一般有多個用戶,。
采用端--端加密方式,,只是發(fā)送方加密報文,接收方解密報文,,中間節(jié)點不必加,、解密,也就不需要密碼裝置,。此外,,加密可采用軟件實現(xiàn),使用起來很方便,。在端--端加密方式下,,每對用戶之間都存在一條虛擬的保密信道,每對用戶應(yīng)共享密鑰(傳統(tǒng)密碼保密體制,,非公鑰體制下),,所需的密鑰總數(shù)等于用戶對的數(shù)目。對于幾個用戶,,若兩兩通信,,共需密鑰n*(n-1)/2種,每個用戶需(n-1)種。這個數(shù)目將隨網(wǎng)上通 信用戶的增加而增加,。為安全起見,,每隔一段時間還要更換密鑰,有時甚至只能使用一次密鑰,,密鑰的用量很大,。
從身份認(rèn)證的角度看,鏈路加密只能認(rèn)證節(jié)點,,而不是用戶,。使用節(jié)點A密鑰的報文僅保證它來自節(jié)點A。報文可能來自A的任何用戶,,也可能來自另一個路過節(jié)點A的用戶,。因此鏈路加密不能提供用戶鑒別。端--端加密對用戶是可見的,,可以看到加密后的結(jié)果,,起點、終點很明確,,可以進(jìn)行用戶認(rèn)證,。
總之,,鏈路加密對用戶來說比較容易,,使用的密鑰較少,而端--端加密比較靈活,,用戶可見,。對鏈路加密中各節(jié)點安全狀況不放心的用戶也可使用端--端加密方式。