概念
端到端加密是在源結(jié)點(diǎn)和目的結(jié)點(diǎn)中對(duì)傳送的PDU進(jìn)行加密和解密,因此報(bào)文的安全性不會(huì)因中間結(jié)點(diǎn)的不可靠而受到影響。
端到端加密不僅適用于互聯(lián)網(wǎng)環(huán)境,而且同樣也適用于廣播網(wǎng)。
在端到端加密的情況下,PDU的控制信息部分不能被加密,否則中間結(jié)點(diǎn)就不能正確選擇路由。這就使得這種方法易于受到通信量分析的攻擊。雖然也可以通過發(fā)送一些假的PDU來掩蓋有意義的報(bào)文流動(dòng),但這要以降低網(wǎng)絡(luò)性能為代價(jià)。由于各結(jié)點(diǎn)必須持有與其他結(jié)點(diǎn)相同的密鑰,這就需要在全網(wǎng)范圍內(nèi)進(jìn)行密鑰管理和分配。
為了獲得更好的安全性,可將鏈路加密與端到端加密結(jié)合在一起使用。鏈路加密用來對(duì)PDU的目的地址B進(jìn)行加密,而端到端加密則提供了端對(duì)端的數(shù)據(jù)進(jìn)行保護(hù)。1
端到端加密應(yīng)在運(yùn)輸層或其以上各層來實(shí)現(xiàn)。若選擇在運(yùn)輸層進(jìn)行加密,可以使安全措施對(duì)用戶來說是透明的。這樣可不必為每一個(gè)用戶提供單獨(dú)的安全保護(hù),但容易遭受運(yùn)輸層以上的攻擊。當(dāng)選擇在應(yīng)用層實(shí)現(xiàn)加密時(shí),用戶可根據(jù)自己的特殊要求來選擇不同的加密算法,而不會(huì)影響其他用戶。這樣,端到端加密更容易適合不同用戶的要求。端到端加密不僅適用于互聯(lián)網(wǎng)環(huán)境,而且同樣也適用于廣播網(wǎng)。2
在端到端加密下的若干措施端到端加密更適合OSI環(huán)境,但體系結(jié)構(gòu)也更加復(fù)雜,尤其采用網(wǎng)內(nèi)密鑰分配時(shí)更是如此。
對(duì)于防止析出報(bào)文內(nèi)容的措施,當(dāng)然應(yīng)直接采用加密技術(shù)。若加密在會(huì)話層或應(yīng)用層完成,則所有的傳輸層控制信息對(duì)攻擊者來說都是可知的。若加密由傳輸層來完成,則僅僅在網(wǎng)絡(luò)層及以下各層的控制信息是暴露的。若加密由網(wǎng)絡(luò)層來完成,則網(wǎng)絡(luò)層協(xié)議控制信息對(duì)網(wǎng)絡(luò)層的PDU所通過的每一個(gè)節(jié)點(diǎn)都是不可知的,因而中間節(jié)點(diǎn)無法正確選擇路由。所以網(wǎng)絡(luò)層一般不能提供端到端保護(hù)。這樣,傳輸層就是實(shí)現(xiàn)端到端加密的最低層。
一次連接使用一個(gè)不同的密鑰是反攻擊的一個(gè)有力措施。采用不同的加密方式還可進(jìn)一步掩蓋數(shù)據(jù)的模式。
抗擊通信量分析的措施涉及掩蓋協(xié)議實(shí)體之間的報(bào)文交流的頻率、分組長(zhǎng)度等。適當(dāng)?shù)逆溌芳用苣芊乐垢鞣N通信量分析,但端到端加密很難做到這一點(diǎn)。
若加密在傳輸層完成,攻擊者就只能在網(wǎng)絡(luò)地址這一級(jí)觀察數(shù)據(jù)模式。換言之,攻擊者能夠知道哪一些傳輸層實(shí)體在交換信息,但卻不知哪些高層實(shí)體在交換信息。
掩蓋網(wǎng)絡(luò)地址模式在OSI環(huán)境中是不可能的。要做到這一點(diǎn)將涉及到用全網(wǎng)范圍的一個(gè)密鑰對(duì)網(wǎng)絡(luò)層的PDU的實(shí)際目的地址進(jìn)行加密,并將這些PDU送交網(wǎng)絡(luò)中的所有主機(jī)。這當(dāng)然會(huì)使網(wǎng)絡(luò)的有效寬帶急劇下降,并浪費(fèi)大量主機(jī)處理能力。因此,端到端加密實(shí)際上只能在傳輸層及其以上各層實(shí)現(xiàn)。
對(duì)于更改報(bào)文流的抗擊就是要檢測(cè)報(bào)文的完整性、真實(shí)性和有序性。這里最基本的是要保證報(bào)文的完整性。在通信協(xié)議中的差錯(cuò)檢驗(yàn)碼可以用來檢測(cè)PDU由于傳輸錯(cuò)誤而造成的報(bào)文更改,但這不能防止對(duì)PDU完整性的蓄意攻擊。這時(shí)必須采用鑒別技術(shù)。例如,可以在報(bào)文中插入報(bào)文鑒別碼MAC,它是報(bào)文和密鑰的密碼函數(shù)。如果報(bào)文被篡改了,那么在接收到的報(bào)文重新計(jì)算MAC時(shí),幾乎就不可能得到與發(fā)送一致的MAC。
為了保證報(bào)文的真實(shí)性,應(yīng)使收方實(shí)體能可靠地確定一個(gè)PDU所在的連接及其傳送方向。為此,應(yīng)在所有時(shí)間內(nèi)使每一個(gè)連接都有一個(gè)唯一1標(biāo)識(shí)符,并將此標(biāo)識(shí)符回到通過這個(gè)連接的每一個(gè)PDU上。利用這個(gè)唯一的標(biāo)識(shí)符就能可靠地確定PDU所屬的連接。若每一個(gè)連接都使用不同的密鑰,則此密鑰就可以提供一個(gè)隱含的唯一標(biāo)識(shí)符。
為了防止對(duì)有序性的攻擊,可在每一個(gè)PDU中增加一個(gè)序號(hào),同時(shí)不得在某個(gè)連接唯一標(biāo)識(shí)符存在期間重復(fù)使用該序號(hào)。對(duì)序號(hào)重復(fù)使用的限制,防止了攻擊者在序號(hào)循環(huán)后重復(fù)一個(gè)舊的PDU。
對(duì)于拒絕報(bào)文服務(wù),發(fā)送PDU的實(shí)體能夠檢測(cè)到這種攻擊,但卻無法通知對(duì)方。
要檢測(cè)出這類攻擊需要增加一個(gè)請(qǐng)求應(yīng)答機(jī)構(gòu),此機(jī)構(gòu)要求雙方實(shí)體周期性地交換一對(duì)PDU,以確定雙方之間是否存在一條通路。
偽造連接初始化攻擊有兩種,一是以假身份建立一個(gè)連接,另一種重發(fā)一個(gè)以前是合法的連接初始化序列的記錄。
要抵抗一種攻擊,可使連接必須按照某種方法來建立。雙方已知的密鑰加密就含有鑒別的隱含信息。只有已知密鑰的人員才能對(duì)信息加密和解密。要抵抗第二種攻擊,連接初始化必須有一個(gè)鑒別連接時(shí)間完整性的機(jī)構(gòu)或方法,即驗(yàn)證初始化過程是否是實(shí)時(shí)的。3