專(zhuān)利名稱:跨安全域的網(wǎng)絡(luò)認(rèn)證和密鑰分配方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,具體地說(shuō)是一種適用于多種分布式網(wǎng)絡(luò)環(huán)境的跨安全域的基于令牌的單點(diǎn)登錄方法,它為用戶接入分布式網(wǎng)絡(luò)提供了只需進(jìn)行一次身份認(rèn)證,即可實(shí)現(xiàn)到對(duì)多個(gè)系統(tǒng)進(jìn)行訪問(wèn)的跨安全域的認(rèn)證和密鑰分配服務(wù),保證分布式協(xié)同工作的安全性和有效性。
背景技術(shù):
隨著分布式網(wǎng)絡(luò)的普及應(yīng)用,網(wǎng)絡(luò)接入安全問(wèn)題也越來(lái)越受到關(guān)注。認(rèn)證是網(wǎng)絡(luò)接入安全的關(guān)鍵技術(shù),它對(duì)于防止惡意攻擊,保護(hù)合法用戶的權(quán)益有極其重要的作用。認(rèn)證包括兩層含義其一是身份認(rèn)證,即確認(rèn)網(wǎng)絡(luò)中各通信主體身份的真實(shí)性,也就是驗(yàn)證信息的發(fā)送者是真正的,而不是假冒的;其二是信息完整性認(rèn)證,即確認(rèn)信息在傳輸和存儲(chǔ)過(guò)程中未被竄改,重放等。以上兩個(gè)方面都是一個(gè)安全的認(rèn)證系統(tǒng)所要解決的問(wèn)題。迄今,人們提出了許多網(wǎng)絡(luò)認(rèn)證協(xié)議,例如,互聯(lián)網(wǎng)工程任務(wù)組IETF以征求意見(jiàn)稿形式RFC發(fā)布的影響較大、使用范圍較廣的認(rèn)證系統(tǒng)有美國(guó)麻省理工學(xué)院開(kāi)發(fā)的Kerberos認(rèn)證系統(tǒng)、美國(guó)前數(shù)字設(shè)備公司設(shè)計(jì)的SPX認(rèn)證模型和德國(guó)Karlsruhe大學(xué)的歐洲系統(tǒng)研究所EISS研制的指數(shù)安全系統(tǒng)TESS。這些認(rèn)證協(xié)議大部分在安全性和可行性方面不能令人滿意,而且密鑰的分配和管理也是一個(gè)嚴(yán)重的問(wèn)題。
Kerberos系統(tǒng)是一種為T(mén)CP/IP網(wǎng)絡(luò)設(shè)計(jì)的以可信任的第三方為基礎(chǔ)的認(rèn)證系統(tǒng),最初是為校園網(wǎng)提供密鑰分發(fā)和認(rèn)證服務(wù)而開(kāi)發(fā)的,現(xiàn)已廣泛使用于分布式網(wǎng)絡(luò)中。其最根本的缺陷是采用對(duì)稱密碼體制,不能提供抗否認(rèn)認(rèn)證機(jī)制并易于遭受口令猜測(cè)攻擊;其次,Kerberos系統(tǒng)采用時(shí)戳防止重放攻擊,較難實(shí)現(xiàn)系統(tǒng)中所有時(shí)鐘同步并且在許可證有效時(shí)間內(nèi),重放攻擊有可能奏效;再次,Kerberos認(rèn)證中心KDC要保存大量共享密鑰,給密鑰管理帶來(lái)了諸多問(wèn)題。
SPX認(rèn)證模型是美國(guó)前數(shù)字設(shè)備公司DEC在1993年提出的分布式系統(tǒng)安全體系DSSA中的認(rèn)證和密鑰分發(fā)系統(tǒng)DASS的模型,采用公鑰密碼體制,具有較高的安全性。其局限性是(1)復(fù)雜度過(guò)高,不易實(shí)現(xiàn);(2)采用鍵入口令的方式聯(lián)機(jī),盡管對(duì)口令進(jìn)行了散列運(yùn)算提高了安全性,但口令猜測(cè)攻擊的威脅并未根除,特別當(dāng)用戶選擇的口令不夠強(qiáng)時(shí),口令猜測(cè)攻擊更有成功的可能;(3)SPX模型中時(shí)戳的使用方法同Kerberos系統(tǒng)類(lèi)似,也要保持系統(tǒng)的時(shí)鐘同步,防止重放攻擊的能力較差。由于數(shù)字設(shè)備公司DEC的倒閉,SPX認(rèn)證模型的研究喪失了技術(shù)支持力量,使其發(fā)展停滯不前。
指數(shù)安全系統(tǒng)TESS是基于離散指數(shù)本原元的一些相關(guān)的密碼機(jī)制的工具集系統(tǒng),它需要一個(gè)可信任的第三方提供證書(shū)服務(wù)。指數(shù)安全系統(tǒng)TESS使用基于身份的密碼體制,簡(jiǎn)單而高效,給管理上帶來(lái)很多便利之處。但由于TESS系統(tǒng)還未能證明多個(gè)非法用戶合謀攻擊方面所需要求解的方程組的難度相當(dāng)于某個(gè)已知的難題,所以發(fā)展TESS系統(tǒng)取決于基于身份的密碼方案的深入研究,同時(shí)其在平臺(tái)移植,推廣方面也有不少困難。因此指數(shù)安全系統(tǒng)TESS在一段時(shí)期內(nèi)主要仍是學(xué)術(shù)界的課題。
目前的適用于分布式網(wǎng)絡(luò)的認(rèn)證技術(shù)大多是基于用戶名、口令的,用戶必須在每個(gè)系統(tǒng)中都擁有一組獨(dú)立的用戶名和口令,在進(jìn)入不同的系統(tǒng)時(shí)要重新提交自己的身份標(biāo)識(shí)來(lái)認(rèn)證身份。由于大量的用戶名和口令不便于用戶的記憶,為此用戶往往采用簡(jiǎn)單信息作為口令或設(shè)置相同的口令,這就給安全帶來(lái)巨大的隱患,為此,管理者就需要?jiǎng)?chuàng)建多個(gè)用戶數(shù)據(jù)庫(kù),自然給管理造成不便和繁瑣。為了解決這種兩難問(wèn)題,近幾年研究人員提出了一種安全性更強(qiáng)、效率更高的認(rèn)證機(jī)制-單點(diǎn)登錄機(jī)制SSO,即用戶只需要在網(wǎng)絡(luò)中主動(dòng)進(jìn)行一次身份認(rèn)證,隨后便可以訪問(wèn)其被授權(quán)的所有網(wǎng)絡(luò)資源,而不需要再主動(dòng)參與其他的身份認(rèn)證過(guò)程。
發(fā)明的內(nèi)容本發(fā)明的目的在于克服上述已有技術(shù)的不足,基于單點(diǎn)登錄機(jī)制SSO,提供一種跨安全域的網(wǎng)絡(luò)認(rèn)證和密鑰分配方法,以適用于多種分布式網(wǎng)絡(luò)環(huán)境,提高網(wǎng)絡(luò)安全域之間認(rèn)證和密鑰分配的效率和安全性。
本發(fā)明的目的是這樣實(shí)現(xiàn)的本發(fā)明的密碼體制采用公鑰密碼體制,各通信主體以公鑰證書(shū)cert做為身份標(biāo)識(shí),由于公鑰證書(shū)可以辨別真?zhèn)?,可以防止攻擊者冒充合法用戶潛入網(wǎng)絡(luò),竊取網(wǎng)絡(luò)資源。
本發(fā)明的技術(shù)關(guān)鍵是采用服務(wù)令牌Token將用戶的身份認(rèn)證和服務(wù)授權(quán)有機(jī)結(jié)合起來(lái),在對(duì)用戶授權(quán)校驗(yàn)的同時(shí)進(jìn)行了密鑰分配。其具體方法是采用基于令牌的單點(diǎn)登錄,將一個(gè)驗(yàn)證服務(wù)器和若干應(yīng)用服務(wù)器組成每個(gè)安全域,針對(duì)用戶可能接入多個(gè)不同安全域中的應(yīng)用服務(wù)器的服務(wù)需求,按如下過(guò)程進(jìn)行認(rèn)證和密鑰分配(1)用戶登錄,即用戶在本安全域內(nèi)進(jìn)行身份認(rèn)證,獲取與另一安全域中的應(yīng)用服務(wù)器通信的服務(wù)令牌;(2)授權(quán)校驗(yàn)和密鑰分配,即用戶在要接入的安全域中驗(yàn)證服務(wù)令牌,獲得與應(yīng)用服務(wù)器聯(lián)機(jī)的服務(wù);(3)用戶對(duì)應(yīng)用服務(wù)器進(jìn)行認(rèn)證。
上述網(wǎng)絡(luò)認(rèn)證和密鑰分配方法,其中所述的用戶登錄過(guò)程如下(1)用戶C通過(guò)發(fā)送其本身的公鑰證書(shū)certc和用其本身的私鑰簽名挑戰(zhàn)信息{Nc,A1}SC]]>來(lái)證明自己的身份,式中,Nc是用戶生成的一次性隨機(jī)數(shù),用于防止重放攻擊;A1是驗(yàn)證服務(wù)器的身份信息;(2)驗(yàn)證服務(wù)器A1校驗(yàn)用戶C的公鑰證書(shū)后,發(fā)送驗(yàn)證服務(wù)器的公鑰證書(shū)certa1和用驗(yàn)證服務(wù)器私鑰簽名的挑戰(zhàn)信息{Nc+1,C,Na1}SA1]]>式中,Nc+1是驗(yàn)證服務(wù)器A1對(duì)用戶發(fā)出的挑戰(zhàn)信息Nc的響應(yīng),Na1是驗(yàn)證服務(wù)器A1對(duì)用戶發(fā)出的挑戰(zhàn);(3)用戶C校驗(yàn)驗(yàn)證服務(wù)器A1的公鑰證書(shū)后,發(fā)送信息{S2,{A1,C,Krand,Na1+1,Nc′}SC}Ka1,]]>向驗(yàn)證服務(wù)器A1請(qǐng)求服務(wù)令牌,式中,Krand是用戶產(chǎn)生的隨機(jī)的一次性對(duì)稱密鑰A1、C表明Krand的擁有者Na1+1是對(duì)Na1的響應(yīng)Nc′是C對(duì)A1再次發(fā)出的挑戰(zhàn)S2表明用戶C要接入的應(yīng)用服務(wù)器;(4)驗(yàn)證服務(wù)器A1給通過(guò)身份認(rèn)證的用戶C提供服務(wù)令牌Tokenc,并根據(jù)用戶C發(fā)送的信息S2確定S2所在安全域的驗(yàn)證服務(wù)器A2,生成用戶C與驗(yàn)證服務(wù)器A2的共享會(huì)話密鑰Kc,a2,并用Krand加密發(fā)送給用戶C,即發(fā)送給用戶C的信息為T(mén)okenc,{Nc′+1,A2,C,Kc,a2}Krand,]]>式中,Tokenc={A1,C,Kc,a2,Na1′,lifetime}Ka1,a2]]>A2、C表明共享密鑰Kc,a2的擁有者Nc′+1是一次性隨機(jī)數(shù)對(duì)Nc′的響應(yīng)服務(wù)令牌Tokenc采用驗(yàn)證服務(wù)器A1、A2共享的會(huì)話密鑰Ka1,a2加密,該令牌中的A1表明令牌是由驗(yàn)證服務(wù)器A1發(fā)放的,C表明令牌的擁有者,Na1′是驗(yàn)證服務(wù)器A1再次生成的一次性隨機(jī)數(shù),lifetime表明令牌Tokenc的生存期。
上述網(wǎng)絡(luò)認(rèn)證和密鑰分配方法,其中所述的授權(quán)校驗(yàn)和密鑰分配過(guò)程如下(1)用戶C通過(guò)提交服務(wù)令牌Tokenc、身份信息及一次性隨機(jī)數(shù)Nc″,向應(yīng)用服務(wù)器S2發(fā)出服務(wù)請(qǐng)求;(2)應(yīng)用服務(wù)器S2將用戶的服務(wù)令牌Tokenc送回所在安全域的驗(yàn)證服務(wù)器A2校驗(yàn),同時(shí)向驗(yàn)證服務(wù)器A2發(fā)送應(yīng)用服務(wù)器S2的公鑰證書(shū)certs2以及用應(yīng)用服務(wù)器S2的私鑰Ks2-1簽名的信息Nc″、S2、C、Ns2;(3)驗(yàn)證服務(wù)器A2生成用戶C和應(yīng)用服務(wù)器S2的共享會(huì)話密鑰Kc,s2并發(fā)放給應(yīng)用服務(wù)器S2,同時(shí)使用用戶C和驗(yàn)證服務(wù)器A2共享的會(huì)話密鑰Kc,a2加密會(huì)話密鑰Kc,s2生成一個(gè)密鑰副本{Nc′′-1,C,S2,Kc,s2}kc,a2,]]>由應(yīng)用服務(wù)器S2轉(zhuǎn)發(fā)給用戶C。
上述網(wǎng)絡(luò)認(rèn)證和密鑰分配方法,其中所述的用戶對(duì)應(yīng)用服務(wù)器的認(rèn)證過(guò)程如下(1)應(yīng)用服務(wù)器S2向用戶C轉(zhuǎn)發(fā)所述的密鑰副本{Nc′′-1,C,S2,Kc,s2}Kc,a2,]]>并且采用Kc,s2加密數(shù)據(jù)域Nc″+1、S2、C、Ns2′作為信任狀來(lái)相互印證,證明自己的身份;(2)用戶C收到所述的密鑰副本后進(jìn)行解密,獲得與應(yīng)用服務(wù)器S2的共享會(huì)話密鑰Kc,s2,再采用該共享會(huì)話密鑰對(duì)信息Ns2+1進(jìn)行加密,完成用戶C和應(yīng)用服務(wù)器S2的雙向認(rèn)證,該Ns2′+1是用戶C對(duì)應(yīng)用服務(wù)器S2發(fā)出的挑戰(zhàn)信息Ns2′的響應(yīng)。
實(shí)現(xiàn)上述方法的跨安全域的網(wǎng)絡(luò)認(rèn)證和密鑰分配系統(tǒng),包括一臺(tái)驗(yàn)證服務(wù)器和客戶接入子系統(tǒng)、應(yīng)用服務(wù)子系統(tǒng)。其中,一臺(tái)驗(yàn)證服務(wù)器用于完成對(duì)用戶的身份認(rèn)證和服務(wù)授權(quán)兩項(xiàng)功能,并生成用戶和應(yīng)用服務(wù)器的會(huì)話密鑰;客戶接入子系統(tǒng),用于完成將用戶接入到驗(yàn)證服務(wù)器上;應(yīng)用服務(wù)子系統(tǒng),用于完成在收到用戶的服務(wù)請(qǐng)求時(shí),將用戶的服務(wù)令牌送回驗(yàn)證服務(wù)器驗(yàn)證,并使用驗(yàn)證服務(wù)器生成的會(huì)話密鑰,給用戶提供服務(wù)。
本發(fā)明具有如下優(yōu)點(diǎn)(1)本發(fā)明由于采用單點(diǎn)登錄機(jī)制,使用戶在網(wǎng)絡(luò)接入過(guò)程中只需要進(jìn)行一次身份認(rèn)證,克服了分散認(rèn)證的缺陷,保證認(rèn)證的安全性和高效性。
(2)本發(fā)明由于使用令牌將身份認(rèn)證和服務(wù)授權(quán)有機(jī)結(jié)合,實(shí)現(xiàn)了用戶跨安全域的安全訪問(wèn),同時(shí)免除由驗(yàn)證服務(wù)器存儲(chǔ)其與用戶的共享密鑰,有效提高驗(yàn)證服務(wù)器的性能。
(3)本發(fā)明由于采用公鑰證書(shū)替代用戶名和口令作為通信主體的身份標(biāo)識(shí),避免了單鑰密碼體制下的口令猜測(cè)攻擊。
(4)本發(fā)明由于通過(guò)發(fā)送公鑰證書(shū)和用私鑰簽名的挑戰(zhàn)信息來(lái)證明發(fā)方的身份,攻擊者不知道發(fā)方的私鑰而不能偽造其簽名,因而有效防止攻擊者竊取發(fā)方的公鑰證書(shū)而進(jìn)行的假冒攻擊。
(5)本發(fā)明由于使用一次性隨機(jī)數(shù)代替時(shí)戳來(lái)防止攻擊者重放消息,同時(shí)避免了保持系統(tǒng)中所有時(shí)鐘同步的問(wèn)題;且在簽名消息中綁定收方的身份信息,防止收方重放消息。
(6)本發(fā)明由于對(duì)會(huì)話密鑰等重要信息均采用適當(dāng)?shù)拿荑€加密發(fā)送,保證了信息的機(jī)密性;同時(shí)采用先簽名后加密的方法防止攻擊者竄改消息,保證了信息的完整性。
圖1是本發(fā)明的系統(tǒng)示意2是本發(fā)明的認(rèn)證過(guò)程圖具體實(shí)施方式
以下參照附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
參照?qǐng)D1,本發(fā)明的跨安全域網(wǎng)絡(luò)認(rèn)證和密鑰分配系統(tǒng)包括一臺(tái)驗(yàn)證服務(wù)器和客戶接入子系統(tǒng)、應(yīng)用服務(wù)子系統(tǒng)。其中,客戶接入子系統(tǒng),由用戶和代理服務(wù)器構(gòu)成;應(yīng)用服務(wù)子系統(tǒng),由若干應(yīng)用服務(wù)器組成。該系統(tǒng)的工作過(guò)程為首先,在客戶接入子系統(tǒng)中,用戶通過(guò)代理服務(wù)器接入到驗(yàn)證服務(wù)器上,并向驗(yàn)證服務(wù)器轉(zhuǎn)發(fā)用戶的公鑰證書(shū)和用數(shù)字簽名的用戶身份信息,該代理服務(wù)器在認(rèn)證過(guò)程中只起到“透?jìng)鳌弊饔?,?duì)用戶的認(rèn)證工作由驗(yàn)證服務(wù)器完成。
其次,驗(yàn)證服務(wù)器在收到用戶的公鑰證書(shū)和用數(shù)字簽名的用戶身份信息后,對(duì)用戶的身份進(jìn)行驗(yàn)證,即驗(yàn)證服務(wù)器校驗(yàn)用戶的公鑰證書(shū)是否已由證書(shū)權(quán)威機(jī)構(gòu)CA或CA鏈簽名以及證書(shū)是否在其生存期內(nèi),該驗(yàn)證可以通過(guò)檢查周期性更新的證書(shū)撤銷(xiāo)列表CRL或直接向證書(shū)權(quán)威機(jī)構(gòu)CA查詢實(shí)現(xiàn);校驗(yàn)用戶的身份后,驗(yàn)證服務(wù)器對(duì)通過(guò)身份認(rèn)證的用戶進(jìn)行服務(wù)授權(quán),即驗(yàn)證服務(wù)器給通過(guò)身份認(rèn)證的用戶發(fā)放一個(gè)服務(wù)令牌。
最后,用戶憑借服務(wù)令牌向應(yīng)用服務(wù)子系統(tǒng)中的某一應(yīng)用服務(wù)器提出服務(wù)請(qǐng)求,該應(yīng)用服務(wù)器將用戶的服務(wù)令牌送回驗(yàn)證服務(wù)器校驗(yàn)真?zhèn)?。?yàn)證服務(wù)器將為通過(guò)校驗(yàn)的用戶和應(yīng)用服務(wù)器生成它們共享的會(huì)話密鑰,并將該會(huì)話密鑰發(fā)送給應(yīng)用服務(wù)器,應(yīng)用服務(wù)器再將此會(huì)話密鑰傳送給用戶;之后,用戶就可使用該會(huì)話密鑰與應(yīng)用服務(wù)器進(jìn)行通信,獲得應(yīng)用服務(wù)器提供的服務(wù)。此外,如有必要,用戶也可以通過(guò)校驗(yàn)應(yīng)用服務(wù)器的公鑰證書(shū)來(lái)對(duì)應(yīng)用服務(wù)器的身份進(jìn)行驗(yàn)證,從而完成用戶和應(yīng)用服務(wù)器的雙向認(rèn)證。
上述系統(tǒng)可以構(gòu)成一個(gè)分布式網(wǎng)絡(luò)中的安全域,當(dāng)用戶登錄網(wǎng)絡(luò)時(shí),用戶與其所要通信的應(yīng)用服務(wù)器分屬于兩個(gè)不同的安全域,這種不同安全域之間的認(rèn)證和密鑰分配可通過(guò)圖2所述的認(rèn)證和密鑰分配方法進(jìn)行。
參照?qǐng)D2,本發(fā)明的跨安全域之間的認(rèn)證和密鑰分配方法,按如下過(guò)程進(jìn)行一.用戶登錄,即用戶在它所在的安全域1內(nèi)進(jìn)行身份認(rèn)證,獲取與另一安全域2中的應(yīng)用服務(wù)器通信的服務(wù)授權(quán)。用戶登錄的步驟為1.用戶C通過(guò)發(fā)送它的公鑰證書(shū)certc和用它的私鑰簽名的挑戰(zhàn)信息{Nc,A1}SC]]>來(lái)證明自己的身份,用數(shù)學(xué)方式可表示為C→A1cirtc,{Nc,A1}SC.]]>其中,挑戰(zhàn)信息中的Nc是用戶生成的一次性隨機(jī)數(shù),用于防止重放攻擊;A1是安全域1的驗(yàn)證服務(wù)器的身份信息,用于防止A1重放消息來(lái)欺騙第三方。數(shù)字簽名可以確認(rèn)消息的發(fā)送者是用戶,防止攻擊者竊取用戶的公鑰證書(shū)進(jìn)行假冒攻擊。
2.安全域1的驗(yàn)證服務(wù)器A1校驗(yàn)用戶C的公鑰證書(shū)后,發(fā)送驗(yàn)證服務(wù)器的公鑰證書(shū)certa1和用驗(yàn)證服務(wù)器私鑰簽名的挑戰(zhàn)信息{Nc+1,C,Na1}SA1,]]>用數(shù)學(xué)方式可表示為A1→C;certa1,{Nc+1,C,Na1}Sa1.]]>其中,Nc+1是驗(yàn)證服務(wù)器A1對(duì)用戶發(fā)出的挑戰(zhàn)信息Nc的響應(yīng);Na1是驗(yàn)證服務(wù)器A1向用戶發(fā)出的挑戰(zhàn)信息;C表明信息的接收方是用戶,可防止重放攻擊;這兩步均采用挑戰(zhàn)一響應(yīng)的方式發(fā)送信息來(lái)防止重放攻擊。
3.用戶C校驗(yàn)安全域1的驗(yàn)證服務(wù)器A1的公鑰證書(shū)后,向驗(yàn)證服務(wù)器A1請(qǐng)求服務(wù)令牌,用戶先使用它的私鑰Kc-1對(duì)發(fā)送的信息進(jìn)行數(shù)字簽名,再使用驗(yàn)證服務(wù)器A1的公鑰Ka1對(duì)信息進(jìn)行加密,因此只有驗(yàn)證服務(wù)器A1才能查看信息息并且數(shù)字簽名認(rèn)證了用戶C的身份,用數(shù)學(xué)方式可表示為C→A1{S2,{A1,C,Krand,Na1+1,Nc′}SC}Ka1.]]>其中,簽名消息中的Krand是用戶產(chǎn)生的隨機(jī)的一次性對(duì)稱密鑰,它將被驗(yàn)證服務(wù)器A1使用,用于對(duì)驗(yàn)證服務(wù)器A1發(fā)給用戶的響應(yīng)消息進(jìn)行加密;A1、C表明Krand的擁有者;Na1+1是用戶對(duì)驗(yàn)證服務(wù)器的一次性隨機(jī)數(shù)Na1的響應(yīng);Nc′是用戶C對(duì)驗(yàn)證服務(wù)器A1再次發(fā)出的挑戰(zhàn);加密消息中的S2表明用戶C要接入的應(yīng)用服務(wù)器。
4.安全域1的驗(yàn)證服務(wù)器A1給通過(guò)身份認(rèn)證的用戶C提供服務(wù)令牌Tokenc,并根據(jù)用戶C發(fā)送的信息S2確定S2所在安全域的驗(yàn)證服務(wù)器A2,生成用戶C與驗(yàn)證服務(wù)器A2的共享會(huì)話密鑰Kc,a2,并用Krand加密該共享會(huì)話密鑰Kc,a2發(fā)送給用戶C,用數(shù)學(xué)方式可表示為A1→CTokenc,{Nc′+1,A2,C,Kc,a2}Krand.]]>加密消息中的A2、C表明共享密鑰Kc,a2的擁有者;Nc′+1是驗(yàn)證服務(wù)器A1對(duì)用戶發(fā)出的一次性隨機(jī)數(shù)Nc′的響應(yīng)。令牌Tokenc的內(nèi)容用數(shù)學(xué)式表示為T(mén)okenc={A1,C,Kc,a2,Na1′,lifetime}Ka1,a2.]]>令牌中的A1表明令牌的發(fā)放者是驗(yàn)證服務(wù)器A1;C表明令牌的擁有者是用戶;Na1′是驗(yàn)證服務(wù)器A1再次生成的一次性隨機(jī)數(shù);lifetime表明令牌Tokenc的生存期,即令牌的有效時(shí)間范圍。服務(wù)令牌Tokenc采用驗(yàn)證服務(wù)器A1、A2共享的會(huì)話密鑰Ka1,a2加密,用戶不能解讀信息,防止用戶重建令牌。用戶C與驗(yàn)證服務(wù)器A2的共享會(huì)話密鑰Kc,a2保存在令牌上,驗(yàn)證服務(wù)器A1不保存,從而減輕了驗(yàn)證服務(wù)器A1的負(fù)擔(dān)。
二.授權(quán)校驗(yàn)和密鑰分配,用戶在要接入的安全域2中驗(yàn)證服務(wù)令牌,以獲得與應(yīng)用服務(wù)器聯(lián)機(jī)的服務(wù)。授權(quán)校驗(yàn)和密鑰分配的步驟依照用戶登錄過(guò)程步驟的次序?yàn)?.用戶通過(guò)提交自身的服務(wù)令牌Tokenc、身份信息C及一次性隨機(jī)數(shù)Nc″,向安全域2中的應(yīng)用服務(wù)器S2發(fā)出服務(wù)請(qǐng)求,用數(shù)學(xué)方式可表示為C→S2Tokenc,C,Nc″。
6.安全域2中的應(yīng)用服務(wù)器S2將用戶的服務(wù)令牌Tokenc送回所在安全域的驗(yàn)證服務(wù)器A2校驗(yàn),同時(shí)發(fā)送應(yīng)用服務(wù)器S2的公鑰證書(shū)certs2以及用應(yīng)用服務(wù)器S2的私鑰Ks2-1簽名的信息{Tokenc,Nc′′,S2,C,Ns2}SS2]]>來(lái)證明身份。公鑰證書(shū)和數(shù)字簽名相結(jié)合,防止攻擊者進(jìn)行假冒攻擊,用數(shù)學(xué)方式可表示為S2→A2certs2,{Tokenc,Nc′′,S2,C,Ns2}SS2.]]>其中,簽名消息中的S2確認(rèn)了消息發(fā)送者是應(yīng)用服務(wù)器S2;Tokenc、C、Nc″是應(yīng)用服務(wù)器S2向驗(yàn)證服務(wù)器A2轉(zhuǎn)發(fā)的用戶發(fā)給它自身的消息;Ns2是應(yīng)用服務(wù)器S2生成的一次性隨機(jī)數(shù),用于防止重放攻擊。
7.安全域2中的驗(yàn)證服務(wù)器A2生成用戶C和應(yīng)用服務(wù)器S2的共享會(huì)話密鑰Kc,s2并發(fā)放給應(yīng)用服務(wù)器S2,同時(shí)使用用戶C和驗(yàn)證服務(wù)器A2共享的會(huì)話密鑰Kc,a2加密會(huì)話密鑰Kc,s2生成一個(gè)密鑰副本{Nc′′-1,C,S2,Kc,s2}kc,a2,]]>該密鑰副本由應(yīng)用服務(wù)器S2轉(zhuǎn)發(fā)給用戶C。驗(yàn)證服務(wù)器A2先使用自己的私鑰Ka2-1對(duì)信息進(jìn)行簽名,再使用應(yīng)用服務(wù)器S2的公鑰Ks2對(duì)信息進(jìn)行加密,保證了發(fā)方的不可否認(rèn)性并且防止收方假冒,用數(shù)學(xué)式表示為A2→S2{certa2,{{Nc′′-1,C,S2,Kc,s2}kc,a2,C,S2,Ns2}SA2}Ks2.]]>其中,密鑰副本{Nc′′-1,C,S2,Kc,s2}kc,a2]]>采用用戶C和驗(yàn)證服務(wù)器A2的共享密鑰Kc,a2加密,只能由用戶C解讀,防止應(yīng)用服務(wù)器S2竄改消息;密鑰副本中的C、S2表明共享密鑰Kc,s2的擁有者是用戶和應(yīng)用服務(wù)器S2;Nc″-1是驗(yàn)證服務(wù)器A2對(duì)用戶C發(fā)出的挑戰(zhàn)Nc″的響應(yīng)。簽名消息中的C、S2表明了共享密鑰Kc,s2的擁有者是用戶和應(yīng)用服務(wù)器S2;Ns2+1是驗(yàn)證服務(wù)器A2對(duì)應(yīng)用服務(wù)器S2發(fā)出的一次性隨機(jī)數(shù)Ns2的響應(yīng)。簽名消息和公鑰證書(shū)certa2共同證明了驗(yàn)證服務(wù)器A2的身份。
三.用戶對(duì)安全域2中的應(yīng)用服務(wù)器S2進(jìn)行認(rèn)證,認(rèn)證步驟依照用戶登錄過(guò)程與授權(quán)校驗(yàn)和密鑰分配過(guò)程步驟的次序?yàn)?.應(yīng)用服務(wù)器S2向用戶C轉(zhuǎn)發(fā)密鑰副本{Nc′′-1,C,S2,Kc,s2}Kc,a2,]]>并且采用Kc,s2加密信息{Nc′′+1,S2,C,Ns2′}Kc,s2]]>作為信任狀來(lái)相互印證,證明自己的身份,用數(shù)學(xué)式可表示為S2→C{Nc′′-1,C,S2,Kc,s2}Kc,a2,]]>{Nc′′+1,S2,C,Ns2′}Kc,s2.]]>其中,S2和C表明共享密鑰Kc,s2的擁有者是用戶和應(yīng)用服務(wù)器S2;Nc″+1是應(yīng)用服務(wù)器S2對(duì)用戶C發(fā)出的一次性隨機(jī)數(shù)Nc″的響應(yīng);Ns2′是應(yīng)用服務(wù)器S2向用戶C發(fā)出的再次挑戰(zhàn)。
9.用戶C收到密鑰副本,并解密獲得用戶與應(yīng)用服務(wù)器S2的共享會(huì)話密鑰Kc,s2。采用該共享會(huì)話密鑰Kc,s2對(duì)信息Ns2′+1進(jìn)行加密,完成用戶C和應(yīng)用服務(wù)器S2的雙向認(rèn)證,用數(shù)學(xué)式可表示為C→S2{Ns2′+1}Kc,s2.]]>其中,Ns2′+1是用戶C對(duì)應(yīng)用服務(wù)器S2發(fā)出的挑戰(zhàn)信息Ns2′的響應(yīng)。
上述用戶登錄過(guò)程中的步驟1和步驟2只有在用戶登錄時(shí)執(zhí)行,若用戶需要接入多個(gè)不同安全域的應(yīng)用服務(wù)器時(shí),只需從步驟3開(kāi)始執(zhí)行。用戶登錄時(shí)所在安全域1的驗(yàn)證服務(wù)器A1通過(guò)步驟3中的信息S2判斷用戶要接入哪個(gè)安全域,并為用戶發(fā)送用戶與該域驗(yàn)證服務(wù)器A2共享的會(huì)話密鑰Kc,a2和服務(wù)令牌Tokenc。若用戶需要獲取同一安全域的不同服務(wù)器的服務(wù)時(shí),不用再申請(qǐng)其他的服務(wù)授權(quán),只需從步驟5開(kāi)始執(zhí)行。
本發(fā)明實(shí)施過(guò)程中所使用的符號(hào)解釋如下C用戶;certc用戶的公鑰證書(shū);A1、S1安全域1中的驗(yàn)證服務(wù)器和應(yīng)用服務(wù)器;A2、S2安全域2中的驗(yàn)證服務(wù)器和應(yīng)用服務(wù)器;certa1、certa2安全域1中的驗(yàn)證服務(wù)器、安全域2中的驗(yàn)證服務(wù)器的公鑰證書(shū);certs2安全域2中的應(yīng)用服務(wù)器的公鑰證書(shū);Kca、Kca-1證書(shū)授權(quán)機(jī)構(gòu)的公鑰和私鑰;Kc、Kc-1用戶的公鑰和私鑰;Ks2、Ks2-1安全域2中的應(yīng)用服務(wù)器的公鑰和私鑰;Ka1、Ka1-1安全域1中的驗(yàn)證服務(wù)器A1的公鑰和私鑰;Ka2、Ka2-1安全域2中的驗(yàn)證服務(wù)器A2的公鑰和私鑰;Ka1,a2驗(yàn)證服務(wù)器A1和A2的共享會(huì)話密鑰;Kc,a2用戶和安全域2中的驗(yàn)證服務(wù)器A2的共享會(huì)話密鑰;
Kc,s2用戶和安全域2中的應(yīng)用服務(wù)器S2的共享會(huì)話密鑰;Krand用戶生成的隨機(jī)的一次性對(duì)稱密鑰;Tokenc驗(yàn)證服務(wù)器A1授予用戶C的服務(wù)令牌;Nc、Nc′、Nc″用戶生成的一次性隨機(jī)數(shù)Na1、Na1′安全域1中的驗(yàn)證服務(wù)器A1生成的一次性隨機(jī)數(shù);Ns2、Ns2′安全域2中的應(yīng)用服務(wù)器S2生成的一次性隨機(jī)數(shù);{M}k用密鑰K加密消息M;{M}SC使用用戶C的私鑰Kc-1對(duì)M的數(shù)字簽名;{M}SA1用驗(yàn)證服務(wù)器A1的私鑰Ka1-1對(duì)M的數(shù)字簽名;{M}SA2用驗(yàn)證服務(wù)器A2的私鑰Ka2-1對(duì)M的數(shù)字簽名;{M}SS2用應(yīng)用服務(wù)器S2的私鑰Ks2-1對(duì)M的數(shù)字簽名;lifetimeTokenc的生存期;數(shù)學(xué)式中的逗號(hào)表示連接符。
權(quán)利要求
1.一種跨安全域的網(wǎng)絡(luò)認(rèn)證和密鑰分配方法,其特征在于采用基于令牌的單點(diǎn)登錄,將一個(gè)驗(yàn)證服務(wù)器和若干應(yīng)用服務(wù)器組成每個(gè)安全域,針對(duì)用戶可能接入多個(gè)不同安全域中的應(yīng)用服務(wù)器的服務(wù)需求,進(jìn)行認(rèn)證和密鑰分配,其過(guò)程如下;(1)用戶登錄,即用戶在本安全域內(nèi)進(jìn)行身份認(rèn)證,獲取與另一安全域中的應(yīng)用服務(wù)器通信的服務(wù)令牌;(2)授權(quán)校驗(yàn)和密鑰分配,即用戶在要接入的安全域中驗(yàn)證服務(wù)令牌,獲得與應(yīng)用服務(wù)器聯(lián)機(jī)的服務(wù);(3)用戶對(duì)應(yīng)用服務(wù)器進(jìn)行認(rèn)證。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于用戶登錄的過(guò)程如下(1)用戶C通過(guò)發(fā)送其本身的公鑰證書(shū)certc和用其本身的私鑰簽名挑戰(zhàn)信息{Nc,A1}Sc來(lái)證明自己的身份,式中,Nc是用戶生成的一次性隨機(jī)數(shù),用于防止重放攻擊;A1是驗(yàn)證服務(wù)器的身份信息;(2)驗(yàn)證服務(wù)器A1校驗(yàn)用戶C的公鑰證書(shū)后,發(fā)送驗(yàn)證服務(wù)器的公鑰證書(shū)certa1和用驗(yàn)證服務(wù)器私鑰簽名的挑戰(zhàn)信息{Nc+1,C,Na1}sA1,式中,Nc+1是驗(yàn)證服務(wù)器A1對(duì)用戶發(fā)出的挑戰(zhàn)信息Nc的響應(yīng),Na1是驗(yàn)證服務(wù)器A1對(duì)用戶發(fā)出的挑戰(zhàn);(3)用戶C校驗(yàn)驗(yàn)證服務(wù)器A1的公鑰證書(shū)后,發(fā)送信息{S2,{A1,C,Krand,Na1+1,Nc′}Sc}Ka1,向驗(yàn)證服務(wù)器A1請(qǐng)求服務(wù)令牌,式中,Krand是用戶產(chǎn)生的隨機(jī)的一次性對(duì)稱密鑰A1、C表明Krand的擁有者Na1+1是對(duì)Na1的響應(yīng)Nc′是C對(duì)A1再次發(fā)出的挑戰(zhàn)S2表明用戶C要接入的應(yīng)用服務(wù)器;(4)驗(yàn)證服務(wù)器A1給通過(guò)身份認(rèn)證的用戶C提供服務(wù)令牌Tokenc,并根據(jù)用戶C發(fā)送的信息S2確定S2所在安全域的驗(yàn)證服務(wù)器A2,生成用戶C與驗(yàn)證服務(wù)器A2的共享會(huì)話密鑰Kc,a2,并用Krand加密發(fā)送給用戶C,即發(fā)送給用戶C的信息為T(mén)okenc,{Nc′+1,A2,C,Kc,a2}Krand,式中,Tokenc={A1,C,Kc,a2,Na1′,lifetime}Ka1,a2A2、C表明共享密鑰Kc,a2的擁有者Nc′+1是一次性隨機(jī)數(shù)對(duì)Nc′的響應(yīng)服務(wù)令牌Tokenc采用驗(yàn)證服務(wù)器A1、A2共享的會(huì)話密鑰Ka1,a2加密,該令牌中A1表明令牌是由驗(yàn)證服務(wù)器A1發(fā)放的,C表明令牌的擁有者,Na1′是驗(yàn)證服務(wù)器A1再次生成的一次性隨機(jī)數(shù),lifetime表明令牌Tokenc的生存期。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于授權(quán)校驗(yàn)和密鑰分配過(guò)程如下(1)用戶C通過(guò)提交服務(wù)令牌Tokenc、身份信息及一次性隨機(jī)數(shù)Nc″,向應(yīng)用服務(wù)器S2發(fā)出服務(wù)請(qǐng)求;(2)應(yīng)用服務(wù)器S2將用戶的服務(wù)令牌Tokenc送回所在安全域的驗(yàn)證服務(wù)器A2校驗(yàn),同時(shí)向驗(yàn)證服務(wù)器A2發(fā)送應(yīng)用服務(wù)器S2的公鑰證書(shū)certs2以及用應(yīng)用服務(wù)器S2的私鑰Ks2-1簽名的信息Nc″、S2、C、Ns2;(3)驗(yàn)證服務(wù)器A2生成用戶C和應(yīng)用服務(wù)器S2的共享會(huì)話密鑰Kc,s2并發(fā)放給應(yīng)用服務(wù)器S2,同時(shí)使用用戶C和驗(yàn)證服務(wù)器A2共享的會(huì)話密鑰Kc,a2加密會(huì)話密鑰Kc,s2生成一個(gè)密鑰副本{Nc″-1,C,S2,Kc,s2}kc,a2,由應(yīng)用服務(wù)器S2轉(zhuǎn)發(fā)給用戶C。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于用戶對(duì)應(yīng)用服務(wù)器的認(rèn)證過(guò)程如下(1)應(yīng)用服務(wù)器S2向用戶C轉(zhuǎn)發(fā)所述的密鑰副本{Nc″-1,C,S2,Kc,s2}kc,a2,并且采用Kc,s2加密數(shù)據(jù)域Nc″+1、S2、C、Ns2′作為信任狀來(lái)相互印證,證明自己的身份;(2)用戶C收到所述的密鑰副本后進(jìn)行解密,獲得與應(yīng)用服務(wù)器S2的共享會(huì)話密鑰Kc,s2,再采用該共享會(huì)話密鑰對(duì)信息Ns2′+1進(jìn)行加密,完成用戶C和應(yīng)用服務(wù)器S2的雙向認(rèn)證,該Ns2′+1是用戶C對(duì)應(yīng)用服務(wù)器S2發(fā)出的挑戰(zhàn)信息Ns2′的響應(yīng)。
5.一種實(shí)現(xiàn)權(quán)利要求1方法的跨安全域網(wǎng)絡(luò)認(rèn)證和密鑰分配系統(tǒng),包括一臺(tái)驗(yàn)證服務(wù)器用于完成對(duì)用戶的身份認(rèn)證和服務(wù)授權(quán)兩項(xiàng)功能,并生成用戶和應(yīng)用服務(wù)器的會(huì)話密鑰;客戶接入子系統(tǒng),用于完成將用戶接入到驗(yàn)證服務(wù)器上;應(yīng)用服務(wù)子系統(tǒng),用于完成在收到用戶的服務(wù)請(qǐng)求時(shí),將用戶的服務(wù)令牌送回驗(yàn)證服務(wù)器驗(yàn)證,并使用驗(yàn)證服務(wù)器生成的會(huì)話密鑰,給用戶提供服務(wù)。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于驗(yàn)證服務(wù)器通過(guò)令牌實(shí)現(xiàn)了對(duì)用戶的身份認(rèn)證和服務(wù)授權(quán),首先通過(guò)檢查周期性更新的證書(shū)撤銷(xiāo)列表CRL或直接向證書(shū)權(quán)威機(jī)構(gòu)CA查詢來(lái)校驗(yàn)用戶的公鑰證書(shū)的真?zhèn)渭坝行?;之后,給通過(guò)身份認(rèn)證的用戶發(fā)放一個(gè)服務(wù)令牌,用戶憑借此令牌可以訪問(wèn)系統(tǒng)中的任一應(yīng)用服務(wù)器,而不需要再進(jìn)行身份認(rèn)證。
全文摘要
本發(fā)明公開(kāi)了一種跨安全域的網(wǎng)絡(luò)認(rèn)證和密鑰分配方法,采用基于令牌的單點(diǎn)登錄,將一個(gè)驗(yàn)證服務(wù)器和若干應(yīng)用服務(wù)器組成每個(gè)安全域,針對(duì)用戶可能接入多個(gè)不同安全域中的應(yīng)用服務(wù)器的需求,進(jìn)行認(rèn)證和密鑰分配,其過(guò)程為首先用戶在本安全域內(nèi)進(jìn)行身份認(rèn)證,獲取與另一安全域中的應(yīng)用服務(wù)器通信的服務(wù)令牌;接著用戶在要接入的安全域中驗(yàn)證服務(wù)令牌,獲得與應(yīng)用服務(wù)器聯(lián)機(jī)的服務(wù);最后用戶對(duì)應(yīng)用服務(wù)器進(jìn)行身份認(rèn)證。實(shí)現(xiàn)該方法的系統(tǒng)包括客戶接入子系統(tǒng)、應(yīng)用服務(wù)子系統(tǒng)及一臺(tái)驗(yàn)證服務(wù)器,該一臺(tái)驗(yàn)證服務(wù)器完成用戶身份認(rèn)證和服務(wù)授權(quán)兩項(xiàng)功能。本發(fā)明簡(jiǎn)化了網(wǎng)絡(luò)認(rèn)證過(guò)程,具有安全性和高效性,適用于分布式網(wǎng)絡(luò)環(huán)境中跨安全域的認(rèn)證和密鑰分配。
文檔編號(hào)H04L9/08GK1805341SQ20061004165
公開(kāi)日2006年7月19日 申請(qǐng)日期2006年1月11日 優(yōu)先權(quán)日2006年1月11日
發(fā)明者李暉, 申婷 申請(qǐng)人:西安電子科技大學(xué)