本發(fā)明涉及安全登錄認(rèn)證領(lǐng)域,尤其涉及一種登錄認(rèn)證方法及系統(tǒng)。
背景技術(shù):
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,各類物聯(lián)網(wǎng)應(yīng)用越來越廣泛。用戶使用各類應(yīng)用時(shí),應(yīng)用提供方通常要求用戶使用用戶名和密碼進(jìn)行應(yīng)用注冊(cè),而用戶為了更好地體驗(yàn)應(yīng)用,通常也會(huì)按照應(yīng)用提供方要求對(duì)各類應(yīng)用進(jìn)行注冊(cè),這也使得用戶必須使用用戶名和密碼的認(rèn)證方式登錄應(yīng)用。
但是用戶名和密碼極其容易泄露,他人獲得用戶的用戶名及密碼后登錄應(yīng)用,進(jìn)行各種非法操作,例如盜取用戶在應(yīng)用中保存的各種私密信息,或發(fā)布一些對(duì)用戶及用戶周圍親友不利的信息,或?qū)τ脩粲H友進(jìn)行詐騙,或僅僅為了顯示自己高超的破譯密碼技術(shù),這嚴(yán)重侵害了用戶及其親友的利益;此外,各種應(yīng)用提供商對(duì)用戶設(shè)置密碼的要求不同,用戶很難準(zhǔn)確記憶應(yīng)用的用戶名及其對(duì)應(yīng)的密碼,造成用戶在用密碼登錄應(yīng)用時(shí)經(jīng)常發(fā)生無法登錄該應(yīng)用的情況,給用戶造成很多不便,嚴(yán)重影響了用戶體驗(yàn)。
為了提高用戶登錄認(rèn)證的安全性,市場上也出現(xiàn)了一些沒有使用密碼的登錄認(rèn)證方案,但是用戶體驗(yàn)不盡如人意;例如,利用手機(jī)的驗(yàn)證碼登錄,但一旦手機(jī)被盜或者丟失,用戶登錄認(rèn)證的安全性同樣無法保證,而且每次登錄時(shí)都要接收驗(yàn)證碼,并將驗(yàn)證碼復(fù)制粘貼到手機(jī)上,十分不便,如果在非手機(jī)端上進(jìn)行操作應(yīng)用,還必須將密碼手動(dòng)輸入到非手機(jī)端,這會(huì)使得登錄認(rèn)證操作更加繁瑣;此外,市場上各廠商的登錄認(rèn)證方案不統(tǒng)一、不兼容,且缺乏互操作性。這些問題會(huì)導(dǎo)致登錄認(rèn)證方便性降低,導(dǎo)致數(shù)據(jù)極其容易泄露,保護(hù)數(shù)據(jù)的安全性降低,很難滿足用戶體驗(yàn)。
因此,現(xiàn)在市場上亟需一種用戶操作方便并且安全性高的登錄認(rèn)證方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明目的是為了克服現(xiàn)有技術(shù)的缺陷,提出一種登錄認(rèn)證方法及系統(tǒng)。
本發(fā)明提供了一種登錄認(rèn)證方法,包括:
步驟A1:當(dāng)客戶端接收到用戶的登錄請(qǐng)求時(shí),客戶端根據(jù)用戶賬號(hào)、用戶登錄認(rèn)證方式標(biāo)識(shí)和認(rèn)證設(shè)備標(biāo)識(shí)生成登錄認(rèn)證第一請(qǐng)求,并將所述登錄認(rèn)證第一請(qǐng)求發(fā)送至應(yīng)用服務(wù)器;
步驟A2:所述應(yīng)用服務(wù)器接收并解析所述登錄認(rèn)證第一請(qǐng)求,驗(yàn)證所得解析結(jié)果中的用戶賬號(hào)與所述應(yīng)用服務(wù)器自身所保存的認(rèn)證設(shè)備標(biāo)識(shí)是否匹配,是則根據(jù)所述登錄認(rèn)證第一請(qǐng)求的解析結(jié)果和與用戶賬號(hào)對(duì)應(yīng)的應(yīng)用標(biāo)識(shí)生成登錄認(rèn)證第二請(qǐng)求,并將所述登錄認(rèn)證第二請(qǐng)求發(fā)送至認(rèn)證服務(wù)器,執(zhí)行步驟A3,否則發(fā)送報(bào)錯(cuò)信息至所述客戶端;
步驟A3:所述認(rèn)證服務(wù)器接收并解析所述登錄認(rèn)證第二請(qǐng)求,根據(jù)所述登錄認(rèn)證第二請(qǐng)求的解析結(jié)果生成挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù),根據(jù)所述挑戰(zhàn)值參數(shù)和所述應(yīng)用參數(shù)生成登錄認(rèn)證第二請(qǐng)求響應(yīng),并將所述登錄認(rèn)證第二請(qǐng)求響應(yīng)發(fā)送至所述應(yīng)用服務(wù)器;
步驟A4:所述應(yīng)用服務(wù)器接收并解析所述登錄認(rèn)證第二請(qǐng)求響應(yīng),根據(jù)所述登錄認(rèn)證第二請(qǐng)求響應(yīng)的解析結(jié)果和密鑰標(biāo)識(shí)生成登錄認(rèn)證第一請(qǐng)求響應(yīng),并將所述登錄認(rèn)證第一請(qǐng)求響應(yīng)發(fā)送至所述客戶端;
步驟A5:所述客戶端接收并解析所述登錄認(rèn)證第一請(qǐng)求響應(yīng),根據(jù)所述登錄認(rèn)證第一請(qǐng)求響應(yīng)的解析結(jié)果中的密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成待簽名請(qǐng)求,并將所述待簽名請(qǐng)求發(fā)送至認(rèn)證設(shè)備;
步驟A6:所述認(rèn)證設(shè)備接收并解析所述待簽名請(qǐng)求,驗(yàn)證用戶輸入的用戶登錄認(rèn)證方式信息是否合法,當(dāng)用戶登錄認(rèn)證方式信息合法時(shí),根據(jù)所述待簽名請(qǐng)求的解析結(jié)果中的密鑰標(biāo)識(shí)檢索對(duì)應(yīng)的私鑰,使用所述私鑰對(duì)所述待簽名請(qǐng)求的解析結(jié)果中的挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和內(nèi)部保存的計(jì)數(shù)值進(jìn)行計(jì)算簽名得到簽名值;
步驟A7:所述認(rèn)證設(shè)備根據(jù)所述簽名值和所述計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求,更新所述計(jì)數(shù)值,通過所述客戶端和所述應(yīng)用服務(wù)器將所述驗(yàn)證簽名請(qǐng)求發(fā)送至所述認(rèn)證服務(wù)器;
步驟A8:所述認(rèn)證服務(wù)器接收所述驗(yàn)證簽名請(qǐng)求,根據(jù)公鑰和所述驗(yàn)證簽名請(qǐng)求中計(jì)數(shù)值驗(yàn)證所述驗(yàn)證簽名請(qǐng)求中的簽名值,并將驗(yàn)證結(jié)果發(fā)送至所述應(yīng)用服務(wù)器;
步驟A9:所述應(yīng)用服務(wù)器根據(jù)接收到的驗(yàn)證結(jié)果進(jìn)行允許登錄操作或者拒絕登錄操作。
本發(fā)明還提供了一種登錄認(rèn)證的系統(tǒng),包括:客戶端、應(yīng)用服務(wù)器、認(rèn)證服務(wù)器和認(rèn)證設(shè)備,所述客戶端包括:
第一接收模塊,用于接收用戶的登錄請(qǐng)求,還用于接收所述應(yīng)用服務(wù)器發(fā)送的登錄認(rèn)證第一請(qǐng)求響應(yīng),還用于接收所述認(rèn)證設(shè)備發(fā)送的驗(yàn)證簽名請(qǐng)求;
第一解析模塊,用于解析所述第一接收模塊接收到的所述登錄認(rèn)證第一請(qǐng)求響應(yīng);
第一生成模塊,用于根據(jù)用戶賬號(hào)、用戶登錄認(rèn)證方式標(biāo)識(shí)和認(rèn)證設(shè)備標(biāo)識(shí)生成登錄認(rèn)證第一請(qǐng)求;
第二生成模塊,用于根據(jù)所述登錄認(rèn)證第一請(qǐng)求響應(yīng)的解析結(jié)果中的密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成待簽名請(qǐng)求;
第一發(fā)送模塊,用于發(fā)送所述第一生成模塊生成的所述登錄認(rèn)證第一請(qǐng)求和所述第一接收模塊接收的所述驗(yàn)證簽名請(qǐng)求至所述應(yīng)用服務(wù)器,還用于發(fā)送所述第二生成模塊生成的所述待簽名請(qǐng)求至所述認(rèn)證設(shè)備;
所述應(yīng)用服務(wù)器包括:
第二接收模塊,用于接收所述第一發(fā)送模塊發(fā)送的所述登錄認(rèn)證第一請(qǐng)求和所述驗(yàn)證簽名請(qǐng)求,還用于接收所述認(rèn)證服務(wù)器發(fā)送的所述登錄認(rèn)證第二請(qǐng)求響應(yīng)和簽名值的驗(yàn)證結(jié)果;
第二解析模塊,用于解析所述第二接收模塊接收到的所述登錄認(rèn)證第一請(qǐng)求和所述登錄認(rèn)證第二請(qǐng)求響應(yīng);
第三生成模塊,用于根據(jù)所述登錄認(rèn)證第一請(qǐng)求的解析結(jié)果和與用戶賬號(hào)對(duì)應(yīng)的應(yīng)用標(biāo)識(shí)生成登錄認(rèn)證第二請(qǐng)求;
第四生成模塊,用于根據(jù)所述登錄認(rèn)證第二請(qǐng)求響應(yīng)的解析結(jié)果和密鑰標(biāo)識(shí)生成登錄認(rèn)證第一請(qǐng)求響應(yīng);
第一報(bào)錯(cuò)模塊,用于報(bào)錯(cuò);
第二發(fā)送模塊,用于將所述第三生成模塊生成的所述登錄認(rèn)證第二請(qǐng)求、所述第二接收模塊接收到的所述驗(yàn)證簽名請(qǐng)求發(fā)送至所述認(rèn)證服務(wù)器,還用于將所述第一報(bào)錯(cuò)模塊的報(bào)錯(cuò)信息和所述第四生成模塊生成的所述登錄認(rèn)證第一請(qǐng)求響應(yīng)發(fā)送至所述第一接收模塊;
第一驗(yàn)證模塊,用于驗(yàn)證所得解析結(jié)果中的用戶賬號(hào)與所述應(yīng)用服務(wù)器自身所保存的認(rèn)證設(shè)備標(biāo)識(shí)是否匹配,是則觸發(fā)所述第三生成模塊和所述第一報(bào)錯(cuò)模塊,否則觸發(fā)所述第二發(fā)送模塊;
登錄模塊,用于根據(jù)所述第二接收模塊接收到的所述驗(yàn)證結(jié)果進(jìn)行允許登錄操作或者拒絕登錄操作;
所述認(rèn)證服務(wù)器包括:
第三接收模塊,用于接收所述第二發(fā)送模塊發(fā)送的所述登錄認(rèn)證第二請(qǐng)求和所述驗(yàn)證簽名請(qǐng)求;
第三解析模塊,用于解析所述第三接收模塊接收到的所述登錄認(rèn)證第二請(qǐng)求和所述驗(yàn)證簽名請(qǐng)求;
第五生成模塊,用于根據(jù)所述第三解析模塊解析所述登錄認(rèn)證第二請(qǐng)求的解析結(jié)果生成挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù);
第六生成模塊,用于根據(jù)所述第五生成模塊生成的所述挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成所述登錄認(rèn)證第二請(qǐng)求響應(yīng);
第二驗(yàn)證模塊,用于根據(jù)公鑰和所述驗(yàn)證簽名請(qǐng)求中計(jì)數(shù)值驗(yàn)證所述驗(yàn)證簽名請(qǐng)求中的簽名值;
第三發(fā)送模塊,用于發(fā)送所述第六生成模塊生成的所述登錄認(rèn)證第二請(qǐng)求響應(yīng)和所述第二驗(yàn)證模塊的驗(yàn)證結(jié)果至所述應(yīng)用服務(wù)器;
所述認(rèn)證設(shè)備包括:
第四接收模塊,用于接收所述第一發(fā)送模塊發(fā)送的所述待簽名請(qǐng)求;
第四解析模塊,用于解析所述第四接收模塊接收的所述待簽名請(qǐng)求;
第三驗(yàn)證模塊,用于當(dāng)所述第四解析模塊解析所述待簽名請(qǐng)求后,驗(yàn)證用戶輸入的用戶登錄認(rèn)證方式信息是否合法;
第一檢索模塊,用于當(dāng)?shù)谌?yàn)證模塊的驗(yàn)證結(jié)果合法時(shí),根據(jù)所述待簽名請(qǐng)求的解析結(jié)果中的密鑰標(biāo)識(shí)檢索對(duì)應(yīng)的私鑰;
第七生成模塊,用于當(dāng)所述第一檢索模塊檢索到與所述待簽名請(qǐng)求解析結(jié)果中的密鑰標(biāo)識(shí)對(duì)應(yīng)的私鑰時(shí),使用所述私鑰對(duì)所述待簽名請(qǐng)求的解析結(jié)果中的挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和內(nèi)部保存的計(jì)數(shù)值進(jìn)行計(jì)算簽名得到簽名值;
第八生成模塊,用于根據(jù)所述第七生成模塊生成的所述簽名值和所述計(jì)數(shù)值生成所述驗(yàn)證簽名請(qǐng)求;
更新模塊,用于在所述第八生成模塊生成所述驗(yàn)證簽名請(qǐng)求之后,更新所述計(jì)數(shù)值;
第四發(fā)送模塊,用于發(fā)送所述第八生成模塊生成的驗(yàn)證簽名請(qǐng)求至所述第一接收模塊。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):本專利提出了一種通用的、基于認(rèn)證設(shè)備的登錄認(rèn)證方案,通過可擴(kuò)展的、統(tǒng)一的、可互操作的接口,使用戶在登錄各種應(yīng)用時(shí),無需輸入密碼,就可在本地實(shí)現(xiàn)對(duì)用戶身份和設(shè)備身份的高安全的認(rèn)證。該登錄認(rèn)證方案操作方便,易于管理,登錄認(rèn)證流程安全性高,解決了賬戶安全的問題,提高了用戶體驗(yàn)。
附圖說明
為了更清楚的說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例一提供的一種登錄認(rèn)證方法流程圖;
圖2和3為本發(fā)明實(shí)施例二提供的一種登錄認(rèn)證方法流程圖;
圖4和5為本發(fā)明實(shí)施例三提供的一種登錄認(rèn)證方法流程圖;
圖6和7為本發(fā)明實(shí)施例三提供的一種登錄認(rèn)證方法流程圖;
圖8為本發(fā)明實(shí)施例四提供的一種登錄認(rèn)證的系統(tǒng)方框圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一
如圖1所示,本實(shí)施例一提供了一種登錄認(rèn)證方法,包括如下步驟:
步驟S1:當(dāng)客戶端接收到用戶的登錄請(qǐng)求時(shí),客戶端根據(jù)用戶賬號(hào)、用戶登錄認(rèn)證方式標(biāo)識(shí)和認(rèn)證設(shè)備標(biāo)識(shí)生成登錄認(rèn)證第一請(qǐng)求;
可選地,本方法實(shí)施例步驟S1中,客戶端根據(jù)用戶賬號(hào)、用戶登錄認(rèn)證方式標(biāo)識(shí)和認(rèn)證設(shè)備標(biāo)識(shí)生成登錄認(rèn)證第一請(qǐng)求之前,還包括:
認(rèn)證設(shè)備提示用戶進(jìn)行身份認(rèn)證,判斷用戶身份是否合法,是則發(fā)送用戶身份合法信息至所述客戶端,并繼續(xù)執(zhí)行操作,否則報(bào)錯(cuò)結(jié)束;
優(yōu)選地,上述方法實(shí)施例中,在認(rèn)證設(shè)備判定用戶身份合法之后,還包括:
認(rèn)證設(shè)備顯示可供用戶選擇的用戶登錄認(rèn)證方式,當(dāng)接收到用戶選擇的用戶登錄認(rèn)證方式信息時(shí),讀取與用戶所選擇的用戶登錄認(rèn)證方式相對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí),發(fā)送用戶登錄認(rèn)證方式標(biāo)識(shí)至客戶端;
具體地,本方法實(shí)施例中,用戶登錄認(rèn)證方式信息對(duì)應(yīng)的用戶登錄認(rèn)證方式包括:指紋認(rèn)證和/或掌紋認(rèn)證和/或虹膜認(rèn)證和/或臉譜認(rèn)證和/或聲紋認(rèn)證和/或動(dòng)脈認(rèn)證;
步驟S2:客戶端發(fā)送登錄認(rèn)證第一請(qǐng)求至應(yīng)用服務(wù)器;
步驟S3:接收并解析登錄認(rèn)證第一請(qǐng)求,驗(yàn)證所得解析結(jié)果中的用戶賬號(hào)與應(yīng)用服務(wù)器自身所保存的認(rèn)證設(shè)備標(biāo)識(shí)是否匹配,是則根據(jù)登錄認(rèn)證第一請(qǐng)求的解析結(jié)果和與用戶賬號(hào)對(duì)應(yīng)的應(yīng)用標(biāo)識(shí)生成登錄認(rèn)證第二請(qǐng)求,并將其發(fā)送至認(rèn)證服務(wù)器,執(zhí)行步驟S4,否則發(fā)送報(bào)錯(cuò)信息至客戶端;
步驟S4:認(rèn)證服務(wù)器接收并解析登錄認(rèn)證第二請(qǐng)求,根據(jù)登錄認(rèn)證第二請(qǐng)求的解析結(jié)果生成挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù),根據(jù)挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成登錄認(rèn)證第二請(qǐng)求響應(yīng);
可選地,本方法實(shí)施例步驟S4中,根據(jù)登錄認(rèn)證第二請(qǐng)求的解析結(jié)果生成挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)之前,還包括:
認(rèn)證服務(wù)器根據(jù)解析登錄認(rèn)證第二請(qǐng)求所得的認(rèn)證設(shè)備標(biāo)識(shí)判斷認(rèn)證設(shè)備是否可用,是則繼續(xù),否則報(bào)錯(cuò)結(jié)束;
優(yōu)選地,上述方法實(shí)施例步驟S4中,當(dāng)認(rèn)證服務(wù)器根據(jù)解析登錄認(rèn)證第二請(qǐng)求所得的認(rèn)證設(shè)備標(biāo)識(shí)判定認(rèn)證設(shè)備可用之后,還包括:
認(rèn)證服務(wù)器根據(jù)解析登錄認(rèn)證第二請(qǐng)求所得的用戶登錄認(rèn)證方式標(biāo)識(shí)判斷對(duì)應(yīng)的用戶登錄認(rèn)證方式是否可用,是則繼續(xù),否則報(bào)錯(cuò)結(jié)束;
步驟S5:認(rèn)證服務(wù)器將登錄認(rèn)證第二請(qǐng)求響應(yīng)發(fā)送至應(yīng)用服務(wù)器;
步驟S6:應(yīng)用服務(wù)器接收并解析登錄認(rèn)證第二請(qǐng)求響應(yīng),根據(jù)登錄認(rèn)證第二請(qǐng)求響應(yīng)的解析結(jié)果和密鑰標(biāo)識(shí)生成登錄認(rèn)證第一請(qǐng)求響應(yīng);
可選地,本方法實(shí)施例步驟S6中,根據(jù)登錄認(rèn)證第二請(qǐng)求響應(yīng)的解析結(jié)果和密鑰標(biāo)識(shí)生成登錄認(rèn)證第一請(qǐng)求響應(yīng)之前,還包括:
應(yīng)用服務(wù)器根據(jù)保存的用戶賬號(hào)和用戶登錄認(rèn)證方式標(biāo)識(shí)判斷是否能檢索到對(duì)應(yīng)的密鑰標(biāo)識(shí),是則繼續(xù),否則發(fā)送報(bào)錯(cuò)信息至客戶端;
步驟S7:應(yīng)用服務(wù)器將登錄認(rèn)證第一請(qǐng)求響應(yīng)發(fā)送至客戶端;
步驟S8:客戶端接收并解析登錄認(rèn)證第一請(qǐng)求響應(yīng),根據(jù)登錄認(rèn)證第一請(qǐng)求響應(yīng)的解析結(jié)果中的密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成待簽名請(qǐng)求;
步驟S9:客戶端將待簽名請(qǐng)求發(fā)送至認(rèn)證設(shè)備;
步驟S10:接收并解析待簽名請(qǐng)求,驗(yàn)證用戶輸入的用戶登錄認(rèn)證方式信息是否合法,當(dāng)用戶登錄認(rèn)證方式信息合法時(shí),根據(jù)待簽名請(qǐng)求解析結(jié)果中的密鑰標(biāo)識(shí)檢索對(duì)應(yīng)的私鑰,使用私鑰對(duì)待簽名請(qǐng)求的解析結(jié)果中的挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和內(nèi)部保存的計(jì)數(shù)值進(jìn)行計(jì)算簽名得到簽名值;
可選地,本方法實(shí)施例步驟S10中,驗(yàn)證用戶輸入的用戶登錄認(rèn)證方式信息是否合法,具體為:
認(rèn)證設(shè)備根據(jù)密鑰標(biāo)識(shí)檢索對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí),根據(jù)用戶登錄認(rèn)證方式標(biāo)識(shí)檢索對(duì)應(yīng)的用戶登錄認(rèn)證方式信息,提示用戶輸入與所選擇的用戶登錄認(rèn)證方式對(duì)應(yīng)的用戶登錄認(rèn)證方式信息,判斷接收的用戶登錄認(rèn)證方式信息與檢索到的用戶登錄認(rèn)證方式信息是否一致,是則繼續(xù),否則報(bào)錯(cuò)結(jié)束;
步驟S11:認(rèn)證設(shè)備根據(jù)簽名值和計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求,更新計(jì)數(shù)值;
可選地,本方法實(shí)施例步驟S11可替換為:
步驟S11-1:認(rèn)證設(shè)備將簽名值和計(jì)數(shù)值發(fā)送給客戶端,更新計(jì)數(shù)值,客戶端根據(jù)簽名值和計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求,通過應(yīng)用服務(wù)器將驗(yàn)證簽名請(qǐng)求發(fā)送至認(rèn)證服務(wù)器;
可選地,本方法實(shí)施例步驟S11可替換為:
步驟S11-2:認(rèn)證設(shè)備根據(jù)簽名值和計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求,通過客戶端和應(yīng)用服務(wù)器將驗(yàn)證簽名請(qǐng)求發(fā)送至認(rèn)證服務(wù)器;
相應(yīng)地,本方法實(shí)施例步驟S11替換為步驟S11-2時(shí),本方法實(shí)施例還包括步驟S16:當(dāng)應(yīng)用服務(wù)接收到簽名值的驗(yàn)證結(jié)果為驗(yàn)證成功信息時(shí),應(yīng)用服務(wù)器通過客戶端發(fā)送驗(yàn)證成功信息至認(rèn)證設(shè)備,當(dāng)認(rèn)證設(shè)備接收到驗(yàn)證成功信息時(shí),認(rèn)證設(shè)備更新計(jì)數(shù)值;
可選地,本方法實(shí)施例步驟S11可替換為:
步驟S11-3:認(rèn)證設(shè)備將簽名值和計(jì)數(shù)值發(fā)送給客戶端,客戶端根據(jù)簽名值和計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求,通過應(yīng)用服務(wù)器將驗(yàn)證簽名請(qǐng)求發(fā)送至認(rèn)證服務(wù)器;
相應(yīng)地,本方法實(shí)施例步驟S11替換為步驟S11-3時(shí),本方法實(shí)施例還包括步驟S16-1:當(dāng)應(yīng)用服務(wù)器接收到簽名值的驗(yàn)證結(jié)果為驗(yàn)證成功信息時(shí),應(yīng)用服務(wù)器通過客戶端發(fā)送驗(yàn)證成功信息至認(rèn)證設(shè)備,當(dāng)認(rèn)證設(shè)備接收到驗(yàn)證成功信息時(shí),認(rèn)證設(shè)備更新計(jì)數(shù)值;
步驟S12:認(rèn)證設(shè)備通過客戶端和應(yīng)用服務(wù)器將驗(yàn)證簽名請(qǐng)求發(fā)送至認(rèn)證服務(wù)器;
步驟S13:認(rèn)證服務(wù)器接收驗(yàn)證簽名請(qǐng)求,根據(jù)公鑰和驗(yàn)證簽名請(qǐng)求中計(jì)數(shù)值驗(yàn)證所述驗(yàn)證簽名請(qǐng)求中的簽名值;
可選地,本方法實(shí)施例步驟S13中,根據(jù)公鑰和驗(yàn)證簽名請(qǐng)求中計(jì)數(shù)值驗(yàn)證所述驗(yàn)證簽名請(qǐng)求中的簽名值,具體為:
認(rèn)證服務(wù)器保存驗(yàn)證簽名請(qǐng)求中計(jì)數(shù)值,根據(jù)密鑰標(biāo)識(shí)檢索公鑰,并使用公鑰解密簽名值,將解密結(jié)果與根據(jù)挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值進(jìn)行哈希運(yùn)算所得結(jié)果進(jìn)行比對(duì),若一致,則驗(yàn)證成功,否則驗(yàn)證失??;
相應(yīng)地,根據(jù)密鑰標(biāo)識(shí)檢索公鑰,可具體為:
認(rèn)證服務(wù)器根據(jù)解析登錄認(rèn)證第二請(qǐng)求所得的用戶賬號(hào)和用戶認(rèn)證方式標(biāo)識(shí)檢索密鑰標(biāo)識(shí),根據(jù)檢索到的密鑰標(biāo)識(shí)檢索公鑰;
步驟S14:認(rèn)證服務(wù)器將驗(yàn)證結(jié)果發(fā)送至應(yīng)用服務(wù)器;
步驟S15:應(yīng)用服務(wù)器根據(jù)接收到的驗(yàn)證結(jié)果進(jìn)行允許登錄操作或者拒絕登錄操作;
可選地,本方法實(shí)施例步驟S1可以替換為步驟S1-1:
步驟S1-1:當(dāng)客戶端接收到用戶的登錄請(qǐng)求時(shí),客戶端根據(jù)用戶賬號(hào)和認(rèn)證設(shè)備標(biāo)識(shí)生成登錄認(rèn)證第一請(qǐng)求,并將其發(fā)送至應(yīng)用服務(wù)器;
本方法實(shí)施例步驟S1替換為步驟S1-1時(shí),本方法實(shí)施例中步驟S10替換為步驟S10-1:
步驟S10-1:認(rèn)證設(shè)備接收并解析待簽名請(qǐng)求,提示用戶進(jìn)行按鍵確認(rèn),當(dāng)收到用戶的按鍵確認(rèn)信息時(shí),發(fā)送按鍵確認(rèn)信息至客戶端,根據(jù)待簽名請(qǐng)求解析結(jié)果中的密鑰標(biāo)識(shí)檢索私鑰,使用私鑰對(duì)解析得到的挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和內(nèi)部保存的計(jì)數(shù)值進(jìn)行計(jì)算簽名得到簽名值;
可選地,本方法實(shí)施例步驟S13中,根據(jù)公鑰和驗(yàn)證簽名請(qǐng)求中計(jì)數(shù)值驗(yàn)證所述驗(yàn)證簽名請(qǐng)求中的簽名值,具體為:
認(rèn)證服務(wù)器保存驗(yàn)證簽名請(qǐng)求中計(jì)數(shù)值,根據(jù)密鑰標(biāo)識(shí)檢索公鑰,并使用公鑰解密簽名值,將解密結(jié)果與根據(jù)挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值進(jìn)行哈希運(yùn)算所得結(jié)果進(jìn)行比對(duì),若一致,則驗(yàn)證成功,否則驗(yàn)證失敗;
相應(yīng)地,根據(jù)密鑰標(biāo)識(shí)檢索公鑰,可具體為:
認(rèn)證服務(wù)器根據(jù)解析登錄認(rèn)證第二請(qǐng)求所得的用戶賬號(hào)或認(rèn)證設(shè)備標(biāo)識(shí)檢索密鑰標(biāo)識(shí),根據(jù)檢索到的密鑰標(biāo)識(shí)檢索對(duì)應(yīng)的公鑰;
可選地,本方法實(shí)施例步驟S1可替換為步驟S1-2:
步驟S1-2:當(dāng)客戶端接收到用戶的登錄請(qǐng)求時(shí),客戶端根據(jù)用戶賬號(hào)和用戶登錄認(rèn)證方式編號(hào)生成登錄認(rèn)證第一請(qǐng)求,并將其發(fā)送至應(yīng)用服務(wù)器;
當(dāng)本方法實(shí)施例步驟S1替換為步驟S1-2時(shí),本實(shí)施例步驟S3中,根據(jù)登錄認(rèn)證第一請(qǐng)求的解析結(jié)果和當(dāng)前應(yīng)用對(duì)應(yīng)的應(yīng)用標(biāo)識(shí)生成登錄認(rèn)證第二請(qǐng)求之前,還包括:
步驟H1:應(yīng)用服務(wù)器根據(jù)用戶賬號(hào)判斷是否能夠檢索到對(duì)應(yīng)的認(rèn)證設(shè)備標(biāo)識(shí),是則執(zhí)行步驟H2,否則發(fā)送報(bào)錯(cuò)信息至客戶端;
步驟H2:在檢索得到的與認(rèn)證設(shè)備標(biāo)識(shí)相對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)中,應(yīng)用服務(wù)器根據(jù)解析得到的用戶登錄認(rèn)證方式編號(hào)判斷是否能夠檢索到與用戶登錄認(rèn)證方式編號(hào)相對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí),是則執(zhí)行步驟A2中的根據(jù)登錄認(rèn)證第一請(qǐng)求的解析結(jié)果和當(dāng)前應(yīng)用對(duì)應(yīng)的應(yīng)用標(biāo)識(shí)生成登錄認(rèn)證第二請(qǐng)求,否則發(fā)送報(bào)錯(cuò)信息至客戶端。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):本專利提出了一種通用的、基于認(rèn)證設(shè)備的登錄認(rèn)證方案,通過可擴(kuò)展的、統(tǒng)一的、可互操作的接口,使用戶在登錄各種應(yīng)用時(shí),無需輸入密碼,就可在本地實(shí)現(xiàn)對(duì)用戶身份和設(shè)備身份的高安全的認(rèn)證。該登錄認(rèn)證方案操作方便,易于管理,登錄認(rèn)證流程安全性高,解決了賬戶安全的問題,提高了用戶體驗(yàn)。
實(shí)施例二
如圖2和3所示,本實(shí)施例二提供了一種登錄認(rèn)證方法,包括以下步驟:
步驟D1:當(dāng)客戶端接收到用戶賬號(hào)和以認(rèn)證設(shè)備方式登錄的請(qǐng)求時(shí),生成獲取認(rèn)證設(shè)備標(biāo)識(shí)的請(qǐng)求;
本實(shí)施例中,用戶賬號(hào)是與用戶預(yù)登錄應(yīng)用相對(duì)應(yīng)的賬號(hào);
步驟D2:客戶端發(fā)送獲取認(rèn)證設(shè)備標(biāo)識(shí)的請(qǐng)求至認(rèn)證設(shè)備;
例如,獲取認(rèn)證設(shè)備標(biāo)識(shí)的請(qǐng)求為:0x00C500000000;
步驟D3:認(rèn)證設(shè)備接收獲取認(rèn)證設(shè)備標(biāo)識(shí)的請(qǐng)求;
步驟D4:認(rèn)證設(shè)備讀取認(rèn)證設(shè)備標(biāo)識(shí);
本實(shí)施例中,認(rèn)證設(shè)備標(biāo)識(shí)在出廠時(shí)預(yù)植在認(rèn)證設(shè)備中,用于唯一標(biāo)識(shí)認(rèn)證設(shè)備;
具體地,認(rèn)證設(shè)備標(biāo)識(shí)長度為8字節(jié);
例如,認(rèn)證設(shè)備標(biāo)識(shí)為:0x0101161000000086;
步驟D5:認(rèn)證設(shè)備發(fā)送認(rèn)證設(shè)備標(biāo)識(shí)至客戶端;
步驟D6:客戶端接收認(rèn)證設(shè)備標(biāo)識(shí)并保存;
步驟D7:客戶端根據(jù)保存的認(rèn)證設(shè)備標(biāo)識(shí)和接收到的用戶輸入的用戶賬號(hào)生成登錄認(rèn)證第一請(qǐng)求;
例如,登錄認(rèn)證第一請(qǐng)求為:
{
"identity":"0x189012345677+0x0101161000000086",
"statusReports":{status:"valid",effectiveDate:"2016-10-28"}
"timeOfLastStatusChange":"2016-10-28"
};
其中,認(rèn)證設(shè)備標(biāo)識(shí)為:0x0101161000000086;
用戶賬號(hào)為:0x189012345677;
步驟D8:客戶端發(fā)送登錄認(rèn)證第一請(qǐng)求至應(yīng)用服務(wù)器;
步驟D9:應(yīng)用服務(wù)器接收并解析登錄認(rèn)證第一請(qǐng)求,得到用戶賬號(hào)和認(rèn)證設(shè)備標(biāo)識(shí)并保存;
步驟D10:應(yīng)用服務(wù)器驗(yàn)證保存的用戶賬號(hào)與認(rèn)證設(shè)備標(biāo)識(shí)是匹配,是則執(zhí)行步驟D11,否則執(zhí)行步驟D12;
本實(shí)施例中,在步驟D1之前進(jìn)行綁定流程,在綁定流程中,應(yīng)用服務(wù)器保存與當(dāng)前應(yīng)用對(duì)應(yīng)的用戶賬號(hào)和與此用戶賬號(hào)對(duì)應(yīng)的認(rèn)證設(shè)備標(biāo)識(shí),稱為第一認(rèn)證設(shè)備標(biāo)識(shí);
具體地,應(yīng)用服務(wù)器根據(jù)保存的用戶賬號(hào)查詢與所述用戶賬號(hào)相對(duì)應(yīng)的自身已經(jīng)保存的第一認(rèn)證設(shè)備標(biāo)識(shí),判斷查詢到的第一認(rèn)證設(shè)備標(biāo)識(shí)與步驟D9中解析登錄認(rèn)證第一請(qǐng)求后得到的認(rèn)證設(shè)備標(biāo)識(shí)是否一致,是則認(rèn)證設(shè)備可用,執(zhí)行步驟D11,否則執(zhí)行步驟D12;
步驟D11:應(yīng)用服務(wù)器根據(jù)保存的用戶賬號(hào)、認(rèn)證設(shè)備標(biāo)識(shí)和當(dāng)前應(yīng)用對(duì)應(yīng)的應(yīng)用標(biāo)識(shí),生成登錄認(rèn)證第二請(qǐng)求;
例如,登錄認(rèn)證第二請(qǐng)求為:
{
"identity":"0x189012345677+0x0101161000000086",
"url":"https://my.alipay.com/portal/i.htm?/1234%x23abcd",
"statusReports":{status:"valid",effectiveDate:"2016-10-28"}
"timeOfLastStatusChange":"2016-10-28"
};
其中,用戶賬號(hào)為:0x189012345677;
認(rèn)證設(shè)備標(biāo)識(shí)為:0x0101161000000086;
應(yīng)用標(biāo)識(shí)為:https://my.alipay.com/portal/i.htm?/1234%x23abcd;
本實(shí)施例中,應(yīng)用標(biāo)識(shí)用于識(shí)別不同種類的應(yīng)用;
例如,應(yīng)用標(biāo)識(shí)為:https://my.alipay.com/portal/i.htm?/1234%x23abcd;
本實(shí)施例中,在步驟D1之前進(jìn)行綁定流程,在綁定流程中應(yīng)用服務(wù)器保存與當(dāng)前應(yīng)用對(duì)應(yīng)的應(yīng)用標(biāo)識(shí);
步驟D12:應(yīng)用服務(wù)器發(fā)送報(bào)錯(cuò)結(jié)束信息至客戶端;
步驟D13:客戶端接收?qǐng)?bào)錯(cuò)結(jié)束信息并顯示;
步驟D14:應(yīng)用服務(wù)器發(fā)送登錄認(rèn)證第二請(qǐng)求至認(rèn)證服務(wù)器;
步驟D15:認(rèn)證服務(wù)器接收并解析登錄認(rèn)證第二請(qǐng)求,得到應(yīng)用標(biāo)識(shí)、用戶賬號(hào)和認(rèn)證設(shè)備標(biāo)識(shí)并保存;
步驟D16:認(rèn)證服務(wù)器根據(jù)認(rèn)證設(shè)備標(biāo)識(shí)判斷認(rèn)證設(shè)備是否可用,是則執(zhí)行步驟D17,否則報(bào)錯(cuò)結(jié)束;
本實(shí)施例中,在步驟D1之前進(jìn)行綁定流程,在綁定流程中認(rèn)證服務(wù)器保存認(rèn)證設(shè)備的認(rèn)證設(shè)備標(biāo)識(shí),稱為第二認(rèn)證設(shè)備標(biāo)識(shí);
具體地,認(rèn)證服務(wù)器查詢自身已經(jīng)保存的第二認(rèn)證設(shè)備標(biāo)識(shí)當(dāng)中是否有與在步驟D15中保存的認(rèn)證設(shè)備標(biāo)識(shí)相一致的,是則認(rèn)證設(shè)備可用,執(zhí)行步驟D17,否則,報(bào)錯(cuò)結(jié)束;
步驟D17:認(rèn)證服務(wù)器根據(jù)認(rèn)證設(shè)備標(biāo)識(shí)產(chǎn)生挑戰(zhàn)值參數(shù)并保存,根據(jù)應(yīng)用標(biāo)識(shí)產(chǎn)生應(yīng)用參數(shù)并保存;
具體地,認(rèn)證服務(wù)器運(yùn)用哈希算法對(duì)認(rèn)證設(shè)備標(biāo)識(shí)進(jìn)行哈希運(yùn)算得到挑戰(zhàn)值參數(shù);
更具體地,挑戰(zhàn)值參數(shù)長度為32字節(jié);
優(yōu)選地,哈希算法為SM3算法,除此之外還可以為SHA-256算法等;
例如,挑戰(zhàn)值參數(shù)為:
1669818D4FFE24404CE00D9AE1C5E1213DD1378D77C0803C46F5CB9394F47C8;
具體地,認(rèn)證服務(wù)器運(yùn)用哈希算法對(duì)應(yīng)用標(biāo)識(shí)進(jìn)行哈希運(yùn)算得到應(yīng)用參數(shù);
更具體地,應(yīng)用參數(shù)長度為32字節(jié);
優(yōu)選地,哈希算法為SM3算法,除此之外還可以為SHA-256算法等;
例如,應(yīng)用參數(shù)為:
1AB21D8355CFA17F8E61194831E81A8F22BEC8C728FEFB747ED035EB5082AA2B;
步驟D18:認(rèn)證服務(wù)器根據(jù)挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成登錄認(rèn)證第二請(qǐng)求響應(yīng);
例如,登錄認(rèn)證第二請(qǐng)求響應(yīng)為:
其中,挑戰(zhàn)值參數(shù)為:
"1669818D4FFE24404CE00D9AE1C5E1213DD1378D77C0803C46F5CB9394F47C87";
應(yīng)用參數(shù)為:
"1AB21D8355CFA17F8E61194831E81A8F22BEC8C728FEFB747ED035EB5082AA2B";
步驟D19:認(rèn)證服務(wù)器發(fā)送登錄認(rèn)證第二請(qǐng)求響應(yīng)至應(yīng)用服務(wù)器;
步驟D20:應(yīng)用服務(wù)器接收登錄認(rèn)證第二請(qǐng)求響應(yīng);
步驟D21:應(yīng)用服務(wù)器根據(jù)保存的用戶賬號(hào)或者認(rèn)證設(shè)備標(biāo)識(shí)檢索對(duì)應(yīng)的密鑰標(biāo)識(shí),并判斷是否能檢索到對(duì)應(yīng)的密鑰標(biāo)識(shí),是則執(zhí)行步驟D22,否則執(zhí)行步驟D23;
本實(shí)施例中,在步驟D1之前進(jìn)行綁定流程,在綁定流程中,認(rèn)證設(shè)備生成與應(yīng)用和認(rèn)證設(shè)備標(biāo)識(shí)一一對(duì)應(yīng)的密鑰標(biāo)識(shí)及密鑰對(duì),應(yīng)用服務(wù)器將密鑰標(biāo)識(shí)進(jìn)行備份;用戶賬號(hào)和認(rèn)證設(shè)備標(biāo)識(shí)在步驟D9中保存在應(yīng)用服務(wù)器內(nèi);
優(yōu)選地,認(rèn)證設(shè)備生成密鑰標(biāo)識(shí)及密鑰對(duì)的公鑰算法為SM2算法,除此之外還有RSA算法等;
例如,當(dāng)選用的公鑰算法為SM2算法時(shí),SM2算法返回JSON格式的數(shù)據(jù)為:
{
"typ":"JWT",
"alg":"301SM2"
"Q#S512":"7231962210...ec993a77b4a7203898ab74cdf974ff02d2de3f1ec7cb9de68"
};
步驟D22:應(yīng)用服務(wù)器解析登錄認(rèn)證第二請(qǐng)求響應(yīng),得到挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)并保存,執(zhí)行步驟D25;
步驟D23:應(yīng)用服務(wù)器發(fā)送報(bào)錯(cuò)結(jié)束信息至客戶端;
步驟D24:客戶端接收?qǐng)?bào)錯(cuò)結(jié)束信息并顯示;
步驟D25:應(yīng)用服務(wù)器根據(jù)密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成登錄認(rèn)證第一請(qǐng)求響應(yīng);
例如,登錄認(rèn)證第一請(qǐng)求響應(yīng)為:
其中,密鑰標(biāo)識(shí)為:"IjycjPZYiW…HmYG0mgjsDr2Yj-12S67v5";
挑戰(zhàn)值參數(shù)為:
"1669818D4FFE24404CE00D9AE1C5E1213DD1378D77C0803C46F5CB9394F47C87";
應(yīng)用參數(shù)為:
"1AB21D8355CFA17F8E61194831E81A8F22BEC8C728FEFB747ED035EB5082AA2B";
本實(shí)施例中,挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)在步驟D22中保存在應(yīng)用服務(wù)器內(nèi);
步驟D26:應(yīng)用服務(wù)器發(fā)送登錄認(rèn)證第一請(qǐng)求響應(yīng)至客戶端;
步驟D27:客戶端接收并解析登錄認(rèn)證第一請(qǐng)求響應(yīng),得到密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)并保存;
步驟D28:客戶端根據(jù)保存的密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成待簽名請(qǐng)求,同時(shí)提示用戶進(jìn)行按鍵確認(rèn);
本實(shí)施例中,密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)在步驟D27中保存在客戶端內(nèi);
例如,待簽名請(qǐng)求為0x00020000xx‘登錄驗(yàn)證參數(shù)’xx;
其中,登錄驗(yàn)證參數(shù)包括挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和密鑰標(biāo)識(shí);
步驟D29:客戶端發(fā)送待簽名請(qǐng)求至認(rèn)證設(shè)備;
步驟D30:認(rèn)證設(shè)備接收待簽名請(qǐng)求;
步驟D31:認(rèn)證設(shè)備提示用戶進(jìn)行按鍵確認(rèn),判斷是否接收到用戶的按鍵確認(rèn)信息,是則執(zhí)行步驟D32,否則報(bào)錯(cuò)結(jié)束;
具體地,認(rèn)證設(shè)備的閃爍燈持續(xù)快閃,提示用戶進(jìn)行按鍵確認(rèn),判斷是否接收到用戶進(jìn)行的確認(rèn)信息,是則執(zhí)行步驟D32,否則報(bào)錯(cuò)結(jié)束;
本實(shí)施例中,認(rèn)證設(shè)備包括按鍵和閃爍燈,認(rèn)證設(shè)備在待機(jī)狀態(tài)時(shí),閃爍燈常亮;認(rèn)證設(shè)備和客戶端通信時(shí),閃爍燈閃爍一下;當(dāng)需要用戶在認(rèn)證設(shè)備上進(jìn)行操作時(shí),認(rèn)證設(shè)備的閃爍燈持續(xù)快閃,提示用戶進(jìn)行按鍵確認(rèn);
步驟D31還可以具體為:認(rèn)證設(shè)備顯示確認(rèn)鍵,提示用戶進(jìn)行按鍵確認(rèn),判斷是否接收到用戶進(jìn)行的確認(rèn)信息,是則執(zhí)行步驟D32,否則報(bào)錯(cuò)結(jié)束;
本實(shí)施例中,認(rèn)證設(shè)備包括觸摸屏,認(rèn)證設(shè)備在待機(jī)狀態(tài)和通信狀態(tài)時(shí),觸摸屏不亮;當(dāng)需要用戶在認(rèn)證設(shè)備上進(jìn)行操作時(shí),認(rèn)證設(shè)備的觸摸屏變亮,顯示確認(rèn)鍵等待用戶進(jìn)行按鍵確認(rèn);
本實(shí)施例中,步驟D31可以替換為步驟D31-1:認(rèn)證設(shè)備提示用戶進(jìn)行按鍵確認(rèn),判斷是否接收到用戶的按鍵確認(rèn)信息,是則執(zhí)行步驟D32-1和D34,否則報(bào)錯(cuò)結(jié)束;
具體地,認(rèn)證設(shè)備的閃爍燈持續(xù)快閃,提示用戶進(jìn)行按鍵確認(rèn),判斷是否接收到用戶進(jìn)行的確認(rèn)信息,是則執(zhí)行步驟D32-1和D34,否則報(bào)錯(cuò)結(jié)束;
本實(shí)施例中,認(rèn)證設(shè)備包括按鍵和閃爍燈,認(rèn)證設(shè)備在待機(jī)狀態(tài)時(shí),閃爍燈常亮;認(rèn)證設(shè)備和客戶端通信時(shí),閃爍燈閃爍一下;當(dāng)需要用戶在認(rèn)證設(shè)備上進(jìn)行操作時(shí),認(rèn)證設(shè)備的閃爍燈持續(xù)快閃,提示用戶進(jìn)行按鍵確認(rèn);
步驟D31-1還可以具體為:認(rèn)證設(shè)備顯示確認(rèn)鍵,提示用戶進(jìn)行按鍵確認(rèn),判斷是否接收到用戶進(jìn)行的確認(rèn)信息,是則執(zhí)行步驟D32-1和D34,否則報(bào)錯(cuò)結(jié)束;
本實(shí)施例中,認(rèn)證設(shè)備包括觸摸屏,認(rèn)證設(shè)備在待機(jī)狀態(tài)和通信狀態(tài)時(shí),觸摸屏不亮;當(dāng)需要用戶在認(rèn)證設(shè)備上進(jìn)行操作時(shí),認(rèn)證設(shè)備的觸摸屏變亮,顯示確認(rèn)鍵等待用戶進(jìn)行按鍵確認(rèn);
步驟D32:認(rèn)證設(shè)備發(fā)送按鍵確認(rèn)信息至客戶端,執(zhí)行步驟D33和D34;
本實(shí)施例中,當(dāng)步驟D31替換為步驟D31-1時(shí),步驟D32替換為D32-1:認(rèn)證設(shè)備發(fā)送按鍵確認(rèn)信息至客戶端,執(zhí)行步驟D33;
步驟D33:客戶端接收按鍵確認(rèn)信息;
步驟D34:認(rèn)證設(shè)備解析待簽名請(qǐng)求,得到密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)并保存,執(zhí)行步驟D35;
步驟D35:認(rèn)證設(shè)備根據(jù)密鑰標(biāo)識(shí)檢索認(rèn)證設(shè)備內(nèi)部保存的對(duì)應(yīng)私鑰;
本實(shí)施例中,在步驟D1之前進(jìn)行綁定流程,在綁定流程中,認(rèn)證設(shè)備生成與應(yīng)用和用戶賬號(hào)一一對(duì)應(yīng)的密鑰標(biāo)識(shí)及密鑰對(duì);
優(yōu)選地,認(rèn)證設(shè)備生成密鑰標(biāo)識(shí)及密鑰對(duì)的公鑰算法為SM2算法,除此之外還可以為RSA算法等;
步驟D36:認(rèn)證設(shè)備使用私鑰對(duì)挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值計(jì)算簽名得到簽名值,更新計(jì)數(shù)值;
步驟D36還可以為步驟D36-1:認(rèn)證設(shè)備使用私鑰對(duì)挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值計(jì)算簽名得到簽名值;
本實(shí)施例中,認(rèn)證設(shè)備在第一次生成應(yīng)用密鑰對(duì)時(shí),初始化計(jì)數(shù)器的計(jì)數(shù)值為0;認(rèn)證設(shè)備每執(zhí)行一次計(jì)算簽名操作,計(jì)數(shù)器的計(jì)數(shù)值遞增一次;
步驟D37:認(rèn)證設(shè)備根據(jù)簽名值和計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求;
步驟D37還可以為步驟D37-1:認(rèn)證設(shè)備將簽名值和計(jì)數(shù)值發(fā)送至客戶端,然后執(zhí)行步驟D38-1;
例如,驗(yàn)證簽名請(qǐng)求為0x00020200xx‘簽名驗(yàn)證參數(shù)’xx;
其中,簽名驗(yàn)證參數(shù)包括挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值;
步驟D38:認(rèn)證設(shè)備通過客戶端和應(yīng)用服務(wù)器發(fā)送驗(yàn)證簽名請(qǐng)求至認(rèn)證服務(wù)器;
當(dāng)步驟D37為步驟D37-1時(shí),步驟D38可以替代為步驟D38-1:客戶端接收簽名值和計(jì)數(shù)值,根據(jù)簽名值和計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求,并將生成的驗(yàn)證簽名請(qǐng)求通過應(yīng)用服務(wù)器發(fā)送至認(rèn)證服務(wù)器;
例如,當(dāng)步驟D37為步驟D37-1,步驟D38替代為步驟D38-1時(shí),在客戶端生成的驗(yàn)證簽名請(qǐng)求的JSON格式的數(shù)據(jù)實(shí)例為:
{
"aaid":["my.alipay.com"]]
"identity":"0x189012345677+0x0101161000000086",
"signature":"5F76C4395CA7BC44246A22C9F9037A9365B3F56F3F4222837437D7AF21F68EEAE4BA48A28789C244AC3331C3D8F68785BFB5F513EABEAE11C4794D8B30964D46",
"counter":0023,
"statusReports":{status:"valid",effectiveDate:"2016-10-28"}
"timeOfLastStatusChange":"2016-10-28"
};
其中,簽名值為:
5F76C4395CA7BC44246A22C9F9037A9365B3F56F3F4222837437D7AF21F68EEAE4BA48A28789C244AC3331C3D8F68785BFB5F513EABEAE11C4794D8B30964D46;
計(jì)數(shù)值為:0023;
步驟D39:認(rèn)證服務(wù)器接收并解析驗(yàn)證簽名請(qǐng)求,得到計(jì)數(shù)值和簽名值并保存;
步驟D40:認(rèn)證服務(wù)器根據(jù)保存的用戶賬號(hào)或者認(rèn)證設(shè)備標(biāo)識(shí)檢索對(duì)應(yīng)的密鑰標(biāo)識(shí);
本實(shí)施例中,在步驟D1之前進(jìn)行綁定流程,在綁定流程中,認(rèn)證設(shè)備生成與應(yīng)用和認(rèn)證設(shè)備標(biāo)識(shí)一一對(duì)應(yīng)的密鑰標(biāo)識(shí)及密鑰對(duì),并且認(rèn)證服務(wù)器將密鑰標(biāo)識(shí)及公鑰進(jìn)行備份;在步驟D15中,用戶賬號(hào)和認(rèn)證設(shè)備標(biāo)識(shí)保存在認(rèn)證服務(wù)器內(nèi);
步驟D41:認(rèn)證服務(wù)器根據(jù)檢索到的密鑰標(biāo)識(shí)檢索對(duì)應(yīng)的公鑰,并使用檢索到的公鑰解密簽名值,得到第一哈希值;
步驟D42:認(rèn)證服務(wù)器根據(jù)哈希算法對(duì)保存的挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值進(jìn)行哈希運(yùn)算,得到第二哈希值;
優(yōu)選地,哈希算法為SM3算法,除此之外還可以為MD5算法等;
本實(shí)施例中,挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)在步驟D17中保存在認(rèn)證服務(wù)器內(nèi);計(jì)數(shù)值步驟D39中保存在認(rèn)證服務(wù)器內(nèi);
步驟D43:認(rèn)證服務(wù)器將解密得到的第一哈希值和計(jì)算得到的第二哈希值進(jìn)行比對(duì),判斷第一哈希值和第二哈希值是否一致,根據(jù)判斷結(jié)果生成登錄認(rèn)證響應(yīng);
步驟D44:認(rèn)證服務(wù)器發(fā)送登錄認(rèn)證響應(yīng)和保存的認(rèn)證設(shè)備標(biāo)識(shí)至應(yīng)用服務(wù)器;
本實(shí)施例中,認(rèn)證設(shè)備標(biāo)識(shí)在步驟D15中保存在認(rèn)證服務(wù)器內(nèi);
步驟D45:應(yīng)用服務(wù)器接收登錄認(rèn)證響應(yīng)和認(rèn)證設(shè)備標(biāo)識(shí)并保存;
步驟D46:應(yīng)用服務(wù)器判斷登錄認(rèn)證響應(yīng)是否為成功登錄響應(yīng),是則執(zhí)行步驟D47,否則執(zhí)行步驟D50;
步驟D47:應(yīng)用服務(wù)器允許進(jìn)行登錄操作;
步驟D48:應(yīng)用服務(wù)器發(fā)送登錄成功信息和認(rèn)證設(shè)備標(biāo)識(shí)至客戶端;
步驟D49:客戶端接收登錄成功信息和認(rèn)證設(shè)備標(biāo)識(shí),進(jìn)入“登錄成功”狀態(tài),顯示“登錄成功”;
步驟D50:應(yīng)用服務(wù)器拒絕進(jìn)行登錄操作;
步驟D51:應(yīng)用服務(wù)器發(fā)送登錄失敗信息至客戶端;
步驟D52:客戶端接收登錄失敗信息,顯示“登錄失敗”。
本實(shí)施例中,當(dāng)步驟D36為步驟D36-1時(shí),步驟D49之后還包括以下步驟:
步驟D53:客戶端發(fā)送登錄成功信息至認(rèn)證設(shè)備;
步驟D54:認(rèn)證設(shè)備接收登錄成功信息,更新計(jì)數(shù)值。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):本專利提出了一種通用的、基于認(rèn)證設(shè)備的登錄認(rèn)證方案,通過可擴(kuò)展的、統(tǒng)一的、可互操作的接口,使用戶在登錄各種應(yīng)用時(shí),無需輸入密碼,就可在本地實(shí)現(xiàn)對(duì)用戶身份和設(shè)備身份的高安全的認(rèn)證。該登錄認(rèn)證方案操作方便,易于管理,登錄認(rèn)證流程安全性高,解決了賬戶安全的問題,提高了用戶體驗(yàn)。
實(shí)施例三
如圖4和5所示,本實(shí)施例三提供了一種登錄認(rèn)證方法,包括以下步驟:
步驟E1:當(dāng)客戶端接收到用戶賬號(hào)和以認(rèn)證設(shè)備方式登錄的請(qǐng)求時(shí),生成獲取認(rèn)證設(shè)備標(biāo)識(shí)的請(qǐng)求;
本實(shí)施例中,用戶賬號(hào)是與用戶預(yù)登錄應(yīng)用相對(duì)應(yīng)的賬號(hào);
步驟E2:客戶端發(fā)送獲取認(rèn)證設(shè)備標(biāo)識(shí)的請(qǐng)求至認(rèn)證設(shè)備;
例如,獲取認(rèn)證設(shè)備標(biāo)識(shí)的請(qǐng)求為:0x00C500000000;
步驟E3:認(rèn)證設(shè)備接收獲取認(rèn)證設(shè)備標(biāo)識(shí)的請(qǐng)求;
步驟E4:認(rèn)證設(shè)備讀取認(rèn)證設(shè)備標(biāo)識(shí);
本實(shí)施例中,認(rèn)證設(shè)備標(biāo)識(shí)在出廠時(shí)預(yù)植在認(rèn)證設(shè)備中,用于唯一標(biāo)識(shí)認(rèn)證設(shè)備;
具體地,認(rèn)證設(shè)備標(biāo)識(shí)長度為8字節(jié);
例如,認(rèn)證設(shè)備標(biāo)識(shí)為:0x0101161000000086;
步驟E5:認(rèn)證設(shè)備發(fā)送認(rèn)證設(shè)備標(biāo)識(shí)至客戶端;
步驟E6:客戶端接收認(rèn)證設(shè)備標(biāo)識(shí)并保存;
步驟E7:客戶端發(fā)送獲取用戶登錄認(rèn)證方式標(biāo)識(shí)的請(qǐng)求至認(rèn)證設(shè)備;
例如,獲取用戶登錄認(rèn)證方式標(biāo)識(shí)的請(qǐng)求為:0x00C600000000;
步驟E8:認(rèn)證設(shè)備接收獲取用戶登錄認(rèn)證方式標(biāo)識(shí)的請(qǐng)求;
步驟E9:認(rèn)證設(shè)備提示用戶進(jìn)行身份認(rèn)證,判斷用戶身份是否合法,是則執(zhí)行步驟E10,否則報(bào)錯(cuò)結(jié)束;
具體地,認(rèn)證設(shè)備提示用戶輸入認(rèn)證密碼,判斷用戶輸入的認(rèn)證密碼和認(rèn)證設(shè)備保存的原始認(rèn)證密碼是否一致,是則用戶身份合法,否則報(bào)錯(cuò)結(jié)束;
進(jìn)一步地,認(rèn)證設(shè)備內(nèi)設(shè)置錯(cuò)誤次數(shù)閥值,當(dāng)步驟E9判斷為否時(shí)還包括:認(rèn)證設(shè)備更新操作次數(shù),并判斷操作次數(shù)是否到達(dá)錯(cuò)誤次數(shù)閥值,是則報(bào)錯(cuò),否則提示用戶重新輸入;
本實(shí)施例中,在步驟E1之前進(jìn)行認(rèn)證設(shè)備初始化,認(rèn)證設(shè)備與用戶賬號(hào)綁定,并保存與用戶賬號(hào)相對(duì)應(yīng)的原始認(rèn)證密碼;例如,認(rèn)證密碼可以為PIN碼信息;
E10:認(rèn)證設(shè)備顯示可供用戶選擇的用戶登錄認(rèn)證方式并等待用戶進(jìn)行選擇,判斷是否接收到用戶所選擇的用戶登錄認(rèn)證方式信息,是則執(zhí)行步驟E11,否則報(bào)錯(cuò)結(jié)束;
進(jìn)一步地,認(rèn)證設(shè)備可以設(shè)置等待接收用戶選擇的用戶登錄認(rèn)證方式信息的時(shí)間,例如60秒,如果在此時(shí)間段內(nèi),認(rèn)證設(shè)備接收到用戶選擇的用戶登錄認(rèn)證方式信息,則執(zhí)行步驟E11,否則報(bào)錯(cuò)結(jié)束;
更進(jìn)一步地,當(dāng)認(rèn)證設(shè)備未接收到用戶選擇的用戶登錄認(rèn)證方式信息時(shí),認(rèn)證設(shè)備選擇默認(rèn)的一種用戶登錄認(rèn)證方式;
本實(shí)施例中,認(rèn)證設(shè)備顯示供用戶選擇的用戶登錄認(rèn)證方式為:指紋認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)為0x01000001;掌紋認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)為0x02000002;虹膜認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)為0x03000003;臉譜認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)為0x04000004;聲紋認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)為0x05000005;動(dòng)脈認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)為0x06000006等;
步驟E11:認(rèn)證設(shè)備讀取與用戶所選擇的用戶登錄認(rèn)證方式相對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)并保存;
本實(shí)施例中,用戶登錄認(rèn)證方式標(biāo)識(shí)出廠時(shí)預(yù)植在認(rèn)證設(shè)備中,用于唯一標(biāo)識(shí)用戶所選擇用戶登錄認(rèn)證方式;
具體地,用戶登錄認(rèn)證方式標(biāo)識(shí)長度為4字節(jié);
例如,用戶登錄認(rèn)證方式標(biāo)識(shí)為:0x01000001;
步驟E12:認(rèn)證設(shè)備發(fā)送用戶登錄認(rèn)證方式標(biāo)識(shí)至客戶端;
步驟E13:客戶端接收用戶登錄認(rèn)證方式標(biāo)識(shí)并保存;
步驟E14:客戶端根據(jù)用戶賬號(hào)、用戶登錄認(rèn)證方式標(biāo)識(shí)和認(rèn)證設(shè)備標(biāo)識(shí)生成登錄認(rèn)證第一請(qǐng)求;
本實(shí)施例中,在步驟E1之前,客戶端接收用戶輸入的用戶賬號(hào);認(rèn)證設(shè)備標(biāo)識(shí)在步驟E6中保存在客戶端內(nèi);用戶登錄認(rèn)證方式標(biāo)識(shí)在步驟E13中保存在客戶端內(nèi);
例如,登錄認(rèn)證第一請(qǐng)求為:
{
"identity":"0x189012345677+0x0101161000000086+0x01000001",
"statusReports":{status:"valid",effectiveDate:"2016-10-28"}
"timeOfLastStatusChange":"2016-10-28"
};
其中,用戶賬號(hào)為:0x189012345677;
用戶登錄認(rèn)證方式標(biāo)識(shí)為:0x01000001;
認(rèn)證設(shè)備標(biāo)識(shí)為:0x0101161000000086;
步驟E15:客戶端發(fā)送登錄認(rèn)證第一請(qǐng)求至應(yīng)用服務(wù)器;
步驟E16:應(yīng)用服務(wù)器接收并解析登錄認(rèn)證第一請(qǐng)求,得到用戶賬號(hào)、用戶登錄認(rèn)證方式標(biāo)識(shí)和認(rèn)證設(shè)備標(biāo)識(shí)并保存;
步驟E17:應(yīng)用服務(wù)器驗(yàn)證保存的用戶賬號(hào)與認(rèn)證設(shè)備標(biāo)識(shí)是匹配,是則執(zhí)行步驟E18,否則執(zhí)行步驟E19;
本實(shí)施例中,在步驟E1之前進(jìn)行綁定流程,在綁定流程中,應(yīng)用服務(wù)器保存與當(dāng)前應(yīng)用對(duì)應(yīng)的用戶賬號(hào)和與此用戶賬號(hào)對(duì)應(yīng)的認(rèn)證設(shè)備標(biāo)識(shí),稱為第一認(rèn)證設(shè)備標(biāo)識(shí);
具體地,應(yīng)用服務(wù)器根據(jù)保存的用戶賬號(hào)查詢與所述用戶賬號(hào)相對(duì)應(yīng)的自身已經(jīng)保存的第一認(rèn)證設(shè)備標(biāo)識(shí),判斷查詢到的第一認(rèn)證設(shè)備標(biāo)識(shí)與解析登錄認(rèn)證第一請(qǐng)求得到的認(rèn)證設(shè)備標(biāo)識(shí)是否一致,是則認(rèn)證設(shè)備可用,執(zhí)行步驟E17,否則執(zhí)行步驟E19;
步驟E18:應(yīng)用服務(wù)器根據(jù)用戶賬號(hào)、用戶登錄認(rèn)證方式標(biāo)識(shí)、認(rèn)證設(shè)備標(biāo)識(shí)和當(dāng)前應(yīng)用對(duì)應(yīng)的應(yīng)用標(biāo)識(shí),生成登錄認(rèn)證第二請(qǐng)求;
例如,登錄認(rèn)證第二請(qǐng)求為:
{
"identity":"0x189012345677+0x0101161000000086+0x01000001",
"url":"https://my.alipay.com/portal/i.htm?/1234%x23abcd",
"statusReports":{status:"valid",effectiveDate:"2016-10-28"}
"timeOfLastStatusChange":"2016-10-28"
};
其中,用戶賬號(hào)為:0x189012345677;
用戶登錄認(rèn)證方式標(biāo)識(shí)為:0x01000001;
認(rèn)證設(shè)備標(biāo)識(shí)為:0x0101161000000086;
應(yīng)用標(biāo)識(shí)為:https://my.alipay.com/portal/i.htm?/1234%x23abcd;
本實(shí)施例中,應(yīng)用標(biāo)識(shí)用于識(shí)別不同種類的應(yīng)用;
例如,應(yīng)用標(biāo)識(shí)為https://my.alipay.com/portal/i.htm?/1234%x23abcd;
本實(shí)施例中,在步驟E1之前進(jìn)行綁定流程,在綁定流程中應(yīng)用服務(wù)器保存與當(dāng)前應(yīng)用對(duì)應(yīng)的應(yīng)用標(biāo)識(shí);
本實(shí)施例中,用戶賬號(hào)是與用戶預(yù)登錄應(yīng)用相對(duì)應(yīng)的賬號(hào),在步驟E16中保存在應(yīng)用服務(wù)器內(nèi);
步驟E19:應(yīng)用服務(wù)器發(fā)送報(bào)錯(cuò)結(jié)束信息至客戶端;
步驟E20:客戶端接收?qǐng)?bào)錯(cuò)結(jié)束信息并顯示;
步驟E21:應(yīng)用服務(wù)器發(fā)送登錄認(rèn)證第二請(qǐng)求至認(rèn)證服務(wù)器;
步驟E22:認(rèn)證服務(wù)器接收并解析登錄認(rèn)證第二請(qǐng)求,得到應(yīng)用標(biāo)識(shí)、用戶賬號(hào)、用戶登錄認(rèn)證方式標(biāo)識(shí)和認(rèn)證設(shè)備標(biāo)識(shí)并保存;
步驟E23:認(rèn)證服務(wù)器根據(jù)認(rèn)證設(shè)備標(biāo)識(shí)判斷認(rèn)證設(shè)備是否可用,是則執(zhí)行步驟E24,否則報(bào)錯(cuò)結(jié)束;
本實(shí)施例中,在步驟E1之前進(jìn)行綁定流程,在綁定流程中認(rèn)證服務(wù)器保存認(rèn)證設(shè)備的認(rèn)證設(shè)備標(biāo)識(shí),稱為第一認(rèn)證設(shè)備標(biāo)識(shí);
具體地,認(rèn)證服務(wù)器查詢自身已經(jīng)保存的第一認(rèn)證設(shè)備標(biāo)識(shí)當(dāng)中是否有與所述認(rèn)證設(shè)備標(biāo)識(shí)相一致的,是則認(rèn)證設(shè)備可用,執(zhí)行步驟E24,否則,報(bào)錯(cuò)結(jié)束;
步驟E24:認(rèn)證服務(wù)器根據(jù)用戶登錄認(rèn)證方式標(biāo)識(shí)判斷用戶登錄認(rèn)證方式是否可用,是則執(zhí)行步驟E25,否則報(bào)錯(cuò)結(jié)束;
本實(shí)施例中,在步驟E1之前進(jìn)行綁定流程,在綁定流程中認(rèn)證服務(wù)器保存與步驟E1中用戶所選用的用戶登錄認(rèn)證方式的用戶登錄認(rèn)證方式標(biāo)識(shí),稱為第一用戶登錄認(rèn)證方式標(biāo)識(shí);
具體地,認(rèn)證服務(wù)器查詢自身已經(jīng)保存的第一用戶登錄認(rèn)證方式標(biāo)識(shí)當(dāng)中是否有與所述用戶登錄認(rèn)證方式標(biāo)識(shí)相一致的,是則認(rèn)證設(shè)備可用,執(zhí)行步驟E25,否則,報(bào)錯(cuò)結(jié)束;
步驟E25:認(rèn)證服務(wù)器根據(jù)保存的認(rèn)證設(shè)備標(biāo)識(shí)產(chǎn)生挑戰(zhàn)值參數(shù)并保存,根據(jù)保存的應(yīng)用標(biāo)識(shí)產(chǎn)生應(yīng)用參數(shù)并保存;
本實(shí)施例中,認(rèn)證設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)在步驟E22中保存在認(rèn)證服務(wù)器內(nèi);
具體地,認(rèn)證服務(wù)器運(yùn)用哈希算法對(duì)認(rèn)證設(shè)備標(biāo)識(shí)進(jìn)行哈希運(yùn)算得到挑戰(zhàn)值參數(shù);
更具體地,挑戰(zhàn)值參數(shù)長度為32字節(jié);
優(yōu)選地,哈希算法為SM3算法,除此之外還可以為SHA-256算法等;
例如,挑戰(zhàn)值參數(shù)為:
"1669818D4FFE24404CE00D9AE1C5E1213DD1378D77C0803C46F5CB9394F47C87";
具體地,認(rèn)證服務(wù)器運(yùn)用哈希算法對(duì)應(yīng)用標(biāo)識(shí)進(jìn)行哈希運(yùn)算得到應(yīng)用參數(shù);
更具體地,應(yīng)用參數(shù)長度為32字節(jié);
優(yōu)選地,哈希算法為SM3算法,除此之外還可以為SHA-256算法等;
例如,應(yīng)用參數(shù)為:
"1AB21D8355CFA17F8E61194831E81A8F22BEC8C728FEFB747ED035EB5082AA2B";
步驟E26:認(rèn)證服務(wù)器根據(jù)挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成登錄認(rèn)證第二請(qǐng)求響應(yīng);
例如,登錄認(rèn)證第二請(qǐng)求響應(yīng)為:
其中,挑戰(zhàn)值參數(shù)為:
"1669818D4FFE24404CE00D9AE1C5E1213DD1378D77C0803C46F5CB9394F47C87";
應(yīng)用參數(shù)為:
"1AB21D8355CFA17F8E61194831E81A8F22BEC8C728FEFB747ED035EB5082AA2B";
步驟E27:認(rèn)證服務(wù)器發(fā)送登錄認(rèn)證第二請(qǐng)求響應(yīng)至應(yīng)用服務(wù)器;
步驟E28:應(yīng)用服務(wù)器接收登錄認(rèn)證第二請(qǐng)求響應(yīng);
步驟E29:應(yīng)用服務(wù)器根據(jù)保存的用戶賬號(hào)和保存的用戶登錄認(rèn)證方式標(biāo)識(shí)檢索對(duì)應(yīng)的密鑰標(biāo)識(shí),判斷是否能檢索到對(duì)應(yīng)的密鑰標(biāo)識(shí),是則執(zhí)行步驟E30,否則執(zhí)行步驟E31;
本實(shí)施例中,在步驟E1之前進(jìn)行綁定流程,在綁定流程中,認(rèn)證設(shè)備生成與應(yīng)用和用戶登錄認(rèn)證方式標(biāo)識(shí)一一對(duì)應(yīng)的密鑰標(biāo)識(shí)及密鑰對(duì),應(yīng)用服務(wù)器將密鑰標(biāo)識(shí)進(jìn)行備份;用戶賬號(hào)和用戶登錄認(rèn)證方式標(biāo)識(shí)在步驟E16中保存在應(yīng)用服務(wù)器內(nèi);
優(yōu)選地,認(rèn)證設(shè)備生成密鑰標(biāo)識(shí)及密鑰對(duì)的公鑰算法為SM2算法,除此之外還有RSA算法等;
例如,當(dāng)選用的公鑰算法為SM2算法時(shí),SM2算法返回JSON格式的數(shù)據(jù)為:
{
"typ":"JWT",
"alg":"301SM2"
"Q#S512":"7231962210...ec993a77b4a7203898ab74cdf974ff02d2de3f1ec7cb9de68"
};
步驟E30:應(yīng)用服務(wù)器解析登錄認(rèn)證第二請(qǐng)求響應(yīng),得到挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)并保存,執(zhí)行步驟E33;
步驟E31:應(yīng)用服務(wù)器發(fā)送報(bào)錯(cuò)結(jié)束信息至客戶端;
步驟E32:客戶端接收?qǐng)?bào)錯(cuò)結(jié)束信息并顯示;
步驟E33:應(yīng)用服務(wù)器根據(jù)密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù),生成登錄認(rèn)證第一請(qǐng)求響應(yīng);
例如,登錄認(rèn)證第一請(qǐng)求響應(yīng)為:
其中,密鑰標(biāo)識(shí)為:"IjycjPZYiW…HmYG0mgjsDr2Yj-12S67v5";
挑戰(zhàn)值參數(shù)為:
"1669818D4FFE24404CE00D9AE1C5E1213DD1378D77C0803C46F5CB9394F47C87";
應(yīng)用參數(shù)為:
"1AB21D8355CFA17F8E61194831E81A8F22BEC8C728FEFB747ED035EB5082AA2B";
本實(shí)施例中,挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)在步驟E25中保存在應(yīng)用服務(wù)器內(nèi);
步驟E34:應(yīng)用服務(wù)器發(fā)送登錄認(rèn)證第一請(qǐng)求響應(yīng)至客戶端;
步驟E35:客戶端接收并解析登錄認(rèn)證第一請(qǐng)求響應(yīng),得到密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)并保存;
步驟E36:客戶端根據(jù)保存的密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成待簽名請(qǐng)求;
例如,待簽名請(qǐng)求為0x00020000xx‘登錄驗(yàn)證參數(shù)’xx;
其中,登錄驗(yàn)證參數(shù)包括挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和密鑰標(biāo)識(shí);
本實(shí)施例中,密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)在步驟E25中保存在客戶端內(nèi);
步驟E37:客戶端發(fā)送待簽名請(qǐng)求至認(rèn)證設(shè)備;
步驟E38:認(rèn)證設(shè)備接收待簽名請(qǐng)求;
步驟E39:認(rèn)證設(shè)備解析待簽名請(qǐng)求,得到密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)并保存;
步驟E40:認(rèn)證設(shè)備根據(jù)密鑰標(biāo)識(shí)檢索對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí),根據(jù)用戶登錄認(rèn)證方式標(biāo)識(shí)檢索對(duì)應(yīng)的用戶登錄認(rèn)證方式信息;
本實(shí)施例中,在步驟E1之前進(jìn)行綁定流程,在綁定流程中,認(rèn)證設(shè)備生成與應(yīng)用和用戶登錄認(rèn)證方式標(biāo)識(shí)一一對(duì)應(yīng)的密鑰標(biāo)識(shí)及密鑰對(duì);
優(yōu)選地,認(rèn)證設(shè)備生成密鑰標(biāo)識(shí)及密鑰對(duì)的公鑰算法為SM2算法,除此之外還可以為RSA算法等;
步驟E41:認(rèn)證設(shè)備提示用戶輸入所選擇的用戶登錄認(rèn)證方式信息,判斷接收的用戶登錄認(rèn)證方式信息與檢索到的用戶登錄認(rèn)證方式信息是否一致,是則執(zhí)行步驟E42,否則報(bào)錯(cuò)結(jié)束;
進(jìn)一步地,認(rèn)證設(shè)備內(nèi)設(shè)置錯(cuò)誤次數(shù)閥值,步驟E41判斷為否時(shí)還包括:認(rèn)證設(shè)備更新操作次數(shù),并判斷操作次數(shù)是否到達(dá)錯(cuò)誤次數(shù)閥值,是則報(bào)錯(cuò),否則提示用戶重新輸入;
進(jìn)一步地,認(rèn)證設(shè)備可以設(shè)置等待接收用戶輸入的用戶登錄認(rèn)證方式信息的時(shí)間,例如60秒,如果在此時(shí)間段內(nèi),認(rèn)證設(shè)備接收到用戶輸入的用戶登錄認(rèn)證方式信息,則執(zhí)行步驟E42,否則報(bào)錯(cuò)結(jié)束;
本實(shí)施例中,認(rèn)證設(shè)備在步驟E10中接收用戶所選擇的用戶登錄認(rèn)證方式信息,在步驟E41中提示用戶輸入該用戶登錄認(rèn)證方式信息;
步驟E42:認(rèn)證設(shè)備根據(jù)密鑰標(biāo)識(shí)檢索認(rèn)證設(shè)備內(nèi)部保存的對(duì)應(yīng)私鑰;
本實(shí)施例中,在步驟E1之前進(jìn)行綁定流程,在綁定流程中,認(rèn)證設(shè)備生成與應(yīng)用和用戶登錄認(rèn)證方式標(biāo)識(shí)一一對(duì)應(yīng)的密鑰標(biāo)識(shí)及密鑰對(duì);
優(yōu)選地,認(rèn)證設(shè)備生成密鑰標(biāo)識(shí)及密鑰對(duì)的公鑰算法為SM2算法,除此之外還可以為RSA算法等;
步驟E43:認(rèn)證設(shè)備使用檢索到的私鑰對(duì)挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值計(jì)算簽名得到簽名值;
步驟E43還可以替換為步驟E43-1:認(rèn)證設(shè)備使用檢索到的私鑰對(duì)挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值計(jì)算簽名得到簽名值,更新計(jì)數(shù)值;
本實(shí)施例中,認(rèn)證設(shè)備在第一次生成應(yīng)用密鑰對(duì)時(shí),初始化計(jì)數(shù)器的計(jì)數(shù)值為0;認(rèn)證設(shè)備每執(zhí)行一次計(jì)算簽名操作,計(jì)數(shù)器的計(jì)數(shù)值遞增一次;
步驟E44:認(rèn)證設(shè)備根據(jù)簽名值和計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求,更新計(jì)數(shù)值;
當(dāng)步驟E43替換為步驟E43-1時(shí),步驟E44替換為步驟E44-1:認(rèn)證設(shè)備根據(jù)簽名值和更新前的計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求;
當(dāng)步驟E43替換為步驟E43-1時(shí),步驟E44還可以替換為步驟E44-2:認(rèn)證設(shè)備將簽名值和更新前的計(jì)數(shù)值發(fā)送至客戶端,執(zhí)行步驟E45-1;
步驟E44還可以替換為步驟E44-3:認(rèn)證設(shè)備根據(jù)簽名值和計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求;
步驟E44還可以替換為步驟E44-4:認(rèn)證設(shè)備將簽名值和計(jì)數(shù)值發(fā)送至客戶端,執(zhí)行步驟E45-1;
例如,驗(yàn)證簽名請(qǐng)求為0x00020200xx‘簽名驗(yàn)證參數(shù)’xx;
其中,簽名驗(yàn)證參數(shù)包括挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值;
步驟E45:認(rèn)證設(shè)備通過客戶端和應(yīng)用服務(wù)器發(fā)送驗(yàn)證簽名請(qǐng)求至認(rèn)證服務(wù)器;
當(dāng)步驟E44為步驟E44-2或E44-4時(shí),步驟E45替代為步驟E45-1:客戶端接收簽名值和計(jì)數(shù)值,根據(jù)簽名值和計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求,并將生成的驗(yàn)證簽名請(qǐng)求通過應(yīng)用服務(wù)器發(fā)送至認(rèn)證服務(wù)器;
例如,當(dāng)步驟E44為步驟E44-2或E44-4時(shí),步驟E45替代為步驟E45-1時(shí),在客戶端生成的驗(yàn)證簽名請(qǐng)求的JSON格式的數(shù)據(jù)實(shí)例為:
{
"aaid":["my.alipay.com"]]
"identity":"0x189012345677+0x0101161000000086",
"signature":"5F76C4395CA7BC44246A22C9F9037A9365B3F56F3F4222837437D7AF21F68EEAE4BA48A28789C244AC3331C3D8F68785BFB5F513EABEAE11C4794D8B30964D46",
"counter":0023,
"statusReports":{status:"valid",effectiveDate:"2016-10-28"}
"timeOfLastStatusChange":"2016-10-28"
};
其中,簽名值為:
5F76C4395CA7BC44246A22C9F9037A9365B3F56F3F4222837437D7AF21F68EEAE4BA48A28789C244AC3331C3D8F68785BFB5F513EABEAE11C4794D8B30964D46;
計(jì)數(shù)值為:0023;
步驟E46:認(rèn)證服務(wù)器接收并解析驗(yàn)證簽名請(qǐng)求,得到計(jì)數(shù)值和簽名值并保存;
步驟E47:認(rèn)證服務(wù)器根據(jù)保存的用戶賬號(hào)和用戶登錄認(rèn)證方式標(biāo)識(shí)檢索對(duì)應(yīng)的密鑰標(biāo)識(shí);
本實(shí)施例中,在步驟E1之前進(jìn)行綁定流程,在綁定流程中,認(rèn)證設(shè)備生成與應(yīng)用和用戶登錄認(rèn)證方式標(biāo)識(shí)一一對(duì)應(yīng)的密鑰標(biāo)識(shí)及密鑰對(duì),并且認(rèn)證服務(wù)器將密鑰標(biāo)識(shí)及公鑰進(jìn)行備份;在步驟E16中,用戶賬號(hào)和用戶登錄認(rèn)證方式標(biāo)識(shí)保存在認(rèn)證服務(wù)器內(nèi);
步驟E48:認(rèn)證服務(wù)器根據(jù)檢索到的密鑰標(biāo)識(shí)檢索對(duì)應(yīng)的公鑰,并使用檢索到的公鑰解密簽名值,得到第一哈希值;
步驟E49:認(rèn)證服務(wù)器根據(jù)哈希算法對(duì)保存的挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值進(jìn)行哈希運(yùn)算,得到第二哈希值;
優(yōu)選地,哈希算法為SM3算法,除此之外還可以為MD5算法等;
本實(shí)施例中,挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)在步驟E25中保存在認(rèn)證服務(wù)器內(nèi);計(jì)數(shù)值在步驟E46中保存在認(rèn)證服務(wù)器內(nèi);
步驟E50:認(rèn)證服務(wù)器將解密得到的第一哈希值和計(jì)算得到的第二哈希值進(jìn)行比對(duì),判斷第一哈希值和第二哈希值是否一致,根據(jù)判斷結(jié)果生成登錄響應(yīng);
步驟E51:認(rèn)證服務(wù)器發(fā)送登錄響應(yīng)和保存的認(rèn)證設(shè)備標(biāo)識(shí)至應(yīng)用服務(wù)器;
本實(shí)施例中,認(rèn)證設(shè)備標(biāo)識(shí)在步驟E22中保存在認(rèn)證服務(wù)器內(nèi);
步驟E52:應(yīng)用服務(wù)器接收登錄認(rèn)證響應(yīng)和認(rèn)證設(shè)備標(biāo)識(shí)并保存;
步驟E53:應(yīng)用服務(wù)器判斷登錄響應(yīng)是否成功,是則執(zhí)行步驟E54,否則執(zhí)行步驟E57;
步驟E54:應(yīng)用服務(wù)器允許進(jìn)行登錄操作;
步驟E55:應(yīng)用服務(wù)器發(fā)送發(fā)送登錄成功信息和保存的認(rèn)證設(shè)備標(biāo)識(shí)至客戶端;
步驟E56:客戶端接收登錄成功信息和認(rèn)證設(shè)備標(biāo)識(shí),進(jìn)入“登錄成功”狀態(tài),顯示“登錄成功”;
步驟E57:應(yīng)用服務(wù)器拒絕進(jìn)行登錄操作;
步驟E58:應(yīng)用服務(wù)器發(fā)送登錄失敗信息至客戶端;
步驟E59:客戶端接收登錄失敗信息,顯示“登錄失敗”。
本實(shí)施例中,當(dāng)步驟E44為步驟E44-3或步驟E44為步驟E44-4且步驟E45替換為步驟E45-1時(shí),步驟E56之后還包括以下步驟:
步驟E60:客戶端發(fā)送登錄成功信息至認(rèn)證設(shè)備;
步驟E61:認(rèn)證設(shè)備接收登錄成功信息,更新計(jì)數(shù)值。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):本專利提出了一種通用的、基于認(rèn)證設(shè)備的登錄認(rèn)證方案,通過可擴(kuò)展的、統(tǒng)一的、可互操作的接口,使用戶在登錄各種應(yīng)用時(shí),無需輸入密碼,就可在本地實(shí)現(xiàn)對(duì)用戶身份和設(shè)備身份的高安全的認(rèn)證。該登錄認(rèn)證方案操作方便,易于管理,登錄認(rèn)證流程安全性高,解決了賬戶安全的問題,提高了用戶體驗(yàn)。
實(shí)施例四
如圖6和7所示,本實(shí)施例四提供了一種登錄認(rèn)證方法,包括以下步驟:
步驟F1:當(dāng)客戶端接收到用戶賬號(hào)和以用戶登錄認(rèn)證方式登錄的請(qǐng)求時(shí),讀取與用戶所選的用戶登錄認(rèn)證方式相對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào);
本實(shí)施例中,用戶賬號(hào)是與用戶預(yù)登錄應(yīng)用相對(duì)應(yīng)的賬號(hào);在F1之前進(jìn)行綁定流程,客戶端保存用戶登錄認(rèn)證方式及其相對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào);
本實(shí)施例中,客戶端顯示保存的供用戶選擇的用戶登錄認(rèn)證方式為:指紋認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào)為01;掌紋認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào)為02;虹膜認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào)為03;臉譜認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào)為04;聲紋認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào)為05;動(dòng)脈認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào)為06等;
步驟F2:客戶端根據(jù)用戶賬號(hào)和所讀取的用戶登錄認(rèn)證方式編號(hào)生成登錄認(rèn)證第一請(qǐng)求;
例如,登錄認(rèn)證第一請(qǐng)求為:
{
"identity":"0x189012345677+0x01",
"statusReports":{status:"valid",effectiveDate:"2016-10-28"}
"timeOfLastStatusChange":"2016-10-28"
};
其中,用戶賬號(hào)為:0x189012345677;
用戶登錄認(rèn)證方式編號(hào)為:0x01;
步驟F3:客戶端發(fā)送登錄認(rèn)證第一請(qǐng)求至應(yīng)用服務(wù)器;
步驟F4:應(yīng)用服務(wù)器接收并解析登錄認(rèn)證第一請(qǐng)求,得到用戶賬號(hào)和用戶登錄認(rèn)證方式編號(hào)并保存;
步驟F5:應(yīng)用服務(wù)器根據(jù)用戶賬號(hào)檢索與所述用戶賬號(hào)相對(duì)應(yīng)的認(rèn)證設(shè)備標(biāo)識(shí),并判斷是否能夠檢索到,是則執(zhí)行步驟F6,否則執(zhí)行步驟F7;
本實(shí)施例中,認(rèn)證設(shè)備標(biāo)識(shí)在出廠時(shí)預(yù)植在認(rèn)證設(shè)備中,用于唯一標(biāo)識(shí)認(rèn)證設(shè)備,用戶賬號(hào)在步驟F4中保存在應(yīng)用服務(wù)器內(nèi);在步驟F1之前進(jìn)行綁定流程,在綁定流程中,應(yīng)用服務(wù)器保存與當(dāng)前應(yīng)用對(duì)應(yīng)的用戶賬號(hào)和與所述用戶賬號(hào)對(duì)應(yīng)的認(rèn)證設(shè)備標(biāo)識(shí);
具體地,認(rèn)證設(shè)備標(biāo)識(shí)長度為8字節(jié);
例如,認(rèn)證設(shè)備標(biāo)識(shí)為:0x0101161000000086;
步驟F6:應(yīng)用服務(wù)器根據(jù)檢索得到的認(rèn)證設(shè)備標(biāo)識(shí)檢索與所述認(rèn)證設(shè)備標(biāo)識(shí)相對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí),并判斷是否能夠檢索到,是則執(zhí)行步驟F9,否則執(zhí)行步驟F10;
本實(shí)施例中,用戶登錄認(rèn)證方式標(biāo)識(shí)在出廠時(shí)預(yù)植在認(rèn)證設(shè)備中,用于唯一標(biāo)識(shí)用戶登錄認(rèn)證方式;在步驟F1之前進(jìn)行綁定流程,在綁定流程中,應(yīng)用服務(wù)器保存與當(dāng)前應(yīng)用對(duì)應(yīng)的用戶賬號(hào)和與所述用戶賬號(hào)對(duì)應(yīng)的認(rèn)證設(shè)備標(biāo)識(shí),并保存與所述認(rèn)證設(shè)備標(biāo)識(shí)相對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí);
具體地,用戶登錄認(rèn)證方式標(biāo)識(shí)長度為4字節(jié);
例如,用戶登錄認(rèn)證方式標(biāo)識(shí)為:0x01000001;
步驟F7:應(yīng)用服務(wù)器發(fā)送報(bào)錯(cuò)結(jié)束信息至客戶端;
步驟F8:客戶端接收?qǐng)?bào)錯(cuò)結(jié)束信息并顯示;
步驟F9:應(yīng)用服務(wù)器在檢索得到的與所述認(rèn)證設(shè)備標(biāo)識(shí)相對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)中,根據(jù)解析得到的用戶登錄認(rèn)證方式編號(hào)檢索與用戶登錄認(rèn)證方式編號(hào)相對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí),并判斷是否能夠檢索到,是則執(zhí)行步驟F12,否則執(zhí)行步驟F10;
本實(shí)施例中,用戶登錄認(rèn)證方式編號(hào)在步驟F4中保存在應(yīng)用服務(wù)器內(nèi);
本實(shí)施例中,在步驟F1之前進(jìn)行綁定流程,在綁定流程中,應(yīng)用服務(wù)器保存用戶登錄認(rèn)證方式及其相對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí),并保存與用戶登錄認(rèn)證方式標(biāo)識(shí)一一對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào),具體對(duì)應(yīng)關(guān)系如下:
指紋認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)為0x01000001,與該用戶登錄認(rèn)證方式標(biāo)識(shí)相對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào)為01;
掌紋認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)為0x02000002,與該用戶登錄認(rèn)證方式標(biāo)識(shí)相對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào)為02;
虹膜認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)為0x03000003,與該用戶登錄認(rèn)證方式標(biāo)識(shí)相對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào)為03;
臉譜認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)為0x03000004,與該用戶登錄認(rèn)證方式標(biāo)識(shí)相對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào)為04;
聲紋認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)為0x05000005,與該用戶登錄認(rèn)證方式標(biāo)識(shí)相對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào)為05;
動(dòng)脈認(rèn)證,其對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)為0x06000006,與該用戶登錄認(rèn)證方式標(biāo)識(shí)相對(duì)應(yīng)的用戶登錄認(rèn)證方式編號(hào)為06;
步驟F10:應(yīng)用服務(wù)器發(fā)送報(bào)錯(cuò)結(jié)束信息至客戶端;
步驟F11:客戶端接收?qǐng)?bào)錯(cuò)結(jié)束信息并顯示;
步驟F12:應(yīng)用服務(wù)器根據(jù)用戶賬號(hào)、用戶登錄認(rèn)證方式標(biāo)識(shí)、認(rèn)證設(shè)備標(biāo)識(shí)和當(dāng)前應(yīng)用對(duì)應(yīng)的應(yīng)用標(biāo)識(shí),生成登錄認(rèn)證第二請(qǐng)求;
例如,登錄認(rèn)證第二請(qǐng)求為:
{
"identity":"0x189012345677+0x0101161000000086+0x01000001",
"url":"https://my.alipay.com/portal/i.htm?/1234%x23abcd",
"statusReports":{status:"valid",effectiveDate:"2016-10-28"}
"timeOfLastStatusChange":"2016-10-28"
};
其中,用戶賬號(hào)為:0x189012345677;
用戶登錄認(rèn)證方式標(biāo)識(shí)為:0x01000001;
認(rèn)證設(shè)備標(biāo)識(shí)為:0x0101161000000086;
應(yīng)用標(biāo)識(shí)為:https://my.alipay.com/portal/i.htm?/1234%x23abcd;
本實(shí)施例中,應(yīng)用標(biāo)識(shí)用于識(shí)別不同種類的應(yīng)用;
例如,應(yīng)用標(biāo)識(shí)為https://my.alipay.com/portal/i.htm?/1234%x23abcd;
本實(shí)施例中,在步驟F1之前進(jìn)行綁定流程,在綁定流程中應(yīng)用服務(wù)器保存與當(dāng)前應(yīng)用對(duì)應(yīng)的應(yīng)用標(biāo)識(shí);
本實(shí)施例中,用戶賬號(hào)是與用戶預(yù)登錄應(yīng)用相對(duì)應(yīng)的賬號(hào),在步驟F16中保存在應(yīng)用服務(wù)器內(nèi);
步驟F13:應(yīng)用服務(wù)器發(fā)送報(bào)錯(cuò)結(jié)束信息至客戶端;
步驟F14:客戶端接收?qǐng)?bào)錯(cuò)結(jié)束信息并顯示;
步驟F15:應(yīng)用服務(wù)器發(fā)送登錄認(rèn)證第二請(qǐng)求至認(rèn)證服務(wù)器;
步驟F16:認(rèn)證服務(wù)器接收并解析登錄認(rèn)證第二請(qǐng)求,得到應(yīng)用標(biāo)識(shí)、用戶賬號(hào)、用戶登錄認(rèn)證方式標(biāo)識(shí)和認(rèn)證設(shè)備標(biāo)識(shí)并保存;
步驟F17:認(rèn)證服務(wù)器根據(jù)認(rèn)證設(shè)備標(biāo)識(shí)判斷認(rèn)證設(shè)備是否可用,是則執(zhí)行步驟F18,否則報(bào)錯(cuò)結(jié)束;
本實(shí)施例中,在步驟F1之前進(jìn)行綁定流程,在綁定流程中認(rèn)證服務(wù)器保存認(rèn)證設(shè)備的認(rèn)證設(shè)備標(biāo)識(shí),稱為第二認(rèn)證設(shè)備標(biāo)識(shí);
具體地,認(rèn)證服務(wù)器查詢自身已經(jīng)保存的第二認(rèn)證設(shè)備標(biāo)識(shí)當(dāng)中是否有與所述認(rèn)證設(shè)備標(biāo)識(shí)相一致的,是則認(rèn)證設(shè)備可用,執(zhí)行步驟F18,否則,報(bào)錯(cuò)結(jié)束;
步驟F18:認(rèn)證服務(wù)器根據(jù)用戶登錄認(rèn)證方式標(biāo)識(shí)判斷用戶登錄認(rèn)證方式是否可用,是則執(zhí)行步驟F19,否則報(bào)錯(cuò)結(jié)束;
本實(shí)施例中,在步驟F1之前進(jìn)行綁定流程,在綁定流程中認(rèn)證服務(wù)器保存與步驟F1中用戶所選用的用戶登錄認(rèn)證方式相對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí),稱為第一用戶登錄認(rèn)證方式標(biāo)識(shí);
具體地,認(rèn)證服務(wù)器查詢自身已經(jīng)保存的第一用戶登錄認(rèn)證方式標(biāo)識(shí)當(dāng)中是否有與解析登錄認(rèn)證第二請(qǐng)求得到的用戶登錄認(rèn)證方式標(biāo)識(shí)相一致的,是則認(rèn)證設(shè)備可用,執(zhí)行步驟F19,否則,報(bào)錯(cuò)結(jié)束;
步驟F19:認(rèn)證服務(wù)器根據(jù)保存的認(rèn)證設(shè)備標(biāo)識(shí)產(chǎn)生挑戰(zhàn)值參數(shù)并保存,根據(jù)保存的應(yīng)用標(biāo)識(shí)產(chǎn)生應(yīng)用參數(shù)并保存;
本實(shí)施例中,認(rèn)證設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)在步驟F16中保存在認(rèn)證服務(wù)器內(nèi);
具體地,認(rèn)證服務(wù)器運(yùn)用哈希算法對(duì)認(rèn)證設(shè)備標(biāo)識(shí)進(jìn)行哈希運(yùn)算得到挑戰(zhàn)值參數(shù);
更具體地,挑戰(zhàn)值參數(shù)長度為32字節(jié);
優(yōu)選地,哈希算法為SM3算法,除此之外還可以為SHA-256算法等;
例如,挑戰(zhàn)值參數(shù)為:
"1669818D4FFE24404CE00D9AE1C5E1213DD1378D77C0803C46F5CB9394F47C87";
具體地,認(rèn)證服務(wù)器運(yùn)用哈希算法對(duì)應(yīng)用標(biāo)識(shí)進(jìn)行哈希運(yùn)算得到應(yīng)用參數(shù);
更具體地,應(yīng)用參數(shù)長度為32字節(jié);
優(yōu)選地,哈希算法為SM3算法,除此之外還可以為SHA-256算法等;
例如,應(yīng)用參數(shù)為:
"1AB21D8355CFA17F8E61194831E81A8F22BEC8C728FEFB747ED035EB5082AA2B";
步驟F20:認(rèn)證服務(wù)器根據(jù)挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成登錄認(rèn)證第二請(qǐng)求響應(yīng);
例如,登錄認(rèn)證第二請(qǐng)求響應(yīng)為:
其中,挑戰(zhàn)值參數(shù)為:
"1669818D4FFE24404CE00D9AE1C5E1213DD1378D77C0803C46F5CB9394F47C87";
應(yīng)用參數(shù)為:
"1AB21D8355CFA17F8E61194831E81A8F22BEC8C728FEFB747ED035EB5082AA2B";
步驟F21:認(rèn)證服務(wù)器發(fā)送登錄認(rèn)證第二請(qǐng)求響應(yīng)至應(yīng)用服務(wù)器;
步驟F22:應(yīng)用服務(wù)器接收登錄認(rèn)證第二請(qǐng)求響應(yīng);
步驟F23:應(yīng)用服務(wù)器根據(jù)保存的用戶賬號(hào)和應(yīng)用服務(wù)器內(nèi)部已經(jīng)保存的用戶登錄認(rèn)證方式標(biāo)識(shí)檢索對(duì)應(yīng)的密鑰標(biāo)識(shí),判斷是否能檢索到對(duì)應(yīng)的密鑰標(biāo)識(shí),是則執(zhí)行步驟F24,否則執(zhí)行步驟F25;
本實(shí)施例中,在步驟F1之前進(jìn)行綁定流程,在綁定流程中,認(rèn)證設(shè)備生成與應(yīng)用和用戶登錄認(rèn)證方式標(biāo)識(shí)一一對(duì)應(yīng)的密鑰標(biāo)識(shí)及密鑰對(duì),應(yīng)用服務(wù)器將密鑰標(biāo)識(shí)進(jìn)行備份;用戶賬號(hào)在步驟F4中保存在應(yīng)用服務(wù)器內(nèi);在步驟F6中應(yīng)用服務(wù)器檢索到所述用戶登錄認(rèn)證方式標(biāo)識(shí);
優(yōu)選地,認(rèn)證設(shè)備生成密鑰標(biāo)識(shí)及密鑰對(duì)的公鑰算法為SM2算法,除此之外還有RSA算法等;
例如,當(dāng)選用的公鑰算法為SM2算法時(shí),SM2算法返回JSON格式的數(shù)據(jù)為:
{
"typ":"JWT",
"alg":"301SM2"
"Q#S512":"7231962210...ec993a77b4a7203898ab74cdf974ff02d2de3f1ec7cb9de68"
};
步驟F24:應(yīng)用服務(wù)器解析登錄認(rèn)證第二請(qǐng)求響應(yīng),得到挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)并保存,執(zhí)行步驟F27;
步驟F25:應(yīng)用服務(wù)器發(fā)送報(bào)錯(cuò)結(jié)束信息至客戶端;
步驟F26:客戶端接收?qǐng)?bào)錯(cuò)結(jié)束信息并顯示;
步驟F27:應(yīng)用服務(wù)器根據(jù)密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成登錄認(rèn)證第一請(qǐng)求響應(yīng);
例如,登錄認(rèn)證第一請(qǐng)求響應(yīng)為:
其中,密鑰標(biāo)識(shí)為:"IjycjPZYiW…HmYG0mgjsDr2Yj-12S67v5";
挑戰(zhàn)值參數(shù)為:
"1669818D4FFE24404CE00D9AE1C5E1213DD1378D77C0803C46F5CB9394F47C87";
應(yīng)用參數(shù)為:
"1AB21D8355CFA17F8E61194831E81A8F22BEC8C728FEFB747ED035EB5082AA2B";
本實(shí)施例中,挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)在步驟F24中保存在應(yīng)用服務(wù)器內(nèi);
步驟F28:應(yīng)用服務(wù)器發(fā)送登錄認(rèn)證第一請(qǐng)求響應(yīng)至客戶端;
步驟F29:客戶端接收并解析登錄認(rèn)證第一請(qǐng)求響應(yīng),得到密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)并保存;
步驟F30:客戶端根據(jù)保存的密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成待簽名請(qǐng)求;
例如,待簽名請(qǐng)求為0x00020000xx‘登錄驗(yàn)證參數(shù)’xx;
其中,登錄驗(yàn)證參數(shù)包括挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和密鑰標(biāo)識(shí);
本實(shí)施例中,密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)在步驟F29中保存在客戶端內(nèi);
步驟F31:客戶端發(fā)送待簽名請(qǐng)求至認(rèn)證設(shè)備;
步驟F32:認(rèn)證設(shè)備接收待簽名請(qǐng)求;
步驟F33:認(rèn)證設(shè)備解析待簽名請(qǐng)求,得到密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)并保存;
步驟F34:認(rèn)證設(shè)備根據(jù)密鑰標(biāo)識(shí)檢索對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí),根據(jù)用戶登錄認(rèn)證方式標(biāo)識(shí)檢索對(duì)應(yīng)的用戶登錄認(rèn)證方式信息;
本實(shí)施例中,在步驟F1之前進(jìn)行綁定流程,在綁定流程中,認(rèn)證設(shè)備生成與應(yīng)用和用戶登錄認(rèn)證方式標(biāo)識(shí)一一對(duì)應(yīng)的密鑰標(biāo)識(shí)及密鑰對(duì);
優(yōu)選地,認(rèn)證設(shè)備生成密鑰標(biāo)識(shí)及密鑰對(duì)的公鑰算法為SM2算法,除此之外還可以為RSA算法等;
步驟F35:認(rèn)證設(shè)備提示用戶輸入所選擇的用戶登錄認(rèn)證方式信息,判斷接收的用戶登錄認(rèn)證方式信息與檢索到的用戶登錄認(rèn)證方式信息是否一致,是則執(zhí)行步驟F36,否則報(bào)錯(cuò)結(jié)束;
進(jìn)一步地,認(rèn)證設(shè)備內(nèi)設(shè)置錯(cuò)誤次數(shù)閥值,步驟F35判斷為否時(shí)還包括:認(rèn)證設(shè)備更新操作次數(shù),并判斷操作次數(shù)是否到達(dá)錯(cuò)誤次數(shù)閥值,是則報(bào)錯(cuò),否則提示用戶重新輸入;
進(jìn)一步地,認(rèn)證設(shè)備可以設(shè)置等待接收用戶輸入的用戶登錄認(rèn)證方式信息的時(shí)間,例如60秒,如果在此時(shí)間段內(nèi),認(rèn)證設(shè)備接收到用戶輸入的用戶登錄認(rèn)證方式信息,則執(zhí)行步驟F36,否則報(bào)錯(cuò)結(jié)束;
本實(shí)施例中,認(rèn)證設(shè)備提示用戶輸入所選擇的用戶登錄認(rèn)證方式信息,是步驟F1中客戶端接收的用戶所選擇的用戶登錄認(rèn)證方式信息;
步驟F36:認(rèn)證設(shè)備根據(jù)密鑰標(biāo)識(shí)檢索認(rèn)證設(shè)備內(nèi)部保存的對(duì)應(yīng)私鑰;
本實(shí)施例中,在步驟F1之前進(jìn)行綁定流程,在綁定流程中,認(rèn)證設(shè)備生成與應(yīng)用和用戶登錄認(rèn)證方式標(biāo)識(shí)一一對(duì)應(yīng)的密鑰標(biāo)識(shí)及密鑰對(duì);
優(yōu)選地,認(rèn)證設(shè)備生成密鑰標(biāo)識(shí)及密鑰對(duì)的公鑰算法為SM2算法,除此之外還可以為RSA算法等;
步驟F37:認(rèn)證設(shè)備使用檢索到的私鑰對(duì)挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值計(jì)算簽名得到簽名值;
步驟F37還可以替換為步驟F37-1:認(rèn)證設(shè)備使用檢索到的私鑰對(duì)挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值計(jì)算簽名得到簽名值,更新計(jì)數(shù)值;
本實(shí)施例中,認(rèn)證設(shè)備在第一次生成應(yīng)用密鑰對(duì)時(shí),初始化計(jì)數(shù)器的計(jì)數(shù)值為0;認(rèn)證設(shè)備每執(zhí)行一次計(jì)算簽名操作,計(jì)數(shù)器的計(jì)數(shù)值遞增一次;
步驟F38:認(rèn)證設(shè)備根據(jù)簽名值和計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求,更新計(jì)數(shù)值;
當(dāng)步驟F37替換為步驟F37-1時(shí),步驟F38替換為步驟F38-1:認(rèn)證設(shè)備根據(jù)簽名值和更新前的計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求;
當(dāng)步驟F37替換為步驟F37-1時(shí),步驟F38替換為步驟F38-2:認(rèn)證設(shè)備將簽名值和更新前的計(jì)數(shù)值發(fā)送至客戶端,執(zhí)行步驟F39-1;
步驟F38還可以替換為步驟F38-3:認(rèn)證設(shè)備根據(jù)簽名值和計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求;
步驟F38還可以替換為步驟F38-4:認(rèn)證設(shè)備將簽名值和計(jì)數(shù)值發(fā)送至客戶端,執(zhí)行步驟F39-1;
例如,驗(yàn)證簽名請(qǐng)求為0x00020200xx‘簽名驗(yàn)證參數(shù)’xx;
其中,簽名驗(yàn)證參數(shù)包括挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值;
步驟F39:認(rèn)證設(shè)備通過客戶端和應(yīng)用服務(wù)器發(fā)送驗(yàn)證簽名請(qǐng)求至認(rèn)證服務(wù)器;
當(dāng)步驟F38為步驟F38-2或F38-4時(shí),步驟F39替代為步驟F39-1:客戶端接收簽名值和計(jì)數(shù)值,根據(jù)簽名值和計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求,并將生成的驗(yàn)證簽名請(qǐng)求通過應(yīng)用服務(wù)器發(fā)送至認(rèn)證服務(wù)器;
例如,當(dāng)步驟F38為步驟F38-2或F38-4時(shí),步驟F39替代為步驟F39-1時(shí),在客戶端生成的驗(yàn)證簽名請(qǐng)求的JSON格式的數(shù)據(jù)實(shí)例為:
{
"aaid":["my.alipay.com"]]
"identity":"0x189012345677+0x0101161000000086",
"signature":"5F76C4395CA7BC44246A22C9F9037A9365B3F56F3F4222837437D7AF21F68EEAE4BA48A28789C244AC3331C3D8F68785BFB5F513EABEAE11C4794D8B30964D46",
"counter":0023,
"statusReports":{status:"valid",effectiveDate:"2016-10-28"}
"timeOfLastStatusChange":"2016-10-28"
};
其中,簽名值為:
5F76C4395CA7BC44246A22C9F9037A9365B3F56F3F4222837437D7AF21F68EEAE4BA48A28789C244AC3331C3D8F68785BFB5F513EABEAE11C4794D8B30964D46;
計(jì)數(shù)值為:0023;
步驟F40:認(rèn)證服務(wù)器接收并解析驗(yàn)證簽名請(qǐng)求,得到計(jì)數(shù)值和簽名值并保存;
步驟F41:認(rèn)證服務(wù)器根據(jù)保存的用戶賬號(hào)或者認(rèn)證設(shè)備標(biāo)識(shí)檢索對(duì)應(yīng)的密鑰標(biāo)識(shí);
本實(shí)施例中,在步驟F1之前進(jìn)行綁定流程,在綁定流程中,認(rèn)證設(shè)備生成與應(yīng)用和用戶登錄認(rèn)證方式標(biāo)識(shí)一一對(duì)應(yīng)的密鑰標(biāo)識(shí)及密鑰對(duì),并且認(rèn)證服務(wù)器將密鑰標(biāo)識(shí)及公鑰進(jìn)行備份;用戶賬號(hào)和用戶登錄認(rèn)證方式標(biāo)識(shí)在步驟F16中保存在認(rèn)證服務(wù)器內(nèi);
步驟F42:認(rèn)證服務(wù)器根據(jù)檢索到的密鑰標(biāo)識(shí)檢索對(duì)應(yīng)的公鑰,并使用檢索到的公鑰解密簽名值,得到第一哈希值;
步驟F43:認(rèn)證服務(wù)器根據(jù)哈希算法對(duì)保存的挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值進(jìn)行哈希運(yùn)算,得到第二哈希值;
優(yōu)選地,哈希算法為SM3算法,除此之外還可以為MD5算法等;
本實(shí)施例中,挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)在步驟F19中保存在認(rèn)證服務(wù)器內(nèi);計(jì)數(shù)值在步驟F40中保存在認(rèn)證服務(wù)器內(nèi);
步驟F44:認(rèn)證服務(wù)器將解密得到的第一哈希值和計(jì)算得到的第二哈希值進(jìn)行比對(duì),判斷第一哈希值和第二哈希值是否一致,根據(jù)判斷結(jié)果生成登錄認(rèn)證響應(yīng);
步驟F45:認(rèn)證服務(wù)器發(fā)送登錄認(rèn)證響應(yīng)和保存的認(rèn)證設(shè)備標(biāo)識(shí)至應(yīng)用服務(wù)器;
本實(shí)施例中,認(rèn)證設(shè)備標(biāo)識(shí)在步驟F16中保存在認(rèn)證服務(wù)器內(nèi);
步驟F46:應(yīng)用服務(wù)器發(fā)送登錄認(rèn)證響應(yīng)和保存的認(rèn)證設(shè)備標(biāo)識(shí);
步驟F47:應(yīng)用服務(wù)器判斷登錄響應(yīng)是否為成功登錄響應(yīng),是則執(zhí)行步驟F48,否則執(zhí)行步驟F51;
步驟F48:應(yīng)用服務(wù)器允許進(jìn)行登錄操作;
步驟F49:應(yīng)用服務(wù)器發(fā)送登錄成功信息和保存的認(rèn)證設(shè)備標(biāo)識(shí)至客戶端;
步驟F50:客戶端接收登錄成功信息和認(rèn)證設(shè)備標(biāo)識(shí),進(jìn)入“登錄成功”狀態(tài),顯示“登錄成功”;
步驟F51:應(yīng)用服務(wù)器拒絕進(jìn)行登錄操作;
步驟F52:應(yīng)用服務(wù)器發(fā)送登錄失敗信息至客戶端;
步驟F53:客戶端接收登錄失敗信息,顯示“登錄失敗”。
本實(shí)施例中,當(dāng)步驟F38為步驟F38-3或步驟F38為步驟F38-4且步驟F39替換為步驟F39-1時(shí),步驟F50之后還包括以下步驟:
步驟F54:客戶端發(fā)送登錄成功信息至認(rèn)證設(shè)備;
步驟F55:認(rèn)證設(shè)備接收登錄成功信息,更新計(jì)數(shù)值。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):本專利提出了一種通用的、基于認(rèn)證設(shè)備的登錄認(rèn)證方案,通過可擴(kuò)展的、統(tǒng)一的、可互操作的接口,使用戶在登錄各種應(yīng)用時(shí),無需輸入密碼,就可在本地實(shí)現(xiàn)對(duì)用戶身份和設(shè)備身份的高安全的認(rèn)證。該登錄認(rèn)證方案操作方便,易于管理,登錄認(rèn)證流程安全性高,解決了賬戶安全的問題,提高了用戶體驗(yàn)。
實(shí)施例五
如圖8所示,本實(shí)施例五提供了一種登錄認(rèn)證的系統(tǒng),包括客戶端10、應(yīng)用服務(wù)器20、認(rèn)證服務(wù)器30和認(rèn)證設(shè)備40,
客戶端10包括:
第一接收模塊101,用于接收用戶的登錄請(qǐng)求,還用于接收應(yīng)用服務(wù)器20發(fā)送的登錄認(rèn)證第一請(qǐng)求響應(yīng),還用于接收認(rèn)證設(shè)備40發(fā)送的驗(yàn)證簽名請(qǐng)求;
第一解析模塊102,用于解析第一接收模塊101接收到的登錄認(rèn)證第一請(qǐng)求響應(yīng);
第一生成模塊103,用于根據(jù)用戶賬號(hào)、用戶登錄認(rèn)證方式標(biāo)識(shí)和認(rèn)證設(shè)備標(biāo)識(shí)生成登錄認(rèn)證第一請(qǐng)求;
第二生成模塊104,用于根據(jù)登錄認(rèn)證第一請(qǐng)求響應(yīng)的解析結(jié)果中的密鑰標(biāo)識(shí)、挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成待簽名請(qǐng)求;
第一發(fā)送模塊105,用于發(fā)送第一生成模塊103生成的登錄認(rèn)證第一請(qǐng)求和第一接收模塊101接收的驗(yàn)證簽名請(qǐng)求至應(yīng)用服務(wù)器20,還用于發(fā)送第二生成模塊104生成的待簽名請(qǐng)求至認(rèn)證設(shè)備40;
應(yīng)用服務(wù)器20包括:
第二接收模塊201,用于接收第一發(fā)送模塊105發(fā)送的登錄認(rèn)證第一請(qǐng)求和驗(yàn)證簽名請(qǐng)求,還用于接收認(rèn)證服務(wù)器30發(fā)送的登錄認(rèn)證第二請(qǐng)求響應(yīng)和簽名值的驗(yàn)證結(jié)果;
第二解析模塊202,用于解析第二接收模塊201接收到的登錄認(rèn)證第一請(qǐng)求和登錄認(rèn)證第二請(qǐng)求響應(yīng);
第三生成模塊203,用于根據(jù)登錄認(rèn)證第一請(qǐng)求的解析結(jié)果和當(dāng)前應(yīng)用對(duì)應(yīng)的應(yīng)用標(biāo)識(shí)生成登錄認(rèn)證第二請(qǐng)求;
第四生成模塊204,用于根據(jù)登錄認(rèn)證第二請(qǐng)求響應(yīng)的解析結(jié)果和密鑰標(biāo)識(shí)生成登錄認(rèn)證第一請(qǐng)求響應(yīng);
第一報(bào)錯(cuò)模塊208,用于報(bào)錯(cuò);
第二發(fā)送模塊205,用于將第三生成模塊203生成的登錄認(rèn)證第二請(qǐng)求、第二接收模塊201接收到的驗(yàn)證簽名請(qǐng)求發(fā)送至認(rèn)證服務(wù)器30,還用于將第一報(bào)錯(cuò)模塊208的報(bào)錯(cuò)信息和第四生成模塊204生成的登錄認(rèn)證第一請(qǐng)求響應(yīng)發(fā)送至第一接收模塊101;
第一驗(yàn)證模塊206,用于驗(yàn)證所得解析結(jié)果中的用戶賬號(hào)與應(yīng)用服務(wù)器20自身所保存的認(rèn)證設(shè)備標(biāo)識(shí)是否匹配,是則觸發(fā)第三生成模塊203和第一報(bào)錯(cuò)模塊208,否則僅觸發(fā)第二發(fā)送模塊205;
登錄模塊207,用于根據(jù)第二接收模塊201接收到的驗(yàn)證結(jié)果進(jìn)行允許登錄操作或者拒絕登錄操作;
認(rèn)證服務(wù)器30包括:
第三接收模塊301,用于接收第二發(fā)送模塊205發(fā)送的登錄認(rèn)證第二請(qǐng)求和驗(yàn)證簽名請(qǐng)求;
第三解析模塊302,用于解析第三接收模塊301接收到的登錄認(rèn)證第二請(qǐng)求和驗(yàn)證簽名請(qǐng)求;
第五生成模塊303,用于根據(jù)第三解析模塊302解析登錄認(rèn)證第二請(qǐng)求的解析結(jié)果生成挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù);
第六生成模塊304,用于根據(jù)第五生成模塊303生成的挑戰(zhàn)值參數(shù)和應(yīng)用參數(shù)生成登錄認(rèn)證第二請(qǐng)求響應(yīng);
第二驗(yàn)證模塊305,用于根據(jù)公鑰和驗(yàn)證簽名請(qǐng)求中計(jì)數(shù)值驗(yàn)證所述驗(yàn)證簽名請(qǐng)求中的簽名值;
第三發(fā)送模塊306,用于發(fā)送第六生成模塊304生成的登錄認(rèn)證第二請(qǐng)求響應(yīng)和第二驗(yàn)證模塊305的驗(yàn)證結(jié)果至應(yīng)用服務(wù)器20;
認(rèn)證設(shè)備40包括:
第四接收模塊401,用于接收第一發(fā)送模塊105發(fā)送的待簽名請(qǐng)求;
第四解析模塊402,用于解析第四接收模塊401接收的待簽名請(qǐng)求;
第三驗(yàn)證模塊403,用于當(dāng)?shù)谒慕馕瞿K402解析所述待簽名請(qǐng)求后驗(yàn)證用戶輸入的用戶登錄認(rèn)證方式信息是否合法;
第一檢索模塊404,用于當(dāng)?shù)谌?yàn)證模塊403的驗(yàn)證結(jié)果合法時(shí),根據(jù)待簽名請(qǐng)求解析結(jié)果中的密鑰標(biāo)識(shí)檢索對(duì)應(yīng)的私鑰;
第七生成模塊405,用于當(dāng)?shù)谝粰z索模塊404檢索到與待簽名請(qǐng)求解析結(jié)果中的密鑰標(biāo)識(shí)對(duì)應(yīng)的私鑰時(shí),使用私鑰對(duì)所述待簽名請(qǐng)求的解析結(jié)果中的挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和內(nèi)部保存的計(jì)數(shù)值進(jìn)行計(jì)算簽名得到簽名值;
第八生成模塊406,用于根據(jù)第七生成模塊405生成的簽名值和計(jì)數(shù)值生成驗(yàn)證簽名請(qǐng)求;
更新模塊407,用于在第八生成模塊406生成驗(yàn)證簽名請(qǐng)求之后,更新計(jì)數(shù)值;
第四發(fā)送模塊408,用于發(fā)送第八生成模塊406生成的驗(yàn)證簽名請(qǐng)求至第一接收模塊101。
可選地,本實(shí)施例中,
第四發(fā)送模塊408,還用于發(fā)送用戶身份合法信息至所述第一接收模塊101;
第一接收模塊101,還用于接收第四發(fā)送模塊408發(fā)送的用戶身份合法信息;
認(rèn)證設(shè)備40還包括:
第一提示模塊,用于提示用戶進(jìn)行身份認(rèn)證;
第二報(bào)錯(cuò)模塊,用于報(bào)錯(cuò);
第一判斷模塊,用于第一提示模塊提示用戶進(jìn)行身份認(rèn)證后,判斷用戶身份是否合法;
第四發(fā)送模塊408,還用于當(dāng)?shù)谝慌袛嗄K判斷用戶身份合法時(shí),發(fā)送用戶身份合法信息至第一接收模塊101;
第一生成模塊103,還用于當(dāng)?shù)谝慌袛嗄K判斷用戶身份合法時(shí),根據(jù)用戶賬號(hào)、用戶登錄認(rèn)證方式標(biāo)識(shí)和認(rèn)證設(shè)備標(biāo)識(shí)生成登錄認(rèn)證第一請(qǐng)求;
第二報(bào)錯(cuò)模塊,還用于當(dāng)?shù)谝慌袛嗄K判斷用戶身份不合法時(shí),報(bào)錯(cuò)。
可選地,本實(shí)施例中,認(rèn)證設(shè)備40還包括:
第一顯示模塊,用于顯示可供用戶選擇的用戶登錄認(rèn)證方式;
第一讀取模塊,用于當(dāng)接收到用戶選擇的用戶登錄認(rèn)證方式信息時(shí),讀取與用戶所選擇的用戶登錄認(rèn)證方式相對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí);
第四發(fā)送模塊408,還用于發(fā)送用戶登錄認(rèn)證方式標(biāo)識(shí)至第一接收模塊101;
第一接收模塊101,還用于接收第四發(fā)送模塊408發(fā)送的用戶登錄認(rèn)證方式標(biāo)識(shí)。
可選地,本實(shí)施例中,認(rèn)證設(shè)備40還包括:
指紋模塊,用于對(duì)用戶提供的指紋進(jìn)行認(rèn)證;
和\或,掌紋模塊,用于對(duì)用戶提供的掌紋進(jìn)行認(rèn)證;
和\或,虹膜模塊,用于對(duì)用戶提供的虹膜進(jìn)行認(rèn)證;
和\或,臉譜模塊,用于對(duì)用戶提供的臉譜進(jìn)行認(rèn)證;
和\或,聲紋模塊,用于對(duì)用戶提供的聲紋進(jìn)行認(rèn)證;
和\或,動(dòng)脈模塊,用于對(duì)用戶提供的動(dòng)脈進(jìn)行認(rèn)證。
可選地,本實(shí)施例中,認(rèn)證服務(wù)器30還包括:
第三報(bào)錯(cuò)模塊,用于報(bào)錯(cuò);
第二判斷模塊,用于根據(jù)解析登錄認(rèn)證第二請(qǐng)求所得的認(rèn)證設(shè)備標(biāo)識(shí)判斷認(rèn)證設(shè)備40是否可用,是則觸發(fā)第五生成模塊303,否則觸發(fā)第三報(bào)錯(cuò)模塊。
上述實(shí)施例中,認(rèn)證服務(wù)器30還包括:
第四報(bào)錯(cuò)模塊,用于報(bào)錯(cuò);
第三判斷模塊,用于根據(jù)解析登錄認(rèn)證第二請(qǐng)求所得的用戶登錄認(rèn)證方式標(biāo)識(shí)判斷對(duì)應(yīng)的用戶登錄認(rèn)證方式是否可用,是則觸發(fā)第五生成模塊303,否則觸發(fā)第四報(bào)錯(cuò)模塊。
可選地,本實(shí)施例中,應(yīng)用服務(wù)器20還包括:
第五報(bào)錯(cuò)模塊,用于報(bào)錯(cuò);
第四判斷模塊,用于根據(jù)保存的用戶賬號(hào)和用戶登錄認(rèn)證方式標(biāo)識(shí)判斷是否能檢索到對(duì)應(yīng)的密鑰標(biāo)識(shí),是則觸發(fā)第四生成模塊204,否則觸發(fā)第五報(bào)錯(cuò)模塊。
可選地,本實(shí)施例中,第三驗(yàn)證模塊403具體包括:
第一檢索子模塊,用于根據(jù)密鑰標(biāo)識(shí)檢索對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí);
第二檢索子模塊,用于在第一檢索子模塊檢索到用戶登錄認(rèn)證方式標(biāo)識(shí)之后,根據(jù)用戶登錄認(rèn)證方式標(biāo)識(shí)檢索對(duì)應(yīng)的用戶登錄認(rèn)證方式信息;
第一提示子模塊,用于在第二檢索子模塊檢索到用戶登錄認(rèn)證方式信息之后,提示用戶輸入與所選擇的用戶登錄認(rèn)證方式對(duì)應(yīng)的用戶登錄認(rèn)證方式信息;
第一報(bào)錯(cuò)子模塊,用于報(bào)錯(cuò);
第一判斷子模塊,用于在第一提示子模塊提示用戶輸入與所選擇的用戶登錄認(rèn)證方式對(duì)應(yīng)的用戶登錄認(rèn)證方式信息之后,判斷接收的用戶登錄認(rèn)證方式信息與檢索到的用戶登錄認(rèn)證方式信息是否一致,是則觸發(fā)第一檢索模塊404,否則觸發(fā)第一報(bào)錯(cuò)子模塊。
可選地,本實(shí)施例中,
第四發(fā)送模塊408,還用于將第七生成模塊405生成的簽名值和計(jì)數(shù)值發(fā)送給第一接收模塊101;
第一接收模塊101,還用于接收第四發(fā)送模塊408發(fā)送的簽名值和計(jì)數(shù)值;
更新模塊407,還用于在第四發(fā)送模塊408發(fā)送簽名值和計(jì)數(shù)值至第一接收模塊101后,更新計(jì)數(shù)值;
第八生成模塊406位于客戶端10。
可選地,本實(shí)施例中,
第二發(fā)送模塊205,還用于當(dāng)?shù)诙邮漳K201接收到的簽名值的驗(yàn)證結(jié)果為驗(yàn)證成功信息時(shí),發(fā)送驗(yàn)證成功信息至第一接收模塊101;
第一接收模塊101,還用于接收第二發(fā)送模塊205發(fā)送的驗(yàn)證成功信息;
第一發(fā)送模塊105,還用于發(fā)送第一接收模塊101接收的驗(yàn)證成功信息至第四接收模塊401;
第四接收模塊401,還用于接收第一發(fā)送模塊105發(fā)送的驗(yàn)證成功信息;
更新模塊407,還用于當(dāng)?shù)谒慕邮漳K401接收到驗(yàn)證成功信息時(shí),更新計(jì)數(shù)值。
可選地,本實(shí)施例中,
第四發(fā)送模塊408,還用于將第七生成模塊405生成的簽名值和計(jì)數(shù)值發(fā)送給第一接收模塊101;
第一接收模塊101,還用于接收第四發(fā)送模塊408發(fā)送的簽名值和計(jì)數(shù)值,還用于接收第二發(fā)送模塊205發(fā)送的驗(yàn)證成功信息;
第八生成模塊406位于客戶端10;
第二發(fā)送模塊205,還用于當(dāng)?shù)诙邮漳K201接收的到簽名值的驗(yàn)證結(jié)果為驗(yàn)證成功信息時(shí),發(fā)送驗(yàn)證成功信息至第一接收模塊101;
第一發(fā)送模塊105,還用于發(fā)送第一接收模塊101接收的驗(yàn)證成功信息至第四接收模塊401;
第四接收模塊401,還用于接收第一發(fā)送模塊105發(fā)送的驗(yàn)證成功信息;
更新模塊407,還用于當(dāng)?shù)谒慕邮漳K401接收到驗(yàn)證成功信息時(shí),更新計(jì)數(shù)值。
可選地,本實(shí)施例中,第二驗(yàn)證模塊305,具體包括:
第一保存子模塊,用于保存驗(yàn)證簽名請(qǐng)求中計(jì)數(shù)值;
第三檢索子模塊,用于根據(jù)密鑰標(biāo)識(shí)檢索公鑰;
第一解密子模塊,用于使用第三檢索子模塊檢索到的公鑰解密簽名值;
第一驗(yàn)證子模塊,用于將第一解密子模塊的解密結(jié)果與根據(jù)挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值進(jìn)行哈希運(yùn)算所得結(jié)果進(jìn)行比對(duì),若一致,則驗(yàn)證成功,否則驗(yàn)證失敗。
上述實(shí)施例中,第三檢索子模塊,具體包括:
第一檢索單元,用于根據(jù)解析登錄認(rèn)證第二請(qǐng)求所得的用戶賬號(hào)和用戶認(rèn)證方式標(biāo)識(shí)檢索密鑰標(biāo)識(shí);
第二檢索單元,用于根據(jù)第一檢索單元檢索到的密鑰標(biāo)識(shí)檢索公鑰。
可選地,本實(shí)施例中,客戶端10還包括:
第九生成模塊,用于根據(jù)用戶賬號(hào)和認(rèn)證設(shè)備標(biāo)識(shí)生成登錄認(rèn)證第一請(qǐng)求;
第一接收模塊101,還用于接收用戶的登錄請(qǐng)求;
第一發(fā)送模塊105,還用于將第九生成模塊生成的登錄認(rèn)證第一請(qǐng)求發(fā)送至第二接收模塊201;
第二接收模塊201,還用于接收第一發(fā)送模塊105發(fā)送的登錄認(rèn)證第一請(qǐng)求;
認(rèn)證設(shè)備40還包括:
第二提示模塊,用于提示用戶進(jìn)行按鍵確認(rèn);
第四發(fā)送模塊408,還用于當(dāng)收到用戶的按鍵確認(rèn)信息時(shí),發(fā)送按鍵確認(rèn)信息至第一接收模塊101。
上述實(shí)施例中,第二驗(yàn)證模塊305具體包括:
第二保存子模塊,用于保存驗(yàn)證簽名請(qǐng)求中計(jì)數(shù)值;
第三檢索子模塊,用于根據(jù)密鑰標(biāo)識(shí)檢索公鑰;
第二解密子模塊,用于使用第二檢索子模塊檢索到的公鑰解密簽名值;
第二驗(yàn)證子模塊,用于將第一解密子模塊的解密結(jié)果與根據(jù)挑戰(zhàn)值參數(shù)、應(yīng)用參數(shù)和計(jì)數(shù)值進(jìn)行哈希運(yùn)算所得結(jié)果進(jìn)行比對(duì),若一致,則驗(yàn)證成功,否則驗(yàn)證失敗。
上述實(shí)施例中,第三檢索子模塊,具體包括:
第三檢索單元,用于根據(jù)解析登錄認(rèn)證第二請(qǐng)求所得的用戶賬號(hào)或認(rèn)證設(shè)備標(biāo)識(shí)檢索密鑰標(biāo)識(shí);
第四檢索單元,用于根據(jù)第一檢索單元檢索到的密鑰標(biāo)識(shí)檢索公鑰。
可選地,本實(shí)施例中,客戶端10還包括:
第十生成模塊,用于根據(jù)用戶賬號(hào)和用戶登錄認(rèn)證方式編號(hào)生成登錄認(rèn)證第一請(qǐng)求;
第一接收模塊101,還用于接收用戶的登錄請(qǐng)求,還用于接收第二發(fā)送模塊205發(fā)送的報(bào)錯(cuò)信息;
第一發(fā)送模塊105,還用于將第十生成模塊生成的登錄認(rèn)證第一請(qǐng)求發(fā)送至第二接收模塊201;
第二接收模塊201,還用于接收第一發(fā)送模塊105發(fā)送的登錄認(rèn)證第一請(qǐng)求;
應(yīng)用服務(wù)器20還包括:
第六報(bào)錯(cuò)模塊,用于報(bào)錯(cuò);
第四判斷模塊,用于根據(jù)用戶賬號(hào)判斷是否能夠檢索到對(duì)應(yīng)的認(rèn)證設(shè)備標(biāo)識(shí),是則觸發(fā)第五判斷模塊,否則觸發(fā)第六報(bào)錯(cuò)模塊;
第七報(bào)錯(cuò)模塊,用于報(bào)錯(cuò);
第五判斷模塊,用于在檢索得到的與認(rèn)證設(shè)備標(biāo)識(shí)相對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí)中,根據(jù)解析得到的用戶登錄認(rèn)證方式編號(hào)判斷是否能夠檢索到與用戶登錄認(rèn)證方式編號(hào)相對(duì)應(yīng)的用戶登錄認(rèn)證方式標(biāo)識(shí),是則觸發(fā)第三生成模塊203,否則觸發(fā)第七報(bào)錯(cuò)模塊;
第二發(fā)送模塊205,還用于發(fā)送第六報(bào)錯(cuò)模塊和第七報(bào)錯(cuò)模塊的報(bào)錯(cuò)信息至第一接收模塊101。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):本專利提出了一種通用的、基于認(rèn)證設(shè)備的登錄認(rèn)證方案,通過可擴(kuò)展的、統(tǒng)一的、可互操作的接口,使用戶在登錄各種應(yīng)用時(shí),無需輸入密碼,就可在本地實(shí)現(xiàn)對(duì)用戶身份和設(shè)備身份的高安全的認(rèn)證。該登錄認(rèn)證方案操作方便,易于管理,登錄認(rèn)證流程安全性高,解決了賬戶安全的問題,提高了用戶體驗(yàn)。
以上所述五個(gè)實(shí)施例的前提是:在同一個(gè)應(yīng)用中,一個(gè)賬號(hào)至多綁定一個(gè)認(rèn)證設(shè)備,一個(gè)認(rèn)證設(shè)備可以對(duì)應(yīng)多個(gè)應(yīng)用;
在實(shí)施例二中,方法是用認(rèn)證設(shè)備本身作為認(rèn)證憑據(jù)進(jìn)行驗(yàn)證,用戶賬號(hào)、認(rèn)證設(shè)備標(biāo)識(shí)、應(yīng)用標(biāo)識(shí)和密鑰標(biāo)識(shí)是一一對(duì)應(yīng)的關(guān)系,可以根據(jù)用戶賬號(hào)或認(rèn)證設(shè)備標(biāo)識(shí)或應(yīng)用標(biāo)識(shí)檢索密鑰標(biāo)識(shí);
在實(shí)施例三和四中,用戶賬號(hào)、認(rèn)證設(shè)備標(biāo)識(shí)、應(yīng)用標(biāo)識(shí)是一一對(duì)應(yīng)的關(guān)系,而認(rèn)證設(shè)備標(biāo)識(shí)與用戶登錄認(rèn)證方式標(biāo)識(shí)是一對(duì)多的關(guān)系,可以根據(jù)用戶賬號(hào)或認(rèn)證設(shè)備標(biāo)識(shí)或應(yīng)用標(biāo)識(shí)再結(jié)合用戶登錄認(rèn)證方式標(biāo)識(shí)共同檢索密鑰標(biāo)識(shí);
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明公開的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。