本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種認(rèn)證設(shè)備與網(wǎng)站的集成方法、系統(tǒng)及裝置。
背景技術(shù):
Joomla是全球最受歡迎的開源CMS(Content Management System,內(nèi)容管理系統(tǒng))之一,可以在Linux、Windows、MacOSX等各種不同的平臺(tái)上執(zhí)行。現(xiàn)有技術(shù)中,Joomla被廣泛應(yīng)用于創(chuàng)建各類網(wǎng)站和開發(fā)基于Web的應(yīng)用,但如何將認(rèn)證設(shè)備與應(yīng)用Joomla技術(shù)的網(wǎng)站集成在一起,實(shí)現(xiàn)用戶在網(wǎng)站上的注冊(cè)和認(rèn)證仍是亟需解決的一個(gè)技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成方法、系統(tǒng)及裝置,解決了上述問題。
本發(fā)明提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成方法,適用于包括:認(rèn)證設(shè)備、瀏覽器、網(wǎng)站、注冊(cè)插件和認(rèn)證服務(wù)器的系統(tǒng),包括:注冊(cè)流程,所述注冊(cè)流程包括:
步驟s1:所述網(wǎng)站通過所述瀏覽器接收用戶注冊(cè)信息,向所述注冊(cè)插件發(fā)送所述用戶注冊(cè)信息和與所述用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí);
步驟s2:所述注冊(cè)插件根據(jù)所述注冊(cè)結(jié)果標(biāo)識(shí)判斷用戶是否已注冊(cè)成功,如果是,則向所述網(wǎng)站發(fā)送已注冊(cè)信息,所述網(wǎng)站執(zhí)行步驟s10;否則,向所述認(rèn)證服務(wù)器發(fā)送包括所述用戶注冊(cè)信息中的用戶標(biāo)識(shí)的獲取設(shè)備注冊(cè)請(qǐng)求;
步驟s3:所述認(rèn)證服務(wù)器向所述注冊(cè)插件發(fā)送包括自身的第一挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備注冊(cè)請(qǐng)求;
步驟s4:所述注冊(cè)插件通過所述瀏覽器向所述認(rèn)證設(shè)備發(fā)送所述設(shè)備注冊(cè)請(qǐng)求,并通過所述瀏覽器在注冊(cè)等待頁面提示用戶按下所述認(rèn)證設(shè)備的按鈕;
步驟s5:所述認(rèn)證設(shè)備等待用戶按下按鈕,當(dāng)獲取到用戶按下按鈕的信息后,根據(jù)所述設(shè)備注冊(cè)請(qǐng)求中的第一挑戰(zhàn)值和應(yīng)用參數(shù)生成密鑰句柄、與密鑰句柄對(duì)應(yīng)的第一公鑰和第一私鑰,使用預(yù)設(shè)的硬件私鑰對(duì)所述第一公鑰和所述密鑰句柄簽名生成第一簽名值,通過所述瀏覽器向所述注冊(cè)插件發(fā)送包括所述密鑰句柄、所述第一公鑰、所述第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù);
步驟s6:所述注冊(cè)插件向所述認(rèn)證服務(wù)器發(fā)送包括所述設(shè)備注冊(cè)數(shù)據(jù)的第一認(rèn)證請(qǐng)求;
步驟s7:所述認(rèn)證服務(wù)器從所述硬件證書中獲取硬件公鑰,使用所述硬件公鑰對(duì)所述第一簽名值驗(yàn)簽,得到第一認(rèn)證結(jié)果,若所述第一認(rèn)證結(jié)果為成功,則將所述密鑰句柄、所述第一公鑰和所述用戶標(biāo)識(shí)建立對(duì)應(yīng)關(guān)系,向所述注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果,所述注冊(cè)插件執(zhí)行步驟s8;若所述第一認(rèn)證結(jié)果為失敗,則向所述注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果,所述注冊(cè)插件執(zhí)行步驟s8;
步驟s8:所述注冊(cè)插件向所述網(wǎng)站發(fā)送第一認(rèn)證結(jié)果;
步驟s9:所述網(wǎng)站根據(jù)所述第一認(rèn)證結(jié)果判斷用戶是否注冊(cè)成功,如果是,則通過所述瀏覽器顯示注冊(cè)成功,結(jié)束注冊(cè)流程;否則,通過所述瀏覽器顯示注冊(cè)失敗,結(jié)束注冊(cè)流程;
步驟s10:所述網(wǎng)站通過所述瀏覽器顯示用戶已注冊(cè),結(jié)束注冊(cè)流程。
本發(fā)明還提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成方法,其特征在于,包括:注冊(cè)流程,所述注冊(cè)流程包括:
步驟t1:注冊(cè)插件接收來自網(wǎng)站的用戶注冊(cè)信息和與所述用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí);
步驟t2:所述注冊(cè)插件根據(jù)所述注冊(cè)結(jié)果標(biāo)識(shí)判斷用戶是否已注冊(cè)成功,如果是,則向所述網(wǎng)站發(fā)送已注冊(cè)信息,結(jié)束注冊(cè)流程;否則,向認(rèn)證服務(wù)器發(fā)送包括所述用戶注冊(cè)信息中的用戶標(biāo)識(shí)的獲取設(shè)備注冊(cè)請(qǐng)求,執(zhí)行步驟t3;
步驟t3:所述注冊(cè)插件接收來自所述認(rèn)證服務(wù)器的設(shè)備注冊(cè)請(qǐng)求;
步驟t4:所述注冊(cè)插件通過瀏覽器向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求,等待所述認(rèn)證設(shè)備生成設(shè)備注冊(cè)數(shù)據(jù);
步驟t5:所述注冊(cè)插件通過所述瀏覽器接收所述認(rèn)證設(shè)備生成的設(shè)備注冊(cè)數(shù)據(jù);
步驟t6:所述注冊(cè)插件向所述認(rèn)證服務(wù)器發(fā)送包括所述設(shè)備注冊(cè)數(shù)據(jù)的第一認(rèn)證請(qǐng)求;
步驟t7:所述注冊(cè)插件接收來自所述認(rèn)證服務(wù)器的第一認(rèn)證結(jié)果;
步驟t8:所述注冊(cè)插件向所述網(wǎng)站發(fā)送所述第一認(rèn)證結(jié)果,用于所述網(wǎng)站驗(yàn)證用戶是否注冊(cè)成功。
本發(fā)明還提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成系統(tǒng),包括:認(rèn)證設(shè)備、瀏覽器、網(wǎng)站、注冊(cè)插件和認(rèn)證服務(wù)器;
所述網(wǎng)站包括:第一接收模塊、第一發(fā)送模塊、第十接收模塊、第二判斷模塊、第十一接收模塊和第十發(fā)送模塊;
所述注冊(cè)插件包括:第二接收模塊、第一判斷模塊、第二發(fā)送模塊、第三發(fā)送模塊、第四接收模塊、第五發(fā)送模塊、第六接收模塊、第七發(fā)送模塊、第九接收模塊和第九發(fā)送模塊;
所述認(rèn)證服務(wù)器包括:第三接收模塊、第四發(fā)送模塊、第七接收模塊、第一驗(yàn)簽?zāi)K、所述第一關(guān)聯(lián)模塊和所述第八發(fā)送模塊;
所述認(rèn)證設(shè)備包括:第五接收模塊、第一獲取模塊、第一生成模塊和第六發(fā)送模塊;
所述瀏覽器包括:第十二接收模塊、第十一發(fā)送模塊和第一顯示模塊、第十三接收模塊和第二顯示模塊;
所述第一接收模塊,用于通過所述瀏覽器接收用戶注冊(cè)信息;
所述第一發(fā)送模塊,用于向所述注冊(cè)插件發(fā)送所述用戶注冊(cè)信息和與所述用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí);
所述第二接收模塊,用于接收來自所述網(wǎng)站的用戶注冊(cè)信息和與所述用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí);
所述第一判斷模塊,用于根據(jù)所述注冊(cè)結(jié)果標(biāo)識(shí)判斷用戶是否已注冊(cè)成功;
所述第二發(fā)送模塊,用于當(dāng)所述第一判斷模塊判斷為是后,向所述網(wǎng)站發(fā)送已注冊(cè)信息;
所述第三發(fā)送模塊,用于當(dāng)所述第一判斷模塊判斷為否后,向所述認(rèn)證服務(wù)器發(fā)送包括所述用戶注冊(cè)信息中的用戶標(biāo)識(shí)的獲取設(shè)備注冊(cè)請(qǐng)求;
所述第三接收模塊,用于接收來自所述注冊(cè)插件的包括所述用戶注冊(cè)信息中的用戶標(biāo)識(shí)的獲取設(shè)備注冊(cè)請(qǐng)求;
所述第四發(fā)送模塊,用于向所述注冊(cè)插件發(fā)送包括第一挑戰(zhàn)值和應(yīng)用參數(shù)的所述設(shè)備注冊(cè)請(qǐng)求;
所述第四接收模塊,用于接收來自所述認(rèn)證服務(wù)器的包括所述認(rèn)證服務(wù)器中的第一挑戰(zhàn)值和應(yīng)用參數(shù)的所述設(shè)備注冊(cè)請(qǐng)求;
所述第五發(fā)送模塊,用于向所述瀏覽器發(fā)送設(shè)備注冊(cè)請(qǐng)求;
所述第十二接收模塊,用于接收來自所述注冊(cè)插件的包括所述認(rèn)證服務(wù)器中的第一挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備注冊(cè)請(qǐng)求;
所述第一顯示模塊,用于所述第十二接收模塊接收到所述設(shè)備注冊(cè)請(qǐng)求后,在注冊(cè)等待頁面上提示用戶按下認(rèn)證設(shè)備的按鈕;
所述第十一發(fā)送模塊,用于向所述認(rèn)證設(shè)備發(fā)送所述設(shè)備注冊(cè)請(qǐng)求;
所述第五接收模塊,用于接收來自所述瀏覽器的所述設(shè)備注冊(cè)請(qǐng)求;
所述第一獲取模塊,用于當(dāng)所述第五接收模塊接收到所述設(shè)備注冊(cè)請(qǐng)求后,等待用戶按下按鈕,獲取到用戶按下按鈕的信息;
所述第一生成模塊,用于當(dāng)所述第一獲取模塊獲取到用戶按下按鈕的信息后,根據(jù)所述設(shè)備注冊(cè)請(qǐng)求中的第一挑戰(zhàn)值和應(yīng)用參數(shù)生成密鑰句柄、與密鑰句柄對(duì)應(yīng)的第一公鑰和第一私鑰,使用預(yù)設(shè)的硬件私鑰對(duì)所述第一公鑰和所述密鑰句柄簽名生成第一簽名值,組織包括所述密鑰句柄、所述第一公鑰、所述第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù);
所述第六發(fā)送模塊,用于通過所述瀏覽器向所述注冊(cè)插件發(fā)送所述第一生成模塊生成的包括所述密鑰句柄、所述第一公鑰、所述第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù);
所述第六接收模塊,用于接收來自所述瀏覽器的包括所述密鑰句柄、所述第一公鑰、所述第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù);
所述第七發(fā)送模塊,用于向所述認(rèn)證服務(wù)器發(fā)送包括所述設(shè)備注冊(cè)數(shù)據(jù)的第一認(rèn)證請(qǐng)求;
所述第七接收模塊,用于接收來自所述注冊(cè)插件的包括所述設(shè)備注冊(cè)數(shù)據(jù)的第一認(rèn)證請(qǐng)求;
所述第一驗(yàn)簽?zāi)K,用于從所述第七接收模塊接收到的第一認(rèn)證請(qǐng)求的硬件證書中獲取硬件公鑰,使用所述硬件公鑰對(duì)所述第一簽名值驗(yàn)簽,得到第一認(rèn)證結(jié)果;
所述第一關(guān)聯(lián)模塊,用于若所述第一認(rèn)證結(jié)果為成功,則將所述密鑰句柄、所述第一公鑰和所述用戶標(biāo)識(shí)建立對(duì)應(yīng)關(guān)系;
所述第八發(fā)送模塊,用于當(dāng)所述第一關(guān)聯(lián)模塊將所述密鑰句柄、所述第一公鑰和所述用戶標(biāo)識(shí)建立對(duì)應(yīng)關(guān)系后,向所述注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果;若所述第一認(rèn)證結(jié)果為失敗,向所述注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果;
所述第九接收模塊,用于接收來自所述認(rèn)證服務(wù)器的第一認(rèn)證結(jié)果;
所述第九發(fā)送模塊,用于向所述網(wǎng)站發(fā)送第一認(rèn)證結(jié)果;
所述第十接收模塊,用于接收來自所述注冊(cè)插件的第一認(rèn)證結(jié)果;
所述第二判斷模塊,用于根據(jù)所述第十接收模塊接收到的第一認(rèn)證結(jié)果判斷用戶是否注冊(cè)成功;
所述第十一接收模塊,用于接收來自所述注冊(cè)插件的已注冊(cè)信息;
所述第十發(fā)送模塊,用于當(dāng)所述第二判斷模塊判斷為是后,向所述瀏覽器發(fā)送注冊(cè)成功信息;當(dāng)所述第二判斷模塊判斷為否后,向所述瀏覽器發(fā)送注冊(cè)失敗信息;當(dāng)所述第十一接收模塊接收到來自所述注冊(cè)插件的已注冊(cè)信息后,向所述瀏覽器發(fā)送已注冊(cè)信息;
所述第十三接收模塊,用于接收來自所述網(wǎng)站的注冊(cè)成功信息或注冊(cè)失敗信息或已注冊(cè)信息;
所述第二顯示模塊,用于當(dāng)所述第十三接收模塊接收到注冊(cè)成功信息后,顯示用戶注冊(cè)成功;當(dāng)所述第十三接收模塊接收到注冊(cè)失敗信息后,顯示用戶注冊(cè)失?。划?dāng)所述第十三接收模塊接收到已注冊(cè)信息后,顯示用戶已注冊(cè)。
本發(fā)明又提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成裝置,包括:注冊(cè)插件;
所述注冊(cè)插件包括:第二接收模塊、第一判斷模塊、第二發(fā)送模塊、第三發(fā)送模塊、第四接收模塊、第五發(fā)送模塊、第六接收模塊、第七發(fā)送模塊、第九接收模塊和第九發(fā)送模塊;
所述第二接收模塊,用于接收來自網(wǎng)站的用戶注冊(cè)信息和與所述用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí);
所述第一判斷模塊,用于根據(jù)所述注冊(cè)結(jié)果標(biāo)識(shí)判斷用戶是否已注冊(cè)成功;
所述第二發(fā)送模塊,用于當(dāng)所述第一判斷模塊判斷為是后,向所述網(wǎng)站發(fā)送已注冊(cè)信息;
所述第三發(fā)送模塊,用于當(dāng)所述第一判斷模塊判斷為否后,向認(rèn)證服務(wù)器發(fā)送包括所述用戶注冊(cè)信息中的用戶標(biāo)識(shí)的獲取設(shè)備注冊(cè)請(qǐng)求;
所述第四接收模塊,用于接收來自所述認(rèn)證服務(wù)器的設(shè)備注冊(cè)請(qǐng)求;
所述第五發(fā)送模塊,用于通過瀏覽器向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求;
所述第六接收模塊,用于接收來自所述瀏覽器的所述認(rèn)證設(shè)備生成的設(shè)備注冊(cè)數(shù)據(jù);
所述第七發(fā)送模塊,用于向所述認(rèn)證服務(wù)器發(fā)送包括所述設(shè)備注冊(cè)數(shù)據(jù)的第一認(rèn)證請(qǐng)求;
所述第九接收模塊,用于接收來自所述認(rèn)證服務(wù)器的第一認(rèn)證結(jié)果;
所述第九發(fā)送模塊,用于向所述網(wǎng)站發(fā)送所述第一認(rèn)證結(jié)果。
本發(fā)明的有益效果:本發(fā)明提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成方法、系統(tǒng)及裝置,本發(fā)明將認(rèn)證設(shè)備與應(yīng)用Joomla技術(shù)的網(wǎng)站集成在一起,實(shí)現(xiàn)用戶在網(wǎng)站上的注冊(cè)和認(rèn)證。
附圖說明
圖1為本發(fā)明實(shí)施例1提供的一種認(rèn)證設(shè)備與網(wǎng)站的集成方法中的注冊(cè)方法的流程圖;
圖2為本發(fā)明實(shí)施例2提供的一種認(rèn)證設(shè)備與網(wǎng)站的集成方法中的注冊(cè)方法的流程圖;
圖3為本發(fā)明實(shí)施例3提供的一種認(rèn)證設(shè)備與網(wǎng)站的集成方法中的注冊(cè)方法的流程圖;
圖4為本發(fā)明實(shí)施例3提供的一種認(rèn)證設(shè)備與網(wǎng)站的集成方法中的認(rèn)證方法的流程圖;
圖5為本發(fā)明實(shí)施例4提供的一種認(rèn)證設(shè)備與網(wǎng)站的集成方法中的注冊(cè)方法的流程圖;
圖6為本發(fā)明實(shí)施例4提供的一種認(rèn)證設(shè)備與網(wǎng)站的集成方法中的認(rèn)證方法的流程圖;
圖7為本發(fā)明實(shí)施例5提供的一種認(rèn)證設(shè)備與網(wǎng)站的集成系統(tǒng)的結(jié)構(gòu)框圖;
圖8為本發(fā)明實(shí)施例6提供的一種認(rèn)證設(shè)備與網(wǎng)站的集成裝置的結(jié)構(gòu)框圖。
具體實(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)證設(shè)備與網(wǎng)站的集成方法,適用于包括:認(rèn)證設(shè)備、瀏覽器、網(wǎng)站、注冊(cè)插件和認(rèn)證服務(wù)器的系統(tǒng),如圖1所示,包括:注冊(cè)流程,注冊(cè)流程包括:
本實(shí)施例中,網(wǎng)站具體為應(yīng)用Joomla技術(shù)開發(fā)的網(wǎng)站。
步驟s1:網(wǎng)站通過瀏覽器接收用戶注冊(cè)信息,向注冊(cè)插件發(fā)送用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí);
其中,網(wǎng)站向注冊(cè)插件發(fā)送用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí),具體為:網(wǎng)站調(diào)用注冊(cè)插件的第一函數(shù),向注冊(cè)插件發(fā)送用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)。
本實(shí)施例中,注冊(cè)插件的第一函數(shù)具體為onUserAfterSave函數(shù)。
步驟s2:注冊(cè)插件根據(jù)注冊(cè)結(jié)果標(biāo)識(shí)判斷用戶是否已注冊(cè)成功,如果是,則向網(wǎng)站發(fā)送已注冊(cè)信息,網(wǎng)站執(zhí)行步驟s10;否則,向認(rèn)證服務(wù)器發(fā)送包括用戶注冊(cè)信息中的用戶標(biāo)識(shí)的獲取設(shè)備注冊(cè)請(qǐng)求;
步驟s3:認(rèn)證服務(wù)器向注冊(cè)插件發(fā)送包括自身的第一挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備注冊(cè)請(qǐng)求;
步驟s4:注冊(cè)插件通過瀏覽器向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求,并通過瀏覽器在注冊(cè)等待頁面提示用戶按下認(rèn)證設(shè)備的按鈕;
具體地,注冊(cè)插件生成包括設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求,向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求,瀏覽器根據(jù)第一網(wǎng)址重定向請(qǐng)求向用戶顯示注冊(cè)等待頁面,在注冊(cè)等待頁面上提示用戶按下認(rèn)證設(shè)備的按鈕,并向認(rèn)證設(shè)備發(fā)送第一網(wǎng)址重定向請(qǐng)求中的設(shè)備注冊(cè)請(qǐng)求。
步驟s5:認(rèn)證設(shè)備等待用戶按下按鈕,當(dāng)獲取到用戶按下按鈕的信息后,根據(jù)設(shè)備注冊(cè)請(qǐng)求中的第一挑戰(zhàn)值和應(yīng)用參數(shù)生成密鑰句柄、與密鑰句柄對(duì)應(yīng)的第一公鑰和第一私鑰,使用預(yù)設(shè)的硬件私鑰對(duì)第一公鑰和密鑰句柄簽名生成第一簽名值,通過瀏覽器向注冊(cè)插件發(fā)送包括密鑰句柄、第一公鑰、第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù);
步驟s6:注冊(cè)插件向認(rèn)證服務(wù)器發(fā)送包括設(shè)備注冊(cè)數(shù)據(jù)的第一認(rèn)證請(qǐng)求;
步驟s7:認(rèn)證服務(wù)器從硬件證書中獲取硬件公鑰,使用硬件公鑰對(duì)第一簽名值驗(yàn)簽,得到第一認(rèn)證結(jié)果,若第一認(rèn)證結(jié)果為成功,則將密鑰句柄、第一公鑰和用戶標(biāo)識(shí)建立對(duì)應(yīng)關(guān)系,向注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果,注冊(cè)插件執(zhí)行步驟s8;若第一認(rèn)證結(jié)果為失敗,則向注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果,注冊(cè)插件執(zhí)行步驟s8;
步驟s8:注冊(cè)插件向網(wǎng)站發(fā)送第一認(rèn)證結(jié)果;
步驟s9:網(wǎng)站根據(jù)第一認(rèn)證結(jié)果判斷用戶是否注冊(cè)成功,如果是,則通過瀏覽器顯示注冊(cè)成功,結(jié)束注冊(cè)流程;否則,通過瀏覽器顯示注冊(cè)失敗,結(jié)束注冊(cè)流程;
步驟s10:網(wǎng)站通過瀏覽器顯示用戶已注冊(cè),結(jié)束注冊(cè)流程。
本實(shí)施例中,步驟s4還可以被替換為:注冊(cè)插件通過瀏覽器向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求并通過瀏覽器顯示注冊(cè)等待頁面;相應(yīng)地,步驟s5中認(rèn)證設(shè)備接收到設(shè)備注冊(cè)請(qǐng)求后,獲取到用戶按下按鈕的信息之前,還包括:認(rèn)證設(shè)備提示用戶按下認(rèn)證設(shè)備的按鈕。
進(jìn)一步地,注冊(cè)插件通過瀏覽器向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求并通過瀏覽器顯示注冊(cè)等待頁面,具體為:注冊(cè)插件生成包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求,向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求,瀏覽器根據(jù)第二網(wǎng)址重定向請(qǐng)求向用戶顯示注冊(cè)等待頁面,并向認(rèn)證設(shè)備發(fā)送第二網(wǎng)址重定向請(qǐng)求中的設(shè)備注冊(cè)請(qǐng)求。
本實(shí)施例中,注冊(cè)插件根據(jù)注冊(cè)結(jié)果標(biāo)識(shí)判斷用戶是否已注冊(cè)成功,具體為:注冊(cè)插件判斷與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)是否為成功標(biāo)識(shí),如果是,則判斷用戶已注冊(cè)成功;否則,判斷用戶未注冊(cè)成功;若網(wǎng)站根據(jù)第一認(rèn)證結(jié)果判斷用戶注冊(cè)成功,還包括:將與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)設(shè)置為成功標(biāo)識(shí)。
本實(shí)施例中,注冊(cè)插件向認(rèn)證服務(wù)器發(fā)送獲取設(shè)備注冊(cè)請(qǐng)求之前,還包括:初始化與認(rèn)證服務(wù)器的會(huì)話通道。
其中,初始化與認(rèn)證服務(wù)器的會(huì)話通道,具體為:注冊(cè)插件根據(jù)預(yù)設(shè)的應(yīng)用配置信息初始化與認(rèn)證服務(wù)器的會(huì)話通道。
本實(shí)施例中,系統(tǒng)中還可以包括:認(rèn)證插件;相應(yīng)的,本實(shí)施例提供的方法中還包括:認(rèn)證流程,其中,認(rèn)證流程,包括:
步驟r1:瀏覽器獲取用戶登錄信息,向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求;
其中,向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求,具體為:瀏覽器調(diào)用認(rèn)證插件中的第二函數(shù)向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求。
本實(shí)施例中,認(rèn)證插件中的第二函數(shù)具體為onAfterRender函數(shù)。
步驟r2:認(rèn)證插件向認(rèn)證服務(wù)器發(fā)送獲取設(shè)備認(rèn)證請(qǐng)求;
步驟r3:認(rèn)證服務(wù)器獲取與用戶標(biāo)識(shí)對(duì)應(yīng)的密鑰句柄,向認(rèn)證插件發(fā)送包括密鑰句柄、自身的第二挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備認(rèn)證請(qǐng)求;
步驟r4:認(rèn)證插件通過瀏覽器向認(rèn)證設(shè)備發(fā)送設(shè)備認(rèn)證請(qǐng)求,并通過瀏覽器在認(rèn)證等待頁面提示用戶按下認(rèn)證設(shè)備的按鈕;
具體地,認(rèn)證插件向?yàn)g覽器發(fā)送設(shè)備認(rèn)證請(qǐng)求,瀏覽器向認(rèn)證設(shè)備發(fā)送設(shè)備認(rèn)證請(qǐng)求并在認(rèn)證等待頁面提示用戶按下認(rèn)證設(shè)備的按鈕。
步驟r5:認(rèn)證設(shè)備等待用戶按下按鈕,當(dāng)獲取到用戶按下按鈕的信息后,獲取與設(shè)備認(rèn)證請(qǐng)求中的密鑰句柄對(duì)應(yīng)的第一私鑰,使用第一私鑰對(duì)第二挑戰(zhàn)值和應(yīng)用參數(shù)簽名生成第二簽名值,生成包括第二簽名值的設(shè)備認(rèn)證數(shù)據(jù),向?yàn)g覽器發(fā)送設(shè)備認(rèn)證數(shù)據(jù);
步驟r6:瀏覽器向網(wǎng)站發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息;
步驟r7:網(wǎng)站向認(rèn)證插件發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息;
具體地,網(wǎng)站調(diào)用認(rèn)證插件的第三函數(shù),向證插件發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息。
本實(shí)施例中,認(rèn)證插件的第三函數(shù)具體為onUserTwofactorAuthenticate函數(shù)。
步驟r8:認(rèn)證插件向認(rèn)證服務(wù)器發(fā)送包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息中的用戶標(biāo)識(shí)的第二認(rèn)證請(qǐng)求;
步驟r9:認(rèn)證服務(wù)器獲取與第二認(rèn)證請(qǐng)求中的用戶標(biāo)識(shí)對(duì)應(yīng)的第一公鑰,使用第一公鑰對(duì)第二簽名值驗(yàn)簽,得到第二認(rèn)證結(jié)果,向認(rèn)證插件發(fā)送第二認(rèn)證結(jié)果;
步驟r10:認(rèn)證插件向網(wǎng)站發(fā)送第二認(rèn)證結(jié)果;
步驟r11:網(wǎng)站根據(jù)第二認(rèn)證結(jié)果判斷用戶是否登錄成功,如果是,則通過瀏覽器顯示登錄成功,結(jié)束認(rèn)證流程;否則,通過瀏覽器顯示登錄失敗,結(jié)束認(rèn)證流程。
本實(shí)施例中,步驟r4還可以被替換為:認(rèn)證插件通過瀏覽器向認(rèn)證設(shè)備發(fā)送設(shè)備認(rèn)證請(qǐng)求并通過瀏覽器顯示認(rèn)證等待頁面;相應(yīng)地,步驟r5中認(rèn)證設(shè)備接收到設(shè)備認(rèn)證請(qǐng)求后,等待用戶按下按鈕之前,還包括:認(rèn)證設(shè)備提示用戶按下認(rèn)證設(shè)備的按鈕。
本實(shí)施例中,步驟r1具體為:當(dāng)瀏覽器中的瀏覽器腳本監(jiān)聽到登錄點(diǎn)擊事件后,瀏覽器腳本獲取瀏覽器頁面中的用戶登錄信息,生成包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求,向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求;相應(yīng)地,步驟r6具體為:瀏覽器中的瀏覽器腳本向網(wǎng)站發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息。
進(jìn)一步地,認(rèn)證設(shè)備向?yàn)g覽器發(fā)送設(shè)備認(rèn)證數(shù)據(jù)后,還包括:瀏覽器腳本將設(shè)備認(rèn)證數(shù)據(jù)賦值給瀏覽器頁面中的隱藏表單項(xiàng);
瀏覽器中的瀏覽器腳本向網(wǎng)站發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息具體為:瀏覽器腳本向網(wǎng)站發(fā)送隱藏表單項(xiàng)和用戶登錄信息。
本實(shí)施例中,步驟r2之前,還包括:認(rèn)證插件初始化與認(rèn)證服務(wù)器的會(huì)話通道。
其中,初始化與認(rèn)證服務(wù)器的會(huì)話通道,具體為:認(rèn)證插件根據(jù)預(yù)設(shè)的應(yīng)用配置信息初始化與認(rèn)證服務(wù)器的會(huì)話通道。
本實(shí)施例提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成方法,該方法將認(rèn)證設(shè)備與網(wǎng)站集成在一起,實(shí)現(xiàn)用戶在網(wǎng)站上的注冊(cè)和認(rèn)證。
實(shí)施例2
本實(shí)施例提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成方法,包括:注冊(cè)流程,注冊(cè)流程如圖2所示,包括:
本實(shí)施例中,網(wǎng)站具體為應(yīng)用Joomla技術(shù)開發(fā)的網(wǎng)站。
步驟t1:注冊(cè)插件接收來自網(wǎng)站的用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí);
步驟t1具體為:注冊(cè)插件的第一函數(shù)被調(diào)用,接收來自網(wǎng)站的用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)。
本實(shí)施例中,注冊(cè)插件的第一函數(shù)具體為onUserAfterSave函數(shù)。
步驟t2:注冊(cè)插件根據(jù)注冊(cè)結(jié)果標(biāo)識(shí)判斷用戶是否已注冊(cè)成功,如果是,則向網(wǎng)站發(fā)送已注冊(cè)信息,結(jié)束注冊(cè)流程;否則,向認(rèn)證服務(wù)器發(fā)送包括用戶注冊(cè)信息中的用戶標(biāo)識(shí)的獲取設(shè)備注冊(cè)請(qǐng)求,執(zhí)行步驟t3;
步驟t3:注冊(cè)插件接收來自認(rèn)證服務(wù)器的設(shè)備注冊(cè)請(qǐng)求;
具體地,注冊(cè)插件接收來自認(rèn)證服務(wù)器的包括第一挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備注冊(cè)請(qǐng)求。
步驟t4:注冊(cè)插件通過瀏覽器向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求,等待認(rèn)證設(shè)備生成設(shè)備注冊(cè)數(shù)據(jù);
步驟t5:注冊(cè)插件通過瀏覽器接收認(rèn)證設(shè)備生成的設(shè)備注冊(cè)數(shù)據(jù);
步驟t6:注冊(cè)插件向認(rèn)證服務(wù)器發(fā)送包括設(shè)備注冊(cè)數(shù)據(jù)的第一認(rèn)證請(qǐng)求;
步驟t7:注冊(cè)插件接收來自認(rèn)證服務(wù)器的第一認(rèn)證結(jié)果;
步驟t8:注冊(cè)插件向網(wǎng)站發(fā)送第一認(rèn)證結(jié)果,用于網(wǎng)站驗(yàn)證用戶是否注冊(cè)成功。
本實(shí)施例中,步驟t4中注冊(cè)插件通過瀏覽器向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求后,還包括:注冊(cè)插件通過瀏覽器在注冊(cè)等待頁面提示用戶按下認(rèn)證設(shè)備的按鈕,或者步驟t4中注冊(cè)插件通過瀏覽器向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求后,還包括:注冊(cè)插件通過瀏覽器顯示注冊(cè)等待頁面。
若注冊(cè)插件通過瀏覽器在注冊(cè)等待頁面提示用戶按下認(rèn)證設(shè)備的按鈕,步驟t4具體為:注冊(cè)插件生成包括設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求,向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求,通過瀏覽器向用戶顯示注冊(cè)等待頁面,在注冊(cè)等待頁面上提示用戶按下認(rèn)證設(shè)備的按鈕;并通過瀏覽器向認(rèn)證設(shè)備發(fā)送第一網(wǎng)址重定向請(qǐng)求中的設(shè)備注冊(cè)請(qǐng)求,等待認(rèn)證設(shè)備生成設(shè)備注冊(cè)數(shù)據(jù)。
若注冊(cè)插件通過瀏覽器顯示注冊(cè)等待頁面,步驟t4具體為:注冊(cè)插件生成包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求,向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求,通過瀏覽器向用戶顯示注冊(cè)等待頁面,并通過瀏覽器向認(rèn)證設(shè)備發(fā)送第二網(wǎng)址重定向請(qǐng)求中的設(shè)備注冊(cè)請(qǐng)求,等待認(rèn)證設(shè)備生成設(shè)備注冊(cè)數(shù)據(jù)。
若注冊(cè)插件通過瀏覽器顯示注冊(cè)等待頁面,認(rèn)證設(shè)備生成設(shè)備注冊(cè)數(shù)據(jù)具體為:認(rèn)證設(shè)備提示用戶按下認(rèn)證設(shè)備的按鈕,等待用戶按下按鈕,當(dāng)獲取到用戶按下按鈕的信息后,根據(jù)設(shè)備注冊(cè)請(qǐng)求中的第一挑戰(zhàn)值和應(yīng)用參數(shù)生成密鑰句柄、與密鑰句柄對(duì)應(yīng)的第一公鑰和第一私鑰,使用預(yù)設(shè)的硬件私鑰對(duì)第一公鑰和密鑰句柄簽名生成第一簽名值,組織包括密鑰句柄、第一公鑰、第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù)。
若注冊(cè)插件通過瀏覽器在注冊(cè)等待頁面提示用戶按下認(rèn)證設(shè)備的按鈕,認(rèn)證設(shè)備生成設(shè)備注冊(cè)數(shù)據(jù)具體為:認(rèn)證設(shè)備等待用戶按下按鈕,當(dāng)獲取到用戶按下按鈕的信息后,根據(jù)設(shè)備注冊(cè)請(qǐng)求中的第一挑戰(zhàn)值和應(yīng)用參數(shù)生成密鑰句柄、與密鑰句柄對(duì)應(yīng)的第一公鑰和第一私鑰,使用預(yù)設(shè)的硬件私鑰對(duì)第一公鑰和密鑰句柄簽名生成第一簽名值,組織包括密鑰句柄、第一公鑰、第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù)。
進(jìn)一步地,本實(shí)施例中提供的方法中,還包括:當(dāng)認(rèn)證服務(wù)器接收到來自注冊(cè)插件的包括用戶注冊(cè)信息中的用戶標(biāo)識(shí)的獲取設(shè)備注冊(cè)請(qǐng)求后,向注冊(cè)插件發(fā)送包括第一挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備注冊(cè)請(qǐng)求;當(dāng)認(rèn)證服務(wù)器接收到來自注冊(cè)插件的第一認(rèn)證請(qǐng)求后,認(rèn)證服務(wù)器從硬件證書中獲取硬件公鑰,使用硬件公鑰對(duì)第一簽名值驗(yàn)簽,得到第一認(rèn)證結(jié)果,若第一認(rèn)證結(jié)果為成功,則將密鑰句柄、第一公鑰和用戶標(biāo)識(shí)建立對(duì)應(yīng)關(guān)系,向注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果;若第一認(rèn)證結(jié)果為失敗,則向注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果。
本實(shí)施例中,網(wǎng)站驗(yàn)證用戶是否注冊(cè)成功具體為:網(wǎng)站根據(jù)第一認(rèn)證結(jié)果判斷用戶是否注冊(cè)成功,如果是,則通過瀏覽器顯示注冊(cè)成功,結(jié)束注冊(cè)流程;否則,通過瀏覽器顯示注冊(cè)失敗,結(jié)束注冊(cè)流程。
進(jìn)一步地,注冊(cè)插件根據(jù)注冊(cè)結(jié)果標(biāo)識(shí)判斷用戶是否已注冊(cè)成功,具體為:注冊(cè)插件判斷與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)是否為成功標(biāo)識(shí),如果是,則判斷用戶已注冊(cè)成功;否則,判斷用戶未注冊(cè)成功;若網(wǎng)站根據(jù)第一認(rèn)證結(jié)果判斷用戶注冊(cè)成功,還包括:網(wǎng)站將與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)設(shè)置為成功標(biāo)識(shí)。
本實(shí)施例中,注冊(cè)插件向認(rèn)證服務(wù)器發(fā)送獲取設(shè)備注冊(cè)請(qǐng)求之前,還包括:初始化與認(rèn)證服務(wù)器的會(huì)話通道。
其中,初始化與認(rèn)證服務(wù)器的會(huì)話通道,具體為:注冊(cè)插件根據(jù)預(yù)設(shè)的應(yīng)用配置信息初始化與認(rèn)證服務(wù)器的會(huì)話通道。
本實(shí)施例提供的方法中,還包括:認(rèn)證流程,認(rèn)證流程包括:
步驟w1:認(rèn)證插件接收來自瀏覽器的包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求;
步驟w1具體為:認(rèn)證插件中的第二函數(shù)被調(diào)用,接收來自瀏覽器的包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求。
本實(shí)施例中,認(rèn)證插件中的第二函數(shù)具體為onAfterRender函數(shù)。
步驟w2:認(rèn)證插件向認(rèn)證服務(wù)器發(fā)送獲取設(shè)備認(rèn)證請(qǐng)求;
步驟w3:認(rèn)證插件接收來自認(rèn)證服務(wù)器的設(shè)備認(rèn)證請(qǐng)求;
具體地,認(rèn)證插件接收來自認(rèn)證服務(wù)器的包括密鑰句柄、第二挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備認(rèn)證請(qǐng)求;
步驟w4:認(rèn)證插件通過瀏覽器向認(rèn)證設(shè)備發(fā)送設(shè)備認(rèn)證請(qǐng)求;等待認(rèn)證設(shè)備生成設(shè)備認(rèn)證數(shù)據(jù);
本實(shí)施例中,步驟w4中還可以包括:認(rèn)證插件通過瀏覽器在認(rèn)證等待頁面提示用戶按下認(rèn)證設(shè)備的按鈕或認(rèn)證插件通過瀏覽器顯示認(rèn)證等待頁面。
若認(rèn)證插件通過瀏覽器顯示認(rèn)證等待頁面,認(rèn)證設(shè)備生成設(shè)備認(rèn)證數(shù)據(jù),具體為:認(rèn)證設(shè)備提示用戶按下認(rèn)證設(shè)備的按鈕,等待用戶按下按鈕,當(dāng)獲取到用戶按下按鈕的信息后,獲取與設(shè)備認(rèn)證請(qǐng)求中的密鑰句柄對(duì)應(yīng)的第一私鑰,使用第一私鑰對(duì)設(shè)備認(rèn)證請(qǐng)求中的第二挑戰(zhàn)值和應(yīng)用參數(shù)簽名生成第二簽名值,生成包括第二簽名值的設(shè)備認(rèn)證數(shù)據(jù)。
若認(rèn)證插件通過瀏覽器在認(rèn)證等待頁面提示用戶按下認(rèn)證設(shè)備的按鈕,認(rèn)證設(shè)備生成設(shè)備認(rèn)證數(shù)據(jù),具體為:認(rèn)證設(shè)備等待用戶按下按鈕,當(dāng)獲取到用戶按下按鈕的信息后,獲取與設(shè)備認(rèn)證請(qǐng)求中的密鑰句柄對(duì)應(yīng)的第一私鑰,使用第一私鑰對(duì)設(shè)備認(rèn)證請(qǐng)求中的第二挑戰(zhàn)值和應(yīng)用參數(shù)簽名生成第二簽名值,生成包括第二簽名值的設(shè)備認(rèn)證數(shù)據(jù)。
進(jìn)一步地,本實(shí)施例提供的方法中,還包括:當(dāng)認(rèn)證服務(wù)器接收來自認(rèn)證插件的獲取設(shè)備認(rèn)證請(qǐng)求后,獲取與獲取認(rèn)證設(shè)備請(qǐng)求中的用戶標(biāo)識(shí)對(duì)應(yīng)的密鑰句柄,向認(rèn)證插件發(fā)送包括密鑰句柄、自身的第二挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備認(rèn)證請(qǐng)求;
當(dāng)認(rèn)證服務(wù)器接收到來自認(rèn)證插件的包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息中的用戶標(biāo)識(shí)的第二認(rèn)證請(qǐng)求后,獲取與第二認(rèn)證請(qǐng)求中的用戶標(biāo)識(shí)對(duì)應(yīng)的第一公鑰,使用第一公鑰對(duì)第二簽名值驗(yàn)簽,得到第二認(rèn)證結(jié)果,向認(rèn)證插件發(fā)送第二認(rèn)證結(jié)果。
步驟w5:當(dāng)認(rèn)證插件通過網(wǎng)站接收到設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息后,認(rèn)證插件向認(rèn)證服務(wù)器發(fā)送包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息中的用戶標(biāo)識(shí)的第二認(rèn)證請(qǐng)求;
其中,認(rèn)證插件通過網(wǎng)站接收設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息,具體為:認(rèn)證插件的第三函數(shù)被調(diào)用,接收來自網(wǎng)站的設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息。
本實(shí)施例中,認(rèn)證插件的第三函數(shù)具體為onUserTwofactorAuthenticate函數(shù)。
步驟w6:認(rèn)證插件接收來自認(rèn)證服務(wù)器的第二認(rèn)證結(jié)果;
步驟w7:認(rèn)證插件向網(wǎng)站發(fā)送第二認(rèn)證結(jié)果,用于網(wǎng)站驗(yàn)證用戶是否登錄成功。
本實(shí)施例中,網(wǎng)站驗(yàn)證用戶是否登錄成功具體為:網(wǎng)站根據(jù)第二認(rèn)證結(jié)果判斷用戶是否登錄成功,如果是,則通過瀏覽器顯示登錄成功,結(jié)束認(rèn)證流程;否則,通過瀏覽器顯示登錄失敗,結(jié)束認(rèn)證流程。
本實(shí)施例中,步驟w4之后,步驟w5之前還包括:認(rèn)證設(shè)備向?yàn)g覽器發(fā)送設(shè)備認(rèn)證數(shù)據(jù);瀏覽器向網(wǎng)站發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息。
進(jìn)一步地,w1之前還包括:瀏覽器獲取用戶登錄信息,向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求。
再進(jìn)一步地,瀏覽器獲取用戶登錄信息,向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求,具體為:當(dāng)瀏覽器中的瀏覽器腳本監(jiān)聽到登錄點(diǎn)擊事件后,瀏覽器腳本獲取瀏覽器頁面中的用戶登錄信息,生成包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求,向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求;相應(yīng)地,瀏覽器向網(wǎng)站發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息,具體為:瀏覽器中的瀏覽器腳本向網(wǎng)站發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息。
更進(jìn)一步地,認(rèn)證設(shè)備向?yàn)g覽器發(fā)送設(shè)備認(rèn)證數(shù)據(jù)后,還包括:瀏覽器腳本將設(shè)備認(rèn)證數(shù)據(jù)賦值給瀏覽器頁面中的隱藏表單項(xiàng);
瀏覽器腳本向網(wǎng)站發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息,具體為:瀏覽器腳本向網(wǎng)站發(fā)送隱藏表單項(xiàng)和用戶登錄信息。
本實(shí)施例中,步驟w2之前,還包括:認(rèn)證插件初始化與認(rèn)證服務(wù)器的會(huì)話通道。
其中,認(rèn)證插件初始化與認(rèn)證服務(wù)器的會(huì)話通道,具體為:認(rèn)證插件根據(jù)預(yù)設(shè)的應(yīng)用配置信息初始化與認(rèn)證服務(wù)器的會(huì)話通道。
本實(shí)施例提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成方法,該方法將認(rèn)證設(shè)備與網(wǎng)站集成在一起,實(shí)現(xiàn)用戶在網(wǎng)站上的注冊(cè)和認(rèn)證。
實(shí)施例3
本實(shí)施例提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成方法,包括注冊(cè)方法和認(rèn)證方法。其中,注冊(cè)方法如圖3所示,包括:
本實(shí)施例中,網(wǎng)站具體為應(yīng)用Joomla技術(shù)開發(fā)的網(wǎng)站。
步驟101:瀏覽器向網(wǎng)站發(fā)送包括用戶注冊(cè)信息的用戶注冊(cè)請(qǐng)求;
步驟102:網(wǎng)站向注冊(cè)插件發(fā)送用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí);
本實(shí)施例中,注冊(cè)插件為user類型的插件。
具體地,當(dāng)網(wǎng)站接收到來自瀏覽器的用戶注冊(cè)信息的用戶注冊(cè)請(qǐng)求后,將用戶注冊(cè)信息保存到數(shù)據(jù)庫中,獲取與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí),將用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)作為參數(shù),調(diào)用注冊(cè)插件的第一函數(shù),向注冊(cè)插件發(fā)送用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)。
本實(shí)施例中,用戶注冊(cè)信息可以包括用戶標(biāo)識(shí)、用戶密碼和用戶郵箱等信息。其中,用戶標(biāo)識(shí)為用于標(biāo)識(shí)用戶的唯一識(shí)別信息,優(yōu)選地,用戶標(biāo)識(shí)為用戶名。
步驟103:注冊(cè)插件根據(jù)與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)判斷用戶是否已注冊(cè)成功,如果是,則執(zhí)行步驟122;否則,執(zhí)行步驟104;
當(dāng)注冊(cè)插件的第一函數(shù)被調(diào)用后,注冊(cè)插件接收來自網(wǎng)站的用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí),判斷與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)是否為成功標(biāo)識(shí)true,如果是,則判斷用戶是已注冊(cè)成功,則執(zhí)行步驟122;否則,判斷用戶未注冊(cè)成功,執(zhí)行步驟104。
本實(shí)施例中,注冊(cè)插件的第一函數(shù)具體為onUserAfterSave函數(shù)。
步驟104:注冊(cè)插件初始化與認(rèn)證服務(wù)器的會(huì)話通道;
具體地,注冊(cè)插件根據(jù)預(yù)設(shè)的應(yīng)用配置信息初始化與認(rèn)證服務(wù)器的會(huì)話通道。
本實(shí)施例中,預(yù)設(shè)的應(yīng)用配置信息中包括預(yù)設(shè)的應(yīng)用標(biāo)識(shí)appid、預(yù)設(shè)的應(yīng)用驗(yàn)證序號(hào)appkey、預(yù)設(shè)應(yīng)用統(tǒng)一資源定位符appurl和預(yù)設(shè)的應(yīng)用保護(hù)主機(jī)信息app_protected_host等。
步驟105:注冊(cè)插件通過會(huì)話通道向認(rèn)證服務(wù)器發(fā)送包括用戶注冊(cè)信息中的用戶標(biāo)識(shí)的獲取設(shè)備注冊(cè)請(qǐng)求;
步驟106:認(rèn)證服務(wù)器生成包括第一挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備注冊(cè)請(qǐng)求;
步驟107:認(rèn)證服務(wù)器通過會(huì)話通道向注冊(cè)插件發(fā)送設(shè)備注冊(cè)請(qǐng)求;
步驟108:注冊(cè)插件向?yàn)g覽器發(fā)送設(shè)備注冊(cè)請(qǐng)求;
具體地,注冊(cè)插件生成包括設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求,向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求。
例如:
需要說明的是,URL重定向(URL redirection,或稱網(wǎng)址重定向或網(wǎng)域名稱轉(zhuǎn)址),是指當(dāng)使用者瀏覽某個(gè)網(wǎng)址時(shí),將他導(dǎo)向到另一個(gè)網(wǎng)址的技術(shù)。本實(shí)施例中,注冊(cè)插件向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的網(wǎng)址重定向請(qǐng)求,可以實(shí)現(xiàn)當(dāng)用戶使用網(wǎng)站進(jìn)行注冊(cè)時(shí),將用戶導(dǎo)向了注冊(cè)等待頁面的網(wǎng)址上去的技術(shù)效果。
步驟109:瀏覽器提示用戶按下認(rèn)證設(shè)備的按鈕,并向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求;
具體地,瀏覽器向用戶顯示注冊(cè)等待頁面,在注冊(cè)等待頁面上提示用戶按下認(rèn)證設(shè)備的按鈕;并向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求。
步驟110:認(rèn)證設(shè)備等待用戶按下按鈕,根據(jù)設(shè)備注冊(cè)請(qǐng)求生成密鑰句柄、與密鑰句柄對(duì)應(yīng)的第一公鑰和第一私鑰,使用預(yù)設(shè)的硬件私鑰對(duì)第一公鑰和密鑰句柄簽名生成第一簽名值,組織包括密鑰句柄、第一公鑰、第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù);
其中,硬件證書中包括硬件公鑰。
步驟111:認(rèn)證設(shè)備向?yàn)g覽器發(fā)送設(shè)備注冊(cè)數(shù)據(jù);
步驟112:瀏覽器向注冊(cè)插件發(fā)送設(shè)備注冊(cè)數(shù)據(jù);
步驟113:注冊(cè)插件通過會(huì)話通道向認(rèn)證服務(wù)器發(fā)送包括設(shè)備注冊(cè)數(shù)據(jù)的第一認(rèn)證請(qǐng)求;
步驟114:認(rèn)證服務(wù)器從設(shè)備注冊(cè)數(shù)據(jù)中的硬件證書中獲取硬件公鑰,使用硬件公鑰對(duì)設(shè)備注冊(cè)數(shù)據(jù)中的第一簽名值驗(yàn)簽,得到第一認(rèn)證結(jié)果,若第一認(rèn)證結(jié)果為成功,則將密鑰句柄、第一公鑰和用戶標(biāo)識(shí)建立對(duì)應(yīng)關(guān)系,執(zhí)行步驟115;若第一認(rèn)證結(jié)果為失敗,則執(zhí)行步驟115;
步驟115:認(rèn)證服務(wù)器根據(jù)會(huì)話通道向注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果;
步驟116:注冊(cè)插件向網(wǎng)站發(fā)送第一認(rèn)證結(jié)果;
步驟117:網(wǎng)站根據(jù)來自認(rèn)證服務(wù)器的第一認(rèn)證結(jié)果判斷用戶是否注冊(cè)成功,如果是,則執(zhí)行步驟118;否則,執(zhí)行步驟120;
當(dāng)網(wǎng)站接收到來自注冊(cè)插件返回的第一認(rèn)證結(jié)果后,判斷第一認(rèn)證結(jié)果是否為TRUE,如果是,則判斷用戶注冊(cè)成功,并將與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)設(shè)置為成功標(biāo)識(shí)并執(zhí)行步驟118;否則,判斷用戶注冊(cè)失敗,執(zhí)行步驟120。
步驟118:網(wǎng)站向?yàn)g覽器發(fā)送注冊(cè)成功信息;;
步驟119:瀏覽器顯示注冊(cè)成功,結(jié)束注冊(cè)流程。
步驟120:網(wǎng)站向?yàn)g覽器發(fā)送注冊(cè)失敗信息;
步驟121:瀏覽器顯示注冊(cè)失敗,結(jié)束注冊(cè)流程。
步驟122:注冊(cè)插件向網(wǎng)站發(fā)送已注冊(cè)信息;
步驟123:網(wǎng)站向?yàn)g覽器發(fā)送已注冊(cè)信息;
步驟124:瀏覽器顯示用戶已注冊(cè)信息,結(jié)束注冊(cè)流程。
本實(shí)施例中,步驟109還可以替換為:瀏覽器顯示注冊(cè)等待頁面并向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求;步驟110中還包括:認(rèn)證設(shè)備提示用戶按下認(rèn)證設(shè)備的按鈕。
相應(yīng)地,步驟108具體為:注冊(cè)插件生成包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求,向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求。瀏覽器顯示注冊(cè)等待頁面并向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求具體為:瀏覽器根據(jù)第二網(wǎng)址重定向請(qǐng)求向用戶顯示注冊(cè)等待頁面,并向認(rèn)證設(shè)備發(fā)送第二網(wǎng)址重定向請(qǐng)求中的設(shè)備注冊(cè)請(qǐng)求。
本施例提供的一種認(rèn)證設(shè)備與網(wǎng)站的集成方法中的認(rèn)證方法,如圖4所示,包括:
步驟201:瀏覽器獲取包括用戶登錄信息的用戶第一登錄請(qǐng)求;
當(dāng)瀏覽器中的瀏覽器腳本監(jiān)聽到登錄點(diǎn)擊事件后,瀏覽器腳本獲取瀏覽器頁面中的包括用戶登錄信息的用戶第一登錄請(qǐng)求,生成包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求。
優(yōu)選地,瀏覽器腳本為JavaScript腳本,簡(jiǎn)稱JS腳本。用戶登錄信息包括用戶標(biāo)識(shí)和用戶密碼。
步驟202:瀏覽器向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求;
本實(shí)施例中,認(rèn)證插件的類型為twofactorauth類型。
具體地,瀏覽器腳本使用ajax的post()方法向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求。
當(dāng)瀏覽器腳本使用ajax的post()方法向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求后,認(rèn)證插件中的第二函數(shù)被調(diào)用,接收到包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求。
本實(shí)施例中,認(rèn)證插件中的第二函數(shù)具體為onAfterRender函數(shù)。
步驟203:認(rèn)證插件初始化與認(rèn)證服務(wù)器的會(huì)話通道;
具體地,認(rèn)證插件根據(jù)預(yù)設(shè)的應(yīng)用配置信息初始化與認(rèn)證服務(wù)器的會(huì)話通道。
本實(shí)施例中,預(yù)設(shè)的應(yīng)用配置信息中包括預(yù)設(shè)的應(yīng)用標(biāo)識(shí)appid、預(yù)設(shè)的應(yīng)用驗(yàn)證序號(hào)appkey、預(yù)設(shè)應(yīng)用統(tǒng)一資源定位符appurl和預(yù)設(shè)的應(yīng)用保護(hù)主機(jī)信息app_protected_host等。
步驟204:認(rèn)證插件通過會(huì)話通道向認(rèn)證服務(wù)器發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求;
步驟205:認(rèn)證服務(wù)器獲取與用戶標(biāo)識(shí)對(duì)應(yīng)的密鑰句柄,生成包括密鑰句柄、第二挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備認(rèn)證請(qǐng)求;
步驟206:認(rèn)證服務(wù)器通過會(huì)話通道向認(rèn)證插件發(fā)送設(shè)備認(rèn)證請(qǐng)求;
步驟207:認(rèn)證插件向?yàn)g覽器發(fā)送設(shè)備認(rèn)證請(qǐng)求;
具體地,認(rèn)證插件中的第二函數(shù)通過echo語句向?yàn)g覽器的瀏覽器腳本發(fā)送設(shè)備認(rèn)證請(qǐng)求。
步驟208:瀏覽器提示用戶按下認(rèn)證設(shè)備的按鈕,并向認(rèn)證設(shè)備發(fā)送設(shè)備認(rèn)證請(qǐng)求;
具體地,瀏覽器腳本在瀏覽器的認(rèn)證等待頁面提示用戶按下認(rèn)證設(shè)備的按鈕,并向認(rèn)證設(shè)備發(fā)送設(shè)備認(rèn)證請(qǐng)求。
步驟209:當(dāng)用戶按下認(rèn)證設(shè)備的按鈕后,認(rèn)證設(shè)備獲取與設(shè)備認(rèn)證請(qǐng)求中的密鑰句柄對(duì)應(yīng)的第一私鑰,使用第一私鑰對(duì)第二挑戰(zhàn)值和應(yīng)用參數(shù)簽名得到第二簽名值,生成包括第二簽名值的設(shè)備認(rèn)證數(shù)據(jù);
步驟210:認(rèn)證設(shè)備向?yàn)g覽器發(fā)送設(shè)備認(rèn)證數(shù)據(jù);
具體地,當(dāng)瀏覽器接收到認(rèn)證設(shè)備的設(shè)備認(rèn)證數(shù)據(jù)后,瀏覽器中瀏覽器腳本將設(shè)備認(rèn)證數(shù)據(jù)賦值給瀏覽器頁面中的隱藏表單項(xiàng)“secretkey”。
步驟211:瀏覽器向網(wǎng)站發(fā)送包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息的用戶第二登陸請(qǐng)求;
具體地,瀏覽器腳本向網(wǎng)站發(fā)送包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息的用戶第二登陸請(qǐng)求。
步驟212:網(wǎng)站向認(rèn)證插件發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息;
當(dāng)網(wǎng)站向認(rèn)證插件發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息后,認(rèn)證插件的第三函數(shù)被調(diào)用,收來自網(wǎng)站的設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息。
本實(shí)施例中,認(rèn)證插件的第三函數(shù)具體為onUserTwofactorAuthenticate函數(shù)。
步驟213:認(rèn)證插件向認(rèn)證服務(wù)器發(fā)送包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息中的用戶標(biāo)識(shí)的第二認(rèn)證請(qǐng)求;
步驟214:認(rèn)證服務(wù)器獲取與第二認(rèn)證請(qǐng)求中的用戶標(biāo)識(shí)對(duì)應(yīng)的第一公鑰,使用第一公鑰對(duì)第二簽名值驗(yàn)簽,得到第二認(rèn)證結(jié)果;
步驟215:認(rèn)證服務(wù)器根據(jù)會(huì)話通道向認(rèn)證插件發(fā)送第二認(rèn)證結(jié)果;
步驟216:認(rèn)證插件向網(wǎng)站發(fā)送第二認(rèn)證結(jié)果;
步驟217:網(wǎng)站根據(jù)第二認(rèn)證結(jié)果判斷用戶是否登錄成功,如果是,則向?yàn)g覽器發(fā)送登錄成功信息,瀏覽器執(zhí)行步驟218;否則,向?yàn)g覽器發(fā)送登錄失敗信息,瀏覽器執(zhí)行步驟219;
具體地,網(wǎng)站判斷第二認(rèn)證結(jié)果是否為true,如果是,則判斷用戶登錄成功,瀏覽器執(zhí)行步驟218;否則,判斷用戶登錄失敗,瀏覽器執(zhí)行步驟219。
步驟218:瀏覽器顯示登錄成功,結(jié)束認(rèn)證流程。
步驟219:瀏覽器顯示登錄失敗,結(jié)束認(rèn)證流程。
本實(shí)施例中步驟208還可以被替換為:瀏覽器向認(rèn)證設(shè)備發(fā)送設(shè)備認(rèn)證請(qǐng)求并顯示認(rèn)證等待頁面;
相應(yīng)地,步驟209中當(dāng)認(rèn)證設(shè)備接收到設(shè)備認(rèn)證請(qǐng)求后,等待用戶按下按鈕之前,還包括:認(rèn)證設(shè)備提示用戶按下認(rèn)證設(shè)備的按鈕。
實(shí)施例4
本實(shí)施例提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成方法,包括注冊(cè)方法和認(rèn)證方法。其中,注冊(cè)方法如圖5所示,包括:
本實(shí)施例中,網(wǎng)站具體為應(yīng)用Joomla技術(shù)開發(fā)的網(wǎng)站。
步驟301:注冊(cè)插件接收來自網(wǎng)站的用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí);
具體地,當(dāng)網(wǎng)站接收到來自瀏覽器的包括用戶注冊(cè)信息的用戶注冊(cè)請(qǐng)求后,將用戶注冊(cè)信息保存到數(shù)據(jù)庫中,獲取與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí),將用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)作為參數(shù),調(diào)用注冊(cè)插件的第一函數(shù),向注冊(cè)插件發(fā)送用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)。
當(dāng)注冊(cè)插件的第一函數(shù)被調(diào)用后,注冊(cè)插件接收來自網(wǎng)站的用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)。
本實(shí)施例中,用戶注冊(cè)信息可以包括用戶標(biāo)識(shí)、用戶密碼和用戶郵箱等信息。
其中,用戶標(biāo)識(shí)為用于標(biāo)識(shí)用戶的唯一識(shí)別信息,優(yōu)選地,用戶標(biāo)識(shí)為用戶名。
本實(shí)施例中,注冊(cè)插件的第一函數(shù)具體為onUserAfterSave函數(shù)。
步驟302:注冊(cè)插件根據(jù)與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)判斷用戶是否已注冊(cè)成功,如果是,則向網(wǎng)站返回已注冊(cè)信息,結(jié)束注冊(cè)流程;否則,執(zhí)行步驟303。
具體地,注冊(cè)插件判斷與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)是否為成功標(biāo)識(shí)true,如果是,則判斷用戶已注冊(cè)成功,則向網(wǎng)站返回已注冊(cè)信息,結(jié)束注冊(cè)流程;否則,判斷用戶未注冊(cè)成功,執(zhí)行步驟303。
步驟303:注冊(cè)插件初始化與認(rèn)證服務(wù)器的會(huì)話通道;
具體地,注冊(cè)插件根據(jù)預(yù)設(shè)的應(yīng)用配置信息初始化與認(rèn)證服務(wù)器的會(huì)話通道。
本實(shí)施例中,預(yù)設(shè)的應(yīng)用配置信息中包括預(yù)設(shè)的應(yīng)用標(biāo)識(shí)appid、預(yù)設(shè)的應(yīng)用驗(yàn)證序號(hào)appkey、預(yù)設(shè)應(yīng)用統(tǒng)一資源定位符appurl和預(yù)設(shè)的應(yīng)用保護(hù)主機(jī)信息app_protected_host等。
步驟304:注冊(cè)插件通過會(huì)話通道向認(rèn)證服務(wù)器發(fā)送包括用戶注冊(cè)信息中的用戶標(biāo)識(shí)的獲取設(shè)備注冊(cè)請(qǐng)求;通過會(huì)話通道接收來自認(rèn)證服務(wù)器的設(shè)備注冊(cè)請(qǐng)求;
例如:
resp_data為接收到的來自認(rèn)證服務(wù)器的設(shè)備注冊(cè)請(qǐng)求。
本實(shí)施例中,當(dāng)認(rèn)證服務(wù)器接收到來自認(rèn)證插件的獲取設(shè)備注冊(cè)請(qǐng)求后,生成包括第一挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備注冊(cè)請(qǐng)求;通過會(huì)話通道向注冊(cè)插件發(fā)送設(shè)備注冊(cè)請(qǐng)求。
步驟305:注冊(cè)插件向?yàn)g覽器發(fā)送設(shè)備注冊(cè)請(qǐng)求;
具體地,注冊(cè)插件生成包括設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求,向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求。
例如:
本實(shí)施例中,當(dāng)注冊(cè)插件向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求后,瀏覽器提示用戶按下認(rèn)證設(shè)備的按鈕,并向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求;認(rèn)證設(shè)備等待用戶按下按鈕,根據(jù)設(shè)備注冊(cè)請(qǐng)求生成密鑰句柄、與密鑰句柄對(duì)應(yīng)的第一公鑰和第一私鑰,使用預(yù)設(shè)的硬件私鑰對(duì)第一公鑰和密鑰句柄簽名生成第一簽名值,組織包括密鑰句柄、第一公鑰、第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù);向?yàn)g覽器發(fā)送設(shè)備注冊(cè)數(shù)據(jù);瀏覽器向注冊(cè)插件發(fā)送設(shè)備注冊(cè)數(shù)據(jù)。
本實(shí)施例中,步驟305還可以具體為:注冊(cè)插件生成包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求,向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求。相應(yīng)地,當(dāng)瀏覽器接收到來自注冊(cè)插件的包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求后,瀏覽器顯示注冊(cè)等待頁面,并向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求。認(rèn)證設(shè)備提示用戶按下認(rèn)證設(shè)備的按鍵,當(dāng)用戶按下按鈕后,認(rèn)證設(shè)備根據(jù)設(shè)備注冊(cè)請(qǐng)求生成密鑰句柄、與密鑰句柄對(duì)應(yīng)的第一公鑰和第一私鑰,使用預(yù)設(shè)的硬件私鑰對(duì)第一公鑰和密鑰句柄簽名生成第一簽名值,組織包括密鑰句柄、第一公鑰、第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù);向?yàn)g覽器發(fā)送設(shè)備注冊(cè)數(shù)據(jù);瀏覽器向注冊(cè)插件發(fā)送設(shè)備注冊(cè)數(shù)據(jù)。
需要說明的是,URL重定向(URL redirection,或稱網(wǎng)址重定向或網(wǎng)域名稱轉(zhuǎn)址),是指當(dāng)使用者瀏覽某個(gè)網(wǎng)址時(shí),將他導(dǎo)向到另一個(gè)網(wǎng)址的技術(shù)。本實(shí)施例中,注冊(cè)插件向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的網(wǎng)址重定向請(qǐng)求的技術(shù)手段,可以實(shí)現(xiàn)當(dāng)用戶使用網(wǎng)站進(jìn)行注冊(cè)時(shí),將用戶導(dǎo)向了注冊(cè)等待頁面的網(wǎng)址上去的技術(shù)效果。
步驟306:注冊(cè)插件等待接收設(shè)備注冊(cè)數(shù)據(jù),當(dāng)接收到來自瀏覽器的設(shè)備注冊(cè)數(shù)據(jù)后,通過會(huì)話通道向認(rèn)證服務(wù)器發(fā)送包括設(shè)備注冊(cè)數(shù)據(jù)的第一認(rèn)證請(qǐng)求;接收來自認(rèn)證服務(wù)器的第一認(rèn)證結(jié)果;
本實(shí)施例中,當(dāng)認(rèn)證服務(wù)器通過會(huì)話通道接收到包括設(shè)備注冊(cè)數(shù)據(jù)的第一認(rèn)證請(qǐng)求后,認(rèn)證服務(wù)器從設(shè)備注冊(cè)數(shù)據(jù)中的硬件證書中獲取硬件公鑰,使用硬件公鑰對(duì)設(shè)備注冊(cè)數(shù)據(jù)中的第一簽名值驗(yàn)簽,得到第一認(rèn)證結(jié)果,若第一認(rèn)證結(jié)果為成功,則將密鑰句柄、第一公鑰和用戶標(biāo)識(shí)建立對(duì)應(yīng)關(guān)系,向注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果;若第一認(rèn)證結(jié)果為失敗,則向注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果。
步驟307:注冊(cè)插件向網(wǎng)站返回第一認(rèn)證結(jié)果。
當(dāng)網(wǎng)站接收到來自注冊(cè)插件的第一認(rèn)證結(jié)果后,判斷第一認(rèn)證結(jié)果是否為TRUE,如果是,則判斷用戶注冊(cè)成功,并將與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)設(shè)置為成功標(biāo)識(shí)并向?yàn)g覽器發(fā)送注冊(cè)成功信息,瀏覽器顯示注冊(cè)成功;否則,判斷用戶注冊(cè)失敗,向?yàn)g覽器發(fā)送注冊(cè)失敗信息;顯示注冊(cè)失敗。
本施例提供的一種認(rèn)證設(shè)備與網(wǎng)站的集成方法中的認(rèn)證方法,如圖6所示,包括:
步驟401:認(rèn)證插件接收來自瀏覽器的包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求;
本實(shí)施例中,認(rèn)證插件的類型為twofactorauth類型。
當(dāng)瀏覽器中的瀏覽器腳本監(jiān)聽到登錄點(diǎn)擊事件后,瀏覽器腳本獲取瀏覽器頁面中的包括用戶登錄信息的用戶第一登錄請(qǐng)求,生成包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求,向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求,認(rèn)證插件接收來自瀏覽器的包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求。
具體地,當(dāng)瀏覽器中的瀏覽器腳本監(jiān)聽到登錄點(diǎn)擊事件后,瀏覽器腳本獲取瀏覽器頁面中的包括用戶登錄信息的用戶第一登錄請(qǐng)求,生成包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求,使用ajax的post()方法向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求。當(dāng)瀏覽器腳本使用ajax的post()方法向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求后,認(rèn)證插件中的第二函數(shù)被調(diào)用,接收到包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求。
優(yōu)選地,瀏覽器腳本為JavaScript腳本,簡(jiǎn)稱JS腳本。用戶登錄信息包括用戶標(biāo)識(shí)和用戶密碼。
本實(shí)施例中,認(rèn)證插件中的第二函數(shù)具體為onAfterRender函數(shù)。
步驟402:認(rèn)證插件初始化與認(rèn)證服務(wù)器的會(huì)話通道;
具體地,認(rèn)證插件根據(jù)預(yù)設(shè)的應(yīng)用配置信息初始化與認(rèn)證服務(wù)器的會(huì)話通道。
本實(shí)施例中,預(yù)設(shè)的應(yīng)用配置信息中包括預(yù)設(shè)的應(yīng)用標(biāo)識(shí)appid、預(yù)設(shè)的應(yīng)用驗(yàn)證序號(hào)appkey、預(yù)設(shè)應(yīng)用統(tǒng)一資源定位符appurl和預(yù)設(shè)的應(yīng)用保護(hù)主機(jī)信息app_protected_host等。
步驟403:認(rèn)證插件通過會(huì)話通道向認(rèn)證服務(wù)器發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求;通過會(huì)話通道接收來自認(rèn)證服務(wù)器的設(shè)備認(rèn)證請(qǐng)求;
例如:
$urlstring=$CloudentifyU2FSDK->getUrl($username,$app_protected_host,"signData");
$resp_data="";
$ret=$CloudentifyU2FSDK->do_http($urlstring,$resp_data);其中,resp_data為接收來自認(rèn)證服務(wù)器的設(shè)備認(rèn)證請(qǐng)求。
本實(shí)施例中,當(dāng)認(rèn)證服務(wù)器接收到來自認(rèn)證插件的包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求后,獲取與用戶標(biāo)識(shí)對(duì)應(yīng)的密鑰句柄,生成包括密鑰句柄、第二挑戰(zhàn)值和應(yīng)用參數(shù)的認(rèn)證設(shè)備請(qǐng)求;通過會(huì)話通道向認(rèn)證插件發(fā)送設(shè)備認(rèn)證請(qǐng)求。
步驟404:認(rèn)證插件向?yàn)g覽器發(fā)送設(shè)備認(rèn)證請(qǐng)求;
步驟404具體地,認(rèn)證插件中的第二函數(shù)通過echo語句向?yàn)g覽器的瀏覽器腳本發(fā)送設(shè)備認(rèn)證請(qǐng)求。
本實(shí)施例中,當(dāng)認(rèn)證插件向?yàn)g覽器發(fā)送設(shè)備認(rèn)證請(qǐng)求后,瀏覽器提示用戶按下認(rèn)證設(shè)備的按鈕,并向認(rèn)證設(shè)備發(fā)送設(shè)備認(rèn)證請(qǐng)求;當(dāng)用戶按下認(rèn)證設(shè)備的按鈕后,獲取與設(shè)備認(rèn)證請(qǐng)求中的密鑰句柄對(duì)應(yīng)的第一私鑰,使用第一私鑰對(duì)第二挑戰(zhàn)值和應(yīng)用參數(shù)簽名得到第二簽名值,生成包括第二簽名值的設(shè)備認(rèn)證數(shù)據(jù);瀏覽器向網(wǎng)站發(fā)送包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息的用戶第二登陸請(qǐng)求;網(wǎng)站向認(rèn)證插件發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息。
具體地,認(rèn)證插件中的第二函數(shù)通過echo語句向?yàn)g覽器的瀏覽器腳本發(fā)送設(shè)備認(rèn)證請(qǐng)求后,瀏覽器腳本在瀏覽器的認(rèn)證等待頁面提示用戶按下認(rèn)證設(shè)備的按鈕,并向認(rèn)證設(shè)備發(fā)送設(shè)備認(rèn)證請(qǐng)求,當(dāng)用戶按下認(rèn)證設(shè)備的按鈕后,認(rèn)證設(shè)備獲取與設(shè)備認(rèn)證請(qǐng)求中的密鑰句柄對(duì)應(yīng)的第一私鑰,使用第一私鑰對(duì)第二挑戰(zhàn)值和應(yīng)用參數(shù)簽名得到第二簽名值,生成包括第二簽名值的設(shè)備認(rèn)證數(shù)據(jù);認(rèn)證設(shè)備向?yàn)g覽器發(fā)送設(shè)備認(rèn)證數(shù)據(jù);當(dāng)瀏覽器接收到認(rèn)證設(shè)備的設(shè)備認(rèn)證數(shù)據(jù)后,瀏覽器腳本將設(shè)備認(rèn)證數(shù)據(jù)賦值給瀏覽器頁面中的隱藏表單項(xiàng)“secretkey”,瀏覽器腳本向網(wǎng)站發(fā)送包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息的用戶第二登陸請(qǐng)求,網(wǎng)站將設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息作為參數(shù),調(diào)用認(rèn)證插件的第三函數(shù)。
本實(shí)施例中,認(rèn)證插件的第三函數(shù)具體為onUserTwofactorAuthenticate函數(shù)。
步驟405:認(rèn)證插件等待接收設(shè)備認(rèn)證數(shù)據(jù),當(dāng)接收到來自網(wǎng)站的設(shè)備注冊(cè)數(shù)據(jù)和用戶登錄信息后,向認(rèn)證服務(wù)器發(fā)送包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息中的用戶標(biāo)識(shí)的第二認(rèn)證請(qǐng)求,通過會(huì)話通道接收來自認(rèn)證服務(wù)器的第二認(rèn)證結(jié)果;
具體地,認(rèn)證插件等待接收設(shè)備認(rèn)證數(shù)據(jù),當(dāng)接收到來自網(wǎng)站的設(shè)備注冊(cè)數(shù)據(jù)和用戶登錄信息后,認(rèn)證插件的第三函數(shù)被調(diào)用,向認(rèn)證服務(wù)器發(fā)送包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息中的用戶標(biāo)識(shí)的第二認(rèn)證請(qǐng)求,通過會(huì)話通道接收來自認(rèn)證服務(wù)器的第二認(rèn)證結(jié)果。
其中,向認(rèn)證服務(wù)器發(fā)送包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息中的用戶標(biāo)識(shí)的第二認(rèn)證請(qǐng)求,通過會(huì)話通道接收來自認(rèn)證服務(wù)器的第二認(rèn)證結(jié)果的一種具體實(shí)現(xiàn)方式可以如下所示:
$check=$this->validateCloudentifyOTP($appid,$appkey,$appurl,$otp,$username);其中,otp為設(shè)備認(rèn)證數(shù)據(jù),username為用戶標(biāo)識(shí),check為接收來自認(rèn)證服務(wù)器的第二認(rèn)證結(jié)果。
本實(shí)施例中,當(dāng)認(rèn)證服務(wù)器通過會(huì)話通道接收到包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息中的用戶標(biāo)識(shí)的第二認(rèn)證請(qǐng)求后,獲取與第二認(rèn)證請(qǐng)求中的用戶標(biāo)識(shí)對(duì)應(yīng)的第一公鑰,使用第一公鑰對(duì)第二簽名值驗(yàn)簽,得到第二認(rèn)證結(jié)果,通過會(huì)話通道向認(rèn)證插件發(fā)送第二認(rèn)證結(jié)果。
步驟406:認(rèn)證插件向網(wǎng)站發(fā)送第二認(rèn)證結(jié)果;
當(dāng)網(wǎng)站接收到來自認(rèn)證插件的第二認(rèn)證結(jié)果后,判斷第二認(rèn)證結(jié)果是否為TRUE,如果是,則判斷用戶登錄成功,向?yàn)g覽器發(fā)送登錄成功信息,瀏覽器顯示登錄成功,結(jié)束認(rèn)證流程。否則,判斷用戶登錄失敗,向?yàn)g覽器發(fā)送登錄失敗信息,結(jié)束認(rèn)證流程。
實(shí)施例5
本實(shí)施例提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成系統(tǒng),如圖7所示,包括認(rèn)證設(shè)備、瀏覽器、網(wǎng)站、注冊(cè)插件和認(rèn)證服務(wù)器;
本實(shí)施例中,網(wǎng)站具體為應(yīng)用Joomla技術(shù)開發(fā)的網(wǎng)站。
網(wǎng)站包括:第一接收模塊01、第一發(fā)送模塊02、第十接收模塊26、第二判斷模塊27、第十一接收模塊28和第十發(fā)送模塊29;
注冊(cè)插件包括:第二接收模塊03、第一判斷模塊04、第二發(fā)送模塊05、第三發(fā)送模塊06、第四接收模塊09、第五發(fā)送模塊10、第六接收模塊18、第七發(fā)送模塊19、第九接收模塊24和第九發(fā)送模塊25;
認(rèn)證服務(wù)器包括:第三接收模塊07、第四發(fā)送模塊08、第七接收模塊20、第一驗(yàn)簽?zāi)K21、第一關(guān)聯(lián)模塊22和第八發(fā)送模塊23;
認(rèn)證設(shè)備包括:第五接收模塊14、第一獲取模塊15、第一生成模塊16和第六發(fā)送模塊17;
瀏覽器包括:第十二接收模塊11、第十一發(fā)送模塊13和第一顯示模塊12、第十三接收模塊30和第二顯示模塊31;
第一接收模塊01,用于通過瀏覽器接收用戶注冊(cè)信息;
第一發(fā)送模塊02,用于向注冊(cè)插件發(fā)送用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí);
第一發(fā)送模塊02,具體用于調(diào)用注冊(cè)插件的第一函數(shù),向注冊(cè)插件發(fā)送用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)。
本實(shí)施例中,注冊(cè)插件的第一函數(shù)具體為onUserAfterSave函數(shù)。
第二接收模塊03,用于接收來自網(wǎng)站的用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí);
第一判斷模塊04,用于根據(jù)注冊(cè)結(jié)果標(biāo)識(shí)判斷用戶是否已注冊(cè)成功;
第一判斷模塊04,具體用于判斷與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)是否為成功標(biāo)識(shí),如果是,則判斷用戶已注冊(cè)成功;否則,判斷用戶未注冊(cè)成功。
第二發(fā)送模塊05,用于當(dāng)?shù)谝慌袛嗄K04判斷為是后,向網(wǎng)站發(fā)送已注冊(cè)信息;
第三發(fā)送模塊06,用于當(dāng)?shù)谝慌袛嗄K04判斷為否后,向認(rèn)證服務(wù)器發(fā)送包括用戶注冊(cè)信息中的用戶標(biāo)識(shí)的獲取設(shè)備注冊(cè)請(qǐng)求;
第三接收模塊07,用于接收來自注冊(cè)插件的包括用戶注冊(cè)信息中的用戶標(biāo)識(shí)的獲取設(shè)備注冊(cè)請(qǐng)求;
第四發(fā)送模塊08,用于向注冊(cè)插件發(fā)送包括第一挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備注冊(cè)請(qǐng)求;
第四接收模塊09,用于接收來自認(rèn)證服務(wù)器的包括認(rèn)證服務(wù)器中的第一挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備注冊(cè)請(qǐng)求;
第五發(fā)送模塊10,用于向?yàn)g覽器發(fā)送設(shè)備注冊(cè)請(qǐng)求;
第五發(fā)送模塊10具體包括:第一生成單元和第一發(fā)送單元;
第一生成單元,用于生成包括設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求;
第一發(fā)送單元,用于向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求。
第十二接收模塊11,用于接收來自注冊(cè)插件的設(shè)備注冊(cè)請(qǐng)求;
第十二接收模塊11,具體用于接收來自注冊(cè)插件的包括認(rèn)證服務(wù)器中的第一挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求。
第一顯示模塊12,用于第十二接收模塊11接收到設(shè)備注冊(cè)請(qǐng)求后,在注冊(cè)等待頁面上提示用戶按下認(rèn)證設(shè)備的按鈕;
第一顯示模塊12,具體用于根據(jù)第一網(wǎng)址重定向請(qǐng)求向用戶顯示注冊(cè)等待頁面,在注冊(cè)等待頁面上提示用戶按下認(rèn)證設(shè)備的按鈕。
第十一發(fā)送模塊13,用于向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求;
第十一發(fā)送模塊13,具體用于向認(rèn)證設(shè)備發(fā)送第一網(wǎng)址重定向請(qǐng)求中的設(shè)備注冊(cè)請(qǐng)求。
第五接收模塊14,用于接收來自瀏覽器的設(shè)備注冊(cè)請(qǐng)求;
第一獲取模塊15,用于當(dāng)?shù)谖褰邮漳K14接收到設(shè)備注冊(cè)請(qǐng)求后,等待用戶按下按鈕,獲取到用戶按下按鈕的信息;
第一生成模塊16,用于當(dāng)?shù)谝猾@取模塊15獲取到用戶按下按鈕的信息后,根據(jù)設(shè)備注冊(cè)請(qǐng)求中的第一挑戰(zhàn)值和應(yīng)用參數(shù)生成密鑰句柄、與密鑰句柄對(duì)應(yīng)的第一公鑰和第一私鑰,使用預(yù)設(shè)的硬件私鑰對(duì)第一公鑰和密鑰句柄簽名生成第一簽名值;組織包括密鑰句柄、第一公鑰、第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù);
第六發(fā)送模塊17,用于通過瀏覽器向注冊(cè)插件發(fā)送第一生成模塊16生成的包括密鑰句柄、第一公鑰、第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù);
第六接收模塊18,用于接收來自瀏覽器的包括密鑰句柄、第一公鑰、第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù);
第七發(fā)送模塊19,用于向認(rèn)證服務(wù)器發(fā)送包括設(shè)備注冊(cè)數(shù)據(jù)的第一認(rèn)證請(qǐng)求;
第七接收模塊20,用于接收來自注冊(cè)插件的包括設(shè)備注冊(cè)數(shù)據(jù)的第一認(rèn)證請(qǐng)求;
第一驗(yàn)簽?zāi)K21,用于從第七接收模塊20接收到的第一認(rèn)證請(qǐng)求的硬件證書中獲取硬件公鑰,使用硬件公鑰對(duì)第一簽名值驗(yàn)簽,得到第一認(rèn)證結(jié)果;
第一關(guān)聯(lián)模塊22,用于若第一認(rèn)證結(jié)果為成功,則將密鑰句柄、第一公鑰和用戶標(biāo)識(shí)建立對(duì)應(yīng)關(guān)系;
第八發(fā)送模塊23,用于當(dāng)?shù)谝魂P(guān)聯(lián)模塊22將密鑰句柄、第一公鑰和用戶標(biāo)識(shí)建立對(duì)應(yīng)關(guān)系后,向注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果;若第一認(rèn)證結(jié)果為失敗,向注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果;
第九接收模塊24,用于接收來自認(rèn)證服務(wù)器的第一認(rèn)證結(jié)果;
第九發(fā)送模塊25,用于向網(wǎng)站發(fā)送第一認(rèn)證結(jié)果;
第十接收模塊26,用于接收來自注冊(cè)插件的第一認(rèn)證結(jié)果;
第二判斷模塊27,用于根據(jù)第十接收模塊26接收到的第一認(rèn)證結(jié)果判斷用戶是否注冊(cè)成功;
第十一接收模塊28,用于接收來自注冊(cè)插件的已注冊(cè)信息;
第十發(fā)送模塊29,用于當(dāng)?shù)诙袛嗄K27判斷為是后,向?yàn)g覽器發(fā)送注冊(cè)成功信息;當(dāng)?shù)诙袛嗄K27判斷為否后,向?yàn)g覽器發(fā)送注冊(cè)失敗信息;當(dāng)?shù)谑唤邮漳K28接收到來自注冊(cè)插件的已注冊(cè)信息后,向?yàn)g覽器發(fā)送已注冊(cè)信息;
第十三接收模塊30,用于接收來自網(wǎng)站的注冊(cè)成功信息或注冊(cè)失敗信息或已注冊(cè)信息;
第二顯示模塊31,用于當(dāng)?shù)谑邮漳K30接收到注冊(cè)成功信息后,顯示用戶注冊(cè)成功;當(dāng)?shù)谑邮漳K30接收到注冊(cè)失敗信息后,顯示用戶注冊(cè)失?。划?dāng)?shù)谑邮漳K30接收到已注冊(cè)信息后,顯示用戶已注冊(cè)。
本實(shí)施例中,網(wǎng)站還包括第一設(shè)置模塊;
第一設(shè)置模塊,用于當(dāng)?shù)诙袛嗄K27判斷為是后,將與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)設(shè)置為成功標(biāo)識(shí)。
本實(shí)施例中,認(rèn)證設(shè)備還可以包括:第三顯示模塊;相應(yīng)地:
第一顯示模塊12,或者用于第十二接收模塊11接收到設(shè)備注冊(cè)請(qǐng)求后,顯示注冊(cè)等待頁面;
第三顯示模塊,用于當(dāng)?shù)谖褰邮漳K14接收到設(shè)備注冊(cè)請(qǐng)求后,第一獲取模塊15獲取到用戶按下按鈕的信息之前,提示用戶按下認(rèn)證設(shè)備的按鈕。
當(dāng)認(rèn)證設(shè)備還包括:第三顯示模塊時(shí),進(jìn)一步地,第五發(fā)送模塊10或者可以具體包括:第二生成單元和第二發(fā)送單元;第二生成單元,用于生成包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求;第二發(fā)送單元,用于向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求;第十二接收模塊11,或者具體用于接收來自瀏覽器的包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求;第一顯示模塊12,或者具體用于根據(jù)第二網(wǎng)址重定向請(qǐng)求向用戶顯示注冊(cè)等待頁面;第十一發(fā)送模塊13,或者具體用于向認(rèn)證設(shè)備發(fā)送第二網(wǎng)址重定向請(qǐng)求中的設(shè)備注冊(cè)請(qǐng)求。
本實(shí)施例提供的一種集成認(rèn)證設(shè)備與網(wǎng)站的集成系統(tǒng)中,在包括如圖7所示的認(rèn)證設(shè)備、瀏覽器、網(wǎng)站、注冊(cè)插件和認(rèn)證服務(wù)器的基礎(chǔ)上,還可以包括認(rèn)證插件,相應(yīng)的:
瀏覽器還包括:第二獲取模塊、第十二發(fā)送模塊、第十七接收模塊、第四顯示模塊、第十六發(fā)送模塊、第十九接收模塊、第十八發(fā)送模塊、第二十四接收模塊和第五顯示模塊;
認(rèn)證插件包括:第十四接收模塊、第十三發(fā)送模塊、第十六接收模塊、第十五發(fā)送模塊、第二十一接收模塊、第二十發(fā)送模塊、第二十三接收模塊和第二十二發(fā)送模塊;
認(rèn)證服務(wù)器還包括:第十五接收模塊、第三獲取模塊、第十四發(fā)送模塊、第二十二接收模塊、第二驗(yàn)簽?zāi)K和第二十一發(fā)送模塊;
認(rèn)證設(shè)備還包括:第十八接收模塊、第四獲取模塊、第二生成模塊和第十七發(fā)送模塊;
網(wǎng)站還包括:第二十接收模塊、第十九發(fā)送模塊、第二十四接收模塊、第三判斷模塊和第二十三發(fā)送模塊;
第二獲取模塊,用于獲取用戶登錄信息;
第二獲取模塊,具體用于當(dāng)?shù)谑慕邮漳K接收來自瀏覽器的包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求之前,獲取用戶登錄信息;
第十二發(fā)送模塊,用于向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求;
第十二發(fā)送模塊,具體用于調(diào)用認(rèn)證插件中的第二函數(shù)向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求。
本實(shí)施例中,認(rèn)證插件中的第二函數(shù)具體為onAfterRender函數(shù)。
第十四接收模塊,用于接收來自瀏覽器的獲取設(shè)備認(rèn)證請(qǐng)求;
第十三發(fā)送模塊,用于向認(rèn)證服務(wù)器發(fā)送獲取設(shè)備認(rèn)證請(qǐng)求;
第十五接收模塊,用于接收來自認(rèn)證插件的獲取設(shè)備認(rèn)證請(qǐng)求;
第三獲取模塊,用于獲取與獲取認(rèn)證設(shè)備請(qǐng)求中的用戶標(biāo)識(shí)對(duì)應(yīng)的密鑰句柄;
第十四發(fā)送模塊,用于向認(rèn)證插件發(fā)送包括密鑰句柄、自身的第二挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備認(rèn)證請(qǐng)求;
第十六接收模塊,用于接收來自認(rèn)證服務(wù)器的設(shè)備認(rèn)證請(qǐng)求;
第十五發(fā)送模塊,用于向?yàn)g覽器發(fā)送設(shè)備認(rèn)證請(qǐng)求;
第十七接收模塊,用于接收來自認(rèn)證插件的設(shè)備認(rèn)證請(qǐng)求;
第四顯示模塊,用于在認(rèn)證等待頁面提示用戶按下認(rèn)證設(shè)備的按鈕;
第十六發(fā)送模塊,用于向認(rèn)證設(shè)備發(fā)送設(shè)備認(rèn)證請(qǐng)求;
第十八接收模塊,用于接收來自瀏覽器的設(shè)備認(rèn)證請(qǐng)求;
第四獲取模塊,用于等待用戶按下按鈕,獲取用戶按下按鈕的信息;
第二生成模塊,用于獲取與設(shè)備認(rèn)證請(qǐng)求中的密鑰句柄對(duì)應(yīng)的第一私鑰,使用第一私鑰對(duì)第二挑戰(zhàn)值和應(yīng)用參數(shù)簽名生成第二簽名值,生成包括第二簽名值的設(shè)備認(rèn)證數(shù)據(jù);
第十七發(fā)送模塊,用于向?yàn)g覽器發(fā)送設(shè)備認(rèn)證數(shù)據(jù);
第十九接收模塊,用于接收來自認(rèn)證設(shè)備的設(shè)備認(rèn)證數(shù)據(jù);
第十八發(fā)送模塊,用于向網(wǎng)站發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息;
第二十接收模塊,用于接收來自瀏覽器的設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息;
第十九發(fā)送模塊,用于向認(rèn)證插件發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息;
第十九發(fā)送模塊,具體用于調(diào)用認(rèn)證插件的第三函數(shù),向證插件發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息。
本實(shí)施例中,認(rèn)證插件的第三函數(shù)具體為onUserTwofactorAuthenticate函數(shù)。
第二十一接收模塊,用于接收來自網(wǎng)站的設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息;
第二十發(fā)送模塊,用于向認(rèn)證服務(wù)器發(fā)送包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息中的用戶標(biāo)識(shí)的第二認(rèn)證請(qǐng)求;
第二十二接收模塊,用于接收來自認(rèn)證插件的第二認(rèn)證請(qǐng)求;
第二驗(yàn)簽?zāi)K,用于獲取與第二認(rèn)證請(qǐng)求中的用戶標(biāo)識(shí)對(duì)應(yīng)的第一公鑰,使用第一公鑰對(duì)第二簽名值驗(yàn)簽,得到第二認(rèn)證結(jié)果;
第二十一發(fā)送模塊,用于向認(rèn)證插件發(fā)送第二認(rèn)證結(jié)果;
第二十三接收模塊,用于接收來自認(rèn)證服務(wù)器的第二認(rèn)證結(jié)果;
第二十二發(fā)送模塊,用于向網(wǎng)站發(fā)送第二認(rèn)證結(jié)果;
第二十四接收模塊,用于接收來自認(rèn)證插件的第二認(rèn)證結(jié)果;
第三判斷模塊,用于根據(jù)第二認(rèn)證結(jié)果判斷用戶是否登錄成功;
第二十三發(fā)送模塊,用于當(dāng)?shù)谌袛嗄K判斷為是后,向?yàn)g覽器發(fā)送登錄成功信息;當(dāng)?shù)谌袛嗄K判斷為否后,向?yàn)g覽器發(fā)送登錄失敗信息;
第二十四接收模塊,用于接收來自網(wǎng)站的登錄成功信息或登錄失敗信息;
第五顯示模塊,用于當(dāng)?shù)诙慕邮漳K接收到登錄成功信息后,顯示用戶登錄成功;當(dāng)?shù)诙慕邮漳K接收到登錄失敗信息后,顯示用戶登錄失敗。
本實(shí)施例中,認(rèn)證設(shè)備還包括:第六顯示模塊;相應(yīng)地:第四顯示模塊,或者用于顯示認(rèn)證等待頁面;第六顯示模塊,用于當(dāng)?shù)谑私邮漳K接收到設(shè)備認(rèn)證請(qǐng)求后,第四獲取模塊獲取到用戶按下按鈕的信息前,提示用戶按下認(rèn)證設(shè)備的按鈕。
本實(shí)施例中,瀏覽器中包括瀏覽器腳本,相應(yīng)地:
第二獲取模塊,具體用于當(dāng)瀏覽器中的瀏覽器腳本監(jiān)聽到登錄點(diǎn)擊事件后,通過瀏覽器腳本獲取瀏覽器頁面中的用戶登錄信息;
第十二發(fā)送模塊,具體用于通過瀏覽器腳本生成包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求,向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求;
第十八發(fā)送模塊,具體用于通過瀏覽器腳本向網(wǎng)站發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和所述用戶登錄信息。
進(jìn)一步地,瀏覽器中還包括:第一賦值模塊;
第一賦值模塊,用于當(dāng)?shù)谑甙l(fā)送模塊向?yàn)g覽器發(fā)送設(shè)備認(rèn)證數(shù)據(jù)后,通過瀏覽器腳本將設(shè)備認(rèn)證數(shù)據(jù)賦值給瀏覽器頁面中的隱藏表單項(xiàng);
第十八發(fā)送模塊,具體用于通過瀏覽器腳本向網(wǎng)站發(fā)送隱藏表單項(xiàng)和用戶登錄信息。
本實(shí)施例中,注冊(cè)插件還包括第一初始化模塊;
第一初始化模塊,用于第三發(fā)送模塊06向認(rèn)證服務(wù)器發(fā)送獲取設(shè)備注冊(cè)請(qǐng)求之前,初始化與認(rèn)證服務(wù)器的會(huì)話通道。
第一初始化模塊,具體用于第三發(fā)送模塊06向認(rèn)證服務(wù)器發(fā)送獲取設(shè)備注冊(cè)請(qǐng)求之前,根據(jù)預(yù)設(shè)的應(yīng)用配置信息初始化與認(rèn)證服務(wù)器的會(huì)話通道。
本實(shí)施例中,認(rèn)證插件中還包括:第二初始化模塊;
第二初始化模塊,用于第十三發(fā)送模塊向認(rèn)證服務(wù)器發(fā)送獲取設(shè)備認(rèn)證請(qǐng)求之前,初始化與認(rèn)證服務(wù)器的會(huì)話通道。
第二初始化模塊,具體用于第十三發(fā)送模塊向認(rèn)證服務(wù)器發(fā)送獲取設(shè)備認(rèn)證請(qǐng)求之前,根據(jù)預(yù)設(shè)的應(yīng)用配置信息初始化與認(rèn)證服務(wù)器的會(huì)話通道。
本實(shí)施例提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成系統(tǒng),系統(tǒng)將認(rèn)證設(shè)備與網(wǎng)站集成在一起,實(shí)現(xiàn)用戶在網(wǎng)站上的注冊(cè)和認(rèn)證。
實(shí)施例6
本實(shí)施例提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成裝置,如圖8所示,包括:注冊(cè)插件;
本實(shí)施例中,網(wǎng)站具體為應(yīng)用Joomla技術(shù)開發(fā)的網(wǎng)站。
注冊(cè)插件包括:第二接收模塊03、第一判斷模塊04、第二發(fā)送模塊05、第三發(fā)送模塊06、第四接收模塊09、第五發(fā)送模塊10、第六接收模塊18、第七發(fā)送模塊19、第九接收模塊24和第九發(fā)送模塊25;
第二接收模塊03,用于接收來自網(wǎng)站的用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí);
第二接收模塊03,具體用于當(dāng)注冊(cè)插件的第一函數(shù)被調(diào)用時(shí),接收來自網(wǎng)站的用戶注冊(cè)信息和與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)。
本實(shí)施例中,注冊(cè)插件的第一函數(shù)具體為onUserAfterSave函數(shù)。
第一判斷模塊04,用于根據(jù)注冊(cè)結(jié)果標(biāo)識(shí)判斷用戶是否已注冊(cè)成功;
第二發(fā)送模塊05,用于當(dāng)?shù)谝慌袛嗄K04判斷為是后,向網(wǎng)站發(fā)送已注冊(cè)信息;
第三發(fā)送模塊06,用于當(dāng)?shù)谝慌袛嗄K04判斷為否后,向認(rèn)證服務(wù)器發(fā)送包括用戶注冊(cè)信息中的用戶標(biāo)識(shí)的獲取設(shè)備注冊(cè)請(qǐng)求;
第四接收模塊09,用于接收來自認(rèn)證服務(wù)器的設(shè)備注冊(cè)請(qǐng)求;
第四接收模塊09,具體用于接收來自認(rèn)證服務(wù)器的包括第一挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備注冊(cè)請(qǐng)求。
第五發(fā)送模塊10,用于通過瀏覽器向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求;
第六接收模塊18,用于接收來自瀏覽器的認(rèn)證設(shè)備生成的設(shè)備注冊(cè)數(shù)據(jù);
第六接收模塊18,具體用于接收來自瀏覽器的包括密鑰句柄、第一公鑰、第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù)。
第七發(fā)送模塊19,用于向認(rèn)證服務(wù)器發(fā)送包括設(shè)備注冊(cè)數(shù)據(jù)的第一認(rèn)證請(qǐng)求;
第九接收模塊24,用于接收來自認(rèn)證服務(wù)器的第一認(rèn)證結(jié)果;
第九發(fā)送模塊25,用于向網(wǎng)站發(fā)送第一認(rèn)證結(jié)果。
本實(shí)施例中,裝置中還可以包括:瀏覽器;瀏覽器包括:第十二接收模塊、第一顯示模塊和第十一發(fā)送模塊;
第十二接收模塊,用于接收來自注冊(cè)插件的設(shè)備注冊(cè)請(qǐng)求;
第一顯示模塊,用于第十二接收模塊接收到設(shè)備注冊(cè)請(qǐng)求后,在注冊(cè)等待頁面上提示用戶按下認(rèn)證設(shè)備的按鈕或者用于第十二接收模塊接收到設(shè)備注冊(cè)請(qǐng)求后,顯示注冊(cè)等待頁面;
第十一發(fā)送模塊,用于向認(rèn)證設(shè)備發(fā)送設(shè)備注冊(cè)請(qǐng)求。
進(jìn)一步地,第五發(fā)送模塊10具體包括:第一生成單元和第一發(fā)送單元;或者具體包括:第二生成單元和第二發(fā)送單元;
第一生成單元,用于生成包括設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求;
第一發(fā)送單元,用于向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求;
第十二接收模塊,具體用于接收來自瀏覽器的包括設(shè)備注冊(cè)請(qǐng)求的第一網(wǎng)址重定向請(qǐng)求;
第一顯示模塊,具體用于根據(jù)第一網(wǎng)址重定向請(qǐng)求向用戶顯示注冊(cè)等待頁面,在注冊(cè)等待頁面上提示用戶按下認(rèn)證設(shè)備的按鈕;
第十一發(fā)送模塊,具體用于向認(rèn)證設(shè)備發(fā)送第一網(wǎng)址重定向請(qǐng)求中的設(shè)備注冊(cè)請(qǐng)求。
第二生成單元,用于生成包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求;
第二發(fā)送單元,用于向?yàn)g覽器發(fā)送包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求;
第十二接收模塊,具體用于接收來自瀏覽器的包括設(shè)備注冊(cè)請(qǐng)求的第二網(wǎng)址重定向請(qǐng)求;
第一顯示模塊,具體用于根據(jù)第二網(wǎng)址重定向請(qǐng)求向用戶顯示注冊(cè)等待頁面;
第十一發(fā)送模塊,具體用于向認(rèn)證設(shè)備發(fā)送第二網(wǎng)址重定向請(qǐng)求中的設(shè)備注冊(cè)請(qǐng)求。
本實(shí)施例提供的裝置中還可以包括:認(rèn)證設(shè)備;
若第一顯示模塊用于當(dāng)?shù)谑邮漳K接收到設(shè)備注冊(cè)請(qǐng)求后,顯示注冊(cè)等待頁面,則認(rèn)證設(shè)備包括:第三顯示模塊、第五接收模塊、第一獲取模塊、第一生成模塊和第六發(fā)送模塊;
第五接收模塊,用于接收來自瀏覽器接收設(shè)備注冊(cè)請(qǐng)求;
第一獲取模塊,用于當(dāng)?shù)谖褰邮漳K接收到設(shè)備注冊(cè)請(qǐng)求后,等待用戶按下按鈕,獲取到用戶按下按鈕的信息;
第一生成模塊,用于當(dāng)?shù)谝猾@取模塊獲取到用戶按下按鈕的信息后,根據(jù)設(shè)備注冊(cè)請(qǐng)求中的第一挑戰(zhàn)值和應(yīng)用參數(shù)生成密鑰句柄、與密鑰句柄對(duì)應(yīng)的第一公鑰和第一私鑰,使用預(yù)設(shè)的硬件私鑰對(duì)第一公鑰和密鑰句柄簽名生成第一簽名值;組織包括密鑰句柄、第一公鑰、第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù);
第六發(fā)送模塊,用于通過瀏覽器向注冊(cè)插件發(fā)送第一生成模塊生成的包括密鑰句柄、第一公鑰、第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù);
第三顯示模塊,用于當(dāng)?shù)谖褰邮漳K接收到設(shè)備注冊(cè)請(qǐng)求后,第一獲取模塊獲取到用戶按下按鈕的信息之前,提示用戶按下認(rèn)證設(shè)備的按鈕。
若第一顯示模塊用于當(dāng)?shù)谑邮漳K接收到設(shè)備注冊(cè)請(qǐng)求后,在注冊(cè)等待頁面上提示用戶按下認(rèn)證設(shè)備的按鈕,則認(rèn)證設(shè)備包括:第五接收模塊、第一獲取模塊、第一生成模塊和第六發(fā)送模塊;
第五接收模塊,用于接收來自瀏覽器接收設(shè)備注冊(cè)請(qǐng)求;
第一獲取模塊,用于當(dāng)?shù)谖褰邮漳K接收到設(shè)備注冊(cè)請(qǐng)求后,等待用戶按下按鈕,獲取到用戶按下按鈕的信息;
第一生成模塊,用于當(dāng)?shù)谝猾@取模塊獲取到用戶按下按鈕的信息后,根據(jù)設(shè)備注冊(cè)請(qǐng)求中的第一挑戰(zhàn)值和應(yīng)用參數(shù)生成密鑰句柄、與密鑰句柄對(duì)應(yīng)的第一公鑰和第一私鑰,使用預(yù)設(shè)的硬件私鑰對(duì)第一公鑰和密鑰句柄簽名生成第一簽名值;組織包括密鑰句柄、第一公鑰、第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù);
第六發(fā)送模塊,用于通過瀏覽器向注冊(cè)插件發(fā)送第一生成模塊生成的包括密鑰句柄、第一公鑰、第一簽名值和硬件證書的設(shè)備注冊(cè)數(shù)據(jù)。
進(jìn)一步地,本實(shí)施例提供的裝置中,還可以包括:認(rèn)證服務(wù)器;
認(rèn)證服務(wù)器包括:第三接收模塊、第四發(fā)送模塊、第七接收模塊、第一驗(yàn)簽?zāi)K、第一關(guān)聯(lián)模塊和第八發(fā)送模塊;
第三接收模塊,用于接收來自注冊(cè)插件的包括用戶注冊(cè)信息中的用戶標(biāo)識(shí)的獲取設(shè)備注冊(cè)請(qǐng)求;
第四發(fā)送模塊,用于向注冊(cè)插件發(fā)送包括第一挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備注冊(cè)請(qǐng)求;
第七接收模塊,用于接收來自注冊(cè)插件的包括設(shè)備注冊(cè)數(shù)據(jù)的第一認(rèn)證請(qǐng)求;
第一驗(yàn)簽?zāi)K,用于從第七接收模塊接收到的第一認(rèn)證請(qǐng)求的硬件證書中獲取硬件公鑰,使用硬件公鑰對(duì)第一簽名值驗(yàn)簽,得到第一認(rèn)證結(jié)果;
第一關(guān)聯(lián)模塊,用于若第一認(rèn)證結(jié)果為成功,則將密鑰句柄、第一公鑰和用戶標(biāo)識(shí)建立對(duì)應(yīng)關(guān)系;
第八發(fā)送模塊,用于當(dāng)?shù)谝魂P(guān)聯(lián)模塊將密鑰句柄、第一公鑰和用戶標(biāo)識(shí)建立對(duì)應(yīng)關(guān)系后,向注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果;若第一認(rèn)證結(jié)果為失敗,向注冊(cè)插件發(fā)送第一認(rèn)證結(jié)果。
本實(shí)施例提供的裝置中,還可以包括:網(wǎng)站和瀏覽器;
網(wǎng)站包括第十接收模塊、第二判斷模塊和第十發(fā)送模塊29;瀏覽器包括:第十三接收模塊和第二顯示模塊;
第十接收模塊,用于接收來自注冊(cè)插件的第一認(rèn)證結(jié)果;
第二判斷模塊,用于根據(jù)第十接收模塊接收到的第一認(rèn)證結(jié)果判斷用戶是否注冊(cè)成功;
第十發(fā)送模塊29,用于當(dāng)?shù)诙袛嗄K判斷為是后,向?yàn)g覽器發(fā)送注冊(cè)成功信息;當(dāng)?shù)诙袛嗄K判斷為否后,向?yàn)g覽器發(fā)送注冊(cè)失敗信息;
第十三接收模塊,用于接收來自網(wǎng)站的注冊(cè)成功信息或注冊(cè)失敗信息;
第二顯示模塊,用于當(dāng)?shù)谑邮漳K接收到注冊(cè)成功信息后,顯示用戶注冊(cè)成功;當(dāng)?shù)谑邮漳K接收到注冊(cè)失敗信息后,顯示用戶注冊(cè)失敗;
本實(shí)施例中,所述第十發(fā)送模塊,還可以用于當(dāng)?shù)谑唤邮漳K接收到來自注冊(cè)插件的已注冊(cè)信息后,向?yàn)g覽器發(fā)送已注冊(cè)信息;相應(yīng)地,第十三接收模塊,還可以用于接收來自網(wǎng)站的已注冊(cè)信息;第二顯示模塊,還可以用于當(dāng)?shù)谑邮漳K接收到已注冊(cè)信息后,顯示用戶已注冊(cè)。
進(jìn)一步地,網(wǎng)站中還可以包括第一設(shè)置模塊;
第一判斷模塊04,具體用于判斷與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)是否為成功標(biāo)識(shí),如果是,則判斷用戶已注冊(cè)成功;否則,判斷用戶未注冊(cè)成功;
第一設(shè)置模塊,用于當(dāng)?shù)诙袛嗄K判斷為是后,將與用戶注冊(cè)信息對(duì)應(yīng)的注冊(cè)結(jié)果標(biāo)識(shí)設(shè)置為成功標(biāo)識(shí)。
本實(shí)施例提供的裝置中,還可以包括:認(rèn)證插件;
認(rèn)證插件包括:第十四接收模塊、第十三發(fā)送模塊、第十六接收模塊、第十五發(fā)送模塊、第二十一接收模塊、第二十發(fā)送模塊、第二十三接收模塊和第二十二發(fā)送模塊;
第十四接收模塊,用于接收來自瀏覽器的獲取設(shè)備認(rèn)證請(qǐng)求;
第十四接收模塊,具體用于當(dāng)認(rèn)證插件的第二函數(shù)被調(diào)用,接收來自瀏覽器的包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求。
本實(shí)施例中,認(rèn)證插件的第二函數(shù)具體為onAfterRender函數(shù)。
第十三發(fā)送模塊,用于向認(rèn)證服務(wù)器發(fā)送獲取設(shè)備認(rèn)證請(qǐng)求;
第十六接收模塊,用于接收來自認(rèn)證服務(wù)器的設(shè)備認(rèn)證請(qǐng)求;
第十五發(fā)送模塊,用于向?yàn)g覽器發(fā)送設(shè)備認(rèn)證請(qǐng)求;
第二十一接收模塊,用于接收來自網(wǎng)站的設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息;
第二十一接收模塊,具體用于當(dāng)認(rèn)證插件的第三函數(shù)被調(diào)用時(shí),接收來自網(wǎng)站的設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息。
本實(shí)施例中,認(rèn)證插件的第三函數(shù)具體為onUserTwofactorAuthenticate函數(shù)。
第二十發(fā)送模塊,用于向認(rèn)證服務(wù)器發(fā)送包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息中的用戶標(biāo)識(shí)的第二認(rèn)證請(qǐng)求;
第二十三接收模塊,用于接收來自認(rèn)證服務(wù)器的第二認(rèn)證結(jié)果;
第二十二發(fā)送模塊,用于向網(wǎng)站發(fā)送第二認(rèn)證結(jié)果。
當(dāng)本實(shí)施例中提供的裝置中還包括認(rèn)證插件時(shí),裝置中還可以包括:瀏覽器;瀏覽器包括:第十七接收模塊、第四顯示模塊和第十六發(fā)送模塊;
第十七接收模塊,用于接收來自認(rèn)證插件的設(shè)備認(rèn)證請(qǐng)求;
第四顯示模塊,用于當(dāng)?shù)谑呓邮漳K接收到來自認(rèn)證插件的設(shè)備認(rèn)證請(qǐng)求后,在認(rèn)證等待頁面提示用戶按下認(rèn)證設(shè)備的按鈕或者用于顯示認(rèn)證等待頁面;
第十六發(fā)送模塊,用于向認(rèn)證設(shè)備發(fā)送設(shè)備認(rèn)證請(qǐng)求。
當(dāng)本實(shí)施例中提供的裝置中還包括認(rèn)證插件時(shí),裝置中還可以包括:認(rèn)證設(shè)備和瀏覽器;
認(rèn)證設(shè)備包括:第十八接收模塊和第十七發(fā)送模塊;
瀏覽器包括:第十九接收模塊和第十八發(fā)送模塊;
第十八接收模塊,用于接收來自瀏覽器的設(shè)備認(rèn)證請(qǐng)求;
第十七發(fā)送模塊,用于向?yàn)g覽器發(fā)送設(shè)備認(rèn)證數(shù)據(jù);
第十九接收模塊,用于接收來自認(rèn)證設(shè)備的設(shè)備認(rèn)證數(shù)據(jù);
第十八發(fā)送模塊,用于向網(wǎng)站發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息。
當(dāng)瀏覽器包括第十九接收模塊和第十八發(fā)送模塊時(shí),進(jìn)一步地,瀏覽器還包括:第二獲取模塊和第十二發(fā)送模塊;
第二獲取模塊,用于獲取用戶登錄信息;
第十二發(fā)送模塊,用于向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求。
本實(shí)施例中,瀏覽器中包括瀏覽器腳本;相應(yīng)地:
第二獲取模塊,具體用于當(dāng)瀏覽器中的瀏覽器腳本監(jiān)聽到登錄點(diǎn)擊事件后,通過瀏覽器腳本獲取瀏覽器頁面中的用戶登錄信息;
第十二發(fā)送模塊,具體用于通過瀏覽器腳本生成包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求,向認(rèn)證插件發(fā)送包括用戶登錄信息中的用戶標(biāo)識(shí)的獲取設(shè)備認(rèn)證請(qǐng)求;
第十八發(fā)送模塊,具體用于通過瀏覽器腳本向網(wǎng)站發(fā)送設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息。
進(jìn)一步地,瀏覽器中還包括:第一賦值模塊;
第一賦值模塊,用于當(dāng)?shù)谑甙l(fā)送模塊向?yàn)g覽器發(fā)送設(shè)備認(rèn)證數(shù)據(jù)后,通過瀏覽器腳本將設(shè)備認(rèn)證數(shù)據(jù)賦值給瀏覽器頁面中的隱藏表單項(xiàng);
第十八發(fā)送模塊,具體用于通過瀏覽器腳本向網(wǎng)站發(fā)送隱藏表單項(xiàng)和用戶登錄信息。
當(dāng)本實(shí)施例中提供的裝置中還包括認(rèn)證插件時(shí),還可以包括:認(rèn)證設(shè)備;
若第四顯示模塊,用于當(dāng)?shù)谑呓邮漳K接收到來自認(rèn)證插件的設(shè)備認(rèn)證請(qǐng)求后,顯示認(rèn)證等待頁面;則認(rèn)證設(shè)備包括:第六顯示模塊、第四獲取模塊和第二生成模塊;
第四獲取模塊,用于等待用戶按下按鈕,獲取用戶按下按鈕的信息;
第二生成模塊,用于獲取與設(shè)備認(rèn)證請(qǐng)求中的密鑰句柄對(duì)應(yīng)的第一私鑰,使用第一私鑰對(duì)設(shè)備認(rèn)證請(qǐng)求中的第二挑戰(zhàn)值和應(yīng)用參數(shù)簽名生成第二簽名值,生成包括第二簽名值的設(shè)備認(rèn)證數(shù)據(jù)。
第六顯示模塊,用于當(dāng)?shù)谒墨@取模塊獲取到用戶按下按鈕的信息前,提示用戶按下認(rèn)證設(shè)備的按鈕。
若第四顯示模塊,用于當(dāng)?shù)谑呓邮漳K接收到來自認(rèn)證插件的設(shè)備認(rèn)證請(qǐng)求后,在認(rèn)證等待頁面提示用戶按下認(rèn)證設(shè)備的按鈕;則認(rèn)證設(shè)備包括:第四獲取模塊和第二生成模塊;
第四獲取模塊,用于等待用戶按下按鈕,獲取用戶按下按鈕的信息;
第二生成模塊,用于獲取與設(shè)備認(rèn)證請(qǐng)求中的密鑰句柄對(duì)應(yīng)的第一私鑰,使用第一私鑰對(duì)設(shè)備認(rèn)證請(qǐng)求中的第二挑戰(zhàn)值和應(yīng)用參數(shù)簽名生成第二簽名值,生成包括第二簽名值的設(shè)備認(rèn)證數(shù)據(jù)。
當(dāng)本實(shí)施例中提供的裝置中還包括認(rèn)證插件和認(rèn)證設(shè)備時(shí),裝置中還可以包括:認(rèn)證服務(wù)器;
認(rèn)證服務(wù)器包括:第三獲取模塊、第十五接收模塊、第十四發(fā)送模塊、第二十二接收模塊、第二驗(yàn)簽?zāi)K和第二十一發(fā)送模塊;
第十五接收模塊,用于接收來自認(rèn)證插件的獲取設(shè)備認(rèn)證請(qǐng)求;
第三獲取模塊,用于獲取與獲取認(rèn)證設(shè)備請(qǐng)求中的用戶標(biāo)識(shí)對(duì)應(yīng)的密鑰句柄;
第十四發(fā)送模塊,用于向認(rèn)證插件發(fā)送包括密鑰句柄、自身的第二挑戰(zhàn)值和應(yīng)用參數(shù)的設(shè)備認(rèn)證請(qǐng)求;
第二十二接收模塊,用于接收來自認(rèn)證插件的包括設(shè)備認(rèn)證數(shù)據(jù)和用戶登錄信息中的用戶標(biāo)識(shí)的第二認(rèn)證請(qǐng)求;
第二驗(yàn)簽?zāi)K,用于獲取與第二認(rèn)證請(qǐng)求中的用戶標(biāo)識(shí)對(duì)應(yīng)的第一公鑰,使用第一公鑰對(duì)第二簽名值驗(yàn)簽,得到第二認(rèn)證結(jié)果;
第二十一發(fā)送模塊,用于向認(rèn)證插件發(fā)送第二認(rèn)證結(jié)果。
當(dāng)本實(shí)施例中提供的裝置中還包括認(rèn)證插件時(shí),裝置中還可以包括:網(wǎng)站和瀏覽器;
網(wǎng)站包括:第二十四接收模塊、第三判斷模塊和第二十三發(fā)送模塊;瀏覽器包括:第二十四接收模塊和第五顯示模塊;
第二十四接收模塊,用于接收來自認(rèn)證插件的第二認(rèn)證結(jié)果;
第三判斷模塊,用于根據(jù)第二認(rèn)證結(jié)果判斷用戶是否登錄成功;
第二十三發(fā)送模塊,用于當(dāng)?shù)谌袛嗄K判斷為是后,向?yàn)g覽器發(fā)送登錄成功信息;當(dāng)?shù)谌袛嗄K判斷為否后,向?yàn)g覽器發(fā)送登錄失敗信息;
第二十四接收模塊,用于接收來自網(wǎng)站的登錄成功信息或登錄失敗信息;
第五顯示模塊,用于當(dāng)?shù)诙慕邮漳K接收到登錄成功信息后,顯示用戶登錄成功;當(dāng)?shù)诙慕邮漳K接收到登錄失敗信息后,顯示用戶登錄失敗。
本實(shí)施例提供了一種認(rèn)證設(shè)備與網(wǎng)站的集成裝置,將認(rèn)證設(shè)備與網(wǎng)站集成在一起,實(shí)現(xiàn)用戶在網(wǎng)站上的注冊(cè)和認(rèn)證。
以上所述,僅為本發(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)。