專利名稱:更新及分配加密密鑰的制作方法
技術(shù)領(lǐng)域:
本發(fā)明 一般涉及用于給通信網(wǎng)絡(luò)提供安全的系統(tǒng)和方法,并且尤 其涉及用于產(chǎn)生及分配加密密鑰的系統(tǒng)和方法。
背景技術(shù):
為了給網(wǎng)絡(luò)各節(jié)點(diǎn)之間的通信提供機(jī)密性,公知的是為消息提供 加密。 一般而言,最好為每對(duì)通信節(jié)點(diǎn)提供不同的加密密鑰,以使這 樣成對(duì)通信的消息專用于該對(duì)。通過這種方式,第三節(jié)點(diǎn)不能夠解密 并知道該通信,即使其暴露于所述消息(如一般會(huì)在共享媒介上運(yùn)行 的網(wǎng)絡(luò)中發(fā)生)。
然而,在加密密鑰可用于加密通信之前,必須將該加密密鑰提供 給每對(duì)節(jié)點(diǎn)。最重要的是要以安全的方式將加密密鑰提供給通信節(jié)點(diǎn), 因?yàn)槿绻谌?jié)點(diǎn)獲悉該對(duì)的加密密鑰,則第三節(jié)點(diǎn)將能夠截獲并解 密通信節(jié)點(diǎn)之間的通信,從而破壞了它們的保密性。不幸的是,用于 交換機(jī)密的加密密鑰的最方便的方法是網(wǎng)絡(luò)本身。
因此,關(guān)于在兩節(jié)點(diǎn)之間提供安全通信的第 一個(gè)問題是在共享媒 介上傳遞機(jī)密信息(諸如加密密鑰)且不讓其他節(jié)點(diǎn)得到該機(jī)密信息 的能力,該機(jī)密信息使得能夠在網(wǎng)絡(luò)的兩個(gè)節(jié)點(diǎn)之間加密。
第二個(gè)問題是即-使機(jī)密信息不^:泄露地在節(jié)點(diǎn)之間傳遞,隨著時(shí) 間的流逝使用機(jī)密信息來加密消息也會(huì)使第三節(jié)點(diǎn)取得該機(jī)密信息, 從而使第三節(jié)點(diǎn)截獲并解密將來的通信。用被發(fā)送的特定密鑰加密的 消息越多,企圖發(fā)現(xiàn)該密鑰的攻擊者可得到的材料就越多。給定足夠 的時(shí)間和材料,任何加密系統(tǒng)都能被破壞。因此有必要不時(shí)地替換每 對(duì)所使用的加密密鑰,并且也必須采用保持機(jī)密性的方式來完成該替 換。
一般地,攻擊者可以采用兩種方式來石皮壞一幾密性。采用^皮動(dòng)方式 (通常被稱為"竊聽,,),攻擊者獲知一對(duì)節(jié)點(diǎn)所使用的加密密鑰,并 簡單地讀取被來回傳送的信息。
采用另一種方式,攻擊者能夠避免該對(duì)的兩節(jié)點(diǎn)之間的直接接觸,并可以將它自己置于它們之間。例如,如果該對(duì)的兩個(gè)節(jié)點(diǎn)處在分離 網(wǎng)或子網(wǎng)中,攻擊者的節(jié)點(diǎn)作為所述兩個(gè)節(jié)點(diǎn)的中繼,則這可能會(huì)發(fā) 生。在這樣情況下,從一個(gè)節(jié)點(diǎn)到另一個(gè)節(jié)點(diǎn)的每個(gè)通信均經(jīng)過攻擊 者的節(jié)點(diǎn)。假如那樣的話,如果攻擊者獲知該對(duì)的加密密鑰,則攻擊
者的節(jié)點(diǎn)就可能通過封鎖(blocking)或改變這些通信來直接干涉在該 對(duì)中的通信。這一方式通常被稱為"充當(dāng)中間人,,(MitM)。
非對(duì)稱公鑰加密已經(jīng)被用于允許節(jié)點(diǎn)A發(fā)送對(duì)偶密鑰(pair - wise key)給第二節(jié)點(diǎn)B。使用節(jié)點(diǎn)B的公鑰(任何人均可得到)來加密該 對(duì)偶密鑰,但是僅可以使用節(jié)點(diǎn)B的私鑰(只有B知道該私鑰)來解 密該對(duì)偶密鑰。通過對(duì)公鑰和私鑰的適當(dāng)選擇,發(fā)現(xiàn)私鑰使得在計(jì)算 上不可行。
應(yīng)用該方法的問題在于,每個(gè)節(jié)點(diǎn)具有唯一私鑰(不僅在網(wǎng)絡(luò)內(nèi) 是唯一的,而且在全世界也是唯一的)是必需的(vital )。否則,攻擊 者就可能通過查找正在使用相同公鑰的另一實(shí)體來獲知目標(biāo)節(jié)點(diǎn)B的 私鑰。為了避免這個(gè),必須購買并管理非對(duì)稱公鑰加密對(duì)。
提供安全通信的一種嘗試是對(duì)稱公鑰加密技術(shù)。在一個(gè)被稱為 Diffie-Hellman交換的實(shí)例中,節(jié)點(diǎn)A和B使用公共消息安全地協(xié)商加 密密鑰。 一般地,兩個(gè)號(hào)碼p和g被公認(rèn)為交換的參數(shù)特性,并且每 個(gè)節(jié)點(diǎn)選擇特定的號(hào)碼(例如,用于節(jié)點(diǎn)A的Ra和用于節(jié)點(diǎn)B的Rb), 每個(gè)節(jié)點(diǎn)使用該特定號(hào)碼以導(dǎo)出一個(gè)值(例如,用于A的g^沖莫p和用 于B的gRb沖莫p)。在通信網(wǎng)絡(luò)上不安全地(unsecured)且未加密地將 所導(dǎo)出的這些值彼此傳遞,以使節(jié)點(diǎn)A知道Ra和gRb模p,節(jié)點(diǎn)B知 道Rb和g&模p。然后節(jié)點(diǎn)A和節(jié)點(diǎn)B均能夠計(jì)算數(shù)值g^^W模p,因 而可以以商定的(agreed-upon)方式來使用該數(shù)值g"一叫模p以產(chǎn)生 用于加密節(jié)點(diǎn)A和B之間的將來通信的對(duì)偶密鑰。然而,僅知道(g1^ 模p)和(gRb模p)的第三節(jié)點(diǎn)不能計(jì)算數(shù)值g^剛模p。
由于解決該所謂的"離散對(duì)數(shù)問題"在計(jì)算上的困難,所以上面 討論的Diffie-Hellman交換協(xié)議是相對(duì)安全的防御被動(dòng)竊聽。第三節(jié)點(diǎn) 將不能根據(jù)簡單地觀察該交換來獲知對(duì)偶密鑰,即使其并未被加密。 然而這種類型的解決方案不能提供防御MitM攻擊的安全通信。
例如,如果第三節(jié)點(diǎn)(例如節(jié)點(diǎn)C)正作為節(jié)點(diǎn)A和B之間的中 繼節(jié)點(diǎn),則節(jié)點(diǎn)C可以通過截獲節(jié)點(diǎn)A和B之間的消息來充當(dāng)MitM。一旦接收到來自于節(jié)點(diǎn)A的消息,節(jié)點(diǎn)C就與節(jié)點(diǎn)A進(jìn)行Diffie-Hellman交換。節(jié)點(diǎn)C還與節(jié)點(diǎn)B進(jìn)行Diffie-Hellman交換。節(jié)點(diǎn)C可以進(jìn)一步改變發(fā)送到節(jié)點(diǎn)A和B的分組的地址字段參數(shù),因而節(jié)點(diǎn)C的地址不會(huì)出現(xiàn)在分組中,且節(jié)點(diǎn)A和B不知道正在與節(jié)點(diǎn)C保持通信,而不是彼此通信。
在另 一種嘗試中,Diffie-Hellman交換協(xié)議被增強(qiáng)以用于防御MitM問題。 一個(gè)系統(tǒng)被稱作口令認(rèn)證密鑰(PAK)交換協(xié)議。在該協(xié)議中,用消息來引導(dǎo)Diffie-Hellman交換,通過使用節(jié)點(diǎn)A和節(jié)點(diǎn)B均知道而節(jié)點(diǎn)C不知道的口令來加密該消息。節(jié)點(diǎn)C不能干涉節(jié)點(diǎn)A和B之間的交換,因?yàn)楣?jié)點(diǎn)C不能解讀所交換的消息。
該安全性不受MitM攻擊的代價(jià)在于,在執(zhí)行Diffie-Hellman交換之前必須在節(jié)點(diǎn)A和B之間傳遞由節(jié)點(diǎn)A和B共享的口令。因?yàn)樾枰诹畹耐耆C?,所以不?yīng)當(dāng)在節(jié)點(diǎn)C可能截獲口令的通信網(wǎng)絡(luò)上傳遞該口令。該分配口令的過程經(jīng)常是緩慢且低效的; 一般說來,這很少4皮用到。
此外,盡管PAK交換協(xié)議是安全防MitM攻擊的,但是最終仍必須更換對(duì)偶密鑰,因?yàn)樗氖褂脼楣魟?chuàng)造了材料。如果確信對(duì)偶密鑰尚未被攻擊者發(fā)現(xiàn),那么足以進(jìn)行普通的Diffie-Hellman交換以使用當(dāng)前的對(duì)偶密鑰產(chǎn)生新的對(duì)偶密鑰來加密交換中的消息。然而,如果存在當(dāng)前密鑰已被發(fā)現(xiàn)的可能性,則這將是不安全的,因?yàn)楣粽邥?huì)^:用中繼節(jié)點(diǎn)C來進(jìn)入交換并充當(dāng)MitM。因而改變密鑰也不能夠"擺脫"節(jié)點(diǎn)C。
因?yàn)橛肋h(yuǎn)都不能真正地確信密鑰未被發(fā)現(xiàn),所以,在該密鑰的使用期間,繼續(xù)進(jìn)行的安全方法是再次使用PAK交換。然而,這也具有風(fēng)險(xiǎn)。例如,通過將消息乘以固定口令所提供的加密是相對(duì)弱的,并且如果每當(dāng)對(duì)偶密鑰被替換時(shí)就使用PAK交換,則口令自身處于被發(fā)現(xiàn)的風(fēng)險(xiǎn)中,因?yàn)槔眉用苤械目诹疃l(fā)送的每個(gè)消息給攻擊者提供了更多的材料來發(fā)現(xiàn)口令本身。
這樣,當(dāng)使用PAK交換協(xié)議設(shè)立對(duì)偶密鑰時(shí),如果還用其替換這些密鑰,則由于過度使用會(huì)存在暴露口令的風(fēng)險(xiǎn)。然而,如果不使用PAK交換,而僅使用不受口令保護(hù)的Diffie-Hellman交換,則會(huì)存在節(jié)點(diǎn)C充當(dāng)MitM的風(fēng)險(xiǎn)。因A匕,需要用于更新及分配加密密鑰的系統(tǒng)和方法,其可避免上 述兩個(gè)問題的發(fā)生。
發(fā)明內(nèi)容
技術(shù)上的優(yōu)點(diǎn),所述優(yōu)選實(shí)施例提供了一種用于產(chǎn)生及分配加密密鑰 的安全系統(tǒng)和方法。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,提供了 一種用于提供安全通信的方法。 該方法包括產(chǎn)生第一節(jié)點(diǎn)和第二節(jié)點(diǎn)知道的共享秘密。所述共享秘密 用于產(chǎn)生所利用密鑰和所存儲(chǔ)密鑰。所述所利用密鑰用于加密第一節(jié) 點(diǎn)和第二節(jié)點(diǎn)之間的消息。在某一時(shí)刻產(chǎn)生新的共享秘密,且從新的
共享秘密導(dǎo)出新的所利用密鑰和新的所存儲(chǔ)密鑰。然后該新的所利用 密鑰用于加密另外的消息
根據(jù)本發(fā)明的另 一 個(gè)優(yōu)選實(shí)施例,提供了 一種與網(wǎng)絡(luò)節(jié)點(diǎn)通信的 方法。該方法包括產(chǎn)生共享秘密,至少部分基于所述共享秘密產(chǎn)生第 一密鑰和第二密鑰。使用第一密鑰來加密消息。執(zhí)行替換所述共享秘 密、第一密鑰和第二密鑰的步驟。替換所述共享秘密的步驟包括使用 所述第二密鑰加密 一個(gè)或多個(gè)消息。
根據(jù)本發(fā)明的又一個(gè)優(yōu)選實(shí)施例,提供了 一種用于提供安全通信 的計(jì)算機(jī)程序產(chǎn)品。該計(jì)算機(jī)程序產(chǎn)品包括用于導(dǎo)出共享秘密、導(dǎo)出
所利用密鑰以及所存儲(chǔ)密鑰的計(jì)算機(jī)程序代碼,以及用所述所利用密 鑰來加密消息的計(jì)算機(jī)程序代碼。當(dāng)要替換用于加密消息的所利用密 鑰時(shí),計(jì)算機(jī)程序產(chǎn)品包括用于使用所存儲(chǔ)密鑰來產(chǎn)生新的共享秘密 從而加密過程中所發(fā)送的任何消息的計(jì)算機(jī)程序代碼。才艮據(jù)該新的共 享秘密,計(jì)算機(jī)程序產(chǎn)品包括用于導(dǎo)出新的所利用密鑰和新的所存儲(chǔ)
密鑰的計(jì)算機(jī)程序代碼。此后將該新的所利用密鑰用于加密消息。
為了更完全的理解本發(fā)明及其優(yōu)點(diǎn),現(xiàn)在可參考結(jié)合附圖進(jìn)行的
下述描述。在附圖中
圖1是體現(xiàn)本發(fā)明特征的網(wǎng)絡(luò)圖2是體現(xiàn)本發(fā)明特征的另一個(gè)網(wǎng)絡(luò)圖;圖3是根據(jù)本發(fā)明實(shí)施例的用于創(chuàng)建及分配加密密鑰的流程圖; 圖4是根據(jù)本發(fā)明實(shí)施例的用于創(chuàng)建及分配加密密鑰的消息流圖; 圖5是根據(jù)本發(fā)明另一個(gè)實(shí)施例的用于創(chuàng)建及分配加密密鑰的流 程圖;以及
圖6是根據(jù)本發(fā)明另一個(gè)實(shí)施例的用于創(chuàng)建及分配加密密鑰的消 息流圖。
具體實(shí)施例方式
下面將"^細(xì)討論目前的優(yōu)選實(shí)施例的形成和^f吏用。然而,應(yīng)該理 解的是,本發(fā)明提供了許多可適用的發(fā)明構(gòu)思,其可以體現(xiàn)在多種特
方式,而并不限制本發(fā)明的范圍。
將關(guān)于在特定背景(即, 一對(duì)彼此通信的節(jié)點(diǎn))中的優(yōu)選實(shí)施例 來描述本發(fā)明。然而,本發(fā)明還可以應(yīng)用于其他通信,諸如多播、廣 播或其他多路通信,其中用若干節(jié)點(diǎn)來進(jìn)行通信。
現(xiàn)在參考圖1,其示出了體現(xiàn)本發(fā)明特征的網(wǎng)絡(luò)環(huán)境100。在網(wǎng)絡(luò) 環(huán)境100中,節(jié)點(diǎn)A直接與節(jié)點(diǎn)B通信。應(yīng)該注意的是,節(jié)點(diǎn)A和節(jié) 點(diǎn)B^皮說明為直接相連僅是出于說明的目的。在該情況下,節(jié)點(diǎn)A和 B通信地耦合到相同的網(wǎng)絡(luò)/子網(wǎng)絡(luò)以使節(jié)點(diǎn)A和節(jié)點(diǎn)B之間的通信基 本上在彼此之間直接發(fā)送。該網(wǎng)絡(luò)可包括,例如局域網(wǎng)(LAN)和/或 廣域網(wǎng)(WAN),還可包括有線和/或無線鏈接、爿^共開關(guān)電話網(wǎng)絡(luò) (PSTN)、無線通信網(wǎng)絡(luò)等等。
這類網(wǎng)絡(luò)環(huán)境易受被動(dòng)攻擊,例如竊聽,但是其對(duì)于MitM攻擊而 言是相對(duì)安全的,因?yàn)榫W(wǎng)絡(luò)/子網(wǎng)絡(luò)不作為節(jié)點(diǎn)A和B之間的通信的中 繼點(diǎn)。圖1中用節(jié)點(diǎn)C和虛線說明了被動(dòng)攻擊。節(jié)點(diǎn)C可以簡單地是 與節(jié)點(diǎn)A和B相同的網(wǎng)絡(luò)/子網(wǎng)絡(luò)上的另 一節(jié)點(diǎn),以使節(jié)點(diǎn)C可以監(jiān)控 節(jié)點(diǎn)A和B之間的通信鏈路上的業(yè)務(wù)。
圖2說明了體現(xiàn)本發(fā)明特征的網(wǎng)絡(luò)環(huán)境200。除了在該情況下節(jié)點(diǎn) A和B之間的所有通信均由節(jié)點(diǎn)C中繼之外,網(wǎng)絡(luò)環(huán)境200與網(wǎng)絡(luò)環(huán) 境100類似。該情形會(huì)在節(jié)點(diǎn)A和B不處于同一網(wǎng)絡(luò)或子網(wǎng)絡(luò)中的情 況下發(fā)生。從節(jié)點(diǎn)A發(fā)送到節(jié)點(diǎn)B的消息首先發(fā)送給節(jié)點(diǎn)C。節(jié)點(diǎn)C 估計(jì)分組中的尋址信息并將消息轉(zhuǎn)發(fā)給節(jié)點(diǎn)B。相應(yīng)地,雖然這樣的情況易于使其自身遭受MitM攻擊,但是下文中更詳細(xì)地討論的本發(fā)明實(shí) 施例提供的降^f氐MitM攻擊4既率的機(jī)制,如果這不完全避免的話。
應(yīng)該注意的是,如果不另外指出,則本文所描述的所有功能可以 用硬件或軟件或其一些組合來執(zhí)行。然而,在優(yōu)選實(shí)施例中,下文所 描述的方法由節(jié)點(diǎn)A和/或節(jié)點(diǎn)B來執(zhí)行,從而在其之間提供安全通信。 優(yōu)選地,如果不另外指出的話,則節(jié)點(diǎn)A和B包^"由諸如計(jì)算才幾或電 子數(shù)據(jù)處理器之類的處理器根據(jù)諸如計(jì)算機(jī)程序代碼、軟件和/或集成 電路之類的代碼所執(zhí)行的功能,所述集成電路被編碼以執(zhí)行這樣的功 能。節(jié)點(diǎn)可以是,例如,諸如個(gè)人計(jì)算機(jī)、無線設(shè)備、移動(dòng)電話、主 機(jī)計(jì)算機(jī)等的任何電子設(shè)備。
圖3和4說明了執(zhí)行本發(fā)明實(shí)施例的方法,其中圖3是流程圖, 圖4說明了在節(jié)點(diǎn)A和B之間通信的情形下該流程圖的步驟以進(jìn)一步 加以說明。該過程起始于步驟310,其中產(chǎn)生共享秘、密。在實(shí)施例中, 依據(jù)僅僅由諸如節(jié)點(diǎn)A和B之類的通信節(jié)點(diǎn)所知的口令來產(chǎn)生共享秘 密??诹羁梢詮囊粋€(gè)節(jié)點(diǎn)傳遞給其他的脫^/L,或者可以經(jīng)由諸如USB
或藍(lán)牙之類的本地通信接口輸入口令。然而,優(yōu)選地,口令不在網(wǎng)絡(luò) 上傳遞。信賴于口令的保密,使用安全交換協(xié)議(諸如經(jīng)由網(wǎng)絡(luò)通信 而傳遞的PAK交換協(xié)議)產(chǎn)生共享秘密。當(dāng)提供保護(hù)以免受竊聽以及 MitM攻擊時(shí),諸如PAK之類的交換協(xié)議的使用允許容易、迅速且高 效的導(dǎo)出共享秘密。然而,可以利用其他的協(xié)議和/或機(jī)制。
接下來,根據(jù)共享秘密來導(dǎo)出所利用密鑰和所存儲(chǔ)密鑰。所利用 密鑰用于立即加密節(jié)點(diǎn)A和節(jié)點(diǎn)B之間的通信,而所存儲(chǔ)密鑰則被保 存以在后來用于產(chǎn)生的新的共享秘密,下面將更為詳盡地討論。應(yīng)該 注意的是,在優(yōu)選實(shí)施例中,在產(chǎn)生所利用密鑰和所存儲(chǔ)密鑰之后, 口令及第一共享秘密不再用于通信。
所利用密鑰和所存儲(chǔ)密鑰可由任何合適的機(jī)制來導(dǎo)出,因?yàn)樵趦H 知道所利用密鑰的基礎(chǔ)上確定所存儲(chǔ)密鑰在計(jì)算上是不可行的。例如, 在一個(gè)實(shí)施例中,通過將共享秘密用作輸入來預(yù)先安排使用兩個(gè)不同 的函數(shù)以導(dǎo)出所利用密鑰和所存儲(chǔ)密鑰。這兩個(gè)函數(shù)可以是,例如, 兩個(gè)獨(dú)立的加密散列函數(shù)(cryptographic hash function ),它的輸出是固 定尺寸的串,對(duì)其進(jìn)行逆映射在計(jì)算上是不現(xiàn)實(shí)的。按這種方式,即 使所利用密鑰被發(fā)現(xiàn),共享秘密以及由此的所存儲(chǔ)密鑰也不會(huì)被第三
9方破獲。
另 一 個(gè)實(shí)例,新產(chǎn)生的共享秘密可被用作密鑰來加密消息以引導(dǎo)
另一個(gè)諸如Diffie-Hellman交換的交換協(xié)議,從而產(chǎn)生兩個(gè)新的密鑰。 為了增大難度,可以使用兩次連續(xù)交換,對(duì)于每個(gè)密鑰使用一次交換。
再一個(gè)實(shí)例,新產(chǎn)生的共享秘密可被用作認(rèn)證交換協(xié)議(例如, 另一個(gè)PAK交換)中的口令,以產(chǎn)生新密鑰。如上面所討論的,諸如 PAK的認(rèn)證交換協(xié)議添加了另一層保護(hù),尤其是防止MitM攻擊。為 了增大難度,可以使用兩次連續(xù)交換,對(duì)于每個(gè)密鑰使用一次交換。
又一個(gè)實(shí)例, 一個(gè)節(jié)點(diǎn)可以自發(fā)地產(chǎn)生兩個(gè)新的密鑰,并用共享 秘密作為加密密鑰來將這兩個(gè)新的密鑰傳送給另一個(gè)節(jié)點(diǎn)。例如,在 步驟310中導(dǎo)出共享秘密之后,節(jié)點(diǎn)A可以自發(fā)產(chǎn)生所利用密鑰和所 存儲(chǔ)密鑰。然后節(jié)點(diǎn)A可以使用新創(chuàng)建的共享秘密作為加密密鑰來加 密該所利用密鑰和所存儲(chǔ)密鑰。在加密之后,節(jié)點(diǎn)A將加密后的所利 用密鑰和所存儲(chǔ)密鑰傳送給節(jié)點(diǎn)B。之后,節(jié)點(diǎn)A和B可以將所利用 密鑰用作加密密鑰來安全地傳遞。然而,按這種方法,了解節(jié)點(diǎn)A用 以產(chǎn)生所利用密鑰和所存儲(chǔ)密鑰的機(jī)制的攻擊者可以創(chuàng)建安全突破 口,其使得該方法不如使用一種其他方法令人滿意。
如在步驟314中所說明的那樣,所利用密鑰用于加密節(jié)點(diǎn)間的通信。
在某一時(shí)刻,可取的是如在步驟316中所說明的那樣替換所利用 密鑰。如上面所討論的,在通信中所利用密鑰使用得越多,攻擊者就 可得到越多的信息,并且攻擊者能夠?qū)С鏊妹荑€的可能性就越大。 因此,可取的是不時(shí)地替換所利用密鑰。
然而,替換所利用密鑰與初始交換是不同的,因?yàn)楣?jié)點(diǎn)A和B已 經(jīng)具有了攻擊者并不知道的密鑰,即所存儲(chǔ)密鑰。因此,通過使用所 加密交換協(xié)議期間的消息,可以提供算法更魯棒的安全形式。
應(yīng)該理解的是,因?yàn)樗鎯?chǔ)密鑰先前還未被使用,所以攻擊者不 能得到任何材料來試圖導(dǎo)出所存儲(chǔ)密鑰。使用所存儲(chǔ)密鑰加密通信以 替換所利用密鑰將是所存儲(chǔ)密鑰的第一次使用。所以,即使所利用密 鑰已經(jīng)被攻擊者發(fā)現(xiàn),當(dāng)使用所存儲(chǔ)密鑰時(shí),節(jié)點(diǎn)C也仍然不可能竊 聽或充當(dāng)MitM。此外,因?yàn)樗鎯?chǔ)密鑰不采用初始交換(例如初始PAK 交換)中所使用的口令,所以所存儲(chǔ)密鑰的使用并不帶來口令的任何額外的暴露。該替換過程的密碼保護(hù)比產(chǎn)生第一共享秘密的初始交換 的密碼保護(hù)更強(qiáng),因?yàn)楦鶕?jù)所采用的特定加密算法,測(cè)試每個(gè)猜測(cè)密 鑰所需要的計(jì)算會(huì)比測(cè)試每個(gè)猜測(cè)口令所需要的計(jì)算更大。
在實(shí)施例中,可以使用Diffie-Hellman交換協(xié)議從而使得用所存儲(chǔ) 密鑰來加密消息。作為Diffie-Hellman交換協(xié)議的結(jié)果,產(chǎn)生僅為節(jié)點(diǎn) A和B所知的新共享秘密。在其他實(shí)施例中,可以使用其他交換協(xié)議。
接下來,在步驟318中,根據(jù)在步驟316中產(chǎn)生的新共享秘密來 導(dǎo)出新的所利用密鑰以及新的所存儲(chǔ)密鑰??梢允褂门c上面參考步驟 312所討論的機(jī)制相同的機(jī)制來產(chǎn)生新的被利用和所存儲(chǔ)密鑰。新的所
生第一所利用密鑰和第一所存儲(chǔ)密鑰(步驟312)的機(jī)制不同的機(jī)制。 其后,過程返回到步驟314,其中新的所利用密鑰用于在節(jié)點(diǎn)之間 進(jìn)行通信。在某一時(shí)刻,可以用再一個(gè)所利用密鑰來替換該新的所利 用密鑰??梢远啻沃貜?fù)該過程并且可以4妄需要經(jīng)常重復(fù)該過程。
圖5和6說明了本發(fā)明的替代實(shí)施例中的步驟,其中圖5說明了 流程圖中的步驟,而圖6說明了在節(jié)點(diǎn)A和B之間發(fā)送消息的背景下 的步驟。該方法始于步驟510和512,其中共享秘密被確定且在節(jié)點(diǎn)A 和B之間共享,并且分別產(chǎn)生所利用密鑰和所存儲(chǔ)密鑰??梢苑謩e與 如上面參考圖3所討論的步驟310和312類似i也執(zhí)4亍步驟510和512。 在步驟514中,類似于圖3的步驟314,所利用密鑰用于節(jié)點(diǎn)A和B 之間的安全通信。
接下來,在步驟516中,通信節(jié)點(diǎn)之一產(chǎn)生新的共享秘密。例如, 節(jié)點(diǎn)A可以使用任何適合的技術(shù)來產(chǎn)生新的共享秘密。應(yīng)該注意的是, 任一節(jié)點(diǎn)可以基于某參數(shù)(諸如用途(use)、時(shí)間、接入(access)等) 來產(chǎn)生新的共享祕(mì)密。還可以預(yù)期的是,產(chǎn)生新的共享秘密的節(jié)點(diǎn)可 以被預(yù)先安排為特定節(jié)點(diǎn)、節(jié)點(diǎn)間交替、雙節(jié)點(diǎn)等。本領(lǐng)域普通技術(shù) 人員會(huì)意識(shí)到此處描述的方法可以是自動(dòng)的且用很少的輔助操作
(overhead)和干預(yù)或不用輔助操作和干預(yù)來加以實(shí)現(xiàn),從而允許頻繁
(且安全)的改變所利用密鑰。
在步驟518中使用所存儲(chǔ)密鑰來加密新的共享秘密,且將新的共 享秘密傳遞給其他(一個(gè)或多個(gè))節(jié)點(diǎn)。因?yàn)樗鎯?chǔ)密鑰仍不得不被 使用,所以即使所利用密鑰已被發(fā)現(xiàn),第三方導(dǎo)出所存儲(chǔ)密鑰也是非常不可能的。
其后,在步驟520中,根據(jù)新的共享秘密來導(dǎo)出新的所利用密鑰 和新的所存儲(chǔ)密鑰。可以以如上面參考圖3的步驟320所討論的類似 方式來導(dǎo)出新的所利用密鑰和所存儲(chǔ)密鑰。其后,過程返回到步驟514, 其中新的所利用密鑰用于節(jié)點(diǎn)之間的通信。在某一時(shí)刻,用再一個(gè)所 利用密鑰來替換該新的所利用密鑰??梢远啻沃貜?fù)該過程并且可以按 需要經(jīng)常重復(fù)該過程。
圖5和6說明的該方法使用比圖3和圖4的方法更少的消息交換, 并且圖5和圖6說明的方法容易地^皮概括為用于分配密鑰以保護(hù)多點(diǎn) 通信。
應(yīng)該理解的是,當(dāng)所存儲(chǔ)密鑰用于替換事務(wù)時(shí),即使節(jié)點(diǎn)C已經(jīng)
成功地發(fā)現(xiàn)所利用密鑰,節(jié)點(diǎn)c也不會(huì)知道所存儲(chǔ)密鑰,所以節(jié)點(diǎn)c
不能夠干涉該替換。即使節(jié)點(diǎn)C已經(jīng)充當(dāng)了 MitM,當(dāng)所利用密鑰被替 換時(shí)也會(huì)擺脫節(jié)點(diǎn)C。
此外,不像在PAK交換協(xié)議中那樣,在導(dǎo)出第一所利用密鑰和第 一所存儲(chǔ)密鑰之后不再使用口令,從而不給攻擊者提供額外的材料。 相反地,所存儲(chǔ)密鑰用于交換和共享(例如,經(jīng)由Diffie-Hellman交換) 其他的秘密以導(dǎo)出新的所利用密鑰和新的所存儲(chǔ)密鑰。即使攻擊者發(fā) 現(xiàn)了所利用密鑰,所存儲(chǔ)密鑰仍然不會(huì)被知道。
應(yīng)該注意的是,應(yīng)該在意確保在密鑰替換過程中能夠進(jìn)行通信。 尤其是,如果在所利用密鑰正被替換的相同期間內(nèi),兩個(gè)節(jié)點(diǎn)正在進(jìn) 行數(shù)據(jù)傳送通信,則必須商定對(duì)于每個(gè)消息使用哪個(gè)密鑰,從而使得 兩個(gè)分開的通信流不會(huì)被混淆。 一種方法是用顯示在每個(gè)消息上的號(hào) 碼(number)來識(shí)別每個(gè)密鑰。另 一種方法是讓兩節(jié)點(diǎn)協(xié)商用于密鑰 改變的消息序列號(hào)。為了增加成功攻擊的難度,可以用當(dāng)前的所利用 密鑰來加密該消息序列協(xié)商。
此外,可取的是,不只為一個(gè)節(jié)點(diǎn)和另一個(gè)節(jié)點(diǎn)之間的通信提供 端到端加密,還為在這兩個(gè)節(jié)點(diǎn)上服務(wù)的兩個(gè)應(yīng)用之間的通信提供端 到端加密。在該教導(dǎo)中描述的方法可以容易地被概括為包含該情形。 例如,如果在創(chuàng)建被利用和被存儲(chǔ)節(jié)點(diǎn)層密鑰時(shí),應(yīng)用層加密需要10 個(gè)密鑰,則共享秘密也能被用作輸入以通過雙方均知道的方法產(chǎn)生10 個(gè)被利用和被存儲(chǔ)應(yīng)用層密鑰。倘若反演該方法是計(jì)算上不可行的,
12則由該協(xié)議提供的安全將延伸到應(yīng)用層,而無需顯著的額外努力。
本發(fā)明的實(shí)施例可用于網(wǎng)絡(luò)上的任何類型的通信中。在 一 個(gè)特定
實(shí)施例中,利用本文所討論的技術(shù)來執(zhí)行本地(home)網(wǎng)絡(luò)中的安全 通信,其中本地網(wǎng)絡(luò)的節(jié)點(diǎn)通過有線和/或無線鏈路接合。該網(wǎng)絡(luò)可由 子網(wǎng)絡(luò)組成,子網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)直接與使用共享介質(zhì)的子網(wǎng)絡(luò)中的 其他節(jié)點(diǎn)通信。本地網(wǎng)絡(luò)還可允許一個(gè)子網(wǎng)絡(luò)中的節(jié)點(diǎn)與不同的子網(wǎng) 絡(luò)中的節(jié)點(diǎn)通過根據(jù)一個(gè)或多個(gè)中繼節(jié)點(diǎn)來進(jìn)行通信。因此,MitM干 擾的問題也是令人感興趣的。
在由Vladimir Oksman、 Neal King和Charles Bry于2008年6月 30日提交的申請(qǐng)?zhí)枮?2/164,792的美國專利申請(qǐng)(律師事務(wù)所巻號(hào) 2008P50985US )(下文中^皮稱為"Oksman")中描述了一個(gè)環(huán)境,在該 環(huán)境中本發(fā)明的實(shí)施例將特別有用,上述美國專利申請(qǐng)?jiān)诖藢⒁胱?為參考。安全控制器(SC)功能位于一個(gè)節(jié)點(diǎn)上,該節(jié)點(diǎn)擁有與網(wǎng)絡(luò) 的每個(gè)節(jié)點(diǎn)建立通信所需的所有tr令。將口令用于每個(gè)節(jié)點(diǎn),SC為每 個(gè)節(jié)點(diǎn)建立用于節(jié)點(diǎn)到SC加密通信的密鑰(NSC密鑰)。然后SC使 用NSC密鑰來管理或促進(jìn)用于節(jié)點(diǎn)到節(jié)點(diǎn)加密的對(duì)偶通信的密鑰(NN 密鑰)的創(chuàng)建。SC使用用于該各個(gè)節(jié)點(diǎn)的NSC密鑰來加密應(yīng)用于每個(gè) 節(jié)點(diǎn)的NN密鑰集并將該NN密鑰集發(fā)送給SC。
在任何或全部的這些情況下,此處所描述的技術(shù)可用于增強(qiáng)在SC 和其他節(jié)點(diǎn)之中創(chuàng)建及分配密鑰的方法。例如,如果SC位于節(jié)點(diǎn)A 中且將創(chuàng)建用于節(jié)點(diǎn)B的NSC密鑰,則上述技術(shù)能用于為節(jié)點(diǎn)B創(chuàng)建 被存儲(chǔ)和被利用NSC密鑰??梢苑磸?fù)進(jìn)行NSC密鑰的替換,而不會(huì)有 進(jìn)一步暴露口令的風(fēng)險(xiǎn)。關(guān)于NN密鑰,上述方法可以用于允許節(jié)點(diǎn) 用直接的節(jié)點(diǎn)到節(jié)點(diǎn)消息來替換如上所述的NN密鑰,而無需SC的任 何干預(yù)。
Oksman進(jìn)一步描述了節(jié)點(diǎn)將SC用作々某介來產(chǎn)生NN密鑰的方法。 請(qǐng)求者(r叫uester)節(jié)點(diǎn)把由節(jié)點(diǎn)D的NSC密鑰加密的消息發(fā)送給解 密該消息的SC。之后,SC用被訪者(addressee)節(jié)點(diǎn)的NSC密鑰來 加密該消息并將結(jié)果發(fā)送給被訪者節(jié)點(diǎn)。以這種方式,請(qǐng)求者節(jié)點(diǎn)和 被訪者節(jié)點(diǎn)共同產(chǎn)生共享秘密。
在該情況下,通過將SC用作中繼和譯碼器,由請(qǐng)求者和被訪者共 同產(chǎn)生的共享秘密可用于創(chuàng)建所利用密鑰和所存儲(chǔ)密鑰。然而,在這種情形下,可以使用更簡單的Diffie-Hellman交換(例如,無口令), 而不使用用于最初產(chǎn)生密鑰的PAK交換協(xié)議。通過使用請(qǐng)求者節(jié)點(diǎn)的 NSC密鑰(用于請(qǐng)求者到SC的消息)以及通過受訪者節(jié)點(diǎn)的NSC密 鑰(用于SC到受訪者的消息)來加密交換消息。在該方案中,如果不 發(fā)現(xiàn)這些密鑰中的一個(gè),則MitM是不可能的。其后,可以在不將SC 用作媒介的情況下進(jìn)行密鑰替換(創(chuàng)建新的被存儲(chǔ)和被利用NN密鑰), 因?yàn)檎?qǐng)求者節(jié)點(diǎn)和受訪者節(jié)點(diǎn)目前能夠直接進(jìn)行通信。
Oksman中也描述了傳輸多播消息(例如,從特定源節(jié)點(diǎn)R到受訪 者l,受訪者2等的節(jié)點(diǎn)組的消息)的系統(tǒng)。源節(jié)點(diǎn)R使用節(jié)點(diǎn)R的 NSC密鑰傳輸給SC的多播節(jié)點(diǎn)到節(jié)點(diǎn)密鑰(MNN密鑰)。SC使用每 個(gè)單獨(dú)節(jié)點(diǎn)的NSC密鑰來單獨(dú)地加密到每個(gè)受訪者節(jié)點(diǎn)的消息,該受 訪者節(jié)點(diǎn)傳送MNN密鑰給每個(gè)節(jié)點(diǎn)。
在本教導(dǎo)的背景下,單獨(dú)加密的消息會(huì)傳送將用于產(chǎn)生兩個(gè)密鑰 (即被存儲(chǔ)MNN密鑰和被利用MNN密鑰)的秘密,而不是傳送MNN 密鑰本身。當(dāng)要替換MNN密鑰時(shí),這可以使用^皮存儲(chǔ)MNN密鑰通過 從節(jié)點(diǎn)R到受訪者節(jié)點(diǎn)的直接多播來進(jìn)行。MNN密鑰替換并不需要 SC的媒介功能。
盡管已經(jīng)詳細(xì)地描述了本發(fā)明及其優(yōu)點(diǎn),但是應(yīng)該理解的是,在 不背離由所附權(quán)利要求定義的本發(fā)明的精神和范圍的情況下可以在此 處進(jìn)行各種改變、置換和變更。此外,本申請(qǐng)的范圍并不旨在局限于 說明書中所描迷的過程、機(jī)器、制造、物質(zhì)構(gòu)成、裝置、方法和步驟 的特定實(shí)施例。本領(lǐng)域普通技術(shù)人員會(huì)從本發(fā)明的公開中4艮容易地理 解到根據(jù)本發(fā)明可以利用那些執(zhí)行與本文描述的相應(yīng)實(shí)施例基本相同 的功能或獲得基本相同的結(jié)果的目前存在的或后來將被發(fā)展的過程、 機(jī)器、制造、物質(zhì)構(gòu)成、裝置、方法或步驟。因此,所附權(quán)利要求旨 在將這樣的過程、機(jī)器、制造、物質(zhì)構(gòu)成、裝置、方法或步驟包括在 它們的范圍之內(nèi)。
權(quán)利要求
1.一種用于提供安全通信的方法,該方法包括產(chǎn)生第一節(jié)點(diǎn)和第二節(jié)點(diǎn)知道的共享秘密;根據(jù)所述共享秘密產(chǎn)生所利用密鑰和所存儲(chǔ)密鑰;用所利用密鑰加密第一節(jié)點(diǎn)和第二節(jié)點(diǎn)之間的消息;產(chǎn)生第一節(jié)點(diǎn)和第二節(jié)點(diǎn)知道的新的共享秘密;導(dǎo)出新的所利用密鑰和所存儲(chǔ)密鑰。
2. 根據(jù)權(quán)利要求1所述的方法,其中至少部分使用口令認(rèn)證密鑰 (PAK)交換協(xié)議來產(chǎn)生所述共享秘密。
3. 根據(jù)權(quán)利要求1所述的方法,其中至少部分使用Diffie-Hellman 交換協(xié)議來執(zhí)行產(chǎn)生所述新的共享秘密。
4. 根據(jù)權(quán)利要求3所述的方法,其中用所述所存儲(chǔ)密鑰來加密 Diffie-Hellman交才灸協(xié)i義的通信。
5. 根據(jù)權(quán)利要求1所述的方法,其中由第一節(jié)點(diǎn)和第二節(jié)點(diǎn)中的 一個(gè)來產(chǎn)生所述新的共享秘密。
6. 根據(jù)權(quán)利要求5所述的方法,進(jìn)一步包括用所存儲(chǔ)密鑰將所述 新的共享秘密傳遞給第一節(jié)點(diǎn)和第二節(jié)點(diǎn)中的另一個(gè)。
7. 根據(jù)權(quán)利要求1所述的方法,其中產(chǎn)生新的共享秘密包括用所 存儲(chǔ)密鑰加密一個(gè)或多個(gè)消息。
8. —種與網(wǎng)絡(luò)節(jié)點(diǎn)安全通信的方法,該方法包括(a) 產(chǎn)生共享秘密;(b) 產(chǎn)生第一密鑰和第二密鑰,所述第一密鑰和第二密鑰至少 部分基于所述共享秘密;(c) 用至少所述第一密鑰來加密一個(gè)或多個(gè)消息;(d) 替換所述共享秘密,該替換所述共享秘密包括用至少所述 第二密鑰來加密一個(gè)或多個(gè)消息;(e) 至少部分基于所替換的共享秘密來重新產(chǎn)生笫一密鑰和第二密鑰。
9. 根據(jù)權(quán)利要求8所述的方法,進(jìn)一步包括多次重復(fù)步驟(c)-(e)。
10. 根據(jù)權(quán)利要求8所述的方法,其中至少部分使用口令認(rèn)證密鑰 交換協(xié)議來執(zhí)行步驟(a)。
11. 根據(jù)權(quán)利要求8所述的方法,其中至少部分使用Diffie-Hellman 交換協(xié)議來執(zhí)行步驟(d)。
12. 根據(jù)權(quán)利要求8所述的方法,進(jìn)一步包括在替換共享秘密的步 驟之后將所述共享秘密發(fā)送給另一個(gè)節(jié)點(diǎn)。
13. 根據(jù)權(quán)利要求12所述的方法,其中所述發(fā)送包括用第二密鑰 加密所述共享秘密。
14. 根據(jù)權(quán)利要求8所述的方法,其中至少部分通過使用一個(gè)或多 個(gè)密鑰交換協(xié)議來執(zhí)行步驟(b)。
15. 根據(jù)權(quán)利要求14所述的方法,其中用所述共享秘密來加密在 所述一個(gè)或多個(gè)密鑰交換協(xié)議期間發(fā)送的消息。
全文摘要
本發(fā)明涉及更新及分配加密密鑰。提供了用于提供安全通信的系統(tǒng)和方法。最初,諸如口令認(rèn)證密鑰交換協(xié)議之類的交換協(xié)議用于創(chuàng)建共享秘密。根據(jù)共享秘密創(chuàng)建兩個(gè)密鑰所利用密鑰和所存儲(chǔ)密鑰。所利用密鑰用于加密節(jié)點(diǎn)之間的消息。在替換所利用密鑰以保持安全時(shí),所存儲(chǔ)密鑰用于加密消息以產(chǎn)生/分配新的共享秘密。然后該新的共享秘密用于產(chǎn)生新的所利用密鑰和新的所存儲(chǔ)密鑰。可以重復(fù)該過程任何次以保持安全。
文檔編號(hào)H04L9/08GK101651539SQ20091016673
公開日2010年2月17日 申請(qǐng)日期2009年8月14日 優(yōu)先權(quán)日2008年8月15日
發(fā)明者C·布里, N·金, V·奧克斯曼 申請(qǐng)人:英飛凌科技股份有限公司