專(zhuān)利名稱(chēng):分布式身份認(rèn)證方法、裝置與系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種分布式身份認(rèn)證方法、裝置與系統(tǒng)。
背景技術(shù):
隨著TOB2.0技術(shù)以及社交網(wǎng)絡(luò)平臺(tái)技術(shù)的發(fā)展,用戶(hù)以及應(yīng)用之間的身份認(rèn)證 問(wèn)題將成為最重要的問(wèn)題之一?,F(xiàn)有技術(shù)一般采用中心化(Centralized)的認(rèn)證方式,即, 用戶(hù)訪問(wèn)每個(gè)網(wǎng)站都會(huì)經(jīng)歷賬戶(hù)注冊(cè)、身份認(rèn)證等過(guò)程。這些分散的身份注冊(cè)和認(rèn)證功能 無(wú)論對(duì)應(yīng)用網(wǎng)站的發(fā)展還是用戶(hù)體驗(yàn)都是一種潛在的阻礙。這種認(rèn)證方式存在一些缺陷和 不足,主要包括1、歸屬不同網(wǎng)絡(luò)社群的用戶(hù)不能進(jìn)行有效的交流;2、用戶(hù)的身份和用戶(hù)數(shù)據(jù)在用戶(hù)控制之下不能完全開(kāi)放;3、應(yīng)用不能方便的獲得用戶(hù)身份和用戶(hù)數(shù)據(jù);4、用戶(hù)體驗(yàn)比較差,用戶(hù)為了和不同網(wǎng)絡(luò)的用戶(hù)交往而建立并維護(hù)多個(gè)賬號(hào)身 份。一種中心化的認(rèn)證方式為PKI (Public Key hfrastructure,公鑰基礎(chǔ)設(shè)施),PKI 是通過(guò)使用公開(kāi)密鑰技術(shù)和數(shù)字證書(shū)來(lái)確保系統(tǒng)信息安全并負(fù)責(zé)驗(yàn)證數(shù)字證書(shū)持有者身 份的一種體系。PKI采用的是中心授信和層級(jí)結(jié)構(gòu)的信任推導(dǎo)機(jī)制,各參與方都信任同一 CA (Certificate Authority,認(rèn)證中心),由該CA來(lái)核對(duì)和驗(yàn)證各參與方的身份,也可由上 級(jí)CA通過(guò)簽名的方式對(duì)下級(jí)CA進(jìn)行授信,這樣,各個(gè)參與方都通過(guò)信任同一個(gè)根證書(shū)而建 立起來(lái)信任鏈和信任關(guān)系。由于PKI是一種中心化(Centralized)的認(rèn)證方式,身份的簽發(fā)是由CA來(lái)完成, 證書(shū)的分發(fā)由用戶(hù)完成,其中,簽是簽署,即用CA的私鑰對(duì)證書(shū)進(jìn)行簽名;發(fā)指分發(fā),即下 載或提供存儲(chǔ)介質(zhì)。證書(shū)中包含有用戶(hù)的身份標(biāo)識(shí),用戶(hù)身份標(biāo)識(shí)是一種非全局、非統(tǒng)一的 用戶(hù)標(biāo)識(shí)。這種情況下,用戶(hù)標(biāo)識(shí)是否被偽造和篡改只能通過(guò)用戶(hù)對(duì)簽發(fā)證書(shū)的CA的信任 來(lái)確定,而通常情況下,一般用戶(hù)還是很難清楚到底哪些CA簽發(fā)的證書(shū)是可以信任的。因 此,PKI認(rèn)證技術(shù)存在如下局限1、因?yàn)闆](méi)有規(guī)范全局的證書(shū)訪問(wèn)機(jī)制,用戶(hù)證書(shū)不具有可訪問(wèn)性,因此證書(shū)的分 發(fā)和獲取都非常的困難;2、采用層級(jí)結(jié)構(gòu)的信任推導(dǎo)機(jī)制,來(lái)保障用戶(hù)標(biāo)識(shí)的唯一性及合法性,不能構(gòu)成 一個(gè)自由開(kāi)放的用戶(hù)標(biāo)識(shí)提供體系;3、用戶(hù)信息不容易附著和獲得,因?yàn)橛脩?hù)信息附帶在用戶(hù)證書(shū)中,證書(shū)中所附著 的用戶(hù)信息是有限而且難于變化的。一種分布式身份認(rèn)證技術(shù)是 YADIS(Yet Another Decentralized Identity Interoperability System,一種分布式身份互操作體系)技術(shù)。Yadis制定了一些規(guī)范用 于支持1、可以用于多種網(wǎng)絡(luò)服務(wù)的身份標(biāo)識(shí),該標(biāo)識(shí)可以代表一個(gè)人或者是一個(gè)網(wǎng)絡(luò)實(shí)體。身份標(biāo)識(shí)使用標(biāo)準(zhǔn)語(yǔ)法和規(guī)范的名域空間。2、用于描述身份標(biāo)識(shí)所能提供的服務(wù)的一整套語(yǔ)法,以及語(yǔ)素定義。3、通過(guò)該身份標(biāo)識(shí)可以獲得描述該標(biāo)識(shí)的XRDS (extensible Resource Descriptor kquence,可擴(kuò)展資源描述序列)文檔,該文檔用于描述服務(wù)類(lèi)型和入口地址 的映射關(guān)系。YADIS主要以URL作為身份標(biāo)識(shí)ID,通過(guò)該ID可以發(fā)現(xiàn)捆綁在該ID上的服務(wù)。具 體地,YADIS標(biāo)識(shí)是一個(gè)可訪問(wèn)標(biāo)識(shí),通過(guò)該標(biāo)識(shí)可以獲得XRDS文檔,XRDS文檔可以描述服 務(wù)類(lèi)型和服務(wù)地址URI的映射,其中服務(wù)是一些能力集。例如可以通過(guò)XRDS文檔的描述 發(fā)現(xiàn)該用戶(hù)的Blog是否提供Pingback服務(wù)以及提供服務(wù)的Pingback地址,這樣就可以在 自己的Blog上回復(fù)該用戶(hù)的日志。XRDS文檔中包含了很多的服務(wù)條目,每個(gè)條目最主要包含兩個(gè)信息,一個(gè)是服務(wù) 類(lèi)型,一個(gè)是服務(wù)提供入口地址URI。服務(wù)類(lèi)型代表服務(wù)消費(fèi)方和服務(wù)提供方雙方必須遵從 的協(xié)議;入口地址意指消費(fèi)方通過(guò)使用服務(wù)類(lèi)型所規(guī)定的協(xié)議訪問(wèn)該地址,可以獲得所期 望的結(jié)果和信息。基于以上的規(guī)范和協(xié)議,可以使得身份標(biāo)識(shí)上所描述和提供的多種服務(wù) 可以很好的共存和互操作。當(dāng)一個(gè)用戶(hù)提供了一個(gè)^dis ID給應(yīng)用網(wǎng)站Relying Party,應(yīng)用網(wǎng)站將通過(guò)檢 索XRDS文檔去發(fā)現(xiàn)該^dis ID提供了哪些服務(wù)。例如“Flickr”網(wǎng)站為用戶(hù)提供照片服 務(wù),這樣可以在該用戶(hù)的ID所對(duì)應(yīng)的XRDS文檔中加入照片分享的服務(wù)描述,這樣該用戶(hù)的 朋友就可以給該用戶(hù)分享照片了。Yadis是一個(gè)High Level的協(xié)議和規(guī)范,它規(guī)定了如何去發(fā)現(xiàn)一個(gè)^dis ID上所 提供的服務(wù)和信息,但是具體的服務(wù)、協(xié)議和信息內(nèi)容等規(guī)范不在^dis的規(guī)范范疇,而是 由擴(kuò)展協(xié)議規(guī)定具體的服務(wù)。另一種分布式身份認(rèn)證技術(shù)是OpenID技術(shù),OpenID就是基于^dis的一個(gè)實(shí)現(xiàn)。OpenID是目前為止應(yīng)用最為廣泛的去中心化(Decentralized)的分布式認(rèn)證服 務(wù),目前很多大的ICP (Internet Content Provider,因特網(wǎng)內(nèi)容提供商)都提供了 OpenID 服務(wù)以及對(duì)OpenID認(rèn)證的支持,用戶(hù)可以在OpenID服務(wù)提供商處申請(qǐng)一個(gè)OpenID,當(dāng)然如 果沒(méi)有嚴(yán)格的身份審查,也可以申請(qǐng)多個(gè),然后就可以在支持OpenID登錄的應(yīng)用網(wǎng)站使用 OpenID進(jìn)行登錄并使用該應(yīng)用網(wǎng)站提供的服務(wù),OpenID認(rèn)證不需要繁瑣的用戶(hù)注冊(cè)過(guò)程, 也不要用戶(hù)記住那么多的賬號(hào)和密碼。OpenID認(rèn)證的相關(guān)術(shù)語(yǔ)如下(I)OpenID Provider,簡(jiǎn)稱(chēng)OP :0penID提供者,即提供OpenID注冊(cè)的服務(wù)商,對(duì)用 戶(hù)身份鑒權(quán)。(2)Relying Party 應(yīng)用依賴(lài)方,簡(jiǎn)稱(chēng)RP,也就是用戶(hù)要訪問(wèn)的網(wǎng)站,RP需要通過(guò) OP鑒權(quán)終端用戶(hù)的身份。(3) End User 終端用戶(hù)。(4) Identifier =OpenID 的具體標(biāo)識(shí),可以是一個(gè) HTTP、HTTPS 或者 XRI (Extensible Resource Identifier,可擴(kuò)展的資源標(biāo)識(shí))。(5Wser-Agent 用戶(hù)瀏覽器。OpenID的一個(gè)典型的應(yīng)用場(chǎng)景就是當(dāng)終端用戶(hù)登錄一個(gè)支持OpenID的網(wǎng)站RP時(shí),該用戶(hù)選擇了以O(shè)penID的方式登錄該網(wǎng)站,OpenID是該用戶(hù)在另一個(gè)網(wǎng)站OP注冊(cè)的一 個(gè)URL。RP根據(jù)用戶(hù)提供的OpenID去發(fā)現(xiàn)0P,然后請(qǐng)求該OP對(duì)該用戶(hù)身份進(jìn)行鑒權(quán)。OP 收到RP請(qǐng)求后,會(huì)要求用戶(hù)登錄OP認(rèn)證頁(yè)面進(jìn)行鑒權(quán),鑒權(quán)通過(guò)后,OP會(huì)提醒該用戶(hù)是否 容許外部網(wǎng)站對(duì)該用戶(hù)鑒權(quán)。如果用戶(hù)同意后,OP將鑒權(quán)結(jié)果返回給RP。下面就OpenID的認(rèn)證流程進(jìn)行簡(jiǎn)要的介紹,圖1就是OpenID的認(rèn)證流程S101、終端用戶(hù)請(qǐng)求登錄RP網(wǎng)站,用戶(hù)選擇了以O(shè)penID方式來(lái)登錄;S102、RP將OpenId的登錄界面以表單Http Form形式返回給終端用戶(hù);S103、終端用戶(hù)以O(shè)penID登錄RP網(wǎng)站;S104、RP網(wǎng)站對(duì)用戶(hù)的OpenID進(jìn)行標(biāo)準(zhǔn)化,確定OpenID的具體格式,如XRI格式 或者是HTTP格式等等;S105、RP解析OpenID,根據(jù)解析結(jié)果發(fā)現(xiàn)OP ;如果OpenId是)(RI,就采用XRI解 析,如果是URL,則用Yadis協(xié)議解析,若Yadis解析失敗,則用Http發(fā)現(xiàn);S106、RP跟OP建立一個(gè)關(guān)聯(lián);兩者之間可以建立一個(gè)安全通道,用于傳輸信息并 降低交互次數(shù);S107、OP處理RP的關(guān)聯(lián)請(qǐng)求;S108、RP請(qǐng)求OP對(duì)用戶(hù)身份進(jìn)行鑒權(quán);S109、OP對(duì)用戶(hù)鑒權(quán),請(qǐng)求用戶(hù)進(jìn)行登錄認(rèn)證;S110、用戶(hù)登錄 0P;SllUOP將鑒權(quán)結(jié)果返回給RP ;Sl 12、RP對(duì)OP的結(jié)果進(jìn)行分析;S113、RP分析后,如用戶(hù)合法,則返回用戶(hù)鑒權(quán)成功,可以使用RP服務(wù)。OpenID技術(shù)存在一些缺陷和影響用戶(hù)體驗(yàn)的地方第一類(lèi)缺陷、OpenID通過(guò)表單觸發(fā)(S102),用戶(hù)需要在應(yīng)用網(wǎng)站提供的表 單中填入OpenID標(biāo)識(shí)來(lái)觸發(fā)OpenID認(rèn)證過(guò)程,這樣就需要一個(gè)用戶(hù)干預(yù)(end-user intervention)的過(guò)程,用戶(hù)必須填入表單項(xiàng)。雖然也可以使用瀏覽器插件實(shí)現(xiàn)自動(dòng)表單填 充,但是,遺留的問(wèn)題是1、表單內(nèi)容有限,不能提供認(rèn)證方法及加密算法協(xié)商。2、不能提供認(rèn)證方法上的一些參數(shù)選項(xiàng)。3、不能很好的規(guī)范化表單的內(nèi)容,所以對(duì)規(guī)范的制定和規(guī)范的遵從都存在影響。第二類(lèi)缺陷、OpenID通過(guò)瀏覽器跳轉(zhuǎn)方式在應(yīng)用網(wǎng)站與OP之間協(xié)商認(rèn)證的簽名 Token (Si 11和S112),而認(rèn)證的主體由OpenID的OP完成,也就是說(shuō)由OP完成對(duì)用戶(hù)身份 的確認(rèn),然后通過(guò)瀏覽器中轉(zhuǎn)的方式,傳遞一個(gè)簽名的Token給應(yīng)用網(wǎng)站,應(yīng)用網(wǎng)站通過(guò) Token完成對(duì)用戶(hù)的認(rèn)證過(guò)程,這種方式存在以下一些問(wèn)題1、通過(guò)瀏覽器跳轉(zhuǎn)方式實(shí)現(xiàn)用戶(hù)認(rèn)證,其實(shí)現(xiàn)復(fù)雜、效率低。2、用戶(hù)在應(yīng)用網(wǎng)站上進(jìn)行OpenID認(rèn)證,又必須到跳轉(zhuǎn)到OP進(jìn)行身份認(rèn)證,用戶(hù)干 預(yù)環(huán)節(jié)多,用戶(hù)操作麻煩。3、通過(guò)應(yīng)用網(wǎng)站跳轉(zhuǎn)到OP認(rèn)證的方式易使用戶(hù)信息被釣魚(yú)(Phishing)網(wǎng)站獲 得、安全性較低。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種分布式身份認(rèn)證方法、裝置與系統(tǒng),解決了現(xiàn)有的分布式 認(rèn)證方式所存在的上述問(wèn)題,提供了一種更安全、更簡(jiǎn)便、更高效的分布式認(rèn)證方式。本發(fā)明實(shí)施例提供一種分布式身份認(rèn)證方法,所述方法包括向應(yīng)用依賴(lài)方RP發(fā) 送訪問(wèn)請(qǐng)求;接收所述RP返回的包含了隨機(jī)數(shù)的認(rèn)證質(zhì)詢(xún)消息;采用私鑰1 對(duì)所述隨機(jī) 數(shù)進(jìn)行加密,生成加密后的隨機(jī)數(shù);向所述RP發(fā)送認(rèn)證請(qǐng)求消息,所述認(rèn)證請(qǐng)求消息中攜 帶所述加密后的隨機(jī)數(shù)。本發(fā)明實(shí)施例還提供一種分布式身份認(rèn)證方法,所述方法包括接收用戶(hù)代理UA 發(fā)送的訪問(wèn)請(qǐng)求,根據(jù)所述訪問(wèn)請(qǐng)求向所述UA返回包含隨機(jī)數(shù)的認(rèn)證質(zhì)詢(xún)消息;接收所述 UA發(fā)送的認(rèn)證請(qǐng)求消息,所述認(rèn)證請(qǐng)求消息中包含所述UA采用私鑰1 對(duì)所述隨機(jī)數(shù)加密 后的隨機(jī)數(shù);從所述訪問(wèn)請(qǐng)求或所述認(rèn)證請(qǐng)求消息中獲得統(tǒng)一用戶(hù)標(biāo)識(shí)UUL ;根據(jù)所述UUL 從用戶(hù)身份提供商IDP處獲得包含了公鑰信息的用戶(hù)證書(shū)Cert ;采用所述公鑰對(duì)所述加密 后的隨機(jī)數(shù)進(jìn)行解密,并將解密后的隨機(jī)數(shù)與所述認(rèn)證質(zhì)詢(xún)消息中的隨機(jī)數(shù)進(jìn)行比較,如 果兩者一致則認(rèn)證通過(guò)。本發(fā)明實(shí)施例還提供一種分布式身份認(rèn)證方法,所述方法包括產(chǎn)生包含公鑰信 息的用戶(hù)證書(shū)Cert和私鑰文件,提供所述私鑰文件的分發(fā)機(jī)制,使用戶(hù)代理UA通過(guò)所述分 發(fā)機(jī)制獲取所述私鑰文件;接收應(yīng)用依賴(lài)方RP的證書(shū)獲取請(qǐng)求,所述證書(shū)獲取請(qǐng)求中包含 已注冊(cè)的用戶(hù)身份標(biāo)識(shí)ID ;向所述RP返回與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng)的包含了所述公鑰 信息的用戶(hù)證書(shū)Cert。本發(fā)明實(shí)施例還提供一種分布式身份認(rèn)證裝置,所述裝置包括訪問(wèn)請(qǐng)求單元,用 于向應(yīng)用依賴(lài)方RP發(fā)送訪問(wèn)請(qǐng)求;認(rèn)證質(zhì)詢(xún)接收單元,用于接收所述RP返回的包含了隨機(jī) 數(shù)的認(rèn)證質(zhì)詢(xún)消息;加密單元,用于采用私鑰Hi對(duì)所述隨機(jī)數(shù)進(jìn)行加密,生成加密后的隨 機(jī)數(shù);認(rèn)證請(qǐng)求單元,用于向所述RP發(fā)送認(rèn)證請(qǐng)求消息,所述認(rèn)證請(qǐng)求消息中攜帶所述加 密后的隨機(jī)數(shù)。本發(fā)明實(shí)施例還提供一種分布式身份認(rèn)證裝置,所述裝置包括認(rèn)證質(zhì)詢(xún)發(fā)送單 元,用于接收用戶(hù)代理UA發(fā)送的訪問(wèn)請(qǐng)求,根據(jù)所述訪問(wèn)請(qǐng)求向所述UA返回包含隨機(jī)數(shù)的 認(rèn)證質(zhì)詢(xún)消息;認(rèn)證請(qǐng)求接收單元,用于接收所述UA發(fā)送的認(rèn)證請(qǐng)求消息,所述認(rèn)證請(qǐng)求 消息中包含所述UA采用私鑰1 對(duì)所述隨機(jī)數(shù)加密后的隨機(jī)數(shù);用戶(hù)標(biāo)識(shí)獲取單元,用于從 所述訪問(wèn)請(qǐng)求或所述認(rèn)證請(qǐng)求消息中獲得統(tǒng)一用戶(hù)標(biāo)識(shí)UUL;用戶(hù)證書(shū)獲取單元,根據(jù)所 述UUL從用戶(hù)身份提供商IDP處獲得包含了公鑰信息的用戶(hù)證書(shū)Cert ;認(rèn)證單元,用于采 用所述公鑰對(duì)所述加密后的隨機(jī)數(shù)進(jìn)行解密,并將解密后的隨機(jī)數(shù)與所述認(rèn)證質(zhì)詢(xún)消息中 的隨機(jī)數(shù)進(jìn)行比較,如果兩者一致則認(rèn)證通過(guò)。本發(fā)明實(shí)施例還提供一種分布式身份認(rèn)證裝置,所述裝置包括認(rèn)證信息提供單 元,用于產(chǎn)生包含公鑰信息的用戶(hù)證書(shū)Cert和私鑰文件,提供所述私鑰文件的分發(fā)機(jī)制, 使用戶(hù)代理UA通過(guò)所述分發(fā)機(jī)制獲取所述私鑰文件;證書(shū)獲取請(qǐng)求接收單元,用于接收應(yīng) 用依賴(lài)方RP的證書(shū)獲取請(qǐng)求,所述證書(shū)獲取請(qǐng)求中包含已注冊(cè)的用戶(hù)身份標(biāo)識(shí)ID ;證書(shū)發(fā) 送單元,用于向所述RP返回與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng)的包含了所述公鑰信息的用戶(hù)證 書(shū) Cert0本發(fā)明實(shí)施例還提供一種分布式身份認(rèn)證系統(tǒng),所述系統(tǒng)包括用戶(hù)身份提供方IDP、用戶(hù)代理UA,以及應(yīng)用依賴(lài)方RP ;所述IDP,用于產(chǎn)生包含公鑰信息的用戶(hù)證書(shū)Cert 和私鑰文件,提供所述私鑰文件的分發(fā)機(jī)制,使用戶(hù)代理UA通過(guò)所述分發(fā)機(jī)制獲取所述私 鑰文件;接收應(yīng)用依賴(lài)方RP的證書(shū)獲取請(qǐng)求,所述證書(shū)獲取請(qǐng)求中包含已注冊(cè)的用戶(hù)身份 標(biāo)識(shí)ID ;向所述RP返回與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng)的包含了所述公鑰信息的用戶(hù)證書(shū) Cert ;所述RP,用于接收用戶(hù)代理UA發(fā)送的訪問(wèn)請(qǐng)求,根據(jù)所述訪問(wèn)請(qǐng)求向所述UA返回 包含隨機(jī)數(shù)的認(rèn)證質(zhì)詢(xún)消息;接收所述UA發(fā)送的認(rèn)證請(qǐng)求消息,所述認(rèn)證請(qǐng)求消息中包含 所述UA采用私鑰1 對(duì)所述隨機(jī)數(shù)加密后的隨機(jī)數(shù);從所述訪問(wèn)請(qǐng)求或所述認(rèn)證請(qǐng)求中獲 得統(tǒng)一用戶(hù)標(biāo)識(shí)UUL ;根據(jù)所述UUL從用戶(hù)身份提供商IDP處獲得包含了公鑰信息的用戶(hù) 證書(shū)Cert ;采用所述公鑰對(duì)所述加密后的隨機(jī)數(shù)進(jìn)行解密,并將解密后的隨機(jī)數(shù)與所述認(rèn) 證質(zhì)詢(xún)消息中的隨機(jī)數(shù)進(jìn)行比較,如果兩者一致則認(rèn)證通過(guò)。本發(fā)明實(shí)施例的分布式身份認(rèn)證方法、裝置與系統(tǒng),UA在請(qǐng)求RP服務(wù)時(shí),與RP之 間直接進(jìn)行認(rèn)證,不需要跳轉(zhuǎn)到其他網(wǎng)站進(jìn)行認(rèn)證,減少了用戶(hù)干預(yù)的次數(shù),避免了信息被 釣魚(yú)的可能性,相對(duì)于其他相關(guān)的分布式認(rèn)證技術(shù),能提供更安全的、更簡(jiǎn)便、更高效的分 布式身份認(rèn)證,使得用戶(hù)身份更加方便攜帶,用戶(hù)使用一個(gè)身份就能訪問(wèn)所有支持本發(fā)明 認(rèn)證方法的應(yīng)用網(wǎng)站。
圖1為與現(xiàn)有技術(shù)的一種分布式身份認(rèn)證技術(shù)OpenID的認(rèn)證流程圖;圖2為本發(fā)明實(shí)施例的分布式身份認(rèn)證系統(tǒng)的體系架構(gòu)圖;圖3為本發(fā)明實(shí)施例的分布式身份認(rèn)證系統(tǒng)的一種信令交互流程圖;圖4為本發(fā)明實(shí)施例的分布式身份認(rèn)證系統(tǒng)的另一種信令交互流程圖;圖5為本發(fā)明實(shí)施例依據(jù)圖3所示認(rèn)證方法的具體信令交互流程圖;圖6為現(xiàn)有技術(shù)中模式對(duì)話(huà)框的界面圖;圖7為本發(fā)明實(shí)施例含有表單的認(rèn)證質(zhì)詢(xún)界面圖;圖8為本發(fā)明實(shí)施例用戶(hù)選擇一個(gè)身份標(biāo)識(shí)進(jìn)行身份認(rèn)證的界面圖;圖9為本發(fā)明實(shí)施例UA的整體功能框圖;圖10為本發(fā)明實(shí)施例UA的另一種功能框圖;圖11為本發(fā)明實(shí)施例RP的功能框圖;圖12為本發(fā)明實(shí)施例圖11中的認(rèn)證單元1105的細(xì)化功能框圖;圖13為本發(fā)明實(shí)施例IDP的功能框圖;圖14為本發(fā)明實(shí)施例系統(tǒng)的一種實(shí)現(xiàn)架構(gòu)圖。
具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例提供一種分布式身份認(rèn)證方法、裝置與系統(tǒng),相對(duì)于其他相關(guān)的分布式認(rèn)證技術(shù),該技術(shù)能提供更安全的、更簡(jiǎn)便的分布式身份認(rèn)證,使得用戶(hù)身份更加方便 攜帶,用戶(hù)使用一個(gè)身份就能訪問(wèn)所有支持本發(fā)明認(rèn)證方法的應(yīng)用網(wǎng)站。本發(fā)明實(shí)施例提供了一種分布式身份認(rèn)證系統(tǒng)。圖2為本發(fā)明實(shí)施例分布式 身份認(rèn)證系統(tǒng)的體系架構(gòu)圖,如圖2所示,該系統(tǒng)中參與認(rèn)證的實(shí)體(Entity)包括IDP 21 (Identity Provider,用戶(hù)身份提供方),用來(lái)提供用戶(hù)身份信息;UA 22 (User Agent,用 戶(hù)代理),為客戶(hù)端應(yīng)用程序,一般為瀏覽器(Browser) ; RP 23 (Relying Party,依賴(lài)方), 一般為用戶(hù)訪問(wèn)的應(yīng)用服務(wù)器。具體地IDP 21,用于產(chǎn)生包含公鑰信息的用戶(hù)證書(shū)Cert和私鑰文件,提供所述 私鑰文件的分發(fā)機(jī)制,使UA 22通過(guò)所述分發(fā)機(jī)制獲取所述私鑰文件;接收RP 23的證書(shū)獲 取請(qǐng)求,所述證書(shū)獲取請(qǐng)求中包含已注冊(cè)的用戶(hù)身份標(biāo)識(shí)ID ;向RP 23返回與所述用戶(hù)身 份標(biāo)識(shí)ID對(duì)應(yīng)的包含了所述公鑰信息的用戶(hù)證書(shū)Cert。UA 22,用于向RP 23發(fā)送訪問(wèn)請(qǐng)求;接收RP 23返回的包含了隨機(jī)數(shù)的認(rèn)證質(zhì)詢(xún) 消息;采用私鑰1 對(duì)所述隨機(jī)數(shù)進(jìn)行加密,生成加密后的隨機(jī)數(shù),其中加密采用非對(duì)稱(chēng)加 密算法;對(duì)所述認(rèn)證質(zhì)詢(xún)消息做出響應(yīng),向RP 23發(fā)送認(rèn)證請(qǐng)求消息,所述認(rèn)證請(qǐng)求消息中 攜帶所述加密后的隨機(jī)數(shù)。RP 23,用于接收UA 22發(fā)送的訪問(wèn)請(qǐng)求,根據(jù)所述訪問(wèn)請(qǐng)求向UA 22返回包含隨 機(jī)數(shù)的認(rèn)證質(zhì)詢(xún)消息;接收UA 22發(fā)送的認(rèn)證請(qǐng)求消息,所述認(rèn)證請(qǐng)求消息中包含UA 22采 用私鑰Hi對(duì)所述隨機(jī)數(shù)加密后的隨機(jī)數(shù),其中加密采用非對(duì)稱(chēng)加密算法;從所述訪問(wèn)請(qǐng)求 或所述認(rèn)證請(qǐng)求消息中獲得統(tǒng)一用戶(hù)標(biāo)識(shí)UUL ;根據(jù)所述UUL從IDP 21處獲得包含了公鑰 信息的用戶(hù)證書(shū)Cert ;采用所述公鑰對(duì)所述加密后的隨機(jī)數(shù)進(jìn)行解密,并將解密后的隨機(jī) 數(shù)與所述認(rèn)證質(zhì)詢(xún)消息中的隨機(jī)數(shù)進(jìn)行比較,如果兩者一致則認(rèn)證通過(guò),否則,認(rèn)證失敗。 本發(fā)明實(shí)施例的方法可以利用XRDS(extensible Resource Descriptor kquence,可擴(kuò)展 資源描述序列)文檔來(lái)發(fā)現(xiàn)用戶(hù)的證書(shū)信息,具體的服務(wù)發(fā)現(xiàn)過(guò)程將在后續(xù)實(shí)施例中詳細(xì) 描述。本發(fā)明實(shí)施例用戶(hù)的身份信息主要包括以下幾部分UUL (Universal User Locator,統(tǒng)一用戶(hù)定位符)、Cert (Certification,用戶(hù)證書(shū))和 PK (Private Key,用戶(hù)私 鑰),其中,所述UUL —般為一個(gè)URI (Uniform Resource Identifier,統(tǒng)一資源標(biāo)識(shí)),如 HTTP URL, XRI等;證書(shū)Cert中包含了用戶(hù)的公鑰信息,本發(fā)明實(shí)施例的證書(shū)以采用X. 509 協(xié)議為例進(jìn)行表示;PK(由IDP提供給最終用戶(hù),提供的介質(zhì)不限。本發(fā)明實(shí)施例系統(tǒng)的工作原理為用戶(hù)通過(guò)用戶(hù)代理UA,向應(yīng)用網(wǎng)站RP發(fā)送訪問(wèn) 請(qǐng)求,其中用戶(hù)代理一般為瀏覽器;如果應(yīng)用網(wǎng)站RP需要對(duì)用戶(hù)進(jìn)行認(rèn)證,RP返回一個(gè)需 要認(rèn)證的質(zhì)詢(xún)(Challenge,rfd617),要求用戶(hù)認(rèn)證,該質(zhì)詢(xún)中包含必要的認(rèn)證描述信息, 如本發(fā)明認(rèn)證方法標(biāo)識(shí)、用戶(hù)簽名隨機(jī)數(shù)Nonce和保護(hù)域Realm等;UA收到質(zhì)詢(xún)后,使用該 用戶(hù)的私鑰對(duì)Nonce進(jìn)行簽名,通過(guò)認(rèn)證請(qǐng)求消息提交簽名后的Nonce給RP ;其中,本發(fā)明 實(shí)施例可以在訪問(wèn)請(qǐng)求或認(rèn)證請(qǐng)求中攜帶統(tǒng)一用戶(hù)標(biāo)識(shí)UUL ;RP從訪問(wèn)請(qǐng)求或認(rèn)證請(qǐng)求中 獲取UUL,根據(jù)UUL獲得用戶(hù)證書(shū)信息;然后,RP根據(jù)獲取的證書(shū)信息對(duì)簽名后的Nonce解 密,通過(guò)比較之前發(fā)送的Nonce和解密后的Nonce是否一致來(lái)驗(yàn)證用戶(hù)身份;如果一致則驗(yàn) 證通過(guò),RP返回UA請(qǐng)求的響應(yīng)。其中,RP根據(jù)Realm可區(qū)分用戶(hù)訪問(wèn)范圍的信息,相關(guān)內(nèi) 容請(qǐng)本領(lǐng)域技術(shù)人員參閱RFC2617規(guī)范,在此不贅述。
下面通過(guò)信令交互流程圖來(lái)進(jìn)一步詳細(xì)描述本發(fā)明實(shí)施例的系統(tǒng)的工作過(guò)程,以 及該系統(tǒng)包括的各實(shí)體的工作方法。圖3為本發(fā)明實(shí)施例的分布式身份認(rèn)證系統(tǒng)的一種信令交互流程圖。如圖3所示, 該分布式身份認(rèn)證系統(tǒng)執(zhí)行身份認(rèn)證的過(guò)程具體包括如下步驟S301、UA向應(yīng)用依賴(lài)方RP發(fā)送訪問(wèn)請(qǐng)求;可選地,本發(fā)明實(shí)施例可以在所述訪問(wèn)請(qǐng)求的HTTP From Header字段中攜帶統(tǒng)一 用戶(hù)標(biāo)識(shí)UUL??蛇x地,也可在該訪問(wèn)請(qǐng)求中不攜帶UUL,而是通過(guò)在后續(xù)的認(rèn)證請(qǐng)求中攜 帶 UUL??蛇x地,本發(fā)明實(shí)施例在S301之前還可以包括通過(guò)加密信道SSL從用戶(hù)身份提 供方IDP獲取用戶(hù)私鑰文件,或者從包含所述私鑰文件的存儲(chǔ)介質(zhì)中獲取用戶(hù)私鑰文件, 所述私鑰文件中包含了私鑰I3K和統(tǒng)一用戶(hù)標(biāo)識(shí)UUL。具體地,所述IDP,可以用于產(chǎn)生包含公鑰信息的用戶(hù)證書(shū)Cert和私鑰文件,并提 供所述私鑰文件的分發(fā)機(jī)制,使用戶(hù)代理UA通過(guò)所述分發(fā)機(jī)制獲取所述私鑰文件。該IDP 提供的私鑰文件的分發(fā)機(jī)制具體可以包括提供可供下載的私鑰文件,使用戶(hù)代理UA下載 所述私鑰文件并安裝于本地;或者將所述私鑰文件存儲(chǔ)于存儲(chǔ)介質(zhì),例如USB存儲(chǔ)設(shè)備等, 使用戶(hù)代理UA通過(guò)插接所述USB設(shè)備獲得所述私鑰文件。其中,在用戶(hù)注冊(cè)和申請(qǐng)證書(shū)通過(guò)之后,IDP會(huì)生成包含公鑰信息的用戶(hù)證書(shū)的私 鑰文件。S302、RP向根據(jù)該訪問(wèn)請(qǐng)求向UA返回包含隨機(jī)數(shù)的認(rèn)證質(zhì)詢(xún)消息;可選地,所述認(rèn)證質(zhì)詢(xún)消息可以包括HTTP 401 Unauthorized消息;所述認(rèn)證質(zhì) 詢(xún)消息的WffW-Authentication Header字段中除了包含認(rèn)證所需的隨機(jī)數(shù)Nonce之外還可 以進(jìn)一步包含所述分布式身份認(rèn)證方法的標(biāo)識(shí)以及至少一個(gè)非對(duì)稱(chēng)加密算法參數(shù)。其中, HTTP 401 Unauthorized消息是RFC2617規(guī)范中的內(nèi)容,應(yīng)用服務(wù)器RP利用這個(gè)響應(yīng)向UA 發(fā)起認(rèn)證質(zhì)詢(xún)(Challenge),UA需對(duì)這個(gè)認(rèn)證質(zhì)詢(xún)做出認(rèn)證響應(yīng),攜帶認(rèn)證信息到應(yīng)用服 務(wù)器,以便通過(guò)應(yīng)用服務(wù)器的認(rèn)證。此外,www Authentication Header在現(xiàn)有的規(guī)范中已 經(jīng)存在了兩個(gè)認(rèn)證方法標(biāo)識(shí),一個(gè)是basic,另一個(gè)是digest,分別用于標(biāo)識(shí)兩種不同的認(rèn) 證方法,而本發(fā)明實(shí)施例由于采用了一種新的認(rèn)證方法,所以需要一個(gè)新的認(rèn)證方法標(biāo)識(shí), 本發(fā)明實(shí)施例的認(rèn)證方法標(biāo)識(shí)可以采用不和已存在的認(rèn)證方法標(biāo)識(shí)相重復(fù)的任意標(biāo)識(shí)??蛇x地,本發(fā)明實(shí)施例的非對(duì)稱(chēng)加密算法參數(shù)可以包括RSA(Rivest、Shamir, Adlernan加密算法)非對(duì)稱(chēng)加密算法或者ECC(Elliptic Curves Cryptography,橢圓曲線 密碼學(xué))非對(duì)稱(chēng)加密算法。S303、UA采用私鑰I3K對(duì)所述隨機(jī)數(shù)進(jìn)行加密,生成加密后的隨機(jī)數(shù),其中加密采 用非對(duì)稱(chēng)加密算法;可選地,S303具體包括從所述認(rèn)證質(zhì)詢(xún)消息中解析出所述分布式身份認(rèn)證方法 的標(biāo)識(shí),以及從所述加密算法參數(shù)中選擇一個(gè)非對(duì)稱(chēng)加密算法,采用所述私鑰Hi對(duì)所述隨 機(jī)數(shù)基于選擇的非對(duì)稱(chēng)加密算法進(jìn)行加密。S304、UA對(duì)所述認(rèn)證質(zhì)詢(xún)消息做出響應(yīng),向所述RP發(fā)送認(rèn)證請(qǐng)求消息,所述認(rèn)證 請(qǐng)求消息中攜帶所述加密后的隨機(jī)數(shù)??蛇x地,所述認(rèn)證請(qǐng)求中可以包含UA選擇的非對(duì)稱(chēng)加密算法。
可選地,本發(fā)明實(shí)施例還可以在所述認(rèn)證請(qǐng)求的HTTP Authorization Header字 段中攜帶所述UUL ;可選地,所述認(rèn)證請(qǐng)求中攜帶的UUL為用戶(hù)設(shè)置的默認(rèn)UUL,或者從UA 提供的UUL列表中選擇的一個(gè)UUL。采用默認(rèn)的UUL進(jìn)行身份認(rèn)證或者從UA提供的UUL 列表中選擇一個(gè)UUL進(jìn)行身份認(rèn)證這兩種方式是由用戶(hù)設(shè)置的。當(dāng)用戶(hù)設(shè)置了默認(rèn)的UUL 后,則直接采用默認(rèn)的UUL進(jìn)行身份認(rèn)證;否則,UA會(huì)提供給用戶(hù)一個(gè)UUL列表進(jìn)行UUL選 擇,并對(duì)用戶(hù)選擇的UUL進(jìn)行身份認(rèn)證。這兩種方式將會(huì)在后續(xù)實(shí)施例中進(jìn)行詳細(xì)描述。S305、RP從所述訪問(wèn)請(qǐng)求或所述認(rèn)證請(qǐng)求消息中獲得統(tǒng)一用戶(hù)標(biāo)識(shí)UUL,然后,向 用戶(hù)身份提供商IDP發(fā)送包含該UUL的證書(shū)獲取請(qǐng)求,以便根據(jù)所述UUL從IDP處獲得包 含公鑰信息的用戶(hù)證書(shū)Cert;可選地,所述UUL可以為在所述IDP上注冊(cè)的用戶(hù)身份標(biāo)識(shí)ID ;在這種情況下, S305中具體包括向IDP發(fā)送包含已注冊(cè)的用戶(hù)身份標(biāo)識(shí)ID的證書(shū)獲取請(qǐng)求,以便從所述 IDP中獲得與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng)的Cert??蛇x地,所述Cert采用X. 509協(xié)議描述。S306、IDP向RP返回與所述UUL對(duì)應(yīng)的包含了公鑰信息的用戶(hù)證書(shū)Cert??蛇x地,S306的具體過(guò)程也可以包括IDP向RP返回與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng) 的包含了公鑰信息的用戶(hù)證書(shū)Cert。S307、RP采用所述公鑰對(duì)所述加密后的隨機(jī)數(shù)進(jìn)行解密,并將解密后的隨機(jī)數(shù)與 所述認(rèn)證質(zhì)詢(xún)消息中的隨機(jī)數(shù)進(jìn)行比較,如果兩者一致則認(rèn)證通過(guò),否則,認(rèn)證失敗??蛇x地,采用所述公鑰對(duì)所述加密后的隨機(jī)數(shù)進(jìn)行解密包括根據(jù)所述UA選擇的 非對(duì)稱(chēng)加密算法,采用所述公鑰對(duì)加密后的隨機(jī)數(shù)進(jìn)行解密。S308、RP在完成認(rèn)證后向UA返回訪問(wèn)請(qǐng)求的結(jié)果,完成用戶(hù)認(rèn)證過(guò)程。圖4為本發(fā)明實(shí)施例的分布式身份認(rèn)證系統(tǒng)的另一種信令交互流程圖。如圖4所 示,該分布式身份認(rèn)證系統(tǒng)執(zhí)行身份認(rèn)證的過(guò)程具體包括如下步驟S401、UA向RP發(fā)送訪問(wèn)請(qǐng)求。S402、RP根據(jù)所述訪問(wèn)請(qǐng)求向UA返回認(rèn)證質(zhì)詢(xún)消息,所述認(rèn)證質(zhì)詢(xún)消息中包含用 于傳統(tǒng)表單認(rèn)證的HTML表單和隨機(jī)數(shù)。具體地,S402中認(rèn)證質(zhì)詢(xún)消息包含用于傳統(tǒng)表單認(rèn)證的HTML表單,是為了實(shí)現(xiàn)對(duì) 傳統(tǒng)表單認(rèn)證方法的兼容。S403、UA獲得用戶(hù)的UUL,并對(duì)所述隨機(jī)數(shù)進(jìn)行加密。具體地,當(dāng)用戶(hù)選擇傳統(tǒng)表單認(rèn)證時(shí),接收用戶(hù)的表單輸入,以便將所述表單輸入 的身份信息提供給所述RP進(jìn)行認(rèn)證;或者,當(dāng)用戶(hù)選擇所述分布式身份認(rèn)證時(shí),接收用戶(hù)選擇的用戶(hù)身份,獲得與所述用戶(hù) 身份對(duì)應(yīng)的統(tǒng)一用戶(hù)標(biāo)識(shí)UUL以及用戶(hù)私鑰PK,以便將所述UUL以及加密后的隨機(jī)數(shù)提供 給所述RP進(jìn)行認(rèn)證;或者將用戶(hù)默認(rèn)設(shè)置的UUL提供給RP進(jìn)行認(rèn)證。可選地,當(dāng)用戶(hù)選擇所述分布式身份認(rèn)證時(shí),接收用戶(hù)選擇的用戶(hù)身份具體包括 UA響應(yīng)用戶(hù)對(duì)認(rèn)證快捷按鍵的點(diǎn)擊操作,呈現(xiàn)用于認(rèn)證的UUL列表;并接收用戶(hù)從所述列 表中選擇的用戶(hù)身份。對(duì)所述隨機(jī)數(shù)進(jìn)行加密的具體過(guò)程包括采用私鑰Hi對(duì)所述隨機(jī)數(shù)進(jìn)行加密,生 成加密后的隨機(jī)數(shù),其中加密可以采用非對(duì)稱(chēng)加密算法。
S404、UA對(duì)所述認(rèn)證質(zhì)詢(xún)消息做出響應(yīng),向所述RP發(fā)送認(rèn)證請(qǐng)求消息,所述認(rèn)證 請(qǐng)求消息中攜帶所述加密后的隨機(jī)數(shù)以及所述UUL??蛇x地,S404具體可以包括響應(yīng)用戶(hù)對(duì)所述UUL列表的選擇操作,向所述RP發(fā) 送包含所述用戶(hù)選擇UUL的認(rèn)證請(qǐng)求消息。S405-S406、RP根據(jù)該認(rèn)證請(qǐng)求中包含的UUL,獲得IDP服務(wù)描述信息。具體地,本發(fā)明實(shí)施例的UUL包含所述IDP的服務(wù)描述信息的URL地址,RP根據(jù)該 URL地址訪問(wèn)該URL對(duì)應(yīng)的網(wǎng)頁(yè)(例如個(gè)人博客),以獲得IDP的服務(wù)描述信息。所述服務(wù) 描述信息包括所述IDP的地址和所述用戶(hù)在所述IDP上注冊(cè)的用戶(hù)身份標(biāo)識(shí)ID。從而,RP 可從所述UUL包含的服務(wù)描述信息中獲得所述IDP的地址和所述用戶(hù)在所述IDP上注冊(cè)的 用戶(hù)身份標(biāo)識(shí)ID??蛇x地,所述服務(wù)描述信息采用XRDS文檔或者HTML Link標(biāo)簽描述。S407、RP根據(jù)獲得的IDP地址,向IDP發(fā)送包含所述用戶(hù)身份標(biāo)識(shí)ID的證書(shū)獲取 請(qǐng)求。S408、IDP向RP返回與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng)的包含公鑰的Cert。S409、RP采用所述公鑰對(duì)所述加密后的隨機(jī)數(shù)進(jìn)行解密,并將解密后的隨機(jī)數(shù)與 所述認(rèn)證質(zhì)詢(xún)消息中的隨機(jī)數(shù)進(jìn)行比較,如果兩者一致則認(rèn)證通過(guò),否則,認(rèn)證失敗。S410、RP在完成認(rèn)證后,向UA返回訪問(wèn)請(qǐng)求的結(jié)果。進(jìn)一步地,圖4所示方法還可以包括如下處理過(guò)程UA對(duì)所述UUL身份提供口令保護(hù)或生物認(rèn)證保護(hù),這樣,用戶(hù)必須進(jìn)行口令驗(yàn)證 或者生物驗(yàn)證后才能使用特定的UUL。UA根據(jù)所述UUL訪問(wèn)用戶(hù)的基本信息,所述基本信息包含下列信息中的一種或多 種組合姓名、別名、頭像和簽名檔,所述UUL可選地為用戶(hù)身份標(biāo)識(shí)ID,UA向IDP發(fā)送包含 了所述用戶(hù)身份標(biāo)識(shí)ID的用戶(hù)信息請(qǐng)求。IDP接收用戶(hù)代理UA發(fā)送包含了所述用戶(hù)身份 標(biāo)識(shí)ID的用戶(hù)信息請(qǐng)求;并根據(jù)所述用戶(hù)身份標(biāo)識(shí)ID向所述UA返回用戶(hù)基本信息,所述 基本信息包括下列的一種或多種姓名、別名、頭像和簽名檔。UA與IDP交互,注冊(cè)和/或注銷(xiāo)用戶(hù)的證書(shū)Cert,向IDP發(fā)送注冊(cè)和/或注銷(xiāo)請(qǐng) 求。IDP接收UA的注冊(cè)和/或注銷(xiāo)請(qǐng)求;根據(jù)所述注冊(cè)和/或注銷(xiāo)請(qǐng)求,注冊(cè)和/或注銷(xiāo) 所述用戶(hù)的Cert。以下結(jié)合具體的例子對(duì)本發(fā)明實(shí)施例的分布式身份認(rèn)證的技術(shù)方案進(jìn)行詳細(xì)說(shuō) 明。圖5為本發(fā)明實(shí)施例依據(jù)圖3所示認(rèn)證方法的具體信令交互流程圖,如圖5所示,該方 法包括S501、用戶(hù)代理UA向應(yīng)用網(wǎng)站RP提交訪問(wèn)請(qǐng)求,并攜帶用戶(hù)標(biāo)識(shí)(UUL),該請(qǐng)求消 息格式舉例如下GET/dir/index. html HTTP/1. 1Host :www. someRP. com (HTTP 協(xié)議中 RP 的域名)From :http://someuser. someIDP. com(UA 的 UUL)S502、應(yīng)用網(wǎng)站RP生成一個(gè)隨機(jī)的Nonce值,然后向客戶(hù)端發(fā)起一個(gè)包含該隨機(jī) 的Nonce值的認(rèn)證質(zhì)詢(xún),要求用戶(hù)認(rèn)證;該認(rèn)證質(zhì)詢(xún)消息格式舉例如下
HTTP/1. 1 401 UnauthorizedServer :HTTPd/0. 9Date :Sun,10 Dec 2009 20:28:40 GMTffffff-Authenticate :UUL realm = http://www, somerp. com/someres(realm 為 RFC2617的規(guī)范,一個(gè)網(wǎng)站上有很多保護(hù)域,一個(gè)身份只能訪問(wèn)規(guī)定的保護(hù)域的內(nèi)容;UUL 為認(rèn)證方法標(biāo)識(shí)),nonce = 〃 dcd98b7102dd2f0e8blld0f600bfb0c093 〃 (nonce 為用戶(hù)簽名隨機(jī) 數(shù)),uul = http://someuser. someIDP. com(UA 的 UUL)Content-Type text/htmlContent-Length :311< ! D0CTYPE HTML PUBLIC" -//W3C//DTD HTML 4.01 TransitionaV/EN"“ http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd" ><HTML><HEAD><TITLE>Error</TITLE><METAHTTP-EQUIV =" Content-Type" CONTENT =" text/html;charset = IS0-8859-1" ></HEAD><B0DYXH1>401 Unauthorized. </HlX/B0DY></HTML>可選地,為了兼容現(xiàn)有的表單認(rèn)證,在HTTP的消息體中還可以包含一個(gè)含有表單
(Form Authentication)認(rèn)證的認(rèn)證頁(yè)面的HTML文本。S503、用戶(hù)代理接收到應(yīng)用網(wǎng)站認(rèn)證質(zhì)詢(xún)后,用戶(hù)代理UA使用用戶(hù)的私鑰 (Private Key)利用非對(duì)稱(chēng)加密算法對(duì)應(yīng)用網(wǎng)站RP傳來(lái)的Nonce進(jìn)行加密簽名,生成 Response。加密算法舉例如下Response = RSA encrypt(PK, Nonce)S504、用戶(hù)代理UA再次向應(yīng)用網(wǎng)站RP發(fā)起請(qǐng)求,并攜帶加密過(guò)的Nonce值給服務(wù) 器。再次發(fā)送的請(qǐng)求消息格式舉例如下GET/dir/index. html HTTP/1. 1Host :www. somerp. com(表示請(qǐng)求的 RP 域名)Authorization UUL uul = 〃 http://someuser. someIDP. com" , (UUL MTfeiK 本發(fā)明實(shí)施例的分布式認(rèn)證方法,uul = http://someuser. someIDP. com表示統(tǒng)一用戶(hù)標(biāo) 識(shí))realm = " http://www.somerp.com/someres",(表示用戶(hù)能夠訪問(wèn)的域)nonce=" dcd98b7102dd2f0e8blld0f600bfb0c093//,(表示隨機(jī)數(shù))uri =〃 /dir/index. html",(表示請(qǐng)求 RP 上的目標(biāo)網(wǎng)頁(yè)的 URI)response = “ 6629fae49393a05397450978507c4ef 1 “(表示力口密過(guò)的 nonce),S505、應(yīng)用網(wǎng)站RP在接收到到用戶(hù)代理UA的請(qǐng)求后,通過(guò)用戶(hù)標(biāo)識(shí)(UUL),向IDP請(qǐng)求獲取用戶(hù)證書(shū)以及其他用戶(hù)信息;該請(qǐng)求消息格式舉例如下GET/HTTP/1. 1Host :someuser. someIDP. com(UA 的 UUL)Referer :www. somerp. com(表不請(qǐng)求的源 Host)Accept :txt/html, */*S506、用戶(hù)身份提供商IDP返回含有用戶(hù)證書(shū)信息或者含有用戶(hù)證書(shū)信息參考 URI的內(nèi)容給RP,內(nèi)容格式可以是HTML文檔或者XRDS文檔。以返回的是用戶(hù)證書(shū)信息參 考URI為例HTTP/1. 1 2000KServer :HTTPd/0. 9Date :Sun,IODec 2009 20:26:47 GMTContent-Type text/htmlContent-Length :453< ! D0CTYPE HTML PUBLIC" -//W3C//DTD HTML 4.01 TransitionaV/EN"“ http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd" ><HTML><HEAD><TITLE>Personal Page</TITLE>〈link rel=" uul. provider uul. server" (IDP 服務(wù)的入口地址標(biāo)識(shí),表示下 面href所指示的地址是IDP服務(wù)的入口地址)href = “ http://www. someidp. com/uul/server/><link rel = " uul. local id uul. deleRate77href = 〃 http://someuser. someidp. com/" /> (IDP 用戶(hù)本地標(biāo)識(shí)的指示器, 表示下面href所指示的地址是用戶(hù)在IDP上的標(biāo)識(shí),RP使用該標(biāo)識(shí)在上述IDP服務(wù)的入 口地址上獲取用戶(hù)證書(shū))</HEAD><B0DY>.........</B0DY></HTML>如果通過(guò)參考URI獲得證書(shū),則還需要利用rel描述的URI地址獲取用戶(hù)證書(shū),獲 取的用戶(hù)證書(shū)信息舉例如下HTTP/1. 1 2000KServer :HTTPd/0. 9Date :Sun,IODec 2009 20:27:00 GMTContent-Type :text/x509Content-Length :1131Q2VydGlmaffNhdGU6DQoRlCBEYXRh0R0KICARlCARlFZlcnNpb246IDMRKDB4MikNCiARl CArICBT
ZX.TpYffwgTnVtYmVy0iAxICgweDEpDQogICAgICAgU21nbmF0dX.TlIEFsZ29yaXRobTogb WQ1V210aF.TTQUVuY3.T5cHRpb24NCiAgICAgICB.Tc3NlZXI6IEM9ffkEsIFNUPVdlc3Rlcm4gQ2FwZ SwgTDlDYXBlIFRvd24sIE89VGhhd3RlIENvbnNlbHRpbmcgY2MsDQogICAgICAgICAgICAgICBPV T1DZX.T0affZpY2F0aff9uIFNlcnZpY2VzIERpdmlzaff9uLA0KICAgICAgICAgICAgICAgQ049VGhhd 3R1IFN1cnZlciBDQS91bffFpbEFkZH.Tlc3M9c2VydmVyLffNlcnRzQHRoYXd0ZS5ib20NCiAgICAgI CBffYffxpZG10eQ0KICAgICAgICAgICB0b3QgQmVmb3.T10iBBdffcgIDEgMDA6MDA6MDAgMTk5NiBHT VQNCiAgICAgICAgICAgTm90IEFmdGVyIDogRGViIDMxIDIz0iU50iU5IDIwMiAgR01UDQogICAgI CAgU3ViamVidDogQzlaQSwgUlQ9V2VzdGV (用戶(hù)證書(shū)的 baseM 編碼文件)......上述返回的信息為χ. 509用戶(hù)證書(shū)的base64編碼文件,通過(guò)BASE64的解碼得到 用戶(hù)證書(shū)信息舉例如下,具體內(nèi)容參見(jiàn)X. 509 v3規(guī)范......Subject Public Key Info Public Key Algorithm :rsaEncryptionRSA Public Key (1024bit)Modulus(1024bit)00d3a4506ec8ff566be6cf5db6ea0c:
6875473-2SlSlc2da8425fca8f44751da:
85b520749486IeOf75c9e90861f506:
6d306e151902e952cO62db4d999ee2:
6aOc4438cdfebee3640970c5febl6b:
29b62f49c83bd427042510972fe790:
6dcO284299d74c43dec3f5216d549f:
5dc358elcOe4d95bbOb8dcb47bdf36:3a:c2:b5:66:22:12:d6:87:0d(用戶(hù)證書(shū)的解碼文件)......S507、應(yīng)用網(wǎng)站RP獲取用戶(hù)代理UA請(qǐng)求中的加密過(guò)的Nonce值,使用非對(duì)稱(chēng)加密 算法,利用之前獲取用戶(hù)的公鑰信息對(duì)加密后的Nonce進(jìn)行解密操作,對(duì)用戶(hù)進(jìn)行認(rèn)證。解 密算法舉例如下Nonce = RSA decrypt (PublicKey, Response)應(yīng)用網(wǎng)站上保留有之前對(duì)用戶(hù)代理發(fā)起質(zhì)詢(xún)時(shí)的Nonce狀態(tài),通過(guò)匹配(兩者相 等),可以確認(rèn)用戶(hù)身份;
S508、應(yīng)用網(wǎng)站RP返回用戶(hù)代理UA所訪問(wèn)的目標(biāo)請(qǐng)求的響應(yīng),完成用戶(hù)認(rèn)證過(guò) 程。認(rèn)證成功返回請(qǐng)求的目標(biāo)頁(yè)面的HTML文本,認(rèn)證失敗返回認(rèn)證失敗的錯(cuò)誤頁(yè)面或再一 次發(fā)起質(zhì)詢(xún)??蛇x地,本發(fā)明實(shí)施例的方法還包括用戶(hù)證書(shū)的注冊(cè)和注銷(xiāo)的過(guò)程。在用戶(hù)私鑰 丟失,或者私鑰的保護(hù)口令遺忘后,用戶(hù)可以向用戶(hù)標(biāo)識(shí)提供商IDP申請(qǐng)新的用戶(hù)證書(shū);在 應(yīng)用網(wǎng)站RP向用戶(hù)標(biāo)識(shí)提供商IDP獲取該用戶(hù)證書(shū)時(shí),IDP可以向RP返回新的認(rèn)證證書(shū), 舊的用戶(hù)證書(shū)即被收回。RP為了保證用戶(hù)的隱私以及數(shù)據(jù)安全,應(yīng)該避免使用用戶(hù)證書(shū)的 緩存,或者減少證書(shū)緩存刷新時(shí)間。緩存證書(shū)可以減少認(rèn)證時(shí)間,使用緩存的情況下,如果 用戶(hù)更換了證書(shū),認(rèn)證就不能通過(guò)了?!闱闆r下,用戶(hù)標(biāo)識(shí)提供商(IDP)可以提供開(kāi)放注冊(cè)功能,用戶(hù)可以通過(guò)開(kāi)放 注冊(cè)功能申請(qǐng)用戶(hù)標(biāo)識(shí)。另外一種情況是不開(kāi)放注冊(cè)功能,如公司為員工提供身份標(biāo)識(shí)服 務(wù)、學(xué)校為學(xué)生和教師提供身份標(biāo)識(shí)服務(wù)等。在IDP提供開(kāi)放注冊(cè)功能的情況下,用戶(hù)可以 在網(wǎng)上填寫(xiě)注冊(cè)申請(qǐng),提交個(gè)人信息給用戶(hù)標(biāo)識(shí)提供商(IDP),更為嚴(yán)格的情況,用戶(hù)可能 必須提供個(gè)人的身份證明,以便IDP可以確認(rèn)用戶(hù)身份。在填寫(xiě)并提交注冊(cè)申請(qǐng)給IDP后, IDP可以利用部分HQ (Public Key hfrastructure)相關(guān)的技術(shù)生成用戶(hù)證書(shū)以及對(duì)應(yīng)的 私鑰,其中用戶(hù)證書(shū)中包含有用戶(hù)的公鑰信息,如,X. 509 v3格式的文檔。可選的,如果為了嚴(yán)格保障用戶(hù)證書(shū)權(quán)威性,或者說(shuō)保障用戶(hù)身份信息的真實(shí)性, IDP在給用戶(hù)簽發(fā)用戶(hù)證書(shū)時(shí),可以使用第三方權(quán)威的授權(quán)中心(CA)的證書(shū)對(duì)用戶(hù)證書(shū)進(jìn) 行簽名,這樣可以聲明用戶(hù)證書(shū)的權(quán)威性。當(dāng)然,即便是IDP自簽的用戶(hù)證書(shū),也一樣能夠 保障用戶(hù)標(biāo)識(shí)的唯一性與合法性,并不存在身份偽造的可能性,因?yàn)椋cPKI體系不同,用 戶(hù)證書(shū)是與一個(gè)統(tǒng)一資源標(biāo)識(shí)(URI)綁定的,而PKI體系中的用戶(hù)標(biāo)識(shí)是包含在用戶(hù)證書(shū) 內(nèi)的??蛇x地,本發(fā)明實(shí)施例的方法還包括采用自動(dòng)認(rèn)證方式對(duì)用戶(hù)進(jìn)行認(rèn)證。自動(dòng)登 錄認(rèn)證可以認(rèn)為就是SS0(Single Sign 0η,單點(diǎn)登錄認(rèn)證),即用戶(hù)只需登錄一次,就可以 訪問(wèn)其他網(wǎng)站,但SSO方式有很多。本發(fā)明可以支持非用戶(hù)干預(yù)的、自動(dòng)的用戶(hù)認(rèn)證和登錄 方式,在用戶(hù)代理UA的設(shè)置選項(xiàng)上,可以提供以下設(shè)置選項(xiàng)1、是否使用自動(dòng)身份認(rèn)證 2、選擇用戶(hù)身份標(biāo)識(shí),該標(biāo)識(shí)用于自動(dòng)登錄認(rèn)證。選擇用戶(hù)標(biāo)識(shí)并不是必要的,但是大多數(shù)情況下都需要選擇用戶(hù)標(biāo)識(shí),例如用戶(hù) 和家人公用了一臺(tái)電腦,在網(wǎng)吧使用了公共電腦,或者用戶(hù)有多個(gè)IDP的賬號(hào),這些情況都 會(huì)對(duì)用戶(hù)標(biāo)識(shí)進(jìn)行選擇。3、受信任應(yīng)用網(wǎng)站列表在自動(dòng)認(rèn)證方式下,用戶(hù)代理UA接收的所有涉及本發(fā)明實(shí)施例認(rèn)證方法的交互 操作都在后臺(tái)進(jìn)行,在非用戶(hù)干預(yù)的情況下進(jìn)行身份認(rèn)證,這樣可以給用戶(hù)提供更加便捷 身份認(rèn)證功能和體驗(yàn)。在大多數(shù)情況下,有條件的自動(dòng)登錄認(rèn)證是非常重要的,例如以下場(chǎng)景今用戶(hù)訪問(wèn)應(yīng)用網(wǎng)站A;今應(yīng)用網(wǎng)站A要求用戶(hù)進(jìn)行身份認(rèn)證;今用戶(hù)代理UA要求用戶(hù)選擇一個(gè)合適的用戶(hù)身份標(biāo)識(shí)(用戶(hù)標(biāo)識(shí)和私鑰始終是綁定的,不同的標(biāo)識(shí)對(duì)應(yīng)不同的私鑰),同時(shí)要求用戶(hù)輸入該標(biāo)識(shí)的密碼保護(hù)(如果不是一 個(gè)私人的計(jì)算機(jī),用戶(hù)的身份就需要保護(hù),密碼保護(hù)就是使用密碼對(duì)用戶(hù)的私鑰進(jìn)行加密, 只有輸入了正確的密碼,才能使用該用戶(hù)的私鑰進(jìn)行登錄認(rèn)證);今用戶(hù)代理提交認(rèn)證請(qǐng)求到應(yīng)用網(wǎng)站A,完成認(rèn)證過(guò)程;今用戶(hù)訪問(wèn)應(yīng)用網(wǎng)站B;......今用戶(hù)訪問(wèn)應(yīng)用網(wǎng)站C;............采用上述方式,用戶(hù)每次訪問(wèn)不同的應(yīng)用網(wǎng)站時(shí),用戶(hù)代理UA都要求用戶(hù)進(jìn)行認(rèn) 證操作,這樣的用戶(hù)體驗(yàn)是非常差的,所以,一般情況下建議,在用戶(hù)代理(UA,一般為瀏覽 器Browser)的一個(gè)窗口(主進(jìn)程)不關(guān)閉的情況下,在窗口的選項(xiàng)卡中訪問(wèn)其他應(yīng)用網(wǎng) 站,如果該應(yīng)用站點(diǎn)在受信任應(yīng)用網(wǎng)站列表中,則采用自動(dòng)認(rèn)證方式,實(shí)現(xiàn)更具普遍意義的 單點(diǎn)登錄認(rèn)證(SSO, Single Sign ON)??蛇x地,本發(fā)明實(shí)施例的方法還支持非自動(dòng)認(rèn)證方式并實(shí)現(xiàn)與表單認(rèn)證結(jié)合,使 用戶(hù)能夠選擇不同的認(rèn)證方式。如果在用戶(hù)代理的選項(xiàng)中設(shè)置為不使用自動(dòng)登錄認(rèn)證,或 者一般情況下,用戶(hù)開(kāi)始了一個(gè)新的用戶(hù)代理UA(—般為瀏覽器Browser)窗口的情況下, 使用非自動(dòng)登錄認(rèn)證方式。在非自動(dòng)認(rèn)證方式下,用戶(hù)利用用戶(hù)代理訪問(wèn)應(yīng)用網(wǎng)站,用戶(hù)代理可以接受來(lái)自 應(yīng)用網(wǎng)站的認(rèn)證質(zhì)詢(xún)(Challenge),用戶(hù)代理可以提供一種交互功能,讓用戶(hù)選擇身份標(biāo) 識(shí),并輸入該標(biāo)識(shí)的密碼保護(hù),然后用戶(hù)代理利用該用戶(hù)標(biāo)識(shí)完成用戶(hù)的身份認(rèn)證過(guò)程?,F(xiàn)有技術(shù)的UA在接收到認(rèn)證質(zhì)詢(xún)后,會(huì)呈現(xiàn)一個(gè)模式對(duì)話(huà)框(Modal Dialog), 請(qǐng)參閱圖6,用戶(hù)必須對(duì)該模式對(duì)話(huà)框(Modal Dialog)做出響應(yīng),輸入或者選擇必要的認(rèn) 證信息后,交由用戶(hù)代理UA完成身份認(rèn)證過(guò)程,但是由用戶(hù)代理或者用戶(hù)代理的宿主系統(tǒng) 提供的模式對(duì)話(huà)框,通常是簡(jiǎn)單、單調(diào)、缺乏一些豐富的輔助功能給最終用戶(hù)。而表單認(rèn)證 (Form Login)所能夠帶給用戶(hù)的價(jià)值,也成為其流行的原因。表單是HTML文本,可以包含 豐富的界面和功能,用戶(hù)感覺(jué)更友好。本發(fā)明實(shí)施例通過(guò)改變用戶(hù)代理的交互模式,簡(jiǎn)少了用戶(hù)干預(yù)的次數(shù),可選地,為 了兼容現(xiàn)有的表單認(rèn)證方式,還將傳統(tǒng)的表單認(rèn)證和本發(fā)明實(shí)施例的基于質(zhì)詢(xún)的認(rèn)證方式 有機(jī)的結(jié)合在一起。對(duì)此,本發(fā)明實(shí)施例的方法能取得以下有益技術(shù)效果1、用戶(hù)代理不使用模式對(duì)話(huà)框與用戶(hù)交互,完成用戶(hù)身份認(rèn)證過(guò)程;2、應(yīng)用網(wǎng)站通過(guò)HTTP 401 Unauthorized返回表單認(rèn)證頁(yè)面,而不是HTTP2000K ; 這樣該認(rèn)證頁(yè)面中就可以含有一個(gè)認(rèn)證質(zhì)詢(xún)(Challenge);3、用戶(hù)代理在方便而且顯著的位置呈現(xiàn)用戶(hù)對(duì)該認(rèn)證質(zhì)詢(xún)操作的快捷方式,如按 鈕等,用戶(hù)點(diǎn)了這個(gè)按鈕就自動(dòng)認(rèn)證,或者多用戶(hù)的情況下,彈出選擇用戶(hù)身份的對(duì)話(huà)框或 用戶(hù)界面;4、用戶(hù)代理能夠在呈現(xiàn)本發(fā)明實(shí)施例的認(rèn)證快捷按鈕的同時(shí)呈現(xiàn)出表單認(rèn)證的 用戶(hù)界面。因?yàn)橛脩?hù)不一定擁有UUL IDP賬號(hào),在沒(méi)有IDP賬號(hào)的情況下,只能使用RP提 供的賬號(hào)進(jìn)行傳統(tǒng)的表單登錄。例如,如果QQ ^ne支持UUL登錄,而用戶(hù)沒(méi)有UUL IDP提供的賬號(hào),則仍然可以使用傳統(tǒng)QQ賬號(hào)登錄該用戶(hù)的QQ Zone,從而為用戶(hù)提供了便利,實(shí) 現(xiàn)了對(duì)傳統(tǒng)登錄方式的兼容。圖7為含有表單的認(rèn)證質(zhì)詢(xún)界面,圖8為用戶(hù)選擇一個(gè)身份標(biāo)識(shí)進(jìn)行身份認(rèn)證的 界面。在圖7和圖8中,在點(diǎn)擊用戶(hù)地址欄的登錄按鈕后,就會(huì)彈出一個(gè)UUL列表供用戶(hù)選 擇一個(gè)登錄的身份UUL,用來(lái)呈現(xiàn)和收集用戶(hù)的選擇和輸入的信息。用戶(hù)代理可以利用用戶(hù) 的輸入和選擇的結(jié)果,獲得用戶(hù)標(biāo)識(shí)(UUL)以及用戶(hù)的私鑰信息,完成本發(fā)明所述認(rèn)證方 法的認(rèn)證過(guò)程。用戶(hù)代理UA經(jīng)過(guò)以上改變后,用戶(hù)可以選擇使用戶(hù)本發(fā)明中所涉及的認(rèn)證 方法,也可以使用傳統(tǒng)的表單認(rèn)證方法,并且可以在表單界面中提供更友好的用戶(hù)界面和 更有價(jià)值的用戶(hù)功能。可選地,本發(fā)明實(shí)施例的方法還支持個(gè)性化用戶(hù)標(biāo)識(shí)與IDP服務(wù)發(fā)現(xiàn) (Discovery) 0目前,多數(shù)互聯(lián)網(wǎng)用戶(hù)都有個(gè)人的博客,個(gè)人博客的地址作為一個(gè)用戶(hù)的重 要標(biāo)識(shí),需要能夠作為可認(rèn)證的用戶(hù)身份標(biāo)識(shí)而存在,但是,博客服務(wù)提供者并不一定能夠 提供用戶(hù)身份的認(rèn)證服務(wù),本發(fā)明實(shí)施例的方法提供一種簡(jiǎn)單的服務(wù)發(fā)現(xiàn)機(jī)制,只要在個(gè) 人博客的主頁(yè)(用戶(hù)標(biāo)識(shí)URL所對(duì)應(yīng)的網(wǎng)頁(yè))上描述IDP服務(wù)的入口地址,就可以通過(guò)該 描述去發(fā)現(xiàn)IDP的服務(wù)。這樣,即便如Wordpress這樣的沒(méi)有IDP服務(wù)的個(gè)人博客用戶(hù),也 可以使用個(gè)人博客的主頁(yè)地址作為自己的身份標(biāo)識(shí)。本發(fā)明實(shí)施例的方法可以在個(gè)人博客主頁(yè)的頭域(Header)中插入如下信息<link rel = 〃 uul. provider uul. server"(該 rel 所對(duì)應(yīng)的 href 地址就是 IDP的入口地址)href = “ http://www.someidp.com/uul/server" />〈link rel = “ uul. local_id uul. delegate"(該rel 所對(duì)應(yīng)的 href 地址是UA 的UUL,根據(jù)該UUL在IDP中查找用戶(hù)的證書(shū)信息)href =" http://someuser. someidp. com/" />這樣應(yīng)用網(wǎng)站可以通過(guò)該描述信息發(fā)現(xiàn)IDP所提供的身份認(rèn)證服務(wù)能力。上述方 法利用了 YADIS的服務(wù)發(fā)現(xiàn)能力。YADIS可以提供XRDS based Discovery以及HTML based Discovery。上述例子為 HTML based Discovery。請(qǐng)?jiān)俅螀㈤唸D4,和圖5不同的是,圖4增加了兩個(gè)步驟S405和S406,通過(guò)這兩個(gè) 步驟可以從博客中獲得IDP的服務(wù)信息,進(jìn)而從IDP獲得用戶(hù)證書(shū)。除了個(gè)人博客以外,任何一個(gè)可訪問(wèn)的URL都可以利用IDP的服務(wù)發(fā)現(xiàn)能力,成為 一個(gè)可認(rèn)證的用戶(hù)標(biāo)識(shí)。用戶(hù)可以在任何可以編輯的網(wǎng)頁(yè)上插入HTML LINK REL標(biāo)簽,該 標(biāo)簽描述了用戶(hù)的IDP服務(wù)URI和用戶(hù)的UUL,該網(wǎng)頁(yè)所在的地址就可以作為用戶(hù)的個(gè)人標(biāo) 識(shí)了。本發(fā)明實(shí)施例的方法還包括用戶(hù)標(biāo)識(shí)生成與私鑰(Private Key)的分發(fā)過(guò)程。在 IDP生成用戶(hù)證書(shū)和私鑰(Private Key)后,用戶(hù)代理UA可以通過(guò)加密信道(SSL)下載 用戶(hù)私鑰到本地,并通過(guò)設(shè)置密碼保護(hù)或者通akcure Driver (加密盤(pán))等對(duì)用戶(hù)私鑰 進(jìn)行保護(hù),也可以通過(guò)其他安全的途徑分發(fā)給最終用戶(hù),這些途徑包括但不限于USP Key、 Smart Card 以及 SIM Card。本發(fā)明實(shí)施例中用戶(hù)公鑰信息或者公鑰的獲取途徑(Discovery)的描述信息放 在用戶(hù)的主頁(yè)上(用戶(hù)標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面或者內(nèi)容),應(yīng)用網(wǎng)站RP通過(guò)訪問(wèn)用戶(hù)標(biāo)識(shí)所對(duì)應(yīng)的主頁(yè)獲得用戶(hù)的證書(shū),便可以對(duì)用戶(hù)的身份進(jìn)行認(rèn)證。本發(fā)明實(shí)施例還提供一種分布式身份認(rèn)證裝置,該裝置對(duì)應(yīng)于UA22。圖9為本發(fā) 明實(shí)施例UA的整體功能框圖。如圖9所示,該裝置90包括訪問(wèn)請(qǐng)求單元901,用于向應(yīng) 用依賴(lài)方RP發(fā)送訪問(wèn)請(qǐng)求;認(rèn)證質(zhì)詢(xún)接收單元902,用于接收所述RP返回的包含了隨機(jī)數(shù) 的認(rèn)證質(zhì)詢(xún)消息;加密單元903,用于采用私鑰1 對(duì)所述隨機(jī)數(shù)進(jìn)行加密,生成加密后的隨 機(jī)數(shù);認(rèn)證請(qǐng)求單元904,用于向所述RP發(fā)送認(rèn)證請(qǐng)求消息,所述認(rèn)證請(qǐng)求消息中攜帶所述 加密后的隨機(jī)數(shù)??蛇x地,所述訪問(wèn)請(qǐng)求單元901,用于在所述訪問(wèn)請(qǐng)求的HTTP From Header字段中 攜帶統(tǒng)一用戶(hù)標(biāo)識(shí)UUL,向應(yīng)用依賴(lài)方RP發(fā)送包含所述UUL的訪問(wèn)請(qǐng)求??蛇x地,所述認(rèn)證請(qǐng)求單元904,用于在所述認(rèn)證請(qǐng)求消息的HTTP Authorization Header字段中攜帶所述UUL,向應(yīng)用依賴(lài)方RP發(fā)送包含所述UUL的訪問(wèn)請(qǐng)求。可選地,所述認(rèn)證質(zhì)詢(xún)消息包括HTTP 401 Unauthorized消息;所述認(rèn)證質(zhì)詢(xún)消 息的WffW-Authentication Header字段中包含所述分布式身份認(rèn)證方法的標(biāo)識(shí)至少一個(gè) 非對(duì)稱(chēng)加密算法參數(shù)和認(rèn)證所需的隨機(jī)數(shù)Nonce ;所述加密單元1303,具體用于解析所述 認(rèn)證質(zhì)詢(xún)消息以得到所述分布式身份認(rèn)證方法的標(biāo)識(shí),從所述加密算法參數(shù)中選擇一個(gè)非 對(duì)稱(chēng)加密算法,采用所述私鑰1 對(duì)所述隨機(jī)數(shù)采用選擇的非對(duì)稱(chēng)加密算法進(jìn)行加密。可選 地,所述非對(duì)稱(chēng)加密算法包括RSA非對(duì)稱(chēng)加密算法或者橢圓曲線ECC非對(duì)稱(chēng)加密算法。圖10為本發(fā)明實(shí)施例UA的另一種功能框圖。和圖13的實(shí)施例不同的是,圖10的 認(rèn)證質(zhì)詢(xún)接收單元1002所接收的認(rèn)證質(zhì)詢(xún)消息中還包含用于傳統(tǒng)表單認(rèn)證的HTML表單; 并且圖10的裝置在圖9的裝置基礎(chǔ)上新增加了界面顯示單元和認(rèn)證選擇單元,用于兼容傳 統(tǒng)表單認(rèn)證的方式。具體地,圖10的裝置100包括訪問(wèn)請(qǐng)求單元1001,用于向應(yīng)用依賴(lài)方RP發(fā)送訪 問(wèn)請(qǐng)求;認(rèn)證質(zhì)詢(xún)接收單元1002,用于接收所述RP返回的認(rèn)證質(zhì)詢(xún)消息,所述認(rèn)證質(zhì)詢(xún)消 息中包含了隨機(jī)數(shù)以及用于傳統(tǒng)表單認(rèn)證的HTML表單;界面顯示單元1003,用于同時(shí)提供 傳統(tǒng)表單認(rèn)證和所述分布式身份認(rèn)證方式供用戶(hù)選擇;認(rèn)證選擇單元1004,用于當(dāng)用戶(hù)選 擇所述傳統(tǒng)表單認(rèn)證時(shí),接收用戶(hù)的表單輸入,將所述表單輸入的身份信息提交所述RP進(jìn) 行認(rèn)證;當(dāng)用戶(hù)選擇所述分布式身份認(rèn)證時(shí),接收用戶(hù)選擇的用戶(hù)身份,將所述UUL對(duì)應(yīng)的 身份信息以及加密后的隨機(jī)數(shù)提供給所述RP進(jìn)行認(rèn)證;加密單元1005,用于采用私鑰1 對(duì)所述隨機(jī)數(shù)采用非對(duì)稱(chēng)加密算法進(jìn)行加密,生成加密后的隨機(jī)數(shù);認(rèn)證請(qǐng)求單元1006, 用于對(duì)所述認(rèn)證質(zhì)詢(xún)消息做出響應(yīng),向所述RP發(fā)送認(rèn)證請(qǐng)求消息,所述認(rèn)證請(qǐng)求消息中攜 帶所述加密后的隨機(jī)數(shù);可選地,如圖10所示,該裝置100還包括設(shè)置單元1007,用于提供自動(dòng)認(rèn)證的設(shè) 置,接收用戶(hù)設(shè)置的默認(rèn)UUL;所述認(rèn)證請(qǐng)求單元1004,用于向所述RP發(fā)送攜帶有所述默認(rèn) UUL的認(rèn)證請(qǐng)求消息??蛇x地,所述界面顯示單元1003,還用于在接收到所述認(rèn)證質(zhì)詢(xún)消息后,呈現(xiàn)認(rèn)證 快捷按鍵;響應(yīng)用戶(hù)對(duì)該快捷按鍵的點(diǎn)擊操作,呈現(xiàn)用于認(rèn)證的UUL列表;所述認(rèn)證請(qǐng)求單 元1006,用于響應(yīng)用戶(hù)對(duì)所述UUL列表的選擇操作,向所述RP發(fā)送包含所述用戶(hù)選擇UUL 的認(rèn)證請(qǐng)求消息??蛇x地,所述裝置100還包括身份保護(hù)單元1008,用于對(duì)所述UUL身份提供口令保護(hù)或生物認(rèn)證保護(hù)??蛇x地,所述裝置100還包括私鑰獲取單元1009,用于通過(guò)加密信道SSL從用戶(hù) 身份提供方IDP獲取用戶(hù)私鑰文件,或者從包含所述私鑰文件的存儲(chǔ)介質(zhì)中獲取用戶(hù)私鑰 文件,所述私鑰文件中包含了私鑰I3K和統(tǒng)一用戶(hù)標(biāo)識(shí)UUL??蛇x地,所述裝置100還包括用戶(hù)信息獲取單元1010,用于根據(jù)所述UUL訪問(wèn) 用戶(hù)的基本信息,所述基本信息包含下列信息中的一種或多種組合姓名、別名、頭像、簽名 檔??蛇x地,所述裝置100還包括注冊(cè)注銷(xiāo)單元1011,用于與用戶(hù)身份提供方IDP交 互,注冊(cè)和/或注銷(xiāo)用戶(hù)的證書(shū)Cert。本發(fā)明實(shí)施例還提供一種分布式身份認(rèn)證裝置,該裝置對(duì)應(yīng)于RP23,圖11為本 發(fā)明實(shí)施例該裝置RP23的功能框圖。如圖11所示,該裝置110包括認(rèn)證質(zhì)詢(xún)發(fā)送單元 1101,用于接收用戶(hù)代理UA發(fā)送的訪問(wèn)請(qǐng)求,根據(jù)所述訪問(wèn)請(qǐng)求向所述UA返回包含隨機(jī) 數(shù)的認(rèn)證質(zhì)詢(xún)消息;認(rèn)證請(qǐng)求接收單元1102,用于接收所述UA發(fā)送的認(rèn)證請(qǐng)求消息,所述 認(rèn)證請(qǐng)求中包含所述UA采用私鑰1 對(duì)所述隨機(jī)數(shù)加密后的隨機(jī)數(shù);用戶(hù)標(biāo)識(shí)獲取單元 1103,用于從所述訪問(wèn)請(qǐng)求或所述認(rèn)證請(qǐng)求消息中獲得統(tǒng)一用戶(hù)標(biāo)識(shí)UUL;用戶(hù)證書(shū)獲取 單元1104,根據(jù)所述UUL從用戶(hù)身份提供商IDP處獲得包含了公鑰信息的用戶(hù)證書(shū)Cert ; 認(rèn)證單元1105,用于采用所述公鑰對(duì)所述加密后的隨機(jī)數(shù)進(jìn)行解密,并將解密后的隨機(jī)數(shù) 與所述認(rèn)證質(zhì)詢(xún)消息中的隨機(jī)數(shù)進(jìn)行比較,如果兩者一致則認(rèn)證通過(guò),否則,認(rèn)證失敗??蛇x地,本發(fā)明實(shí)施例的認(rèn)證質(zhì)詢(xún)消息包括HTTP 401 Unauthorized消息;在所 述認(rèn)證質(zhì)詢(xún)消息中的WffW-Authentication Header中包含非對(duì)稱(chēng)加密算法參數(shù),以供所述 UA選擇;所述UA提交的認(rèn)證請(qǐng)求中包含了 UA選擇的非對(duì)稱(chēng)加密算法。圖12為本發(fā)明實(shí) 施例認(rèn)證單元1105的細(xì)化功能框圖。如圖12所示,認(rèn)證單元1105包括解密單元1201, 用于根據(jù)所述UA選擇的非對(duì)稱(chēng)加密算法,采用所述公鑰對(duì)加密后的隨機(jī)數(shù)進(jìn)行解密;比較 單元1202,將解密后的隨機(jī)數(shù)與所述認(rèn)證質(zhì)詢(xún)消息中的隨機(jī)數(shù)進(jìn)行比較,如果兩者一致則 認(rèn)證通過(guò),否則,認(rèn)證失敗??蛇x地,本發(fā)明實(shí)施例的加密算法為RSA非對(duì)稱(chēng)加密算法或者 橢圓曲線ECC非對(duì)稱(chēng)加密算法??蛇x地,所述UUL為在所述IDP上注冊(cè)的用戶(hù)身份標(biāo)識(shí)ID ;用戶(hù)證書(shū)獲取單元 1104,用于從所述IDP中獲得與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng)的Cert。 可選地,所述UUL為包含所述IDP的服務(wù)描述信息的URL地址;所述服務(wù)描述信息 包括所述IDP的地址和所述用戶(hù)在所述IDP上注冊(cè)的用戶(hù)身份標(biāo)識(shí)ID ;所述用戶(hù)證書(shū)獲取 單元1104,用于從所述UUL對(duì)應(yīng)的URL地址中獲得IDP的服務(wù)描述信息,所述IDP的服務(wù)描 述信息包括所述IDP的地址和所述用戶(hù)在所述IDP上注冊(cè)的用戶(hù)身份標(biāo)識(shí)ID ;從所述IDP 中獲得與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng)的Cert。可選地,所述服務(wù)描述信息采用XRDS文檔或者HTML Link標(biāo)簽描述??蛇x地,所述Cert采用X. 509協(xié)議描述。本發(fā)明實(shí)施例還提供一種分布式身份認(rèn)證裝置,該裝置對(duì)應(yīng)于IDP21。圖13為本 發(fā)明實(shí)施例IDP的功能框圖。如圖13所示,該裝置130包括認(rèn)證信息提供單元1301,用 于產(chǎn)生包含公鑰信息的用戶(hù)證書(shū)Cert和私鑰文件,提供所述私鑰文件的分發(fā)機(jī)制,使用戶(hù) 代理UA通過(guò)所述分發(fā)機(jī)制獲取所述私鑰文件;證書(shū)獲取請(qǐng)求接收單元1302,用于接收應(yīng)用依賴(lài)方RP的證書(shū)獲取請(qǐng)求,所述證書(shū)獲取請(qǐng)求中包含已注冊(cè)的用戶(hù)身份標(biāo)識(shí)ID;證書(shū)發(fā)送 單元1303,用于向所述RP返回與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng)的包含了所述公鑰信息的用戶(hù) 證書(shū)Cert0可選地,所述認(rèn)證信息提供單元1301,用于提供可供下載的私鑰文件,使用戶(hù)代理 UA下載所述私鑰文件并安裝于本地;或者將所述私鑰文件存儲(chǔ)于USB存儲(chǔ)設(shè)備,使用戶(hù)代 理UA通過(guò)插接所述USB設(shè)備獲得所述私鑰文件??蛇x地,所述裝置130還包括用戶(hù)信息請(qǐng)求接收單元1304,用于接收用戶(hù)代理UA 發(fā)送包含了所述用戶(hù)身份標(biāo)識(shí)ID的用戶(hù)信息請(qǐng)求;用戶(hù)信息發(fā)送單元1305,用于根據(jù)所述 用戶(hù)身份標(biāo)識(shí)ID向所述UA返回用戶(hù)基本信息,所述基本信息包括下列的一種或多種姓 名、別名、頭像、簽名檔。可選地,所述裝置130還包括注冊(cè)注銷(xiāo)請(qǐng)求接收單元1306,用于接收UA的注冊(cè) 和/或注銷(xiāo)請(qǐng)求;注冊(cè)注銷(xiāo)單元1307,用于根據(jù)所述注冊(cè)和/或注銷(xiāo)請(qǐng)求,注冊(cè)和/或注銷(xiāo) 所述用戶(hù)的Cert。圖14為本發(fā)明實(shí)施例系統(tǒng)的一種實(shí)現(xiàn)架構(gòu)圖。本發(fā)明實(shí)施例可以通過(guò)瀏覽器插 件(ActiveX、XPcom)的方式提供對(duì)用戶(hù)代理UA側(cè)的認(rèn)證支持。對(duì)于應(yīng)用網(wǎng)站RP側(cè),可以 提供一組多平臺(tái)、多語(yǔ)言的標(biāo)準(zhǔn)化的認(rèn)證組件框架,用來(lái)支持本發(fā)明實(shí)施例所涉及的認(rèn)證 方法。另外在一些非安全的網(wǎng)絡(luò)環(huán)境中,可以結(jié)合一些強(qiáng)認(rèn)證技術(shù),用來(lái)保護(hù)用戶(hù)身份和私 鑰的安全,包括但不限于以下一些技術(shù)生物認(rèn)證、USB key、Smart Card已經(jīng)SIM Card。本發(fā)明實(shí)施例可以基于SIP協(xié)議實(shí)現(xiàn),SIP是一個(gè)開(kāi)放的,分布的呼叫控制協(xié)議, 基于本發(fā)明實(shí)施例提供的UUL認(rèn)證技術(shù),可以實(shí)現(xiàn)SIP協(xié)議的雙向用戶(hù)認(rèn)證,相對(duì)于HTTP Digest認(rèn)證,UUL與SIM卡結(jié)合在一起,就可以實(shí)現(xiàn)更加安全方便的用戶(hù)認(rèn)證機(jī)制。綜上所述,本發(fā)明實(shí)施例提供的分布式身份認(rèn)證技術(shù)方案,用戶(hù)身份實(shí)現(xiàn)了可攜 帶(Portability),即可以使用該身份登錄到任何支持本發(fā)明認(rèn)證方法的網(wǎng)站,使用方法更 加簡(jiǎn)單、方便,豐富及改善了用戶(hù)認(rèn)證體驗(yàn)。具體地,本發(fā)明實(shí)施例提供的分布式身份認(rèn)證 技術(shù)具有以下特點(diǎn)并取得了如下有益的技術(shù)效果(1)本發(fā)明實(shí)施例的方法為每個(gè)用戶(hù)分配一個(gè)UUL(通常為統(tǒng)一資源標(biāo)識(shí)URI), 通過(guò)該URL可以獲得一個(gè)確定的用戶(hù)證書(shū);該證書(shū)與一個(gè)公鑰(Public Key)唯一對(duì)應(yīng);通 過(guò)非對(duì)稱(chēng)加密算法,用戶(hù)證書(shū)與用戶(hù)私鑰(Private Key)可以相互驗(yàn)證;采用“用戶(hù)標(biāo)識(shí) (URI)=>用戶(hù)證書(shū)= >用戶(hù)私鑰(Private Key)= >用戶(hù)”的方式對(duì)用戶(hù)身份進(jìn)行驗(yàn)證。因?yàn)閁RI具有唯一的可訪問(wèn)性,如果想要篡改用戶(hù)身份標(biāo)識(shí),只有如下兩種比較 大的可能性a、DNS 劫持;b、篡改用戶(hù)主頁(yè)(用戶(hù)身份標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面或內(nèi)容)。一般情況下,以上兩種情況都不會(huì)發(fā)生,所以,一個(gè)IDP自簽的用戶(hù)證書(shū)所驗(yàn)證的 用戶(hù)標(biāo)識(shí)(URI)也是一般情況下是可信的。因此,PKI的層級(jí)結(jié)構(gòu)在本發(fā)明實(shí)施例的方法 中并不是一個(gè)必要的條件,這樣可以大大地促進(jìn)πα的普及與發(fā)展。(2)本發(fā)明實(shí)施例中統(tǒng)一用戶(hù)標(biāo)識(shí)UUL中所提供的用戶(hù)信息、用戶(hù)證書(shū)、用戶(hù)標(biāo)識(shí) 可能提供的其他服務(wù),既可以基于^dis的發(fā)現(xiàn)機(jī)制獲得,也可以采用其它的服務(wù)發(fā)現(xiàn)機(jī) 制,如Html Based Discovery (基于Html的服務(wù)發(fā)現(xiàn)機(jī)制)。
(3)本發(fā)明實(shí)施例的認(rèn)證方法,使用基于質(zhì)詢(xún)(rfc 2617)的認(rèn)證協(xié)商機(jī)制,從而 可以有效的解決OpenID存在的第一類(lèi)缺陷,首先、由于RFC2617規(guī)定了算法協(xié)商,所以可提 供認(rèn)證方法及加密算法協(xié)商;其次、由于RFC2617規(guī)定了參數(shù)選項(xiàng),所以可提供認(rèn)證方式上 的一些參數(shù)選項(xiàng);最后、基于HTTP協(xié)議的擴(kuò)展可以更好的規(guī)范化認(rèn)證協(xié)議。另外,采用本 發(fā)明實(shí)施例的非對(duì)稱(chēng)加密認(rèn)證方法,由RP利用公鑰技術(shù)對(duì)最終用戶(hù)認(rèn)證,可以有效的解決 OpenID存在的第二類(lèi)缺陷,使著分布式認(rèn)證過(guò)程更簡(jiǎn)單、方便、安全。(4)本發(fā)明實(shí)施例的用戶(hù)信息和證書(shū)是分離的。在DNS不被劫持的情況下,URI也 是不能篡改的。在必要的情況下,本發(fā)明實(shí)施例可以使用權(quán)威的CA對(duì)用戶(hù)證書(shū)進(jìn)行簽名, 可以防止因DNS劫持或網(wǎng)頁(yè)被篡改造成的隱私泄露,而OpenID是不能防止這些漏洞的,因 此,本發(fā)明實(shí)施例的認(rèn)證方法更加安全。(5)本發(fā)明實(shí)施例的方法可以通過(guò)全局用戶(hù)標(biāo)識(shí)(URI)獲得用戶(hù)證書(shū),而不是把 用戶(hù)標(biāo)識(shí)局限在用戶(hù)證書(shū)內(nèi),因?yàn)閁RI具有全局唯一性,所以即便是IDP自簽的用戶(hù)證書(shū), 同樣具有身份唯一性的效果,而不需要CA的層層簽名和授權(quán)。(6)本發(fā)明實(shí)施例的方法通過(guò)全局用戶(hù)標(biāo)識(shí)(URI)獲得用戶(hù)證書(shū),使得證書(shū)的獲 取和分發(fā)更加容易。本發(fā)明實(shí)施例的方法可以通過(guò)用戶(hù)全局標(biāo)識(shí)(URI)獲得用戶(hù)的信息, 而不是把信息附著在用戶(hù)證書(shū)上,信息的附著的數(shù)量以及信息的變化頻度不再是一個(gè)不可 解決的問(wèn)題。例如,可以同時(shí)獲得證書(shū)信息和其他關(guān)于用戶(hù)的附加信息(在用戶(hù)已公開(kāi)這 些附加信息的前提下),包括但不限定于頭像、姓名、年齡、電話(huà)號(hào)碼等。(7)本發(fā)明實(shí)施例的方法通過(guò)采用非對(duì)稱(chēng)加密算法,擴(kuò)展rfd617基于http質(zhì)詢(xún) (Challenge)的認(rèn)證方式,通過(guò)RP與UA之間的質(zhì)詢(xún)一響應(yīng)方式,利用用戶(hù)的公鑰與私鑰信 息,采用非對(duì)稱(chēng)加密算法進(jìn)行認(rèn)證。由于應(yīng)用網(wǎng)站RP可以利用用戶(hù)標(biāo)識(shí)的URI (Universal Resource Identifier)訪問(wèn)一個(gè)去中心化的(Decentralized)用戶(hù)身份提供方IDP上的用 戶(hù)信息,因此可以實(shí)現(xiàn)與用戶(hù)身份提供方IDP無(wú)關(guān)的分布式認(rèn)證功能。與IDP無(wú)關(guān)是指,無(wú) 需知道關(guān)于任何IDP的任何信息,任何IDP的用戶(hù)都可以登錄到該應(yīng)用網(wǎng)站。(8)本發(fā)明實(shí)施例還優(yōu)化了用戶(hù)代理(一般為瀏覽器Browser)對(duì)http 401認(rèn)證 質(zhì)詢(xún)(Challenge)的響應(yīng)方式,改變了 UA (瀏覽器)對(duì)認(rèn)證質(zhì)詢(xún)的交互方式,從而可同時(shí)使 用傳統(tǒng)表單登錄和本發(fā)明所涉及的認(rèn)證質(zhì)詢(xún)方式登錄,不再?gòu)棾鰝鹘y(tǒng)模式對(duì)話(huà)框。使得基 于Challenge的認(rèn)證方式同基于表單(Form)的認(rèn)證方式可以有機(jī)的結(jié)合在一起,用戶(hù)認(rèn)證 更加簡(jiǎn)單、方便、靈活,帶來(lái)了更好的用戶(hù)認(rèn)證體驗(yàn)。(9)本發(fā)明實(shí)施例的方法、裝置與系統(tǒng)對(duì)網(wǎng)絡(luò)安全以及網(wǎng)絡(luò)分級(jí)等應(yīng)用有著重要 意義。在目前的互聯(lián)網(wǎng)上充斥著各種各樣的內(nèi)容,有些內(nèi)容對(duì)于青少年以及兒童是存在負(fù) 面影響,所以網(wǎng)絡(luò)內(nèi)容分級(jí)十分重要。通過(guò)采用本發(fā)明實(shí)施例的UUL認(rèn)證技術(shù),學(xué)?;蛘邔W(xué) 校托管于授信的用戶(hù)身份提供商IDP,可以提供學(xué)生用戶(hù)的身份證書(shū),該證書(shū)中可以包含用 戶(hù)的“名字”與“出生年份”信息(參見(jiàn)Rfc2527),學(xué)生用戶(hù)的私鑰可以使用USB key或者 Smart Card的形式發(fā)放,在網(wǎng)吧或者公共圖書(shū)館等開(kāi)放上網(wǎng)環(huán)境中使用UUL認(rèn)證方式訪問(wèn) 網(wǎng)絡(luò),從而應(yīng)用服務(wù)器就可以有針對(duì)性地提供相應(yīng)級(jí)別的分級(jí)內(nèi)容給相匹配的學(xué)生用戶(hù), 有利于為青少年?duì)I造綠色、健康的網(wǎng)絡(luò)環(huán)境。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以 通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁 碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory, RAM)等。 以上實(shí)施例僅用以說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,而非對(duì)其限制;盡管參照前述 實(shí)施例對(duì)本發(fā)明實(shí)施例進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以 對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而 這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實(shí)施例各實(shí)施例技術(shù)方案的精 神和范圍。
權(quán)利要求
1.一種分布式身份認(rèn)證方法,其特征在于,所述方法包括 向應(yīng)用依賴(lài)方RP發(fā)送訪問(wèn)請(qǐng)求;接收所述RP返回的包含了隨機(jī)數(shù)的認(rèn)證質(zhì)詢(xún)消息;采用私鑰Hi對(duì)所述隨機(jī)數(shù)進(jìn)行加密,生成加密后的隨機(jī)數(shù);向所述RP發(fā)送認(rèn)證請(qǐng)求消息,所述認(rèn)證請(qǐng)求消息中攜帶所述加密后的隨機(jī)數(shù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述訪問(wèn)請(qǐng)求的HTTP From Header字段中攜帶統(tǒng)一用戶(hù)標(biāo)識(shí)UUL ;或者,在所述認(rèn) 證請(qǐng)求消息的HTTP Authorization Header字段中攜帶所述UUL。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述認(rèn)證質(zhì)詢(xún)消息包括HTTP401 Unauthorized消息;所述認(rèn)證質(zhì)詢(xún)消息中的Wffff-Authentication Header字段中包含 所述分布式身份認(rèn)證方法的標(biāo)識(shí)、至少一個(gè)非對(duì)稱(chēng)加密算法參數(shù)和認(rèn)證所需的隨機(jī)數(shù) Nonce ;所述采用私鑰1 對(duì)所述隨機(jī)數(shù)進(jìn)行加密包括解析所述認(rèn)證質(zhì)詢(xún)消息以得到所述分 布式身份認(rèn)證方法的標(biāo)識(shí),從所述加密算法參數(shù)中選擇一個(gè)非對(duì)稱(chēng)加密算法,采用所述私 鑰1 對(duì)所述隨機(jī)數(shù)采用選擇的非對(duì)稱(chēng)加密算法進(jìn)行加密。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述認(rèn)證質(zhì)詢(xún)消息中還包含用于傳統(tǒng)表 單認(rèn)證的HTML表單;所述方法還包括同時(shí)提供傳統(tǒng)表單認(rèn)證和所述分布式身份認(rèn)證方式供用戶(hù)選擇; 當(dāng)用戶(hù)選擇所述傳統(tǒng)表單認(rèn)證時(shí),接收用戶(hù)的表單輸入,將所述表單輸入的身份信息 提交所述RP進(jìn)行認(rèn)證;當(dāng)用戶(hù)選擇所述分布式身份認(rèn)證時(shí),接收用戶(hù)選擇的用戶(hù)身份,獲得與所述用戶(hù)身份 對(duì)應(yīng)的統(tǒng)一用戶(hù)標(biāo)識(shí)UUL以及用戶(hù)私鑰PK,將所述UUL以及加密后的隨機(jī)數(shù)提供給所述RP 進(jìn)行認(rèn)證。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括提供自動(dòng)認(rèn)證的設(shè)置, 接收用戶(hù)設(shè)置的默認(rèn)UUL;向所述RP發(fā)送認(rèn)證請(qǐng)求消息包括向所述RP發(fā)送攜帶有所述默認(rèn)UUL的認(rèn)證請(qǐng)求消
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括 在接收到所述認(rèn)證質(zhì)詢(xún)消息后,呈現(xiàn)認(rèn)證快捷按鍵;響應(yīng)用戶(hù)對(duì)該快捷按鍵的點(diǎn)擊操作,呈現(xiàn)用于認(rèn)證的UUL列表; 向所述RP發(fā)送認(rèn)證請(qǐng)求消息包括響應(yīng)用戶(hù)對(duì)所述UUL列表的選擇操作,向所述RP發(fā) 送包含所述用戶(hù)選擇UUL的認(rèn)證請(qǐng)求消息。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括通過(guò)加密信道SSL從用戶(hù)身份提供方IDP獲取用戶(hù)私鑰文件,或者從包含所述私鑰文 件的存儲(chǔ)介質(zhì)中獲取用戶(hù)私鑰文件,所述私鑰文件中包含了私鑰I3K和統(tǒng)一用戶(hù)標(biāo)識(shí)UUL。
8.一種分布式身份認(rèn)證方法,其特征在于,所述方法包括接收用戶(hù)代理UA發(fā)送的訪問(wèn)請(qǐng)求,根據(jù)所述訪問(wèn)請(qǐng)求向所述UA返回包含隨機(jī)數(shù)的認(rèn) 證質(zhì)詢(xún)消息;接收所述UA發(fā)送的認(rèn)證請(qǐng)求消息,所述認(rèn)證請(qǐng)求消息中包含所述UA采用私鑰1 對(duì)所述隨機(jī)數(shù)加密后的隨機(jī)數(shù);從所述訪問(wèn)請(qǐng)求或所述認(rèn)證請(qǐng)求消息中獲得統(tǒng)一用戶(hù)標(biāo)識(shí)UUL ; 根據(jù)所述UUL從用戶(hù)身份提供商IDP處獲得包含了公鑰信息的用戶(hù)證書(shū)Cert ; 采用所述公鑰對(duì)所述加密后的隨機(jī)數(shù)進(jìn)行解密,并將解密后的隨機(jī)數(shù)與所述認(rèn)證質(zhì)詢(xún) 消息中的隨機(jī)數(shù)進(jìn)行比較,如果兩者一致則認(rèn)證通過(guò)。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述認(rèn)證質(zhì)詢(xún)消息包括HTTP401 Unauthorized消息;在所述認(rèn)證質(zhì)詢(xún)消息中的WffW-Authentication Header中包含非對(duì)稱(chēng) 加密算法參數(shù),以供所述UA選擇;UA提交的所述認(rèn)證請(qǐng)求中包含了 UA選擇的非對(duì)稱(chēng)加密算法;根據(jù)所述UA選擇的非對(duì) 稱(chēng)加密算法,采用所述公鑰對(duì)加密后的隨機(jī)數(shù)進(jìn)行解密。
10.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述UUL為在所述IDP上注冊(cè)的用戶(hù)身 份標(biāo)識(shí)ID ;根據(jù)所述UUL從用戶(hù)身份提供商IDP處獲得包含了公鑰信息的用戶(hù)證書(shū)Cert包括從 所述IDP中獲得與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng)的Cert。
11.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述UUL為包含所述IDP的服務(wù)描述信 息的URL地址;所述服務(wù)描述信息包括所述IDP的地址和所述用戶(hù)在所述IDP上注冊(cè)的用 戶(hù)身份標(biāo)識(shí)ID ;根據(jù)所述UUL從用戶(hù)身份提供商IDP處獲得包含了公鑰信息的用戶(hù)證書(shū)Cert還包括 從所述UUL對(duì)應(yīng)的URL地址中獲得IDP的服務(wù)描述信息,所述IDP的服務(wù)描述信息包 括所述IDP的地址和所述用戶(hù)在所述IDP上注冊(cè)的用戶(hù)身份標(biāo)識(shí)ID ; 從所述IDP中獲得與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng)的Cert。
12.—種分布式身份認(rèn)證方法,其特征在于,所述方法包括產(chǎn)生包含公鑰信息的用戶(hù)證書(shū)Cert和私鑰文件,提供所述私鑰文件的分發(fā)機(jī)制,使用 戶(hù)代理UA通過(guò)所述分發(fā)機(jī)制獲取所述私鑰文件;接收應(yīng)用依賴(lài)方RP的證書(shū)獲取請(qǐng)求,所述證書(shū)獲取請(qǐng)求中包含已注冊(cè)的用戶(hù)身份標(biāo) 識(shí)ID ;向所述RP返回與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng)的包含了所述公鑰信息的用戶(hù)證書(shū)Cert。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述提供所述私鑰文件的分發(fā)機(jī)制,使 用戶(hù)代理UA通過(guò)所述分發(fā)機(jī)制獲取所述私鑰文件包括提供可供下載的私鑰文件,使用戶(hù)代理UA下載所述私鑰文件并安裝于本地;或者 將所述私鑰文件存儲(chǔ)于USB存儲(chǔ)設(shè)備,使用戶(hù)代理UA通過(guò)插接所述USB設(shè)備獲得所述 私鑰文件。
14.一種分布式身份認(rèn)證裝置,其特征在于,所述裝置包括 訪問(wèn)請(qǐng)求單元,用于向應(yīng)用依賴(lài)方RP發(fā)送訪問(wèn)請(qǐng)求;認(rèn)證質(zhì)詢(xún)接收單元,用于接收所述RP返回的包含了隨機(jī)數(shù)的認(rèn)證質(zhì)詢(xún)消息; 加密單元,用于采用私鑰Hi對(duì)所述隨機(jī)數(shù)進(jìn)行加密,生成加密后的隨機(jī)數(shù); 認(rèn)證請(qǐng)求單元,用于向所述RP發(fā)送認(rèn)證請(qǐng)求消息,所述認(rèn)證請(qǐng)求消息中攜帶所述加密 后的隨機(jī)數(shù)。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述訪問(wèn)請(qǐng)求單元,用于在所述訪問(wèn)請(qǐng)求的HTTP From Header字段中攜帶統(tǒng)一用戶(hù)標(biāo) 識(shí)UUL,向應(yīng)用依賴(lài)方RP發(fā)送包含所述UUL的訪問(wèn)請(qǐng)求;或者,所述認(rèn)證請(qǐng)求單元,用于在所述認(rèn)證請(qǐng)求消息的HTTP Authorization Header字段中 攜帶所述UUL,向應(yīng)用依賴(lài)方RP發(fā)送包含所述UUL的訪問(wèn)請(qǐng)求。
16.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述認(rèn)證質(zhì)詢(xún)消息包括HTTP401 Unauthorized消息;所述認(rèn)證質(zhì)詢(xún)消息中的Wffff-Authentication Header字段中包含 所述分布式身份認(rèn)證方法的標(biāo)識(shí)、至少一個(gè)非對(duì)稱(chēng)加密算法參數(shù)和認(rèn)證所需的隨機(jī)數(shù) Nonce ;所述加密單元,具體用于解析所述認(rèn)證質(zhì)詢(xún)消息以得到所述分布式身份認(rèn)證方法的標(biāo) 識(shí),從所述加密算法參數(shù)中選擇一個(gè)非對(duì)稱(chēng)加密算法,采用所述私鑰1 對(duì)所述隨機(jī)數(shù)采用 選擇的非對(duì)稱(chēng)加密算法進(jìn)行加密。
17.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述認(rèn)證質(zhì)詢(xún)消息中還包含用于傳統(tǒng) 表單認(rèn)證的HTML表單;所述裝置還包括界面顯示單元,用于同時(shí)提供傳統(tǒng)表單認(rèn)證和所述分布式身份認(rèn)證方式供用戶(hù)選擇;認(rèn)證選擇單元,用于當(dāng)用戶(hù)選擇所述傳統(tǒng)表單認(rèn)證時(shí),接收用戶(hù)的表單輸入,將所述表 單輸入的身份信息提交所述RP進(jìn)行認(rèn)證;當(dāng)用戶(hù)選擇所述分布式身份認(rèn)證時(shí),接收用戶(hù)選 擇的用戶(hù)身份,獲得與所述用戶(hù)身份對(duì)應(yīng)的統(tǒng)一用戶(hù)標(biāo)識(shí)UUL以及用戶(hù)私鑰1 ,將所述UUL 對(duì)應(yīng)的身份信息以及加密后的隨機(jī)數(shù)提供給所述RP進(jìn)行認(rèn)證。
18.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述裝置還包括設(shè)置單元,用于提供自動(dòng)認(rèn)證的設(shè)置,接收用戶(hù)設(shè)置的默認(rèn)UUL;所述認(rèn)證請(qǐng)求單元,用于向所述RP發(fā)送攜帶有所述默認(rèn)UUL的認(rèn)證請(qǐng)求消息。
19.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述界面顯示單元,還用于在接收到所述認(rèn)證質(zhì)詢(xún)消息后,呈現(xiàn)認(rèn)證快捷按鍵;響應(yīng)用 戶(hù)對(duì)該快捷按鍵的點(diǎn)擊操作,呈現(xiàn)用于認(rèn)證的UUL列表;所述認(rèn)證請(qǐng)求單元,用于響應(yīng)用戶(hù)對(duì)所述UUL列表的選擇操作,向所述RP發(fā)送包含所 述用戶(hù)選擇UUL的認(rèn)證請(qǐng)求消息。
20.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述裝置還包括私鑰獲取單元,用于通過(guò)加密信道SSL從用戶(hù)身份提供方IDP獲取用戶(hù)私鑰文件,或者 從包含所述私鑰文件的存儲(chǔ)介質(zhì)中獲取用戶(hù)私鑰文件,所述私鑰文件中包含了私鑰Hi和 統(tǒng)一用戶(hù)標(biāo)識(shí)UUL。
21.—種分布式身份認(rèn)證裝置,其特征在于,所述裝置包括認(rèn)證質(zhì)詢(xún)發(fā)送單元,用于接收用戶(hù)代理UA發(fā)送的訪問(wèn)請(qǐng)求,根據(jù)所述訪問(wèn)請(qǐng)求向所述 UA返回包含隨機(jī)數(shù)的認(rèn)證質(zhì)詢(xún)消息;認(rèn)證請(qǐng)求接收單元,用于接收所述UA發(fā)送的認(rèn)證請(qǐng)求消息,所述認(rèn)證請(qǐng)求消息中包含 所述UA采用私鑰1 對(duì)所述隨機(jī)數(shù)加密后的隨機(jī)數(shù);用戶(hù)標(biāo)識(shí)獲取單元,用于從所述訪問(wèn)請(qǐng)求或所述認(rèn)證請(qǐng)求消息中獲得統(tǒng)一用戶(hù)標(biāo)識(shí)UUL ;用戶(hù)證書(shū)獲取單元,根據(jù)所述UUL從用戶(hù)身份提供商IDP處獲得包含了公鑰信息的用 戶(hù)證書(shū)Cert ;認(rèn)證單元,用于采用所述公鑰對(duì)所述加密后的隨機(jī)數(shù)進(jìn)行解密,并將解密后的隨機(jī)數(shù) 與所述認(rèn)證質(zhì)詢(xún)消息中的隨機(jī)數(shù)進(jìn)行比較,如果兩者一致則認(rèn)證通過(guò)。
22.根據(jù)權(quán)利要求21所述的裝置,其特征在于,所述認(rèn)證質(zhì)詢(xún)消息包括HTTP401 Unauthorized消息;在所述認(rèn)證質(zhì)詢(xún)消息中的WffW-Authentication Header中包含非對(duì)稱(chēng) 加密算法參數(shù),以供所述UA選擇;所述UA提交的認(rèn)證請(qǐng)求中包含了 UA選擇的非對(duì)稱(chēng)加密 算法;所述認(rèn)證單元包括解密單元,用于根據(jù)所述UA選擇的非對(duì)稱(chēng)加密算法,采用所述公鑰對(duì)加密后的隨機(jī)數(shù) 進(jìn)行解密。
23.根據(jù)權(quán)利要求21所述的裝置,其特征在于,所述UUL為在所述IDP上注冊(cè)的用戶(hù)身 份標(biāo)識(shí)ID ;用戶(hù)證書(shū)獲取單元,用于從所述IDP中獲得與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng)的Cert。
24.根據(jù)權(quán)利要求21所述的裝置,其特征在于,所述UUL為包含所述IDP的服務(wù)描述信 息的URL地址;所述服務(wù)描述信息包括所述IDP的地址和所述用戶(hù)在所述IDP上注冊(cè)的用 戶(hù)身份標(biāo)識(shí)ID ;所述用戶(hù)證書(shū)獲取單元,用于從所述UUL對(duì)應(yīng)的URL地址中獲得IDP的服務(wù)描述信息, 所述IDP的服務(wù)描述信息包括所述IDP的地址和所述用戶(hù)在所述IDP上注冊(cè)的用戶(hù)身份標(biāo) 識(shí)ID ;從所述IDP中獲得與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng)的Cert。
25.—種分布式身份認(rèn)證裝置,其特征在于,所述裝置包括認(rèn)證信息提供單元,用于產(chǎn)生包含公鑰信息的用戶(hù)證書(shū)Cert和私鑰文件,提供所述私 鑰文件的分發(fā)機(jī)制,使用戶(hù)代理UA通過(guò)所述分發(fā)機(jī)制獲取所述私鑰文件;證書(shū)獲取請(qǐng)求接收單元,用于接收應(yīng)用依賴(lài)方RP的證書(shū)獲取請(qǐng)求,所述證書(shū)獲取請(qǐng)求 中包含已注冊(cè)的用戶(hù)身份標(biāo)識(shí)ID ;證書(shū)發(fā)送單元,用于向所述RP返回與所述用戶(hù)身份標(biāo)識(shí)ID對(duì)應(yīng)的包含了所述公鑰信 息的用戶(hù)證書(shū)Cert。
26.根據(jù)權(quán)利要求25所述的裝置,其特征在于,所述認(rèn)證信息提供單元,用于提供可供下載的私鑰文件,使用戶(hù)代理UA下載所述私鑰 文件并安裝于本地;或者將所述私鑰文件存儲(chǔ)于USB存儲(chǔ)設(shè)備,使用戶(hù)代理UA通過(guò)插接所 述USB設(shè)備獲得所述私鑰文件。
27.—種分布式身份認(rèn)證系統(tǒng),其特征在于,所述系統(tǒng)包括用戶(hù)身份提供方IDP、用戶(hù) 代理UA,以及應(yīng)用依賴(lài)方RP;所述IDP,用于產(chǎn)生包含公鑰信息的用戶(hù)證書(shū)Cert和私鑰文件,提供所述私鑰文件的 分發(fā)機(jī)制,使用戶(hù)代理UA通過(guò)所述分發(fā)機(jī)制獲取所述私鑰文件;接收應(yīng)用依賴(lài)方RP的證書(shū) 獲取請(qǐng)求,所述證書(shū)獲取請(qǐng)求中包含已注冊(cè)的用戶(hù)身份標(biāo)識(shí)ID ;向所述RP返回與所述用戶(hù) 身份標(biāo)識(shí)ID對(duì)應(yīng)的包含了所述公鑰信息的用戶(hù)證書(shū)Cert ;所述RP,用于接收用戶(hù)代理UA發(fā)送的訪問(wèn)請(qǐng)求,根據(jù)所述訪問(wèn)請(qǐng)求向所述UA返回包 含隨機(jī)數(shù)的認(rèn)證質(zhì)詢(xún)消息;接收所述UA發(fā)送的認(rèn)證請(qǐng)求消息,所述認(rèn)證請(qǐng)求消息中包含所 述UA采用私鑰1 對(duì)所述隨機(jī)數(shù)加密后的隨機(jī)數(shù);從所述訪問(wèn)請(qǐng)求或所述認(rèn)證請(qǐng)求消息中 獲得統(tǒng)一用戶(hù)標(biāo)識(shí)UUL ;根據(jù)所述UUL從用戶(hù)身份提供商IDP處獲得包含了公鑰信息的用 戶(hù)證書(shū)Cert ;采用所述公鑰對(duì)所述加密后的隨機(jī)數(shù)進(jìn)行解密,并將解密后的隨機(jī)數(shù)與所述認(rèn)證質(zhì)詢(xún)消息中的隨機(jī)數(shù)進(jìn)行比較,如果兩者一致則認(rèn)證通過(guò)。
全文摘要
本發(fā)明實(shí)施例提供一種分布式身份認(rèn)證方法、裝置與系統(tǒng),該方法包括UA向應(yīng)用依賴(lài)方RP發(fā)送訪問(wèn)請(qǐng)求;接收RP返回的包含了隨機(jī)數(shù)的認(rèn)證質(zhì)詢(xún)消息;采用私鑰PK對(duì)隨機(jī)數(shù)進(jìn)行加密,生成加密后的隨機(jī)數(shù);向RP發(fā)送攜帶加密后的隨機(jī)數(shù)的認(rèn)證請(qǐng)求消息,使RP對(duì)加密后的隨機(jī)數(shù)進(jìn)行解密,并比較解密后的隨機(jī)數(shù)與認(rèn)證質(zhì)詢(xún)消息中的隨機(jī)數(shù),若兩者一致則認(rèn)證通過(guò)。由于RP驗(yàn)證用戶(hù)身份所需的公鑰信息可由用戶(hù)標(biāo)識(shí)UUL直接或者間接獲得,所以RP對(duì)用戶(hù)身份驗(yàn)證與身份提供方IDP無(wú)關(guān),從而實(shí)現(xiàn)分布式身份認(rèn)證。該技術(shù)方案能提供更安全、簡(jiǎn)便、高效的分布式身份認(rèn)證,使用戶(hù)身份更加方便攜帶,用戶(hù)使用一個(gè)身份就能訪問(wèn)所有支持本發(fā)明認(rèn)證方法的應(yīng)用網(wǎng)站。
文檔編號(hào)H04L29/06GK102143134SQ20101025192
公開(kāi)日2011年8月3日 申請(qǐng)日期2010年8月5日 優(yōu)先權(quán)日2010年8月5日
發(fā)明者王占東 申請(qǐng)人:華為技術(shù)有限公司