本申請涉及計算機(jī)領(lǐng)域,尤其涉及一種用于支持多用戶集群身份驗證的方法和設(shè)備。
背景技術(shù):
隨著云計算的推進(jìn),各個模塊的服務(wù)化進(jìn)程也逐漸展開。如何對服務(wù)化后的用戶的訪問權(quán)限進(jìn)行管理成為一個必要的問題,是目前很多云服務(wù)提供服務(wù)化過程中的重要部分。
在現(xiàn)在的場景中,由于每個用戶集群都有專用的服務(wù)模塊,所以,用于鑒別身份的服務(wù)模塊的作用域被限定在當(dāng)前集群。
現(xiàn)有實現(xiàn)訪問權(quán)限認(rèn)證的技術(shù)主要有以下方式:當(dāng)用戶訪問時,會和服務(wù)器協(xié)商密鑰,然后將請求及相應(yīng)的身份信息以通過密鑰處理發(fā)送給服務(wù)化節(jié)點(提供服務(wù)的設(shè)備),由服務(wù)化節(jié)點完成對訪問的驗證。
但是,隨著各模塊服務(wù)化進(jìn)程的推進(jìn),未來會出現(xiàn)多個用戶集群共用一個服務(wù)模塊的場景。上述認(rèn)證技術(shù)在用戶的訪問的簽名信息在網(wǎng)絡(luò)傳輸過程中是可以被截獲的,并理論上可以破解,而且用戶身份驗證信息一般長久不發(fā)生變化,存在泄露風(fēng)險。OpenSSL協(xié)議(Open Secure Sockets Layer,開放式安全套接層協(xié)議)中的多重認(rèn)證過程在大規(guī)模分布式環(huán)境中效率不夠高效,且通過服務(wù)化節(jié)點進(jìn)行驗證的方法增加了服務(wù)化節(jié)點的負(fù)載。
因此,如何在同一服務(wù)化節(jié)點上完成對多個用戶集群的驗證,以支持多個用戶集群的訪問成為業(yè)界亟待解決的問題。
技術(shù)實現(xiàn)要素:
本申請要解決的技術(shù)問題是,提供一種在一個或多個用戶集群請求訪問服務(wù)設(shè)備時,能夠?qū)λ鲇脩艏哼M(jìn)行身份驗證的方法和設(shè)備。
為解決上述技術(shù)問題,本申請?zhí)峁┝艘环N在密鑰管理設(shè)備端用于支持多用戶集群身份驗證的方法,其中,所述方法包括:
向用戶集群設(shè)備分發(fā)密鑰和所述密鑰對應(yīng)的識別碼,所述密鑰包括成對的公鑰和私鑰;
獲取所述服務(wù)設(shè)備發(fā)送的驗證請求,并基于所述驗證請求中的用戶集群設(shè)備的數(shù)字簽名,對該用戶集群設(shè)備進(jìn)行身份驗證,并向所述服務(wù)設(shè)備返回驗證結(jié)果,其中,所述數(shù)字簽名包括所述用戶集群設(shè)備的識別碼和利用所述私鑰加密生成的集群認(rèn)證信息。
進(jìn)一步地,所述基于所述驗證請求中的用戶集群設(shè)備的數(shù)字簽名,對該用戶集群設(shè)備進(jìn)行身份驗證包括:
根據(jù)所述數(shù)字簽名中的識別碼,查找所述用戶集群設(shè)備的公鑰;
利用所查找的公鑰對所述集群認(rèn)證信息進(jìn)行解密;
對所述集群認(rèn)證信息進(jìn)行驗證。
進(jìn)一步地,所述驗證請求還包括:所述服務(wù)設(shè)備所持久存儲的用戶集群設(shè)備的公鑰列表,所述公鑰列表包括請求訪問過所述服務(wù)設(shè)備的用戶集群設(shè)備的公鑰及識別碼;所述基于所述驗證請求中的用戶集群設(shè)備的數(shù)字簽名,對該用戶集群設(shè)備進(jìn)行身份驗證包括:根據(jù)所述數(shù)字簽名中的識別碼,從所述公鑰列表中查找所述用戶集群設(shè)備的公鑰,若從所述公鑰列表中查找到相應(yīng)公鑰,則利用該查找到的公鑰對所述用戶集群設(shè)備進(jìn)行解密。
進(jìn)一步地,所述向所述服務(wù)設(shè)備返回驗證結(jié)果還包括:
在對所述用戶集群設(shè)備驗證通過后,將所述用戶集群設(shè)備的公鑰和識別碼發(fā)送給所述服務(wù)設(shè)備,以更新至所述公鑰列表中。
進(jìn)一步地,所述向用戶集群設(shè)備分發(fā)密鑰和所述密鑰對應(yīng)的識別碼,所述密鑰包括成對的公鑰和私鑰包括:
定期更新所述密鑰及所述識別碼,并向所述用戶集群設(shè)備分發(fā)更新后的密鑰和識別碼,其中,所述識別碼采用遞增復(fù)用方式更新。
進(jìn)一步地,所述方法還包括:
當(dāng)所述密鑰和所述識別碼更新后,根據(jù)所述用戶集群設(shè)備的請求,利用所述更新的密鑰和識別碼為相應(yīng)所述用戶集群設(shè)備生成數(shù)字簽名,并將所述生成的數(shù)字簽名發(fā)送給所述用戶集群設(shè)備。
進(jìn)一步地,所述集群認(rèn)證信息包括以下至少任一項:
集群名稱、集群創(chuàng)建時間、所述公鑰和私鑰的創(chuàng)建時間,所述公鑰和私鑰的過期時間。
進(jìn)一步地,向用戶集群設(shè)備分發(fā)密鑰和所述密鑰對應(yīng)的識別碼包括:
通過安全信道向用戶集群設(shè)備分發(fā)密鑰和所述密鑰對應(yīng)的識別碼。
本申請?zhí)峁┝艘环N在服務(wù)設(shè)備端用于支持多用戶集群身份驗證的方法,其中,所述方法包括:
獲取用戶集群設(shè)備的訪問請求,所述訪問請求攜帶所述用戶集群設(shè)備的數(shù)字簽名,所述數(shù)字簽名包括識別碼和利用密鑰的私鑰加密生成的集群認(rèn)證信息;
根據(jù)所述訪問請求向密鑰管理設(shè)備發(fā)送驗證請求,所述驗證請求包括所述用戶集群設(shè)備的數(shù)字簽名;
獲取所述密鑰管理設(shè)備基于所述驗證請求所返回的所述用戶集群設(shè)備的身份驗證的驗證結(jié)果。
進(jìn)一步地,所述方法還包括:
創(chuàng)建公鑰列表,并在所述密鑰管理設(shè)備返回的所述用戶集群設(shè)備的身份驗證通過的驗證結(jié)果后,從所述密鑰管理設(shè)備獲取請求訪問的所述用戶集群設(shè)備的公鑰和識別碼,并將所述公鑰和識別碼持久性存儲于公鑰列表中。
本申請還提供了一種在用戶集群設(shè)備端用于支持多用戶集群身份驗證的方法,其中,所述方法包括:
獲取密鑰管理設(shè)備發(fā)送的密鑰和所述密鑰對應(yīng)的識別碼,所述密鑰包括成對的公鑰和私鑰;
向服務(wù)設(shè)備發(fā)起訪問請求,所述訪問請求攜帶數(shù)字簽名,所述數(shù)字簽名包括所述識別碼和利用所述私鑰加密生成的集群認(rèn)證信息。
進(jìn)一步地,所述方法還包括:
根據(jù)所述密鑰和所述識別碼,生成所述數(shù)字簽名。
本申請還提供了一種用于支持多用戶集群身份驗證的密鑰管理設(shè)備,其中,所述密鑰管理設(shè)備包括:
密鑰分發(fā)裝置,用于向用戶集群設(shè)備分發(fā)密鑰和所述密鑰對應(yīng)的識別碼,所述密鑰包括成對的公鑰和私鑰;
身份驗證裝置,用于獲取所述服務(wù)設(shè)備發(fā)送的驗證請求,并基于所述驗證請求中的用戶集群設(shè)備的數(shù)字簽名,對該用戶集群設(shè)備進(jìn)行身份驗證,并向所述服務(wù)設(shè)備返回驗證結(jié)果,其中,所述數(shù)字簽名包括所述用戶集群設(shè)備的識別碼和利用所述私鑰加密生成的集群認(rèn)證信息。
進(jìn)一步地,所述身份驗證裝置用于:
根據(jù)所述數(shù)字簽名中的識別碼,查找所述用戶集群設(shè)備的公鑰;
利用所查找的公鑰對所述集群認(rèn)證信息進(jìn)行解密;
對所述集群認(rèn)證信息進(jìn)行驗證。
進(jìn)一步地,所述驗證請求還包括:所述服務(wù)設(shè)備所持久存儲的用戶集群設(shè)備的公鑰列表,所述公鑰列表包括請求訪問過所述服務(wù)設(shè)備的用戶集群設(shè)備的公鑰及識別碼;所述身份驗證裝置用于:根據(jù)所述數(shù)字簽名中的識別碼,從所述公鑰列表中查找所述用戶集群設(shè)備的公鑰,若從所述公鑰列表中查找到相應(yīng)公鑰,則利用該查找到的公鑰對所述用戶集群設(shè)備進(jìn)行解密。
進(jìn)一步地,所述身份驗證裝置還用于:在對所述用戶集群設(shè)備驗證通過后,將所述用戶集群設(shè)備的公鑰和識別碼發(fā)送給所述服務(wù)設(shè)備,以更新至所述公鑰列表中。
進(jìn)一步地,所述密鑰分發(fā)裝置包括:
定期更新所述密鑰及所述識別碼,并向所述用戶集群設(shè)備分發(fā)更新后的密鑰和識別碼,其中,所述識別碼采用遞增復(fù)用方式更新。
進(jìn)一步地,所述密鑰管理設(shè)備還包括:
數(shù)字簽名簽發(fā)裝置,用于當(dāng)所述密鑰和所述識別碼更新后,根據(jù)所述用戶集群設(shè)備的請求,利用所述更新的密鑰和識別碼為相應(yīng)所述用戶集群設(shè)備生成數(shù)字簽名,并將所述生成的數(shù)字簽名發(fā)送給所述用戶集群設(shè)備。
進(jìn)一步地,所述集群認(rèn)證信息包括以下至少任一項:
集群名稱、集群創(chuàng)建時間、所述公鑰和私鑰的創(chuàng)建時間,所述公鑰和私鑰的過期時間。
進(jìn)一步地,所述第一裝置用于:
通過安全信道向用戶集群設(shè)備分發(fā)密鑰和所述密鑰對應(yīng)的識別碼。
本申請還提供了一種用于支持多用戶集群身份驗證的服務(wù)設(shè)備,其中, 所述服務(wù)設(shè)備包括:
訪問請求獲取裝置,用于獲取用戶集群設(shè)備的訪問請求,所述訪問請求攜帶所述用戶集群設(shè)備的數(shù)字簽名,所述數(shù)字簽名包括識別碼和利用密鑰的私鑰加密生成的集群認(rèn)證信息;
請求驗證裝置,用于根據(jù)所述訪問請求向密鑰管理設(shè)備發(fā)送驗證請求,所述驗證請求包括所述用戶集群設(shè)備的數(shù)字簽名;
驗證結(jié)果獲取裝置,用于獲取所述密鑰管理設(shè)備基于所述驗證請求所返回的所述用戶集群設(shè)備的身份驗證的驗證結(jié)果。
進(jìn)一步地,所述服務(wù)設(shè)備還包括:
公鑰列表管理裝置,用于創(chuàng)建公鑰列表,并在所述密鑰管理設(shè)備返回的所述用戶集群設(shè)備的身份驗證通過的驗證結(jié)果后,從所述密鑰管理設(shè)備獲取請求訪問的所述用戶集群設(shè)備的公鑰和識別碼,并將所述公鑰和識別碼持久性存儲于公鑰列表中。
本申請還提供了一種支持多用戶集群身份驗證的用戶集群設(shè)備,其中,所述用戶集群設(shè)備包括:
密鑰獲取裝置,用于獲取密鑰管理設(shè)備發(fā)送的密鑰和所述密鑰對應(yīng)的識別碼,所述密鑰包括成對的公鑰和私鑰;
訪問請求發(fā)起裝置,用于向服務(wù)設(shè)備發(fā)起訪問請求,所述訪問請求攜帶數(shù)字簽名,所述數(shù)字簽名包括所述識別碼和利用所述私鑰加密生成的集群認(rèn)證信息。
進(jìn)一步地,所述用戶集群設(shè)備還包括:
數(shù)字簽名生成裝置,用于根據(jù)所述密鑰和所述識別碼,生成所述數(shù)字簽名。
與現(xiàn)有技術(shù)相比,在本申請的一個實施例中,通過密鑰管理設(shè)備管理用戶集群設(shè)備的密鑰,為所述用戶集群設(shè)備簽發(fā)密鑰和密鑰的識別碼,省去密鑰協(xié)商的過程,并在用戶集群設(shè)備請求訪問某一服務(wù)設(shè)備時,由服務(wù)設(shè)備向所述密鑰管理設(shè)備發(fā)送攜帶用戶集群設(shè)備的數(shù)字簽名的驗證請求,由密鑰管理設(shè)備對用戶集群設(shè)備進(jìn)行身份驗證。
進(jìn)一步地,所述密鑰管理設(shè)備可以采用輪轉(zhuǎn)機(jī)制定期更新密鑰和密鑰的 識別碼,并分發(fā)給用戶集群設(shè)備,用戶集群設(shè)備利用更新的密鑰和識別碼更新數(shù)字簽名,從而提高安全性,降低泄露風(fēng)險。
進(jìn)一步地,服務(wù)設(shè)備采用持久化方式存儲密鑰中的公鑰和識別碼,提高驗證效率。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細(xì)描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1示出根據(jù)本申請一個方面的用于支持多用戶集群身份驗證的系統(tǒng)拓?fù)鋱D;
圖2示出根據(jù)本申請一方面提供的一種用于支持多用戶集群身份驗證的密鑰管理設(shè)備、服務(wù)設(shè)備和用戶集群設(shè)備的示意圖;
圖3示出根據(jù)本申請一優(yōu)選的實施例提供的一種用于支持多用戶集群身份驗證的密鑰管理設(shè)備、服務(wù)設(shè)備和用戶集群設(shè)備的示意圖;
圖4示出根據(jù)本申請一方面提供的一種用于支持多用戶集群身份驗證的方法示意圖;
圖5示出根據(jù)本申請優(yōu)選的實施例提供的一種用于支持多用戶集群身份驗證的方法示意圖。
附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
具體實施方式
下面結(jié)合附圖對本申請作進(jìn)一步詳細(xì)描述。
圖1示出根據(jù)本發(fā)明一個方面的用于支持多用戶集群身份驗證的系統(tǒng)拓?fù)鋱D,其中,包括密鑰管理設(shè)備1、若干服務(wù)設(shè)備2和多個用戶集群設(shè)備3。所述密鑰管理設(shè)備1負(fù)責(zé)為所述用戶集群設(shè)備3分發(fā)密鑰和密鑰的識別碼,當(dāng)用戶集群設(shè)備3請求訪問服務(wù)設(shè)備2時,服務(wù)設(shè)備2將攜帶具有用戶集群設(shè)備1的數(shù)字簽名的驗證請求發(fā)送給密鑰管理設(shè)備1,由密鑰管理設(shè)備1對用戶集群設(shè)備3進(jìn)行身份驗證并向服務(wù)設(shè)備2返回驗證結(jié)果。
在此,所述密鑰管理設(shè)備1可以網(wǎng)絡(luò)設(shè)備或運行在網(wǎng)絡(luò)設(shè)備上的腳本程 序,所述服務(wù)設(shè)備2包括但不限于用戶設(shè)備、或用戶設(shè)備與網(wǎng)絡(luò)設(shè)備通過網(wǎng)絡(luò)相集成所構(gòu)成的設(shè)備或者是運行在上述設(shè)備上的腳本程序,所述用戶集群設(shè)備3也可以是用戶設(shè)備、或用戶設(shè)備與網(wǎng)絡(luò)設(shè)備通過網(wǎng)絡(luò)相集成所構(gòu)成的設(shè)備或者是運行在網(wǎng)絡(luò)設(shè)備上的腳本程序。
其中,所述用戶集群設(shè)備4是指處于同一集群的一個或多個設(shè)備的總稱,所述用戶集群設(shè)備3與所述密鑰管理設(shè)備1可以通過網(wǎng)絡(luò)相連接,所述服務(wù)設(shè)備2與所述密鑰管理設(shè)備1可以通過網(wǎng)絡(luò)連接或二者設(shè)置在同一網(wǎng)絡(luò)設(shè)備中。此外,所述服務(wù)設(shè)備2與所述用戶集群設(shè)備3亦可以通過網(wǎng)絡(luò)連接或二者設(shè)置在同一設(shè)備集群中,即對于一個集群設(shè)備,其可能作為用戶集群設(shè)備請求獲得其他的服務(wù)設(shè)備服務(wù)的同時,作為服務(wù)設(shè)備為其他用戶集群設(shè)備提供附圖。
在此,所述網(wǎng)絡(luò)包括但不限于WCDMA、CDMA2000、TD-SCDMA、GSM、CDMA1x、WIFI、WAPI、WiMax、無線自組織網(wǎng)絡(luò)(Ad Hoc網(wǎng)絡(luò))等。所述網(wǎng)絡(luò)設(shè)備包括一種能夠按照事先設(shè)定或存儲的指令,自動進(jìn)行數(shù)值計算和信息處理的電子設(shè)備,其硬件包括但不限于微處理器、專用集成電路(ASIC)、可編程門陣列(FPGA)、數(shù)字處理器(DSP)、嵌入式設(shè)備等。所述網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、VPN網(wǎng)絡(luò)、無線自組織網(wǎng)絡(luò)(Ad Hoc網(wǎng)絡(luò))等。所述網(wǎng)絡(luò)設(shè)備可以是一臺服務(wù)器,也可以是通過局域網(wǎng)連接的多臺服務(wù)器或者通過互聯(lián)網(wǎng)連接的多臺服務(wù)器,還可以是由多臺服務(wù)器構(gòu)成的云。在此,云由基于云計算(Cloud Computing)的大量計算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計算是分布式計算的一種,由一群松散耦合的計算機(jī)集組成的一個超級虛擬計算機(jī)。所述用戶設(shè)備其包括但不限于任何一種可與用戶通過觸摸板進(jìn)行人機(jī)交互的移動電子產(chǎn)品,例如智能手機(jī)、PDA等,所述移動電子產(chǎn)品可以采用任意操作系統(tǒng),如android操作系統(tǒng)、iOS操作系統(tǒng)等。
當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)能理解上述密鑰管理設(shè)備1、服務(wù)設(shè)備2和用戶集群設(shè)備3以及連接其間的網(wǎng)絡(luò)及通信方式僅為僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的密鑰管理設(shè)備1、服務(wù)設(shè)備2和用戶集群設(shè)備3如可適用于本申請,也應(yīng)包含在本申請保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
本領(lǐng)域技術(shù)人員還應(yīng)能理解,圖1中僅為簡明起見而示出的各類網(wǎng)絡(luò)元 素的數(shù)量可能小于一個實際網(wǎng)絡(luò)中的數(shù)量,但這種省略無疑地是以不會影響對本發(fā)明進(jìn)行清楚、充分的公開為前提的。
為簡明起見,下面以密鑰管理設(shè)備1、服務(wù)設(shè)備2和一個用戶集群設(shè)備3組成的系統(tǒng)為例進(jìn)行描述。本領(lǐng)域技術(shù)人員應(yīng)能理解,密鑰管理設(shè)備2可以與多個服務(wù)設(shè)備2和多個用戶集群設(shè)備3交互,為所述用戶集群設(shè)備3分發(fā)密鑰及識別碼,并實時接收來自一個或多個服務(wù)設(shè)備2的驗證請求,同時服務(wù)設(shè)備2可以和多個用戶集群設(shè)備3交互,根據(jù)用戶集群設(shè)備3的訪問請求向密鑰管理設(shè)備1發(fā)起驗證請求,并在獲得驗證結(jié)果后,根據(jù)驗證結(jié)果為所述用戶集群設(shè)備3提供相應(yīng)服務(wù)。
圖2示出根據(jù)本申請一方面提供的一種用于支持多用戶集群身份驗證的密鑰管理設(shè)備、服務(wù)設(shè)備和用戶集群設(shè)備。其中,所述密鑰管理設(shè)備1包括:密鑰分發(fā)裝置11及身份驗證裝置12。所述服務(wù)設(shè)備2包括:訪問請求獲取裝置21、請求驗證裝置22和驗證結(jié)果獲取裝置23。所述用戶集群設(shè)備3包括:密鑰獲取裝置31和訪問請求發(fā)起裝置32。
所述密鑰分發(fā)裝置11用于向用戶集群設(shè)備分發(fā)密鑰以及所述密鑰的識別碼,所述密鑰包括成對的公鑰和私鑰;所述身份驗證裝置12用于獲取所述服務(wù)設(shè)備發(fā)送的驗證請求,并基于所述驗證請求中的用戶集群設(shè)備的數(shù)字簽名,對該用戶集群設(shè)備進(jìn)行身份驗證,并向所述服務(wù)設(shè)備返回驗證結(jié)果,其中,所述數(shù)字簽名包括所述用戶集群設(shè)備的識別碼和利用所述私鑰加密生成的集群認(rèn)證信息。
所述訪問請求獲取裝置21用于獲取用戶集群設(shè)備的訪問請求,所述訪問請求攜帶所述用戶集群設(shè)備的數(shù)字簽名,所述數(shù)字簽名包括所述用戶集群設(shè)備的識別碼和利用密鑰的私鑰加密生成的集群認(rèn)證信息;所述請求驗證裝置22用于根據(jù)所述訪問請求向密鑰管理設(shè)備發(fā)送驗證請求,所述驗證請求包括所述用戶集群設(shè)備的數(shù)字簽名;所述驗證結(jié)果獲取裝置23用于獲取所述密鑰管理設(shè)備基于所述驗證請求所返回的所述用戶集群設(shè)備的身份驗證的驗證結(jié)果。
所述密鑰獲取設(shè)備31獲取密鑰管理設(shè)備發(fā)送的密鑰和所述密鑰對應(yīng)的識別碼,所述密鑰包括成對的公鑰和私鑰;所述訪問請求發(fā)起設(shè)備32向服務(wù) 設(shè)備發(fā)起訪問請求,所述訪問請求攜帶數(shù)字簽名,所述數(shù)字簽名包括所述識別碼和利用所述私鑰加密生成的集群認(rèn)證信息。
在此,所述密鑰分發(fā)裝置11在為所述用戶集群設(shè)備分發(fā)密鑰時,在分發(fā)密鑰的同時,增加與所述密鑰唯一對應(yīng)的識別碼(ID);所述身份驗證裝置12在進(jìn)行身份驗證時,可以根據(jù)具有所述識別碼的數(shù)字簽名對所述用戶集群設(shè)備進(jìn)行身份驗證,從而可以對多個用戶集群設(shè)備進(jìn)行認(rèn)證,進(jìn)而支持在同一服務(wù)設(shè)備上位多個用戶集群設(shè)備提供服務(wù)。
具體地,所述密鑰分發(fā)裝置11用于向用戶集群設(shè)備分發(fā)密鑰和所述密鑰的識別碼,所述密鑰包括成對的公鑰和私鑰。
在此,所述密鑰和識別碼是一一對應(yīng)的,通過識別碼可以查詢到相應(yīng)密鑰,例如查詢到相應(yīng)密鑰的公鑰,所述識別碼可以是采用16字節(jié)的字段,則所有密鑰對應(yīng)的識別碼可以在0~216中遞增復(fù)用,使單個服務(wù)設(shè)備最多可以為216個用戶集群設(shè)備提供服務(wù)。
所述密鑰分發(fā)裝置11通過分發(fā)的方式將密鑰發(fā)送給相應(yīng)用戶集群設(shè)備3,進(jìn)一步地,所述密鑰分發(fā)裝置11的分發(fā)過程在安全信道上進(jìn)行,避免簽名泄露,同時省去了密鑰協(xié)商過程,提高簽發(fā)效率。
接著,所述身份驗證裝置12獲取所述服務(wù)設(shè)備發(fā)送的驗證請求,并基于所述驗證請求中的用戶集群設(shè)備的數(shù)字簽名,對該用戶集群設(shè)備進(jìn)行身份驗證,并向所述服務(wù)設(shè)備返回驗證結(jié)果,其中,所述數(shù)字簽名包括所述用戶集群設(shè)備的識別碼和利用所述私鑰加密生成的集群認(rèn)證信息。
在此,所述集群認(rèn)證信息可以包括:集群名稱、集群創(chuàng)建時間、所述公鑰和私鑰的創(chuàng)建時間,所述公鑰和私鑰的過期時間,其他可以用于認(rèn)證集群的相關(guān)信息也可以作為集群認(rèn)證信息。
當(dāng)用戶集群設(shè)備請求訪問某一服務(wù)設(shè)備時,該服務(wù)設(shè)備將所獲得的訪問請求的相關(guān)信息以驗證請求的方式發(fā)送給密鑰管理設(shè)備1,交由所述密鑰管理設(shè)備1對該用戶集群設(shè)備進(jìn)行身份驗證,所述密鑰管理設(shè)備1的身份驗證裝置12根據(jù)所述數(shù)字簽名中的識別碼,查找所述用戶集群設(shè)備的公鑰;利用所查找的公鑰對所述集群認(rèn)證信息進(jìn)行解密;對所述集群認(rèn)證信息進(jìn)行驗證。
為提高驗證效率,所述服務(wù)設(shè)備可以創(chuàng)建一個用于持久存儲用戶集群設(shè) 備的公鑰列表,所述公鑰列表用于保存請求訪問過所述服務(wù)設(shè)備的用戶集群設(shè)備的公鑰及識別碼。則所述密鑰管理設(shè)備1獲取的所述服務(wù)設(shè)備的驗證請求中還會包括所述服務(wù)設(shè)備所持久存儲的用戶集群設(shè)備的公鑰列表,所述身份驗證裝置12可以利用所述訪問請求中的數(shù)字簽名所攜帶的識別碼,從公鑰列表中查找識別碼所對應(yīng)的公鑰,并利用所查找的公鑰對所述集群認(rèn)證信息進(jìn)行解密,然后對集群認(rèn)證信息進(jìn)行驗證。
優(yōu)選地,當(dāng)用戶集群設(shè)備首次請求訪問所述服務(wù)設(shè)備或所述用戶集群設(shè)備的密鑰和識別碼發(fā)生更新時,則所述身份驗證裝置12從公鑰列表中無法查找到相應(yīng)識別碼和公鑰,則所述身份驗證裝置12從自有的存儲信息,例如所述密鑰分發(fā)裝置11分發(fā)密鑰和識別碼時所保留的信息中獲取相應(yīng)識別碼對應(yīng)的公鑰,利用該公鑰對用戶集群設(shè)備進(jìn)行身份驗證,并將所述公鑰列表中原來沒有的該用戶集群設(shè)備的公鑰和識別碼發(fā)送給所述服務(wù)設(shè)備,以備所述服務(wù)設(shè)備更新至所述公鑰列表中,為該用戶集群設(shè)備下次請求訪問做身份驗證時使用,提高驗證效率。
圖3示出根據(jù)本申請一優(yōu)選的實施例提供的一種用于支持多用戶集群身份驗證的密鑰管理設(shè)備、服務(wù)設(shè)備2和用戶集群設(shè)備3。
其中,所述密鑰管理設(shè)備1包括密鑰分發(fā)裝置11’、身份驗證裝置12’和數(shù)字簽名簽發(fā)裝置13’。所述密鑰分發(fā)裝置11’在圖2所示的所述密鑰分發(fā)裝置11的基礎(chǔ)上,采用輪轉(zhuǎn)機(jī)制分發(fā)密鑰和識別碼,即,定期更新所述成對的公鑰和私鑰及所述識別碼,并向所述用戶集群設(shè)備分發(fā)更新后的密鑰和識別碼,其中,所述識別碼采用遞增復(fù)用方式更新。所述身份驗證裝置12’與圖2所示的身份驗證裝置12的內(nèi)容相同或基本相同,為簡明起見,不再贅述,并以引用的方式包含于此。所述數(shù)字簽名簽發(fā)裝置13’用于在所述密鑰和所述識別碼更新后,根據(jù)所述用戶集群設(shè)備3的請求,利用所述更新的密鑰和識別碼為相應(yīng)所述用戶集群設(shè)備生成數(shù)字簽名,并將所述生成的數(shù)字簽名發(fā)送給所述用戶集群設(shè)備3,優(yōu)選地,所述數(shù)字簽名簽發(fā)裝置13’通過所述安全信道將所述生成的數(shù)字簽名發(fā)送給所述用戶集群設(shè)備3,增強(qiáng)安全性。每當(dāng)所述密鑰分發(fā)裝置11’更新所述密鑰及所述識別碼時,所述數(shù)字簽名簽發(fā)裝置13’根據(jù)更新的所述密鑰和識別碼為生成更新的數(shù)字簽名,密鑰輪轉(zhuǎn)機(jī)制使得用 戶集群設(shè)備上的數(shù)字簽名隨著密鑰的變化而變化,增強(qiáng)了安全性。
所述服務(wù)設(shè)備2包括:訪問請求獲取裝置21’、請求驗證裝置22’和驗證結(jié)果獲取裝置23’和公鑰列表管理裝置24’,所述公鑰列表管理裝置24’用于創(chuàng)建公鑰列表,并在所述密鑰管理設(shè)備返回的所述用戶集群設(shè)備的身份驗證通過的驗證結(jié)果后,從所述密鑰管理設(shè)備獲取請求訪問的所述用戶集群設(shè)備的公鑰和識別碼,并將所述公鑰和識別碼持久性存儲于公鑰列表中。在此,所述公鑰列表包括訪問過服務(wù)設(shè)備2的、且經(jīng)過密鑰管理設(shè)備1驗證過的用戶集群設(shè)備3的公鑰及該公鑰對應(yīng)的識別碼,優(yōu)選地,所述公鑰列表持久性地保存在quorum目錄(事物處理目錄)。所述請求驗證裝置22’向密鑰管理設(shè)備發(fā)送驗證請求中,所述驗證請求還包括所述公鑰列表,所述密鑰管理設(shè)備1在對用戶集群設(shè)備3進(jìn)行身份驗證時,可以利用公鑰列表進(jìn)行解密,提高驗證效率。所述訪問請求獲取裝置21’和驗證結(jié)果獲取裝置23’與圖2所示的訪問請求獲取裝置21和驗證結(jié)果獲取裝置23的內(nèi)容相同或基本相同,為簡明起見,不再贅述,并以引用的方式包含于此。
所述用戶集群設(shè)備3包括:密鑰獲取裝置31’、訪問請求發(fā)起裝置32’和數(shù)字簽名生成裝置33’,所述數(shù)字簽名生成裝置33’用于根據(jù)所述密鑰和所述識別碼,生成所述數(shù)字簽名。
在此,所述密鑰和識別碼是一一對應(yīng)的,通過識別碼可以查詢到相應(yīng)密鑰,例如查詢到相應(yīng)密鑰的公鑰。因此,每更新密鑰,識別碼則相應(yīng)采用遞增復(fù)用的方式更新,例如,所述識別碼在0~216中一個16字節(jié)的字段,當(dāng)每次更新,則識別碼遞增一次,當(dāng)然遞增方式不限制于依此遞增,可以隨機(jī)遞增,其遞增顯示并不被限制,當(dāng)所述識別碼達(dá)到最大值,例如216時,則所述識別碼從0開始復(fù)用更新。
在此,所述集群認(rèn)證信息可以包括:集群名稱、集群創(chuàng)建時間、所述公鑰和私鑰的創(chuàng)建時間,所述公鑰和私鑰的過期時間,其他可以用于認(rèn)證集群的相關(guān)信息也可以作為集群認(rèn)證信息。
在實際場景中,所述用戶集群設(shè)備3既可以在部署初期,由所述數(shù)字簽名生成裝置33’生成數(shù)字簽名,或可以從所述數(shù)字簽名簽發(fā)裝置13’中獲取更新。
圖3示出根據(jù)本申請一個方面提供的一種用于支持多用戶集群身份驗證的方法,其中,所述方法包括:步驟S11、步驟S12、步驟S13、步驟S14、步驟S15和步驟S16。
其中,所述步驟S11包括:密鑰管理設(shè)備1向用戶集群設(shè)備分發(fā)密鑰以及所述密鑰的識別碼,所述密鑰包括成對的公鑰和私鑰;
所述步驟S12包括:用戶集群設(shè)備3向服務(wù)設(shè)備2發(fā)起訪問請求,所述訪問請求攜帶數(shù)字簽名,所述數(shù)字簽名包括所述識別碼和利用密鑰中的私鑰加密生成的集群認(rèn)證信息;
所述步驟S13包括:服務(wù)設(shè)備2根據(jù)所述訪問請求向密鑰管理設(shè)備1發(fā)送驗證請求,所述驗證請求包括所述用戶集群設(shè)備3的數(shù)字簽名;
所述步驟S14包括:密鑰管理設(shè)備1獲取所述服務(wù)設(shè)備2發(fā)送的驗證請求,并基于所述驗證請求中的用戶集群設(shè)備3的數(shù)字簽名,對該用戶集群設(shè)備3進(jìn)行身份驗證;
所述步驟S15包括:密鑰管理設(shè)備1向所述服務(wù)設(shè)備2返回驗證結(jié)果。
所述步驟S16包括:服務(wù)設(shè)備2根據(jù)所述驗證結(jié)果為所述用戶集群設(shè)備3提供相應(yīng)服務(wù)。
其中,在所述步驟S11中,所述密鑰分發(fā)裝置11通過分發(fā)的方式將密鑰發(fā)送給相應(yīng)用戶集群設(shè)備3,進(jìn)一步地,所述密鑰分發(fā)裝置11的分發(fā)過程在安全信道上進(jìn)行,避免簽名泄露,同時省去了密鑰協(xié)商過程,提高簽發(fā)效率。在所述步驟S14中,密鑰管理設(shè)備1在進(jìn)行身份驗證時,可以根據(jù)具有所述識別碼的數(shù)字簽名對所述用戶集群設(shè)備3進(jìn)行身份驗證,從而可以對多個用戶集群設(shè)備3進(jìn)行認(rèn)證,進(jìn)而支持在同一服務(wù)設(shè)備2上位多個用戶集群設(shè)備3提供服務(wù)。
在此,所述密鑰和識別碼是一一對應(yīng)的,通過識別碼可以查詢到相應(yīng)密鑰,例如查詢到相應(yīng)密鑰的公鑰,所述識別碼可以是采用16字節(jié)的字段,則所有密鑰對應(yīng)的識別碼可以在0~216中遞增復(fù)用,使單個服務(wù)設(shè)備最多可以為216個用戶集群設(shè)備提供服務(wù)。所述集群認(rèn)證信息可以包括:集群名稱、集群創(chuàng)建時間、所述公鑰和私鑰的創(chuàng)建時間,所述公鑰和私鑰的過期時間,其他可以用于認(rèn)證集群的相關(guān)信息也可以作為集群認(rèn)證信息。
在所述步驟S14中,所述密鑰管理設(shè)備1對所述用戶集群設(shè)備3進(jìn)行身份驗證,所述密鑰管理設(shè)備1根據(jù)所述數(shù)字簽名中的識別碼,查找所述用戶集群設(shè)備3的公鑰;利用所查找的公鑰對所述集群認(rèn)證信息進(jìn)行解密;對所述集群認(rèn)證信息進(jìn)行驗證。
圖4示出根據(jù)本申請一優(yōu)選的實施例提供的一種在密鑰管理設(shè)備端用于驗證用戶集群的方法,所述方法包括:步驟S11’、步驟S12’、步驟S13’、步驟S14’、步驟S15’和步驟S16’。
所述步驟S11’在圖3所示的所述步驟S11的基礎(chǔ)上,所述密鑰管理設(shè)備1采用輪轉(zhuǎn)機(jī)制分發(fā)密鑰和識別碼,即,定期更新所述成對的公鑰和私鑰及所述識別碼,并向所述用戶集群設(shè)備分發(fā)更新后的密鑰和識別碼,其中,所述識別碼采用遞增復(fù)用方式更新。
在此,所述密鑰和識別碼是一一對應(yīng)的,通過識別碼可以查詢到相應(yīng)密鑰,例如查詢到相應(yīng)密鑰的公鑰。因此,每更新密鑰,識別碼則相應(yīng)采用遞增復(fù)用的方式更新,例如,所述識別碼在0~216中一個16字節(jié)的字段,當(dāng)每次更新,則識別碼遞增一次,當(dāng)然遞增方式不限制于依此遞增,可以隨機(jī)遞增,其遞增顯示并不被限制,當(dāng)所述識別碼達(dá)到最大值,例如216時,則所述識別碼從0開始復(fù)用更新。
在所述步驟S17’中,所述密鑰管理設(shè)備1利用所述更新的密鑰和識別碼為用戶集群設(shè)備3生成數(shù)字簽名,并更新生成的數(shù)字簽名發(fā)送給相應(yīng)的用戶集群設(shè)備3。在所述密鑰和所述識別碼更新后,根據(jù)用戶集群設(shè)備1的請求或調(diào)用,利用所述更新的密鑰和識別碼為相應(yīng)所述用戶集群設(shè)備生成數(shù)字簽名,并將所述生成的數(shù)字簽名發(fā)送給所述用戶集群設(shè)備。優(yōu)選地,所述密鑰管理設(shè)備1通過所述安全信道將所述生成的數(shù)字簽名發(fā)送給所述用戶集群設(shè)備3,增強(qiáng)安全性。每當(dāng)所述步驟S11’更新所述密鑰及所述識別碼時,所述步驟S17’根據(jù)更新的所述密鑰和識別碼為生成更新的數(shù)字簽名,并將更新的數(shù)字簽名發(fā)送給所述用戶集群設(shè)備3。通過密鑰輪轉(zhuǎn)機(jī)制,加強(qiáng)安全性。
其中,所述步驟S12’、與圖3所示的所述步驟S12的內(nèi)容相同或基本相同,為簡明起見,不再贅述,并以引用的方式包含于此。
所述步驟S13’在圖3所示的所述步驟S13的基礎(chǔ)上,發(fā)送的驗證請求還 包括所述服務(wù)設(shè)備2所持久存儲的公鑰列表,在此,所述公鑰列表包括訪問過服務(wù)設(shè)備2的、且經(jīng)過密鑰管理設(shè)備1驗證過的用戶集群設(shè)備3的公鑰及該公鑰對應(yīng)的識別碼,優(yōu)選地,所述公鑰列表持久性地保存在quorum目錄(事物處理目錄)。
為提高驗證效率,所述服務(wù)設(shè)備可以創(chuàng)建一個用于持久存儲用戶集群設(shè)備的公鑰列表,所述公鑰列表用于保存請求訪問過所述服務(wù)設(shè)備的用戶集群設(shè)備的公鑰及識別碼。則所述密鑰管理設(shè)備1獲取的所述服務(wù)設(shè)備的驗證請求中還會包括所述服務(wù)設(shè)備所持久存儲的用戶集群設(shè)備的公鑰列表,可以利用所述訪問請求中的數(shù)字簽名所攜帶的識別碼,從公鑰列表中查找識別碼所對應(yīng)的公鑰,并利用所查找的公鑰對所述集群認(rèn)證信息進(jìn)行解密,然后對集群認(rèn)證信息進(jìn)行驗證。
優(yōu)選地,當(dāng)用戶集群設(shè)備首次請求訪問所述服務(wù)設(shè)備或所述用戶集群設(shè)備的密鑰和識別碼發(fā)生更新時,則從公鑰列表中無法查找到相應(yīng)識別碼和公鑰,則從自有的存儲信息,例如分發(fā)密鑰和識別碼時所保留的信息中獲取相應(yīng)識別碼對應(yīng)的公鑰,利用該公鑰對用戶集群設(shè)備進(jìn)行身份驗證,并將所述公鑰列表中原來沒有的該用戶集群設(shè)備的公鑰和識別碼發(fā)送給所述服務(wù)設(shè)備,以備所述服務(wù)設(shè)備更新至所述公鑰列表中,為該用戶集群設(shè)備下次請求訪問做身份驗證時使用,提高驗證效率。
所述步驟S14’在圖3所示的步驟S14的基礎(chǔ)上,根據(jù)所述數(shù)字簽名中的識別碼,從步驟S13’提供的所述公鑰列表中查找所述用戶集群設(shè)備3的公鑰,具體地,根據(jù)數(shù)字簽名中的識別碼找到公鑰列表中相同的識別碼,根據(jù)公鑰列表所查找的識別碼查找對應(yīng)的公鑰,若從所述公鑰列表中查找到相應(yīng)公鑰,則利用該查找到的公鑰對所述用戶集群設(shè)備3所加密的集群認(rèn)證信息進(jìn)行解密。
此外,若從公鑰列表中查找到相應(yīng)公鑰,那么可能是所述用戶集群設(shè)備3首次請求訪問或所述用戶集群設(shè)備3的密鑰和識別碼更新過,則所述密鑰管理設(shè)備1從自有的密鑰和識別碼列表中查找到相應(yīng)識別碼對應(yīng)的公鑰,利用公鑰對所述集群認(rèn)證信息進(jìn)行解密;
隨后在步驟S18’中,則將該用戶集群設(shè)備3的公鑰及識別碼發(fā)送給服務(wù) 設(shè)備2,接著,在步驟S19’中,服務(wù)設(shè)備2’將獲取的公鑰及識別碼更新至公鑰列表中,以備下次使用。
接著,所述步驟S15’和步驟S16’與圖3所示的所述步驟S15和步驟S16的內(nèi)容相同或基本相同,為簡明起見,不再贅述,并以引用的方式包含于此。
與現(xiàn)有技術(shù)相比,在本申請的一個實施例中,通過密鑰管理設(shè)備管理用戶集群設(shè)備的密鑰,為所述用戶集群設(shè)備簽發(fā)密鑰和密鑰的識別碼,省去密鑰協(xié)商的過程,并在用戶集群設(shè)備請求訪問某一服務(wù)設(shè)備時,由服務(wù)設(shè)備向所述密鑰管理設(shè)備發(fā)送攜帶用戶集群設(shè)備的數(shù)字簽名的驗證請求,由密鑰管理設(shè)備對用戶集群設(shè)備進(jìn)行身份驗證。
進(jìn)一步地,所述密鑰管理設(shè)備可以采用輪轉(zhuǎn)機(jī)制定期更新密鑰和密鑰的識別碼,并分發(fā)給用戶集群設(shè)備,用戶集群設(shè)備利用更新的密鑰和識別碼更新數(shù)字簽名,從而提高安全性,降低泄露風(fēng)險。
進(jìn)一步地,服務(wù)設(shè)備采用持久化方式存儲密鑰中的公鑰和識別碼,提高驗證效率。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請進(jìn)行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。
需要注意的是,本申請可在軟件和/或軟件與硬件的組合體中被實施,例如,可采用專用集成電路(ASIC)、通用目的計算機(jī)或任何其他類似硬件設(shè)備來實現(xiàn)。在一個實施例中,本申請的軟件程序可以通過處理器執(zhí)行以實現(xiàn)上文所述步驟或功能。同樣地,本申請的軟件程序(包括相關(guān)的數(shù)據(jù)結(jié)構(gòu))可以被存儲到計算機(jī)可讀記錄介質(zhì)中,例如,RAM存儲器,磁或光驅(qū)動器或軟磁盤及類似設(shè)備。另外,本申請的一些步驟或功能可采用硬件來實現(xiàn),例如,作為與處理器配合從而執(zhí)行各個步驟或功能的電路。
另外,本申請的一部分可被應(yīng)用為計算機(jī)程序產(chǎn)品,例如計算機(jī)程序指令,當(dāng)其被計算機(jī)執(zhí)行時,通過該計算機(jī)的操作,可以調(diào)用或提供根據(jù)本申請的方法和/或技術(shù)方案。而調(diào)用本申請的方法的程序指令,可能被存儲在固定的或可移動的記錄介質(zhì)中,和/或通過廣播或其他信號承載媒體中的數(shù)據(jù)流而被傳輸,和/或被存儲在根據(jù)所述程序指令運行的計算機(jī)設(shè)備的工作存儲器 中。在此,根據(jù)本申請的一個實施例包括一個裝置,該裝置包括用于存儲計算機(jī)程序指令的存儲器和用于執(zhí)行程序指令的處理器,其中,當(dāng)該計算機(jī)程序指令被該處理器執(zhí)行時,觸發(fā)該裝置運行基于前述根據(jù)本申請的多個實施例的方法和/或技術(shù)方案。
對于本領(lǐng)域技術(shù)人員而言,顯然本申請不限于上述示范性實施例的細(xì)節(jié),而且在不背離本申請的精神或基本特征的情況下,能夠以其他的具體形式實現(xiàn)本申請。因此,無論從哪一點來看,均應(yīng)將實施例看作是示范性的,而且是非限制性的,本申請的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本申請內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。裝置權(quán)利要求中陳述的多個單元或裝置也可以由一個單元或裝置通過軟件或者硬件來實現(xiàn)。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。