【正文】
SPI (Security Parameter Index) ? 對于一個給定的安全關(guān)聯(lián) SA,每一個 IPsec 數(shù)據(jù)報都有一個存放 SPI 的字段。 ? IPsec 就把傳統(tǒng)的因特網(wǎng)無連接的網(wǎng)絡(luò)層轉(zhuǎn)換為具有邏輯連接的層。 安全關(guān)聯(lián) SA (Security Association) ? 在使用 AH 或 ESP 之前,先要從源主機(jī)到目的主機(jī)建立一條網(wǎng)絡(luò)層的邏輯連接。 IPsec 中最主要的兩個部分 ? 鑒別首部 AH (Authentication Header): AH鑒別源點和檢查數(shù)據(jù)完整性,但不能保密。有的大公司也提供認(rèn)證中心服務(wù)。此證書被 CA 進(jìn)行了數(shù)字簽名。 ? 認(rèn)證中心一般由政府出資建立。 “主密鑰”可簡稱為“密鑰”。 ? KDC 是大家都信任的機(jī)構(gòu),其任務(wù)就是給需要進(jìn)行秘密通信的用戶臨時分配一個會話密鑰(僅使用一次)。 ? 目前常用的密鑰分配方式是設(shè)立 密鑰分配中心 KDC (Key Distribution),通過 KDC 來分配密鑰。 ? 密鑰分配是密鑰管理中最大的問題。 密鑰分配 ? 密鑰管理包括:密鑰的產(chǎn)生、分配、注入、驗證和使用。其實, B發(fā)送給 A的加密數(shù)據(jù)已被中間人 C 截獲并解密了一份。 C 截獲后用自己的私鑰 SKC 解密,復(fù)制一份留下,再用 A 的公鑰 PKA 對數(shù)據(jù)加密后發(fā)送給 A。 ? C 把自己的公鑰 PKC 冒充是 A 的發(fā)送給 B,而 C 也截獲到 A 發(fā)送給 B 的公鑰 PKA。 A 收到 RB 后也用自己的私鑰 SKA 對 RB 加密后發(fā)回給 B,中途被 C 截獲并丟棄。 B 選擇一個不重數(shù) RB 發(fā)送給 A,但同樣被 C 截獲后也照樣轉(zhuǎn)發(fā)給 A。 使用不重數(shù)進(jìn)行鑒別 A B A, RA RB KAB RA RB KAB , 時間 中間人攻擊 A B 我是 A 中間人 C 我是 A RB RB SKC 請把公鑰發(fā)來 PKC RB RB SKA 請把公鑰發(fā)來 PKA DATA PKC DATA PKA 時間 中間人攻擊說明 ? A 向 B 發(fā)送“ 我是 A” 的報文,并給出了自己的身份。 使用不重數(shù) ? 為了對付重放攻擊,可以使用 不重數(shù)(nonce)。 ? 這就叫做 重放攻擊 (replay attack)。C 并不需要破譯這個報文(因為這可能很花很多時間)而可以直接把這個由 A 加密的報文發(fā)送給 B,使 B 誤認(rèn)為 C 就是 A。 ? B 收到此報文后,用共享對稱密鑰 KAB 進(jìn)行解密,因而鑒別了實體 A 的身份。 ? 報文鑒別是對每一個收到的報文都要鑒別報文的發(fā)送者,而實體鑒別是在系統(tǒng)接入的全部持續(xù)時間內(nèi)對和自己通信的對方實體 只需驗證一次 。 ? 若想找到任意兩個報文,使得它們具有相同的報文摘要,那么實際上也是不可能的。 ? 報文摘要算法是精心選擇的一種 單向函數(shù) 。這種散列函數(shù)也叫做密碼編碼的檢驗和。也就是說,報文 X 和已簽名的報文摘要 D(H) 合在一起是 不可偽造的 ,是 可檢驗的 和 不可否認(rèn)的 。 報文摘要的優(yōu)點 ? 僅對短得多的定長報文摘要 H 進(jìn)行數(shù)字簽名要比對整個長報文進(jìn)行數(shù)字簽名要簡單得多,所耗費的計算資源也小得多。如一樣,就能以極高的概率斷定收到的報文是 A 產(chǎn)生的。 ? 用 A的公鑰對 D(H) 進(jìn)行 E運算,得出報文摘要 H 。 ? B 收到報文后首先把已簽名的 D(H) 和報文 X 分離。然后然后用自己的私鑰對 H 進(jìn)行 D 運算,即進(jìn)行數(shù)字簽名。 ? 當(dāng)我們傳送不需要加密的報文時,應(yīng)當(dāng)使接收者能用很簡單的方法鑒別報文的真?zhèn)巍? 報文鑒別 ? 許多報文并不需要加密但卻需要數(shù)字簽名,以便讓報文的接收者能夠 鑒別報文的真?zhèn)?。 鑒別與授權(quán)不同 ? 鑒別與 授權(quán) (authorization)是不同的概念。但在網(wǎng)絡(luò)的應(yīng)用中,許多報文并不需要加密。 ? 報文鑒別使得通信的接收方能夠驗證所收到的報文(發(fā)送者和報文內(nèi)容、發(fā)送時間、序列等)的真?zhèn)?。這樣就證明了 B 偽造了報文。第三者很容易用 A 的公鑰去證實 A 確實發(fā)送 X 給 B。因此 B 相信報文 X 是 A 簽名發(fā)送的。但采用公鑰算法更容易實現(xiàn)。 XXEDXDE BBBB PKSKSKPK ?? ))(())((( 76) 公鑰密碼體制 密文 Y E 運算 加密算法 D 運算 解密算法 加密 解密 明文 X 明文 X A B B 的私鑰 SKB 密文 Y 因特網(wǎng) B 的公鑰 PKB 數(shù)字簽名 ? 數(shù)字簽名必須保證以下三點: (1) 報文鑒別 —— 接收者能夠核實發(fā)送者對