【文章內(nèi)容簡(jiǎn)介】
摘要算法就是一種散列函數(shù)。這種散列函數(shù)也叫做密碼編碼的檢驗(yàn)和。報(bào)文摘要算法是防止報(bào)文被人惡意篡改。 報(bào)文摘要算法是精心選擇的一種單向函數(shù)。 可以很容易地計(jì)算出一個(gè)長(zhǎng)報(bào)文 X 的報(bào)文摘要 H,但要想從報(bào)文摘要 H 反過來(lái)找到原始的報(bào)文 X,則實(shí)際上是不可能的。 若想找到任意兩個(gè)報(bào)文,使得它們具有相同的報(bào)文摘要,那么實(shí)際上也是不可能的。,報(bào)文摘要的實(shí)現(xiàn),A,比較,簽名,核實(shí)簽名,報(bào)文 X,?,H,D 運(yùn)算,D(H),A 的私鑰,報(bào)文 X,D(H),B,報(bào)文摘要,報(bào)文 X,D(H),發(fā)送,E 運(yùn)算,H,簽名的報(bào)文摘要,H,報(bào)文摘要 運(yùn)算,A 的公鑰,報(bào)文摘要 運(yùn)算,報(bào)文摘要,報(bào)文摘要,因特網(wǎng),7.4.2 實(shí)體鑒別,實(shí)體鑒別和報(bào)文鑒別不同。 報(bào)文鑒別是對(duì)每一個(gè)收到的報(bào)文都要鑒別報(bào)文的發(fā)送者,而實(shí)體鑒別是在系統(tǒng)接入的全部持續(xù)時(shí)間內(nèi)對(duì)和自己通信的對(duì)方實(shí)體只需驗(yàn)證一次。,最簡(jiǎn)單的實(shí)體鑒別過程,A 發(fā)送給 B 的報(bào)文的被加密,使用的是對(duì)稱密鑰 KAB。 B 收到此報(bào)文后,用共享對(duì)稱密鑰 KAB 進(jìn)行解密,因而鑒別了實(shí)體 A 的身份。,A,B,A, 口令,KAB,明顯的漏洞,入侵者 C 可以從網(wǎng)絡(luò)上截獲 A 發(fā)給 B 的報(bào)文。C 并不需要破譯這個(gè)報(bào)文(因?yàn)檫@可能很花很多時(shí)間)而可以直接把這個(gè)由 A 加密的報(bào)文發(fā)送給 B,使 B 誤認(rèn)為 C 就是 A。然后 B 就向偽裝是 A 的 C 發(fā)送應(yīng)發(fā)給 A 的報(bào)文。 這就叫做重放攻擊(replay attack)。C 甚至還可以截獲 A 的 IP 地址,然后把 A 的 IP 地址冒充為自己的 IP 地址(這叫做 IP 欺騙),使 B 更加容易受騙。,使用不重?cái)?shù),為了對(duì)付重放攻擊,可以使用不重?cái)?shù)(nonce)。不重?cái)?shù)就是一個(gè)不重復(fù)使用的大隨機(jī)數(shù),即“一次一數(shù)”。,使用不重?cái)?shù)進(jìn)行鑒別,A,B,A, RA,時(shí)間,中間人攻擊,A,B,我是 A,中間人 C,我是 A,RB,請(qǐng)把公鑰發(fā)來(lái),PKC,RB,請(qǐng)把公鑰發(fā)來(lái),PKA,時(shí)間,中間人攻擊說明,A 向 B 發(fā)送“我是 A”的報(bào)文,并給出了自己的身份。此報(bào)文被“中間人” C 截獲,C 把此報(bào)文原封不動(dòng)地轉(zhuǎn)發(fā)給 B。B 選擇一個(gè)不重?cái)?shù) RB 發(fā)送給 A,但同樣被 C 截獲后也照樣轉(zhuǎn)發(fā)給 A。 中間人 C 用自己的私鑰 SKC 對(duì) RB 加密后發(fā)回給 B,使 B 誤以為是 A 發(fā)來(lái)的。A 收到 RB 后也用自己的私鑰 SKA 對(duì) RB 加密后發(fā)回給 B,中途被 C 截獲并丟棄。B 向 A 索取其公鑰,此報(bào)文被 C截獲后轉(zhuǎn)發(fā)給 A。 C 把自己的公鑰 PKC 冒充是 A 的發(fā)送給 B,而 C 也截獲到 A 發(fā)送給 B 的公鑰 PKA。 B 用收到的公鑰 PKC(以為是 A 的)對(duì)數(shù)據(jù)加密發(fā)送給 A。C 截獲后用自己的私鑰 SKC 解密,復(fù)制一份留下,再用 A 的公鑰 PKA 對(duì)數(shù)據(jù)加密后發(fā)送給 A。A 收到數(shù)據(jù)后,用自己的私鑰 SKA 解密,以為和B進(jìn)行了保密通信。其實(shí),B發(fā)送給A的加密數(shù)據(jù)已被中間人 C 截獲并解密了一份。但 A 和 B 卻都不知道。,7.5 密鑰分配,密鑰管理包括:密鑰的產(chǎn)生、分配、注入、驗(yàn)證和使用。本節(jié)只討論密鑰的分配。 密鑰分配是密鑰管理中最大的問題。密鑰必須通過最安全的通路進(jìn)行分配。 目前常用的密鑰分配方式是設(shè)立密鑰分配中心 KDC (Key Distribution),通過 KDC 來(lái)分配密鑰。,7.5.1 對(duì)稱密鑰的分配,目前常用的密鑰分配方式是設(shè)立密鑰分配中心 KDC (Key Distribution Center)。 KDC 是大家都信任的機(jī)構(gòu),其任務(wù)就是給需要進(jìn)行秘密通信的用戶臨時(shí)分配一個(gè)會(huì)話密鑰(僅使用一次)。 用戶 A 和 B 都是 KDC 的登記用戶,并已經(jīng)在 KDC 的服務(wù)器上安裝了各自和 KDC 進(jìn)行通信的主密鑰(master key)KA 和 KB。 “主密鑰”可簡(jiǎn)稱為“密鑰”。,對(duì)稱密鑰的分配,A,密鑰 分配中心 KDC,…,…,用戶專用主密鑰,用戶 主密鑰 A KA B KB,時(shí)間,A,B,Kerberos,AS,TGS,7.5.2 公鑰的分配,需要有一個(gè)值得信賴的機(jī)構(gòu)——即認(rèn)證中心CA (Certification Authority),來(lái)將公鑰與其對(duì)應(yīng)的實(shí)體(人或機(jī)器)進(jìn)行綁定(binding)。 認(rèn)證中心一般由政府出資建立。每個(gè)實(shí)體都有CA 發(fā)來(lái)的證書(certificate),里面有公鑰及其擁有者的標(biāo)識(shí)信息。此證書被 CA 進(jìn)行了數(shù)字簽名。任何用戶都可從可信的地方獲得認(rèn)證中心 CA 的公鑰,此公鑰用來(lái)驗(yàn)證某個(gè)公鑰是否為某個(gè)實(shí)體所擁有。有的大公司也提供認(rèn)證中