本發(fā)明涉及認(rèn)證技術(shù),特別是一種身份認(rèn)證方法、用戶設(shè)備和服務(wù)器。
背景技術(shù):
fido線上快速身份認(rèn)證標(biāo)準(zhǔn)(以下簡稱fido標(biāo)準(zhǔn))是由fido聯(lián)盟提出的一個開放的標(biāo)準(zhǔn)協(xié)議,旨在提供一個高安全性、跨平臺兼容性、極佳用戶體驗與用戶隱私保護(hù)的在線身份認(rèn)證技術(shù)架構(gòu)。fido標(biāo)準(zhǔn)通過集成生物識別與非對稱加密兩大技術(shù)來完成用戶身份驗證,試圖終結(jié)多年來用戶必須記憶并使用大量復(fù)雜密碼的煩惱。
但是,fido的系統(tǒng)架構(gòu)仍然存在著一些安全風(fēng)險。在fidouaf架構(gòu)中,用戶認(rèn)證密鑰是由內(nèi)嵌于客戶端設(shè)備中的認(rèn)證器產(chǎn)生的,用戶私鑰存儲在認(rèn)證器中,用戶公鑰使用認(rèn)證器驗證私鑰進(jìn)行簽名后發(fā)送到服務(wù)器端,由服務(wù)器端使用認(rèn)證器驗證根證書進(jìn)行驗證后,將用戶公鑰存儲在服務(wù)器端數(shù)據(jù)庫中,以完成用戶注冊的流程。此流程中,fido服務(wù)器依賴原有用戶認(rèn)證手段(如口令、短信驗證碼等)對用戶進(jìn)行驗證,同時依賴認(rèn)證器驗證機制來對設(shè)備進(jìn)行驗證。由于認(rèn)證器的驗證密鑰并不是每設(shè)備唯一的,導(dǎo)致有可能存在安全風(fēng)險,如攻擊者偽冒用戶進(jìn)行注冊。
技術(shù)實現(xiàn)要素:
本發(fā)明的一個目的是為了解決現(xiàn)有fido認(rèn)證標(biāo)準(zhǔn)中,用戶在注冊時存在的安全風(fēng)險問題,提供一種身份認(rèn)證方法,以及基于該方法的用戶設(shè)備和服務(wù)器。
為解決上述技術(shù)問題,第一方面,本發(fā)明提供一種身份認(rèn)證方法,在用戶設(shè)備側(cè),所述方法包括:
將設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器保存所述設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符;
使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名,并將簽名數(shù)據(jù)連同設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器通過設(shè)備唯一標(biāo)識符檢索到設(shè)備驗證公鑰并對簽名數(shù)據(jù)進(jìn)行驗簽,并在驗簽通過時將結(jié)果返回給身份認(rèn)證服務(wù)器,供所述身份認(rèn)證服務(wù)器保存所述服務(wù)驗證公鑰;
使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名,并將簽名數(shù)據(jù)發(fā)送給身份認(rèn)證服務(wù)器,以供身份認(rèn)證服務(wù)器使用服務(wù)驗證公鑰對簽名數(shù)據(jù)進(jìn)行驗簽,并在驗簽通過時保存用戶認(rèn)證公鑰。
進(jìn)一步地,在所述使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名之前,所述方法還包括:
在用戶設(shè)備初次激活時生成服務(wù)驗證公私鑰對,并將服務(wù)驗證私鑰保存在用戶設(shè)備中。
進(jìn)一步地,在所述使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名之前,所述方法還包括:
在用戶注冊時生成用戶認(rèn)證公私鑰對,并將用戶認(rèn)證私鑰保存在用戶設(shè)備中。
進(jìn)一步地,所述公鑰和/或私鑰被保存在對應(yīng)設(shè)備的安全存儲區(qū)域中。
第二方面,本發(fā)明提供一種身份驗證方法,在身份認(rèn)證服務(wù)器側(cè),所述方法包括:
接收設(shè)備認(rèn)證服務(wù)器返回的驗簽結(jié)果,在確認(rèn)驗簽通過時,保存服務(wù)驗證公鑰;
使用服務(wù)驗證公鑰對經(jīng)過服務(wù)驗證私鑰簽名的用戶認(rèn)證公鑰簽名數(shù)據(jù)進(jìn)行驗簽,如果驗簽通過,保存用戶認(rèn)證公鑰;其中:
所述驗簽結(jié)果是通過以下方式得到的:
用戶設(shè)備將設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器保存所述設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符;
用戶設(shè)備使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名,并將簽名數(shù)據(jù)連同設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器通過設(shè)備唯一標(biāo)識符檢索到設(shè)備驗證公鑰并對簽名數(shù)據(jù)進(jìn)行驗簽,并在驗簽通過時將結(jié)果返回給身份認(rèn)證服務(wù)器。
進(jìn)一步地,在所述使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名之前,還包括如下步驟:
在用戶設(shè)備初次激活時生成服務(wù)驗證公私鑰對,并將服務(wù)驗證私鑰保存在用戶設(shè)備中。
進(jìn)一步地,在所述使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名之前,還包括如下步驟:
在用戶注冊時生成用戶認(rèn)證公私鑰對,并將用戶認(rèn)證私鑰保存在用戶設(shè)備中。
進(jìn)一步地,所述公鑰和/或私鑰被保存在對應(yīng)設(shè)備的安全存儲區(qū)域中。
第三方面,本發(fā)明提供一種身份認(rèn)證方法,基于設(shè)備認(rèn)證服務(wù)器、用戶設(shè)備和身份認(rèn)證服務(wù)器實現(xiàn),且在所述設(shè)備認(rèn)證服務(wù)器側(cè),所述方法包括:
接收用戶設(shè)備發(fā)送的設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符并保存;
接收用戶設(shè)備發(fā)送的簽名數(shù)據(jù)和設(shè)備唯一標(biāo)識符,并通過設(shè)備唯一標(biāo)識符檢索到設(shè)備驗證公鑰并對簽名數(shù)據(jù)進(jìn)行驗簽;所述簽名數(shù)據(jù)由用戶設(shè)備使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名得到;
將驗簽結(jié)果返回給身份認(rèn)證服務(wù)器,以供身份認(rèn)證服務(wù)器在驗簽通過時保存服務(wù)驗證公鑰,并在用戶設(shè)備將使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名并發(fā)送給身份認(rèn)證服務(wù)器后,身份認(rèn)證服務(wù)器能夠使用服務(wù)驗證公鑰對簽名數(shù)據(jù)進(jìn)行驗簽并在驗簽通過時保存用戶認(rèn)證公鑰。
進(jìn)一步地,在所述用戶設(shè)備使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名之前,還包括如下步驟:
在用戶設(shè)備初次激活時生成服務(wù)驗證公私鑰對,并將服務(wù)驗證私鑰保存在用戶設(shè)備中。
進(jìn)一步地,在所述使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名之前,還包括如下步驟:
在用戶注冊時生成用戶認(rèn)證公私鑰對,并將用戶認(rèn)證私鑰保存在用戶設(shè)備中。
進(jìn)一步地,所述公鑰和/或私鑰被保存在對應(yīng)設(shè)備的安全存儲區(qū)域中。
第四方面,本發(fā)明提供一種用戶設(shè)備,包括存儲介質(zhì)及存儲在存儲介質(zhì)中的計算機程序,所述程序在運行時可實現(xiàn)以下步驟:
將設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器保存所述設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符;
使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名,并將簽名數(shù)據(jù)連同設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器通過設(shè)備唯一標(biāo)識符檢索到設(shè)備驗證公鑰并對簽名數(shù)據(jù)進(jìn)行驗簽,并在驗簽通過時將結(jié)果返回給身份認(rèn)證服務(wù)器,供所述身份認(rèn)證服務(wù)器保存所述服務(wù)驗證公鑰;
使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名,并將簽名數(shù)據(jù)發(fā)送給身份認(rèn)證服務(wù)器,以供身份認(rèn)證服務(wù)器使用服務(wù)驗證公鑰對簽名數(shù)據(jù)進(jìn)行驗簽,并在驗簽通過時保存用戶認(rèn)證公鑰。
進(jìn)一步地,在所述使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名之前,所述程序在運行時還可實現(xiàn)以下步驟:
在用戶設(shè)備初次激活時生成服務(wù)驗證公私鑰對,并將服務(wù)驗證私鑰保存在用戶設(shè)備中。
進(jìn)一步地,在所述使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名之前,所述程序在運行時還可實現(xiàn)以下步驟:
在用戶注冊時生成用戶認(rèn)證公私鑰對,并將用戶認(rèn)證私鑰保存在用戶設(shè)備中。
進(jìn)一步地,所述公鑰和/或私鑰被保存在對應(yīng)設(shè)備的安全存儲區(qū)域中。
第五方面,本發(fā)明提供一種身份認(rèn)證服務(wù)器,包括存儲介質(zhì)及存儲在存儲介質(zhì)中的計算機程序,其特征在于,所述程序在運行時可實現(xiàn)以下步驟:
接收設(shè)備認(rèn)證服務(wù)器返回的驗簽結(jié)果,在確認(rèn)驗簽通過時,保存服務(wù)驗證公鑰;
使用服務(wù)驗證公鑰對經(jīng)過服務(wù)驗證私鑰簽名的用戶認(rèn)證公鑰簽名數(shù)據(jù)進(jìn)行驗簽,如果驗簽通過,保存用戶認(rèn)證公鑰;其中:
所述驗簽結(jié)果是通過以下方式得到的:
用戶設(shè)備將設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器保存所述設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符;
用戶設(shè)備使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名,并將簽名數(shù)據(jù)連同設(shè)備唯一標(biāo)識符一起發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器通過檢索該設(shè)備唯一標(biāo)識符找到相應(yīng)的設(shè)備驗證公鑰并使用該公鑰對簽名數(shù)據(jù)進(jìn)行驗簽,并在驗簽通過時將結(jié)果返回給身份認(rèn)證服務(wù)器。
進(jìn)一步地,在所述使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名之前,所述程序在運行時還可實現(xiàn)以下步驟:
在用戶設(shè)備初次激活時生成服務(wù)驗證公私鑰對,并將服務(wù)驗證私鑰保存在用戶設(shè)備中。
進(jìn)一步地,在所述使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名之前,所述程序在運行時還可實現(xiàn)以下步驟:
在用戶注冊時生成用戶認(rèn)證公私鑰對,并將用戶認(rèn)證私鑰保存在用戶設(shè)備中。
進(jìn)一步地,所述公鑰和/或私鑰被保存在對應(yīng)設(shè)備的安全存儲區(qū)域中。
第六方面,本發(fā)明提供一種設(shè)備認(rèn)證服務(wù)器,包括存儲介質(zhì)及存儲在存儲介質(zhì)中的計算機程序,所述程序在運行時可實現(xiàn)以下步驟:
接收用戶設(shè)備發(fā)送的設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符并保存;
接收用戶設(shè)備發(fā)送的簽名數(shù)據(jù)和設(shè)備唯一標(biāo)識符,并通過設(shè)備唯一標(biāo)識符檢索到設(shè)備驗證公鑰并對簽名數(shù)據(jù)進(jìn)行驗簽;所述簽名數(shù)據(jù)由用戶設(shè)備使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名得到;
將驗簽結(jié)果返回給身份認(rèn)證服務(wù)器,以供身份認(rèn)證服務(wù)器在驗簽通過時保存服務(wù)驗證公鑰,并在用戶設(shè)備將使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名并發(fā)送給身份認(rèn)證服務(wù)器后,身份認(rèn)證服務(wù)器能夠使用服務(wù)驗證公鑰對簽名數(shù)據(jù)進(jìn)行驗簽并在驗簽通過時保存用戶認(rèn)證公鑰。
進(jìn)一步地,在所述用戶設(shè)備使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名之前,所述程序在運行時還可實現(xiàn)以下步驟:
在用戶設(shè)備初次激活時生成服務(wù)驗證公私鑰對,并將服務(wù)驗證私鑰保存在用戶設(shè)備中。
進(jìn)一步地,在所述使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名之前,所述程序在運行時可實現(xiàn)以下步驟:
在用戶注冊時生成用戶認(rèn)證公私鑰對,并將用戶認(rèn)證私鑰保存在用戶設(shè)備中。
進(jìn)一步地,所述公鑰和/或私鑰被保存在對應(yīng)設(shè)備的安全存儲區(qū)域中。
本發(fā)明提供的身份認(rèn)證方法、用戶設(shè)備和服務(wù)器,具有如下有益效果:
在本發(fā)明的系統(tǒng)架構(gòu)中,在用戶設(shè)備和身份認(rèn)證服務(wù)器之間引入了設(shè)備認(rèn)證服務(wù)器,設(shè)備認(rèn)證服務(wù)器保存有來自用戶設(shè)備的設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符,該設(shè)備驗證公鑰是出廠時預(yù)置在用戶設(shè)備中的,具有唯一性,通過設(shè)備驗證公私鑰對完成服務(wù)驗證公鑰的驗簽,提高了身份驗證公鑰的認(rèn)證安全性。接著,本發(fā)明還通過身份驗證公私鑰對再對用戶注冊時產(chǎn)生的用戶認(rèn)證公鑰進(jìn)行簽名和驗簽,作為最終認(rèn)證用戶身份的依據(jù),進(jìn)一步提高了驗證的安全性,避免了認(rèn)證器驗證密鑰不唯一帶來的風(fēng)險。
附圖說明
圖1為本發(fā)明實施例所提供的身份認(rèn)證方法在用戶設(shè)備側(cè)的流程圖;
圖2為本發(fā)明實施例所提供的身份認(rèn)證方法在身份認(rèn)證服務(wù)器側(cè)的流程圖;
圖3為本發(fā)明實施例所提供的身份認(rèn)證方法在設(shè)備認(rèn)證服務(wù)器側(cè)的流程圖;
圖4為本發(fā)明實施例所提供的身份認(rèn)證方法中dak的產(chǎn)生流程圖;
圖5為本發(fā)明實施例所提供的身份認(rèn)證方法中sak的產(chǎn)生流程圖;
圖6為本發(fā)明實施例所提供的身份認(rèn)證方法中uak的產(chǎn)生流程圖;
圖7為本發(fā)明實施例所提供的用戶設(shè)備的結(jié)構(gòu)示意圖;
圖8為本發(fā)明實施例所提供的身份認(rèn)證服務(wù)器的結(jié)構(gòu)示意圖;
圖9為本發(fā)明實施例所提供的設(shè)備認(rèn)證服務(wù)器的結(jié)構(gòu)示意圖;
圖10為本發(fā)明實施例所提供的身份認(rèn)證方法的整體架構(gòu)圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實施方式對本發(fā)明作進(jìn)一步的詳細(xì)說明。
本發(fā)明提供的一種身份認(rèn)證方法,基本的構(gòu)思是在現(xiàn)有的fido標(biāo)準(zhǔn)的系統(tǒng)架構(gòu)基礎(chǔ)上,引入了設(shè)備認(rèn)證服務(wù)器(或稱設(shè)備認(rèn)證中心),具體架構(gòu)如圖10所示。在用戶的注冊前和注冊過程中,基于設(shè)備認(rèn)證服務(wù)器與用戶設(shè)備(即身份認(rèn)證客戶端)、身份認(rèn)證服務(wù)器之間的交互得到最終的用戶認(rèn)證密鑰,用于認(rèn)證最終用戶身份。
應(yīng)當(dāng)理解的是,在現(xiàn)有的fido認(rèn)證標(biāo)準(zhǔn)中,以uaf架構(gòu)為例,整體上包括用戶注冊步驟和在用戶注冊步驟完成后的用戶認(rèn)證步驟。本發(fā)明涉及用戶注冊步驟及該步驟之前的改進(jìn)。用戶認(rèn)證步驟屬于現(xiàn)有技術(shù),可以參考fido中有關(guān)用戶認(rèn)證流程的標(biāo)準(zhǔn)來實現(xiàn),在本發(fā)明中不再贅述。
本說明書中述及的以下詞語和短語通常具有以下規(guī)定的含義,除非使用的文義另有所指:
術(shù)語“設(shè)備驗證密鑰”,英文全稱為deviceattestationkey,簡寫為dak。
“設(shè)備驗證密鑰”是一種非對稱密鑰對,包括公鑰和私鑰。該密鑰對由身份認(rèn)證客戶端在設(shè)備出廠時產(chǎn)生并預(yù)置到設(shè)備安全存儲區(qū)域中。每臺設(shè)備的dak是唯一的。
術(shù)語“服務(wù)驗證密鑰”,英文全稱為serviceattestationkey,簡寫為sak。
“服務(wù)驗證密鑰”是一種非對稱密鑰對,包括公鑰和私鑰。該密鑰由身份認(rèn)證客戶端在初次激活使用時產(chǎn)生,并使用dak的私鑰進(jìn)行簽名后傳遞到身份認(rèn)證服務(wù)端。
術(shù)語“用戶認(rèn)證密鑰”,英文全稱為userauthenticationkey,簡寫為uak。
“用戶認(rèn)證密鑰”是一種非對稱密鑰對,包括公鑰和私鑰。該密鑰對在用戶進(jìn)行注冊時由用戶設(shè)備產(chǎn)生,用于認(rèn)證最終用戶身份。
下面,結(jié)合圖1-6,分別從用戶設(shè)備側(cè)、身份認(rèn)證服務(wù)器側(cè)和設(shè)備認(rèn)證服務(wù)器側(cè)描述本發(fā)明實施例中的身份認(rèn)證方法。
在用戶設(shè)備側(cè),本發(fā)明實施例提供的身份認(rèn)證方法,包括如下步驟:
s101:將設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器保存所述設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符;
在步驟s101中,設(shè)備驗證密鑰是在用戶設(shè)備出廠時預(yù)置在設(shè)備的安全存儲區(qū)域內(nèi)的,該公私鑰對具有唯一性。
s102:在用戶設(shè)備初次激活時生成服務(wù)驗證公私鑰對,并將服務(wù)驗證私鑰保存在用戶設(shè)備中;
用戶在使用設(shè)備登錄到某個應(yīng)用服務(wù)方進(jìn)行開通身份認(rèn)證服務(wù)時,需要進(jìn)行激活。在此過程中,用戶設(shè)備會再生成一對公私鑰對,本發(fā)明將其作為服務(wù)驗證公私鑰對來使用(如下文敘述)。
s103:使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名,并將簽名數(shù)據(jù)連同設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器通過設(shè)備唯一標(biāo)識符檢索到設(shè)備驗證公鑰并對簽名數(shù)據(jù)進(jìn)行驗簽,并在驗簽通過時將結(jié)果返回給身份認(rèn)證服務(wù)器,供所述身份認(rèn)證服務(wù)器保存所述服務(wù)驗證公鑰;
在設(shè)備認(rèn)證服務(wù)器接收到簽名數(shù)據(jù)后,通過設(shè)備唯一標(biāo)識符檢索到該設(shè)備的dak公鑰后對簽名數(shù)據(jù)進(jìn)行驗證,并將驗證結(jié)果返回給身份認(rèn)證服務(wù)器。通過步驟s103,完成了用戶注冊前的第一道驗證過程。由于dak密鑰的唯一性以及sak密鑰與dak密鑰之間關(guān)聯(lián)性,使得經(jīng)過dak密鑰驗簽的sak公鑰的安全性得到保證,為后續(xù)用戶注冊的驗簽過程提供安全的驗證基礎(chǔ)。
s104:在用戶注冊時生成用戶認(rèn)證公私鑰對,并將用戶認(rèn)證私鑰保存在用戶設(shè)備中;
從步驟s104開始,進(jìn)入到用戶注冊的環(huán)節(jié),在fido標(biāo)準(zhǔn)的體系下,以uaf為例,生成用戶認(rèn)證公私鑰對具體可以通過以下的流程:
用戶設(shè)備通過app向應(yīng)用提供方提交用戶名和其它必要用戶數(shù)據(jù),申請啟動uaf注冊程序。應(yīng)用提供方服務(wù)器收到用戶請求后,通過用戶應(yīng)用向智能設(shè)備中的uaf客戶端發(fā)出注冊申請。uaf客戶端收到注冊申請后,通過應(yīng)用接口調(diào)用uaf身份認(rèn)證器,并向用戶提供本設(shè)備支持的本地確認(rèn)方式供用戶選擇與確認(rèn);在用戶確認(rèn)后,uaf身份認(rèn)證器生成新的公私鑰對。此處的uaf身份認(rèn)證器可以是任意一種生物信息識別裝置,包括但不限于公知的指紋識別裝置、面部識別模塊、虹膜識別模塊和語音識別裝置等。
應(yīng)當(dāng)理解的是,用戶在獲得一個支持uaf協(xié)議的智能終端(如手機)后,需要像日常使用那樣先在設(shè)備上錄入用戶生物特征識別信息完成本地認(rèn)證。例如利用指紋識別模塊采集用戶的指紋信息、利用麥克采集用戶的語音信息、或者利用攝像頭采集用戶的面部或虹膜信息等,完成用戶與設(shè)備之間的認(rèn)證信息采集,并存儲在本設(shè)備的安全單元中。
s105:使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名,并將簽名數(shù)據(jù)發(fā)送給身份認(rèn)證服務(wù)器,以供身份認(rèn)證服務(wù)器使用服務(wù)驗證公鑰對簽名數(shù)據(jù)進(jìn)行驗簽,并在驗簽通過時保存用戶認(rèn)證公鑰。
在身份認(rèn)證服務(wù)器接收到簽名數(shù)據(jù)后,根據(jù)應(yīng)用服務(wù)信息查找本地的數(shù)據(jù)庫,檢索到與該應(yīng)用服務(wù)匹配的sak公鑰后,使用sak公鑰對簽名數(shù)據(jù)進(jìn)行驗證。
如步驟s103中所述,此時使用的服務(wù)驗證公鑰經(jīng)由dak密鑰完成簽名和驗證,具有很好的安全性,在此基礎(chǔ)上,進(jìn)一步利用sak密鑰完成對uak的簽名和驗證,仍然可以保證uak驗證過程中的唯一性和安全性,避免攻擊者偽冒用戶進(jìn)行注冊的風(fēng)險。
經(jīng)過步驟s105得到的uak公鑰,可以作為身份認(rèn)證服務(wù)器在授權(quán)用戶設(shè)備執(zhí)行敏感操作(如線上支付等)時,進(jìn)行用戶身份認(rèn)證的最終依據(jù)。具體的認(rèn)證流程可以參考fido標(biāo)準(zhǔn)中有關(guān)認(rèn)證流程部分的內(nèi)容,在本發(fā)明中不再贅述。
作為一種優(yōu)選的實施方案,在上述各個設(shè)備保存公鑰或私鑰的過程中,優(yōu)先將這些密鑰保存在對應(yīng)設(shè)備的安全存儲區(qū)域中,如經(jīng)過加密處理的數(shù)據(jù)庫中或者可信執(zhí)行環(huán)境和安全芯片中,這樣可以避免密鑰的泄漏,提高驗證過程的安全性。
在身份認(rèn)證服務(wù)器側(cè),本發(fā)明實施例提供的身份驗證方法具體包括以下的步驟:
s201:接收設(shè)備認(rèn)證服務(wù)器返回的驗簽結(jié)果,在確認(rèn)驗簽通過時,保存服務(wù)驗證公鑰;
s202:使用服務(wù)驗證公鑰對經(jīng)過服務(wù)驗證私鑰簽名的用戶認(rèn)證公鑰簽名數(shù)據(jù)進(jìn)行驗簽,如果驗簽通過,保存用戶認(rèn)證公鑰。
應(yīng)當(dāng)理解的是,在步驟s202之前,在用戶設(shè)備側(cè)還包括如下步驟:在用戶注冊時生成用戶認(rèn)證公私鑰對,并將用戶認(rèn)證私鑰保存在用戶設(shè)備的安全區(qū)域中。
其中:
所述驗簽結(jié)果是通過以下方式得到的:
用戶設(shè)備將設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器保存所述設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符;
在用戶設(shè)備初次激活時生成服務(wù)驗證公私鑰對,并將服務(wù)驗證私鑰保存在用戶設(shè)備中。
用戶設(shè)備使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名,并將簽名數(shù)據(jù)連同設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器通過設(shè)備唯一標(biāo)識符檢索到設(shè)備驗證公鑰并對簽名數(shù)據(jù)進(jìn)行驗簽,并在驗簽通過時將結(jié)果返回給身份認(rèn)證服務(wù)器。
作為一種優(yōu)選的實施方案,在上述各個設(shè)備保存公鑰或私鑰的過程中,優(yōu)先將這些密鑰保存在對應(yīng)設(shè)備的安全存儲區(qū)域中,如經(jīng)過加密處理的數(shù)據(jù)庫中或者可信執(zhí)行環(huán)境和安全芯片中,這樣可以避免密鑰的泄漏,提高驗證過程的安全性。
上述各步驟中的具體實施方式可以參考在用戶設(shè)備側(cè)的相關(guān)描述,此處不再贅述。
在設(shè)備認(rèn)證服務(wù)器側(cè),本發(fā)明實施例提供的身份驗證方法具體包括以下的步驟:
s301:接收用戶設(shè)備發(fā)送的設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符并保存;
s302:接收用戶設(shè)備發(fā)送的簽名數(shù)據(jù)和設(shè)備唯一標(biāo)識符,并通過設(shè)備唯一標(biāo)識符檢索到設(shè)備驗證公鑰,然后對簽名數(shù)據(jù)進(jìn)行驗簽;所述簽名數(shù)據(jù)由用戶設(shè)備使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名得到;
s303:將驗簽結(jié)果返回給身份認(rèn)證服務(wù)器,以供身份認(rèn)證服務(wù)器在驗簽通過時保存服務(wù)驗證公鑰,并在用戶設(shè)備將使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名并發(fā)送給身份認(rèn)證服務(wù)器后,身份認(rèn)證服務(wù)器能夠使用服務(wù)驗證公鑰對簽名數(shù)據(jù)進(jìn)行驗簽并在驗簽通過時保存用戶認(rèn)證公鑰。
其中,在所述用戶設(shè)備使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名之前,還包括如下步驟:
在用戶設(shè)備初次激活時生成服務(wù)驗證公私鑰對,并將服務(wù)驗證私鑰保存在用戶設(shè)備中,以及
在所述使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名之前,還包括如下步驟:
在用戶注冊時生成用戶認(rèn)證公私鑰對,并將用戶認(rèn)證私鑰保存在用戶設(shè)備中。
作為一種優(yōu)選的實施方案,在上述各個設(shè)備保存公鑰或私鑰的過程中,優(yōu)先將這些密鑰保存在對應(yīng)設(shè)備的安全存儲區(qū)域中,如經(jīng)過加密處理的數(shù)據(jù)庫中或者可信執(zhí)行環(huán)境和安全芯片中,這樣可以避免密鑰的泄漏,提高驗證過程的安全性。
上述各步驟中的具體實施方式可以參考在用戶設(shè)備側(cè)的相關(guān)描述,此處不再贅述。
下面,根據(jù)上述提供的身份認(rèn)證方法,結(jié)合圖7-9,描述本發(fā)明實施例提供的用于實現(xiàn)上述方法的有關(guān)裝置。
在一個實施例中,本發(fā)明提供了一種用戶設(shè)備,也可以稱為身份認(rèn)證客戶端。其由用戶持有,可以是任何一種已知的用戶智能設(shè)備,包括但不限于手機、pad或智能手表等。該用戶設(shè)備可以配置有支持fido協(xié)議的操作系統(tǒng)和應(yīng)用程序。此外還可以具有生物識別裝置,包括但不限于公知的指紋識別裝置、虹膜識別裝置、面部識別裝置和語音識別裝置等。
本發(fā)明實施例提供的用戶設(shè)備包括存儲介質(zhì)401及存儲在存儲介質(zhì)中的計算機程序,該程序可以被處理器402執(zhí)行,所述程序在運行時可實現(xiàn)以下步驟:
將設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器保存所述設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符;
在用戶設(shè)備初次激活時生成服務(wù)驗證公私鑰對,并將服務(wù)驗證私鑰保存在用戶設(shè)備中;
使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名,并將簽名數(shù)據(jù)連同設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器通過設(shè)備唯一標(biāo)識符檢索到設(shè)備驗證公鑰并對簽名數(shù)據(jù)進(jìn)行驗簽,并在驗簽通過時將結(jié)果返回給身份認(rèn)證服務(wù)器,供所述身份認(rèn)證服務(wù)器保存所述服務(wù)驗證公鑰;
在用戶注冊時生成用戶認(rèn)證公私鑰對,并將用戶認(rèn)證私鑰保存在用戶設(shè)備中;
使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名,并將簽名數(shù)據(jù)發(fā)送給身份認(rèn)證服務(wù)器,以供身份認(rèn)證服務(wù)器使用服務(wù)驗證公鑰對簽名數(shù)據(jù)進(jìn)行驗簽,并在驗簽通過時保存用戶認(rèn)證公鑰。
作為一種優(yōu)選的實施方案,在上述各個設(shè)備保存公鑰或私鑰的過程中,優(yōu)先將這些密鑰保存在對應(yīng)設(shè)備的安全存儲區(qū)域中,如經(jīng)過加密處理的數(shù)據(jù)庫中或者可信執(zhí)行環(huán)境和安全芯片中,這樣可以避免密鑰的泄漏,提高驗證過程的安全性。
上述程序運行的步驟對應(yīng)于在用戶設(shè)備側(cè)執(zhí)行的身份認(rèn)證方法,具體實施方式可以參考上文的描述,在此不再贅述。
在另一個實施例中,本發(fā)明提供一種身份認(rèn)證服務(wù)器,包括存儲介質(zhì)501及存儲在存儲介質(zhì)中的計算機程序,該程序可以被處理器502執(zhí)行,所述程序在運行時可實現(xiàn)以下步驟:
接收設(shè)備認(rèn)證服務(wù)器返回的驗簽結(jié)果,在確認(rèn)驗簽通過時,保存服務(wù)驗證公鑰;
使用服務(wù)驗證公鑰對經(jīng)過服務(wù)驗證私鑰簽名的用戶認(rèn)證公鑰簽名數(shù)據(jù)進(jìn)行驗簽,如果驗簽通過,保存用戶認(rèn)證公鑰。
應(yīng)當(dāng)理解的是,在用戶設(shè)備側(cè)還包括如下步驟:在用戶注冊時生成用戶認(rèn)證公私鑰對,并將用戶認(rèn)證私鑰保存在用戶設(shè)備中。
其中:
所述驗簽結(jié)果是通過以下方式得到的:
用戶設(shè)備將設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器保存所述設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符;
在用戶設(shè)備初次激活時生成服務(wù)驗證公私鑰對,并將服務(wù)驗證私鑰保存在用戶設(shè)備中。
用戶設(shè)備使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名,并將簽名數(shù)據(jù)連同設(shè)備唯一標(biāo)識符發(fā)送給設(shè)備認(rèn)證服務(wù)器,以供設(shè)備認(rèn)證服務(wù)器通過設(shè)備唯一標(biāo)識符檢索到設(shè)備驗證公鑰并對簽名數(shù)據(jù)進(jìn)行驗簽,并在驗簽通過時將結(jié)果返回給身份認(rèn)證服務(wù)器。
作為一種優(yōu)選的實施方案,在上述各個設(shè)備保存公鑰或私鑰的過程中,優(yōu)先將這些密鑰保存在對應(yīng)設(shè)備的安全存儲區(qū)域中,如經(jīng)過加密處理的數(shù)據(jù)庫中或者可信執(zhí)行環(huán)境和安全芯片中,這樣可以避免密鑰的泄漏,提高驗證過程的安全性。
上述程序運行的步驟對應(yīng)于在身份認(rèn)證服務(wù)器側(cè)執(zhí)行的身份認(rèn)證方法,具體實施方式可以參考上文的描述,在此不再贅述。
在另一個實施例中,本發(fā)明還提供了一種設(shè)備認(rèn)證服務(wù)器,包括存儲介質(zhì)601及存儲在存儲介質(zhì)中的計算機程序,該程序可以被處理器602執(zhí)行,所述程序在運行時可實現(xiàn)以下步驟:
接收用戶設(shè)備發(fā)送的設(shè)備驗證公鑰和設(shè)備唯一標(biāo)識符并保存;
接收用戶設(shè)備發(fā)送的簽名數(shù)據(jù)和設(shè)備唯一標(biāo)識符,并通過設(shè)備唯一標(biāo)識符檢索到設(shè)備驗證公鑰然后對簽名數(shù)據(jù)進(jìn)行驗簽;所述簽名數(shù)據(jù)由用戶設(shè)備使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名得到;
將驗簽結(jié)果返回給身份認(rèn)證服務(wù)器,以供身份認(rèn)證服務(wù)器在驗簽通過時保存服務(wù)驗證公鑰,并在用戶設(shè)備將使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名并發(fā)送給身份認(rèn)證服務(wù)器后,身份認(rèn)證服務(wù)器能夠使用服務(wù)驗證公鑰對簽名數(shù)據(jù)進(jìn)行驗簽并在驗簽通過時保存用戶認(rèn)證公鑰。
在所述用戶設(shè)備使用設(shè)備驗證私鑰對服務(wù)驗證公鑰進(jìn)行簽名之前,所述程序在運行時還可實現(xiàn)以下步驟:
在用戶設(shè)備初次激活時生成服務(wù)驗證公私鑰對,并將服務(wù)驗證私鑰保存在用戶設(shè)備中。
在所述使用服務(wù)驗證私鑰對用戶認(rèn)證公鑰進(jìn)行簽名之前,所述程序在運行時可實現(xiàn)以下步驟:
在用戶注冊時生成用戶認(rèn)證公私鑰對,并將用戶認(rèn)證私鑰保存在用戶設(shè)備中。
作為一種優(yōu)選的實施方案,在上述各個設(shè)備保存公鑰或私鑰的過程中,優(yōu)先將這些密鑰保存在對應(yīng)設(shè)備的安全存儲區(qū)域中,如經(jīng)過加密處理的數(shù)據(jù)庫中或者可信執(zhí)行環(huán)境和安全芯片中,這樣可以避免密鑰的泄漏,提高驗證過程的安全性。
上述程序運行的步驟對應(yīng)于在設(shè)備認(rèn)證服務(wù)器側(cè)執(zhí)行的身份認(rèn)證方法,具體實施方式可以參考上文的描述,在此不再贅述。
本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
本發(fā)明實施例中的述及的程序,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(read-onlymemory,rom)、隨機存取存儲器(randomaccessmemory,ram)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上對本發(fā)明所提供的身份認(rèn)證方法、用戶設(shè)備和服務(wù)器進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。