欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種身份認(rèn)證方法、系統(tǒng)及設(shè)備的制作方法

文檔序號(hào):7794519閱讀:219來(lái)源:國(guó)知局
一種身份認(rèn)證方法、系統(tǒng)及設(shè)備的制作方法
【專利摘要】本發(fā)明公開了一種身份認(rèn)證方法、系統(tǒng)及設(shè)備,動(dòng)態(tài)令牌根據(jù)不同的用途代碼生成不同的計(jì)算密鑰,并根據(jù)各個(gè)計(jì)算密鑰生成分別適用于各個(gè)應(yīng)用場(chǎng)景的動(dòng)態(tài)口令;相應(yīng)地,認(rèn)證服務(wù)器根據(jù)不同的用途代碼對(duì)適用于各個(gè)應(yīng)用場(chǎng)景的動(dòng)態(tài)口令進(jìn)行認(rèn)證,降低了用于生成動(dòng)態(tài)口令的密鑰被竊取的風(fēng)險(xiǎn),提高了令牌認(rèn)證系統(tǒng)的安全性。
【專利說(shuō)明】一種身份認(rèn)證方法、系統(tǒng)及設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全領(lǐng)域,特別涉及一種身份認(rèn)證方法、系統(tǒng)及設(shè)備。
【背景技術(shù)】
[0002]動(dòng)態(tài)令牌是一種用于生成動(dòng)態(tài)口令的設(shè)備,廣泛應(yīng)用于網(wǎng)銀、電信運(yùn)營(yíng)商和電子政務(wù)等應(yīng)用領(lǐng)域。動(dòng)態(tài)令牌所生成的動(dòng)態(tài)口令可用于身份認(rèn)證,能夠有效提高身份認(rèn)證的安全性。
[0003]發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下缺陷:
[0004]動(dòng)態(tài)令牌根據(jù)自身保存的種子密鑰生成動(dòng)態(tài)口令,該種子密鑰是動(dòng)態(tài)令牌中保存的唯一的密鑰信息,一旦被竊取,將無(wú)法保證身份認(rèn)證的安全性。

【發(fā)明內(nèi)容】

[0005]本發(fā)明提供了一種身份認(rèn)證方法、系統(tǒng)及設(shè)備,以解決現(xiàn)有技術(shù)中的令牌認(rèn)證系統(tǒng)的安全性缺陷。
[0006]本發(fā)明提供了一種身份認(rèn)證方法,應(yīng)用于包括動(dòng)態(tài)令牌、客戶端和認(rèn)證服務(wù)器的系統(tǒng)中,所述方法包括以下步驟:
[0007]所述認(rèn)證服務(wù)器接收來(lái)自所述客戶端的第一操作請(qǐng)求,生成第一挑戰(zhàn)碼,將所述第一挑戰(zhàn)碼保存為與所述第一操作請(qǐng)求中的身份信息相對(duì)應(yīng)的信息,將所述第一挑戰(zhàn)碼發(fā)送給所述客戶端;
[0008]所述客戶端顯示所述第一挑戰(zhàn)碼;
[0009]當(dāng)所述動(dòng)態(tài)令牌獲取到用戶輸入的所述第一挑戰(zhàn)碼,檢測(cè)到第一按鍵被觸發(fā)時(shí),所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第一用途代碼進(jìn)行散列,將得到的第一散列數(shù)據(jù)作為第一計(jì)算密鑰,對(duì)所述第一計(jì)算密鑰、第一時(shí)間信息和所述第一挑戰(zhàn)碼進(jìn)行散列,得到第二散列數(shù)據(jù);
[0010]所述動(dòng)態(tài)令牌對(duì)所述第二散列數(shù)據(jù)進(jìn)行截位,將得到的第一截位結(jié)果作為第一認(rèn)證口令進(jìn)行顯示;
[0011]所述客戶端獲取用戶輸入的所述第一認(rèn)證口令,生成包含所述第一認(rèn)證口令和身份信息的第一認(rèn)證請(qǐng)求,將所述第一認(rèn)證請(qǐng)求發(fā)送給所述認(rèn)證服務(wù)器;
[0012]所述認(rèn)證服務(wù)器獲取所述第一認(rèn)證請(qǐng)求中的身份信息,檢索與所述第一認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和第一挑戰(zhàn)碼,對(duì)檢索到的工作密鑰和自身保存的所述第一用途代碼進(jìn)行散列,將得到的第三散列數(shù)據(jù)作為第二計(jì)算密鑰,對(duì)所述第二計(jì)算密鑰、第二時(shí)間信息和檢索到的所述第一挑戰(zhàn)碼進(jìn)行散列,得到第四散列數(shù)據(jù);
[0013]所述認(rèn)證服務(wù)器對(duì)所述第四散列數(shù)據(jù)進(jìn)行截位,將得到的第二截位結(jié)果作為計(jì)算得到的第一認(rèn)證口令,判斷所述計(jì)算得到的第一認(rèn)證口令是否與從所述第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令匹配,如果是,則向所述客戶端發(fā)送認(rèn)證成功消息;否則,向所述客戶端發(fā)送認(rèn)證失敗消息。[0014]本發(fā)明還提供了一種動(dòng)態(tài)令牌的工作方法,包括以下步驟:
[0015]Al、所述動(dòng)態(tài)令牌等待用戶觸發(fā)按鍵;
[0016]A2、當(dāng)所述動(dòng)態(tài)令牌的按鍵被觸發(fā)時(shí),所述動(dòng)態(tài)令牌對(duì)被觸發(fā)的按鍵進(jìn)行判斷,如果是第一按鍵,則執(zhí)行步驟A3 ;如果是第二按鍵,則執(zhí)行步驟A5 ;
[0017]A3、所述動(dòng)態(tài)令牌獲取用戶輸入的登錄挑戰(zhàn)碼,對(duì)自身保存的工作密鑰和第一用途代碼進(jìn)行散列,將得到的第一散列數(shù)據(jù)作為第一計(jì)算密鑰,對(duì)所述第一計(jì)算密鑰、第一時(shí)間信息和所述登錄挑戰(zhàn)碼進(jìn)行散列,得到第二散列數(shù)據(jù);
[0018]A4、所述動(dòng)態(tài)令牌對(duì)所述第二散列數(shù)據(jù)進(jìn)行截位,將得到的第一截位結(jié)果作為登錄口令進(jìn)行顯示,并返回步驟Al ;
[0019]A5、所述動(dòng)態(tài)令牌獲取用戶輸入的簽名挑戰(zhàn)碼,對(duì)自身保存的工作密鑰和第二用途代碼進(jìn)行散列,將得到的第三散列數(shù)據(jù)作為第二計(jì)算密鑰,對(duì)所述第二計(jì)算密鑰、第二時(shí)間信息和所述簽名挑戰(zhàn)碼進(jìn)行散列,得到第四散列數(shù)據(jù)
[0020]A6、所述動(dòng)態(tài)令牌對(duì)所述第四散列數(shù)據(jù)進(jìn)行截位,將得到的第二截位結(jié)果作為簽名口令進(jìn)行顯示,并返回步驟Al。
[0021]本發(fā)明還提供了一種認(rèn)證服務(wù)器的工作方法,包括以下步驟:
[0022]Cl、所述認(rèn)證服務(wù)器等待接收來(lái)自客戶端的請(qǐng)求;
[0023]C2、當(dāng)接收到來(lái)自所述客戶端的請(qǐng)求后,所述認(rèn)證服務(wù)器對(duì)接收到的請(qǐng)求進(jìn)行判斷,如果是登錄請(qǐng)求,則執(zhí)行步驟C3 ;如果是登錄認(rèn)證請(qǐng)求,則執(zhí)行步驟C4 ;如果是簽名請(qǐng)求,則執(zhí)行步驟C6 ;如果是簽名認(rèn)證請(qǐng)求,則執(zhí)行步驟C7 ;
[0024]C3、所述認(rèn)證服務(wù)器生成登錄挑戰(zhàn)碼,將所述登錄挑戰(zhàn)碼保存為與所述登錄請(qǐng)求中的身份信息相對(duì)應(yīng)的信息,將所述登錄挑戰(zhàn)碼發(fā)送給所述客戶端,并返回步驟Cl ;
[0025]C4、所述認(rèn)證服務(wù)器檢索與所述登錄認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和登錄挑戰(zhàn)碼,對(duì)檢索到的工作密鑰和自身保存的第一用途代碼進(jìn)行散列,將得到的第十二散列數(shù)據(jù)作為第四計(jì)算密鑰,對(duì)所述第四計(jì)算密鑰、第五時(shí)間信息和檢索到的登錄挑戰(zhàn)碼進(jìn)行散列,得到第十三散列數(shù)據(jù);
[0026]C5、所述認(rèn)證服務(wù)器對(duì)所述第十三散列數(shù)據(jù)進(jìn)行截位,將得到的第七截位結(jié)果作為計(jì)算得到的登錄口令,判斷所述計(jì)算得到的登錄口令是否與從所述登錄認(rèn)證請(qǐng)求中獲取的登錄口令匹配,如果是,則向所述客戶端發(fā)送認(rèn)證成功消息,并返回步驟Cl ;否則,向所述客戶端發(fā)送認(rèn)證失敗消息,并返回步驟Cl ;
[0027]C6、所述認(rèn)證服務(wù)器生成簽名挑戰(zhàn)碼,將所述簽名挑戰(zhàn)碼保存為與所述簽名請(qǐng)求中的身份信息相對(duì)應(yīng)的信息,將所述簽名挑戰(zhàn)碼發(fā)送給所述客戶端,并返回步驟Cl ;
[0028]C7、所述認(rèn)證服務(wù)器檢索與所述簽名認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和簽名挑戰(zhàn)碼,對(duì)檢索到的工作密鑰和自身保存的第二用途代碼進(jìn)行散列,將得到的第十四散列數(shù)據(jù)作為第五計(jì)算密鑰,對(duì)所述第五計(jì)算密鑰、第六時(shí)間信息和檢索到的簽名挑戰(zhàn)碼進(jìn)行散列,得到第十五散列數(shù)據(jù);
[0029]C7、所述認(rèn)證服務(wù)器對(duì)所述第十五散列數(shù)據(jù)進(jìn)行截位,將得到的第八截位結(jié)果作為計(jì)算得到的簽名口令,判斷所述計(jì)算得到的簽名口令是否與從簽名認(rèn)證請(qǐng)求中獲取的簽名口令匹配,如果是,則向所述客戶端發(fā)送認(rèn)證成功消息,并返回步驟Cl ;否則,向所述客戶端發(fā)送認(rèn)證失敗消息,并返回步驟Cl。[0030]本發(fā)明還提供了一種身份認(rèn)證系統(tǒng),包括動(dòng)態(tài)令牌、客戶端和認(rèn)證服務(wù)器,所述認(rèn)證服務(wù)器包括:
[0031]第一接收模塊,用于接收來(lái)自所述客戶端的第一操作請(qǐng)求;
[0032]第一生成模塊,用于在所述第一接收模塊接收到所述第一操作請(qǐng)求后,生成第一挑戰(zhàn)碼,將所述第一挑戰(zhàn)碼保存為與所述第一操作請(qǐng)求中的身份信息相對(duì)應(yīng)的信息;
[0033]第一發(fā)送模塊,用于將所述第一生成模塊生成的所述第一挑戰(zhàn)碼發(fā)送給所述客戶端;
[0034]所述客戶端包括:
[0035]第二發(fā)送模塊,用于向所述認(rèn)證服務(wù)器發(fā)送所述第一操作請(qǐng)求;
[0036]第二接收模塊,用于接收來(lái)自所述認(rèn)證服務(wù)器的所述第一挑戰(zhàn)碼;
[0037]第一顯示模塊,用于顯示所述第一挑戰(zhàn)碼;
[0038]所述動(dòng)態(tài)令牌包括:
[0039]第一存儲(chǔ)模塊,用于保存工作密鑰和第一用途代碼;
[0040]第一獲取模塊,用于獲取用戶輸入的所述第一挑戰(zhàn)碼;
[0041]檢測(cè)模塊,用于檢測(cè)按鍵;
[0042]第一散列模塊,用于在所述檢測(cè)模塊檢測(cè)到第一按鍵被觸發(fā)時(shí),對(duì)所述第一存儲(chǔ)模塊保存的工作密鑰和第一用途代碼進(jìn)行散列,得到第一散列數(shù)據(jù);
[0043]第二散列模塊,用于將所述第一散列模塊散列得到的所述第一散列數(shù)據(jù)作為第一計(jì)算密鑰,對(duì)所述第一計(jì)算密鑰、第一時(shí)間信息和所述第一獲取模塊獲取到的所述第一挑戰(zhàn)碼進(jìn)行散列,得到第二散列數(shù)據(jù);
[0044]第一截位模塊,用于對(duì)所述第二散列模塊散列得到的所述第二散列數(shù)據(jù)進(jìn)行截位,得到第一截位結(jié)果;
[0045]第二顯示模塊,用于將所述第一截位模塊截位得到的第一截位結(jié)果作為第一認(rèn)證口令進(jìn)行顯示;
[0046]所述客戶端還包括:
[0047]第二獲取模塊,用于獲取用戶輸入的所述第一認(rèn)證口令;
[0048]第二生成模塊,用于生成包含身份信息和所述第一認(rèn)證口令的第一認(rèn)證請(qǐng)求;
[0049]所述第二發(fā)送模塊,還用于將所述第二生成模塊生成的所述第一認(rèn)證請(qǐng)求發(fā)送給所述認(rèn)證服務(wù)器;
[0050]所述認(rèn)證服務(wù)器中的所述第一接收模塊,還用于接收來(lái)自所述客戶端的所述第一認(rèn)證請(qǐng)求;
[0051 ] 所述認(rèn)證服務(wù)器還包括:
[0052]第二存儲(chǔ)模塊,用于保存所述第一用途代碼;
[0053]第三獲取模塊,用于獲取所述第一接收模塊接收到的所述第一認(rèn)證請(qǐng)求中的身份
信息;
[0054]檢索模塊,用于檢索與所述第一認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和第一挑戰(zhàn)碼;
[0055]第三散列模塊,用于對(duì)所述檢索模塊檢索到的工作密鑰和所述第二存儲(chǔ)模塊保存的所述第一用途代碼進(jìn)行散列,得到第三散列數(shù)據(jù);[0056]第四散列模塊,用于將所述第三散列模塊散列得到的第三散列數(shù)據(jù)作為第二計(jì)算密鑰,對(duì)所述第二計(jì)算密鑰、第二時(shí)間信息和檢索到的所述第一挑戰(zhàn)碼進(jìn)行散列,得到第四散列數(shù)據(jù);
[0057]第二截位模塊,用于對(duì)所述第四散列模塊散列得到的所述第四散列數(shù)據(jù)進(jìn)行截位,得到第二截位結(jié)果;
[0058]第一判斷模塊,用于將所述第二截位模塊截位得到的所述第二截位結(jié)果作為計(jì)算得到的第一認(rèn)證口令,判斷所述計(jì)算得到的第一認(rèn)證口令是否與從所述第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令匹配;
[0059]所述第一發(fā)送模塊,還用于在所述第一判斷模塊判斷出所述計(jì)算得到的第一認(rèn)證口令與從所述第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令匹配時(shí),向所述客戶端發(fā)送認(rèn)證成功消息;在所述第一判斷模塊判斷出所述計(jì)算得到的第一認(rèn)證口令與從所述第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令不匹配時(shí),向所述客戶端發(fā)送認(rèn)證失敗消息;
[0060]所述客戶端中的所述第二接收模塊,還用于接收來(lái)自所述認(rèn)證服務(wù)器的認(rèn)證成功消息或認(rèn)證失敗消息。
[0061]本發(fā)明還提供了一種動(dòng)態(tài)令牌,包括:
[0062]存儲(chǔ)模塊,用于保存工作密鑰、第一用途代碼和第二用途代碼;
[0063]獲取模塊,用于獲取用戶輸入的登錄挑戰(zhàn)碼和簽名挑戰(zhàn)碼;
[0064]檢測(cè)模塊,用于檢測(cè)按鍵;
[0065]第一判斷模塊,用于在所述檢測(cè)模塊檢測(cè)到所述動(dòng)態(tài)令牌的按鍵被觸發(fā)時(shí),對(duì)被觸發(fā)的按鍵進(jìn)行判斷;
[0066]第一散列模塊,用于在所述第一判斷模塊判斷出所述被觸發(fā)的按鍵為第一按鍵時(shí),對(duì)所述存儲(chǔ)模塊保存的工作密鑰和第一用途代碼進(jìn)行散列,得到第一散列數(shù)據(jù);在所述第一判斷模塊判斷出所述被觸發(fā)的按鍵為第二按鍵時(shí),對(duì)所述存儲(chǔ)模塊保存的工作密鑰和第二用途代碼進(jìn)行散列,得到第三散列數(shù)據(jù);
[0067]第二散列模塊,用于將所述第一散列模塊散列得到的第一散列數(shù)據(jù)作為第一計(jì)算密鑰,對(duì)所述第一計(jì)算密鑰、第一時(shí)間信息和所述獲取模塊獲取的登錄挑戰(zhàn)碼進(jìn)行散列,得到第二散列數(shù)據(jù);將所述第一散列模塊散列得到的第三散列數(shù)據(jù)作為第二計(jì)算密鑰,對(duì)所述第二計(jì)算密鑰、第二時(shí)間信息和所述獲取模塊獲取的簽名挑戰(zhàn)碼進(jìn)行散列,得到第四散列數(shù)據(jù);
[0068]截位模塊,用于對(duì)所述第二散列模塊散列得到的第二散列數(shù)據(jù)進(jìn)行截位,得到第一截位結(jié)果;對(duì)所述第二散列模塊散列得到的第四散列數(shù)據(jù)進(jìn)行截位,得到第二截位結(jié)果;
[0069]顯示模塊,用于將所述截位模塊截位得到的第一截位結(jié)果作為登錄口令進(jìn)行顯示,將所述截位模塊截位得到的第二截位結(jié)果作為簽名口令進(jìn)行顯示。
[0070]本發(fā)明還提供了一種認(rèn)證服務(wù)器,包括:
[0071]存儲(chǔ)模塊,用于保存第一用途代碼和第二用途代碼;
[0072]接收模塊,用于接收來(lái)自客戶端的請(qǐng)求;
[0073]第一判斷模塊,用于對(duì)所述接收模塊接收到的請(qǐng)求進(jìn)行判斷;
[0074]第一生成模塊,用于在所述第一判斷模塊判斷所述接收到的請(qǐng)求為登錄請(qǐng)求時(shí),生成登錄挑戰(zhàn)碼,將所述登錄挑戰(zhàn)碼保存為與所述登錄請(qǐng)求中的身份信息相對(duì)應(yīng)的信息;在所述第一判斷模塊判斷所述接收到的請(qǐng)求為簽名請(qǐng)求時(shí),生成簽名挑戰(zhàn)碼,將所述簽名挑戰(zhàn)碼保存為與所述簽名請(qǐng)求中的身份信息相對(duì)應(yīng)的信息;
[0075]發(fā)送模塊,用于將所述第一生成模塊生成的所述登錄挑戰(zhàn)碼和所述簽名挑戰(zhàn)碼發(fā)送給所述客戶端;
[0076]檢索模塊,用于在所述第一判斷模塊判斷出所述接收到的請(qǐng)求為登錄認(rèn)證請(qǐng)求時(shí),檢索與所述登錄認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和登錄挑戰(zhàn)碼;在所述第一判斷模塊判斷出所述接收到的請(qǐng)求為簽名認(rèn)證請(qǐng)求時(shí),檢索與所述簽名認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和簽名挑戰(zhàn)碼;
[0077]第一散列模塊,用于對(duì)所述檢索模塊檢索到的工作密鑰和所述存儲(chǔ)模塊保存的第一用途代碼進(jìn)行散列,得到第十二散列數(shù)據(jù);對(duì)所述檢索模塊檢索到的工作密鑰和所述存儲(chǔ)模塊保存的第二用途代碼進(jìn)行散列,得到第十四散列數(shù)據(jù);
[0078]第二散列模塊,用于將所述第一散列模塊散列得到的所述第十二散列數(shù)據(jù)作為第四計(jì)算密鑰,對(duì)所述第四計(jì)算密鑰、第五時(shí)間信息和所述檢索模塊檢索到的登錄挑戰(zhàn)碼進(jìn)行散列,得到第十三散列數(shù)據(jù);將所述第一散列模塊散列得到的第十四散列數(shù)據(jù)作為第五計(jì)算密鑰,對(duì)所述第五計(jì)算密鑰、第六時(shí)間信息和檢索到的簽名挑戰(zhàn)碼進(jìn)行散列,得到第十五散列數(shù)據(jù);
[0079]截位模塊,用于對(duì)所述第二散列模塊散列得到的所述第十三散列數(shù)據(jù)進(jìn)行截位,得到第七截位結(jié)果;對(duì)所述第二散列模塊散列得到的所述第十五散列數(shù)據(jù)進(jìn)行截位,得到第八截位結(jié)果;
[0080]第二判斷模塊,用于將所述截位模塊截位得到的第七截位結(jié)果作為計(jì)算得到的登錄口令,判斷所述計(jì)算得到的登錄口令是否與從所述登錄認(rèn)證請(qǐng)求中獲取的登錄口令匹配;將所述截位模塊截位得到的第八截位結(jié)果作為計(jì)算得到的簽名口令,判斷所述計(jì)算得到的簽名口令是否與從所述簽名認(rèn)證請(qǐng)求中獲取的簽名口令匹配;
[0081]所述發(fā)送模塊,還用于在所述第二判斷模塊判斷出所述計(jì)算得到的登錄口令與從所述登錄認(rèn)證請(qǐng)求中獲取的登錄口令匹配時(shí),向所述客戶端發(fā)送認(rèn)證成功消息;在所述第二判斷模塊判斷出所述計(jì)算得到的登錄口令與從所述登錄認(rèn)證請(qǐng)求中獲取的登錄口令不匹配時(shí),向所述客戶端發(fā)送認(rèn)證失敗消息;在所述第二判斷模塊判斷出所述計(jì)算得到的簽名口令與從所述簽名認(rèn)證請(qǐng)求中獲取的簽名口令匹配時(shí),向所述客戶端發(fā)送認(rèn)證成功消息;在所述第二判斷模塊判斷出所述計(jì)算得到的簽名口令與從所述簽名認(rèn)證請(qǐng)求中獲取的簽名口令不匹配時(shí),向所述客戶端發(fā)送認(rèn)證失敗消息。
[0082]本發(fā)明達(dá)到的有益效果:動(dòng)態(tài)令牌根據(jù)不同的用途代碼生成不同的計(jì)算密鑰,并根據(jù)各個(gè)計(jì)算密鑰生成分別適用于各個(gè)應(yīng)用場(chǎng)景的動(dòng)態(tài)口令;相應(yīng)地,認(rèn)證服務(wù)器根據(jù)不同的用途代碼對(duì)適用于各個(gè)應(yīng)用場(chǎng)景的動(dòng)態(tài)口令進(jìn)行認(rèn)證,降低了用于生成動(dòng)態(tài)口令的密鑰被竊取的風(fēng)險(xiǎn),提高了令牌認(rèn)證系統(tǒng)的安全性。
【專利附圖】

【附圖說(shuō)明】
[0083]圖1為本發(fā)明實(shí)施例一中的一種身份認(rèn)證方法流程圖;
[0084]圖2為本發(fā)明實(shí)施例一中的另一種身份認(rèn)證方法流程圖;[0085]圖3為本發(fā)明實(shí)施例一中的動(dòng)態(tài)令牌的解鎖方法流程圖;
[0086]圖4為本發(fā)明實(shí)施例一中的動(dòng)態(tài)令牌的同步方法流程圖;
[0087]圖5為本發(fā)明實(shí)施例一中的動(dòng)態(tài)令牌的激活方法流程圖;
[0088]圖6和圖7為本發(fā)明實(shí)施例二中的動(dòng)態(tài)令牌的工作方法流程圖;
[0089]圖8和圖9為本發(fā)明實(shí)施例二中的認(rèn)證服務(wù)器的工作方法流程圖;
[0090]圖10為本發(fā)明實(shí)施例三中的身份認(rèn)證系統(tǒng)的結(jié)構(gòu)示意圖;
[0091]圖11為本發(fā)明實(shí)施例四中的動(dòng)態(tài)令牌的結(jié)構(gòu)示意圖;
[0092]圖12為本發(fā)明實(shí)施例四中的認(rèn)證服務(wù)器的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0093]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0094]本發(fā)明實(shí)施例的技術(shù)方案應(yīng)用于包括動(dòng)態(tài)令牌、客戶端和認(rèn)證服務(wù)器的令牌認(rèn)證系統(tǒng)中,其中,動(dòng)態(tài)令牌用于生成動(dòng)態(tài)口令,認(rèn)證服務(wù)器用于通過(guò)客戶端獲取動(dòng)態(tài)令牌生成的動(dòng)態(tài)口令,對(duì)動(dòng)態(tài)口令進(jìn)行認(rèn)證,并將認(rèn)證結(jié)果返回給客戶端,通過(guò)客戶端顯示認(rèn)證結(jié)果O
[0095]實(shí)施例一
[0096]如圖1所示,為本發(fā)明實(shí)施例一中的一種身份認(rèn)證方法流程圖,包括以下步驟:
[0097]步驟101,客戶端向認(rèn)證服務(wù)器發(fā)送第一操作請(qǐng)求。
[0098]其中,第一操作請(qǐng)求可以包含身份信息,該身份信息可以是用戶名,也可以是令牌序列號(hào),還可以是用于標(biāo)識(shí)動(dòng)態(tài)令牌用戶的身份的其他信息。
[0099]步驟102,認(rèn)證服務(wù)器生成第一挑戰(zhàn)碼,將該第一挑戰(zhàn)碼保存為與第一操作請(qǐng)求中的身份信息相對(duì)應(yīng)的信息。
[0100]具體地,當(dāng)?shù)谝徊僮髡?qǐng)求為登錄請(qǐng)求時(shí),認(rèn)證服務(wù)器可以生成隨機(jī)數(shù),將該隨機(jī)數(shù)保存為與第一操作請(qǐng)求中的身份信息對(duì)應(yīng)的第一挑戰(zhàn)碼。其中,認(rèn)證服務(wù)器生成的隨機(jī)數(shù)可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),例如,“012345”。
[0101]當(dāng)?shù)谝徊僮髡?qǐng)求為簽名請(qǐng)求時(shí),認(rèn)證服務(wù)器可以將業(yè)務(wù)數(shù)據(jù)的部分或全部保存為與第一操作請(qǐng)求中的身份信息對(duì)應(yīng)的第一挑戰(zhàn)碼;也可以生成隨機(jī)數(shù),將該隨機(jī)數(shù)與業(yè)務(wù)數(shù)據(jù)的部分或全部進(jìn)行組合,將組合得到的數(shù)據(jù)保存為與第一操作請(qǐng)求中的身份信息對(duì)應(yīng)的第一挑戰(zhàn)碼。
[0102]步驟103,認(rèn)證服務(wù)器向客戶端發(fā)送第一挑戰(zhàn)碼。
[0103]步驟104,客戶端顯示第一挑戰(zhàn)碼。
[0104]步驟105,動(dòng)態(tài)令牌獲取用戶輸入的第一挑戰(zhàn)碼。
[0105]步驟106,動(dòng)態(tài)令牌檢測(cè)到第一按鍵被觸發(fā),對(duì)自身保存的工作密鑰和第一用途代碼進(jìn)行散列,將得到的第一散列數(shù)據(jù)作為第一計(jì)算密鑰。
[0106]具體地,動(dòng)態(tài)令牌可以將自身保存的工作密鑰和第一用途代碼組合成第一數(shù)據(jù),對(duì)第一數(shù)據(jù)進(jìn)行填充,得到第一消息,并對(duì)第一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第一散列數(shù)據(jù)。
[0107]本實(shí)施例中,工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第一用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)工作密鑰和第一用途代碼散列得到的第一散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0108]例如,動(dòng)態(tài)令牌中的第一用途代碼為“00000001 ”,工作密鑰為“ a26dl80368a3775b810eb54193804af4c5edc74d3aldddca28ba700091e99b03”,根據(jù)工作密鑰和第一用途代碼散列得到的第一散列數(shù)據(jù)為 “27AD795688C800C1FC2C1787FDDA3FB4E8A9108B538C96E666BB860B1FDA3E56”。
[0109]步驟107,動(dòng)態(tài)令牌對(duì)第一計(jì)算密鑰、第一時(shí)間信息和第一挑戰(zhàn)碼進(jìn)行散列,得到
第二散列數(shù)據(jù)。
[0110]具體地,動(dòng)態(tài)令牌可以將第一計(jì)算密鑰、第一時(shí)間信息以及用戶輸入的第一挑戰(zhàn)碼組合成第二數(shù)據(jù),對(duì)第二數(shù)據(jù)進(jìn)行填充,得到第二消息,并對(duì)第二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第二散列數(shù)據(jù)。
[0111]本實(shí)施例中,第一計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第一時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),用戶輸入的第一挑戰(zhàn)碼可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),根據(jù)第一計(jì)算密鑰、第一時(shí)間信息和第一挑戰(zhàn)碼散列得到的第二散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0112]例如,第一時(shí)間信息為“00000000015829CE,,,用戶輸入的第一挑戰(zhàn)碼為“012345”,第一計(jì)算密鑰為 “27AD795688C800C1FC2C1787FDDA3FB4E8A9108B538C96E666BB860B1FDA3E56”,動(dòng)態(tài)令牌計(jì)算得到的第二散列數(shù)據(jù)為 “57f72a79575d05d01b647192clfe2f72d593fe275ce3555695f8e25684e38bec”。
[0113]步驟108,動(dòng)態(tài)令牌對(duì)第二散列數(shù)據(jù)進(jìn)行截位,將得到的第一截位結(jié)果作為第一認(rèn)證口令進(jìn)行顯示。
[0114]具體地,動(dòng)態(tài)令牌可以對(duì)第二散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);動(dòng)態(tài)令牌使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第一截位結(jié)果。
[0115]本實(shí)施例中,第二散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),動(dòng)態(tài)令牌可以將第二散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,動(dòng)態(tài)令牌獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第一截位結(jié)果。
[0116]例如,動(dòng)態(tài)令牌計(jì)算得到的第二散列數(shù)據(jù)為“57f72a79575d05d01b647192clfe2f72d593fe275ce3555695f8e25684e38bec”,第一截位結(jié)果為 “126092”,即,第一認(rèn)證 口令為“126092”。
[0117]步驟109,客戶端獲取用戶輸入的第一認(rèn)證口令。
[0118]步驟110,客戶端生成包含第一認(rèn)證口令和身份信息的第一認(rèn)證請(qǐng)求。
[0119]步驟111,客戶端向認(rèn)證服務(wù)器發(fā)送第一認(rèn)證請(qǐng)求。
[0120]步驟112,認(rèn)證服務(wù)器根據(jù)第一認(rèn)證請(qǐng)求中的身份信息,檢索與該身份信息對(duì)應(yīng)的工作密鑰,對(duì)檢索到的工作密鑰和自身保存的第一用途代碼進(jìn)行散列,將得到的第三散列數(shù)據(jù)作為第二計(jì)算密鑰。
[0121]具體地,認(rèn)證服務(wù)器可以將檢索到的工作密鑰和第一用途代碼組合成第三數(shù)據(jù),對(duì)第三數(shù)據(jù)進(jìn)行填充,得到第三消息,并對(duì)第三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第三散列數(shù)據(jù)。
[0122]本實(shí)施例中,認(rèn)證服務(wù)器檢索到的工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第一用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)檢索到的工作密鑰和第一用途代碼散列得到的第三散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0123]步驟113,認(rèn)證服務(wù)器根據(jù)第一認(rèn)證請(qǐng)求中的身份信息,檢索與該身份信息對(duì)應(yīng)的第一挑戰(zhàn)碼。
[0124]步驟114,認(rèn)證服務(wù)器根據(jù)令牌偏移時(shí)間和系統(tǒng)時(shí)間獲取第二時(shí)間信息,對(duì)第二計(jì)算密鑰、第二時(shí)間信息和檢索到的第一挑戰(zhàn)碼進(jìn)行散列,得到第四散列數(shù)據(jù)。
[0125]具體地,認(rèn)證服務(wù)器可以將第二計(jì)算密鑰、第二時(shí)間信息以及檢索到的第一挑戰(zhàn)碼組合成第四數(shù)據(jù),對(duì)第四數(shù)據(jù)進(jìn)行填充,得到第四消息,并對(duì)第四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第四散列數(shù)據(jù)。
[0126]本實(shí)施例中,第二計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第二時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),檢索到的第一挑戰(zhàn)碼可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),根據(jù)第二計(jì)算密鑰、第二時(shí)間信息和檢索到的第一挑戰(zhàn)碼散列得到的第四散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0127]步驟115,認(rèn)證服務(wù)器對(duì)第四散列數(shù)據(jù)進(jìn)行截位,將得到的第二截位結(jié)果作為計(jì)算得到的第一認(rèn)證口令。
[0128]具體地,認(rèn)證服務(wù)器可以對(duì)第四散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組 合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);認(rèn)證服務(wù)器使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第二截位結(jié)果。
[0129]本實(shí)施例中,第四散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),認(rèn)證服務(wù)器可以將第四散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,認(rèn)證服務(wù)器獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第~截位結(jié)果。
[0130]步驟116,認(rèn)證服務(wù)器判斷計(jì)算得到的第一認(rèn)證口令是否與從第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令匹配,如果是,則執(zhí)行步驟117 ;否則,執(zhí)行步驟118。
[0131]具體地,認(rèn)證服務(wù)器計(jì)算得到的第一認(rèn)證口令可以是一個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器可以判斷計(jì)算得到的第一認(rèn)證口令是否與從第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令相同,如果是,則確定計(jì)算得到的第一認(rèn)證口令與從第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令匹配;否則,確定計(jì)算得到的第一認(rèn)證口令與從第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令不匹配。
[0132]認(rèn)證服務(wù)器計(jì)算得到的第一認(rèn)證口令還可以是多個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器也可以判斷計(jì)算得到的第一認(rèn)證口令是否包含從第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令,如果是,則確定計(jì)算得到的第一認(rèn)證口令與從第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令匹配;否則,確定計(jì)算得到的第一認(rèn)證口令與從第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令不匹配。[0133]步驟117,認(rèn)證服務(wù)器向客戶端發(fā)送認(rèn)證成功消息。
[0134]步驟118,認(rèn)證服務(wù)器向客戶端發(fā)送認(rèn)證失敗消息。
[0135]本發(fā)明實(shí)施例中,第一操作請(qǐng)求可以為登錄請(qǐng)求,相應(yīng)地,第一認(rèn)證口令為登錄口令,第一認(rèn)證請(qǐng)求為登錄認(rèn)證請(qǐng)求;第一操作請(qǐng)求還可以為簽名請(qǐng)求,相應(yīng)地,第一認(rèn)證口令為簽名口令,第一認(rèn)證請(qǐng)求為簽名認(rèn)證請(qǐng)求。
[0136]如圖2所示,為本發(fā)明實(shí)施例一中的另一種身份認(rèn)證方法流程圖,包括以下步驟:
[0137]步驟201,客戶端向認(rèn)證服務(wù)器發(fā)送第二操作請(qǐng)求。
[0138]步驟202,認(rèn)證服務(wù)器生成第二挑戰(zhàn)碼,將該第二挑戰(zhàn)碼保存為與第二操作請(qǐng)求中的身份信息相對(duì)應(yīng)的信息。
[0139]具體地,當(dāng)?shù)诙僮髡?qǐng)求為登錄請(qǐng)求時(shí),認(rèn)證服務(wù)器可以生成隨機(jī)數(shù),將該隨機(jī)數(shù)保存為與第二操作請(qǐng)求中的身份信息對(duì)應(yīng)的第二挑戰(zhàn)碼。其中,認(rèn)證服務(wù)器生成的隨機(jī)數(shù)可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),例如,“012345”。
[0140]當(dāng)?shù)诙僮髡?qǐng)求為簽名請(qǐng)求時(shí),認(rèn)證服務(wù)器可以將業(yè)務(wù)數(shù)據(jù)的部分或全部保存為與第二操作請(qǐng)求中的身份信息對(duì)應(yīng)的第二挑戰(zhàn)碼;也可以生成隨機(jī)數(shù),將該隨機(jī)數(shù)與業(yè)務(wù)數(shù)據(jù)的部分或全部進(jìn)行組合,將組合得到的數(shù)據(jù)保存為與第二操作請(qǐng)求中的身份信息對(duì)應(yīng)的第二挑戰(zhàn)碼。
[0141]步驟203,認(rèn)證服務(wù)器發(fā)送第二挑戰(zhàn)碼給客戶端。
[0142]步驟204,客戶端顯示第二挑戰(zhàn)碼。
[0143]步驟205,動(dòng)態(tài)令牌獲取用戶輸入的第二挑戰(zhàn)碼。
[0144]步驟206,動(dòng)態(tài)令牌檢測(cè)到第二按鍵被觸發(fā),對(duì)自身保存的工作密鑰和第二用途代碼進(jìn)行散列,將得到的第五散列數(shù)據(jù)作為第三計(jì)算密鑰。
[0145]具體地,動(dòng)態(tài)令牌可以將自身保存的工作密鑰和第二用途代碼組合成第五數(shù)據(jù),對(duì)第五數(shù)據(jù)進(jìn)行填充,得到第五消息,并對(duì)第五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第五散列數(shù)據(jù)。
[0146]本實(shí)施例中,工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第二用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)工作密鑰和第二用途代碼散列得到的第五散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0147]例如,動(dòng)態(tài)令牌中的第二用途代碼為“00000002 ”,工作密鑰為“ a26dl80368a3775b810eb54193804af4c5edc74d3aldddca28ba700091e99b03”,根據(jù)工作密鑰和第二用途代碼散列得到的第五散列數(shù)據(jù)為 “8D5828922FEBFC8597FC7768A5CD856B45C3A104119BDE8B0E9A418D6A9AB768”。
[0148]步驟207,動(dòng)態(tài)令牌對(duì)第三計(jì)算密鑰、第三時(shí)間信息和第二挑戰(zhàn)碼進(jìn)行散列,得到第六散列數(shù)據(jù)。
[0149]具體地,動(dòng)態(tài)令牌可以將第三計(jì)算密鑰、第三時(shí)間信息以及用戶輸入的第二挑戰(zhàn)碼組合成第六數(shù)據(jù),對(duì)第六數(shù)據(jù)進(jìn)行填充,得到第六消息,并對(duì)第六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第六散列數(shù)據(jù)。
[0150]本實(shí)施例中,第三計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第三時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),用戶輸入的第二挑戰(zhàn)碼可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),根據(jù)第三計(jì)算密鑰、第三時(shí)間信息和第二挑戰(zhàn)碼散列得到的第六散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。[0151]例如,第三時(shí)間信息為“00000000015829CE”,用戶輸入的第二挑戰(zhàn)碼為“012345”,第三計(jì)算密鑰為 “8D5828922FEBFC8597FC7768A5CD856B45C3A104119BDE8B0E9A418D6A9AB768”,動(dòng)態(tài)令牌計(jì)算得到的第六散列數(shù)據(jù)為“228ff7a222fdf903b7c84926cebe47b42dc7d2el01da3e995dc402169a4b25da”。
[0152]步驟208,動(dòng)態(tài)令牌對(duì)第六散列數(shù)據(jù)進(jìn)行截位,將得到的第三截位結(jié)果作為第二認(rèn)證口令進(jìn)行顯示。
[0153]具體地,動(dòng)態(tài)令牌可以對(duì)第六散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);動(dòng)態(tài)令牌使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第三截位結(jié)果。
[0154]本實(shí)施例中,第六散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),動(dòng)態(tài)令牌可以將第六散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,動(dòng)態(tài)令牌獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第三截位結(jié)果。
[0155]例如,動(dòng)態(tài)令牌計(jì)算得到的第六散列數(shù)據(jù)為“228ff7a222fdf903b7c84926cebe47b42dc7d2el01da3e995dc402169a4b25da”,第三截位結(jié)果為 “821929”,即,第二認(rèn)證 口令為“821929”。
[0156]步驟209,客戶端獲取用戶輸入的第二認(rèn)證口令。
[0157]步驟210,客戶端生成包含第二認(rèn)證口令和身份信息的第二認(rèn)證請(qǐng)求。
[0158]步驟211,客戶端發(fā)送第二認(rèn)證請(qǐng)求給認(rèn)證服務(wù)器。
[0159]步驟212,認(rèn)證服務(wù)器根據(jù)第二認(rèn)證請(qǐng)求中的身份信息,檢索與該身份信息對(duì)應(yīng)的工作密鑰,對(duì)檢索到的工作密鑰和自身保存的第二用途代碼進(jìn)行散列,將得到的第七散列數(shù)據(jù)作為第四計(jì)算密鑰。
[0160]具體地,認(rèn)證服務(wù)器可以將檢索到的工作密鑰和第二用途代碼組合成第七數(shù)據(jù),對(duì)第七數(shù)據(jù)進(jìn)行填充,得到第七消息,并對(duì)第七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第七散列數(shù)據(jù)。
[0161]本實(shí)施例中,認(rèn)證服務(wù)器檢索到的工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第二用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)檢索到的工作密鑰和第二用途代碼散列得到的第七散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0162]步驟213,認(rèn)證服務(wù)器根據(jù)第二認(rèn)證請(qǐng)求中的身份信息,檢索與該身份信息對(duì)應(yīng)的第二挑戰(zhàn)碼。
[0163]步驟214,認(rèn)證服務(wù)器根據(jù)令牌偏移時(shí)間和系統(tǒng)時(shí)間獲取第四時(shí)間信息,對(duì)第四計(jì)算密鑰、第四時(shí)間信息和檢索到的第二挑戰(zhàn)碼進(jìn)行散列,得到第八散列數(shù)據(jù)。
[0164]具體地,認(rèn)證服務(wù)器可以將第四計(jì)算密鑰、第四時(shí)間信息以及檢索到的第二挑戰(zhàn)碼組合成第八數(shù)據(jù),對(duì)第八數(shù)據(jù)進(jìn)行填充,得到第八消息,并對(duì)第八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第八散列數(shù)據(jù)。
[0165]本實(shí)施例中,第四計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第四時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),檢索到的第二挑戰(zhàn)碼可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),根據(jù)第四計(jì)算密鑰、第四時(shí)間信息和檢索到的第二挑戰(zhàn)碼散列得到的第八散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0166]步驟215,認(rèn)證服務(wù)器對(duì)第八散列數(shù)據(jù)進(jìn)行截位,將得到的第四截位結(jié)果作為計(jì)算得到的第二認(rèn)證口令。
[0167]具體地,認(rèn)證服務(wù)器可以對(duì)第八散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);認(rèn)證服務(wù)器使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第四截位結(jié)果。
[0168]本實(shí)施例中,第八散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),認(rèn)證服務(wù)器可以將第八散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,認(rèn)證服務(wù)器獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第四截位結(jié)果。
[0169]步驟216,認(rèn)證服務(wù)器判斷計(jì)算得到的第二認(rèn)證口令是否與從第二認(rèn)證請(qǐng)求中獲取的第二認(rèn)證口令匹配,如果是,則執(zhí)行步驟217 ;否則,執(zhí)行步驟218。
[0170]具體地,認(rèn)證服務(wù)器計(jì)算得到的第二認(rèn)證口令可以是一個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器可以判斷計(jì)算得到的第二認(rèn)證口令是否與從第二認(rèn)證請(qǐng)求中獲取的第二認(rèn)證口令相同,如果是,則確定計(jì)算得到的第二認(rèn)證口令與從第二認(rèn)證請(qǐng)求中獲取的第二認(rèn)證口令匹配;否則,確定計(jì)算得到的第二認(rèn)證口令與從第二認(rèn)證請(qǐng)求中獲取的第二認(rèn)證口令不匹配。
[0171]認(rèn)證服務(wù)器計(jì)算得到的第二認(rèn)證口令還可以是多個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器也可以判斷計(jì)算得到的第二認(rèn)證口令是否包含從第二認(rèn)證請(qǐng)求中獲取的第二認(rèn)證口令,如果是,則確定計(jì)算得到的第二認(rèn)證口令與從第二認(rèn)證請(qǐng)求中獲取的第二認(rèn)證口令匹配;否則,確定計(jì)算得到的第二認(rèn)證口令與從第二認(rèn)證請(qǐng)求中獲取的第二認(rèn)證口令不匹配。
[0172]步驟217,認(rèn)證服務(wù)器向客戶端發(fā)送認(rèn)證成功消息。
[0173]步驟218,認(rèn)證服務(wù)器向客戶端發(fā)送認(rèn)證失敗消息。
[0174]本發(fā)明實(shí)施例中,第二操作請(qǐng)求可以為簽名請(qǐng)求,相應(yīng)地,第二認(rèn)證口令為簽名口令,第二認(rèn)證請(qǐng)求為簽名認(rèn)證請(qǐng)求,第一操作請(qǐng)求為登錄請(qǐng)求,第一認(rèn)證口令為登錄口令,第一認(rèn)證請(qǐng)求為登錄認(rèn)證請(qǐng)求。
[0175]第二操作請(qǐng)求還可以為登錄請(qǐng)求,相應(yīng)地,第二認(rèn)證口令為登錄口令,第二認(rèn)證請(qǐng)求為登錄認(rèn)證請(qǐng)求,第一操作請(qǐng)求為簽名請(qǐng)求,第一認(rèn)證口令為簽名口令,第一認(rèn)證請(qǐng)求為簽名認(rèn)證請(qǐng)求。
[0176]當(dāng)動(dòng)態(tài)令牌被鎖定后,動(dòng)態(tài)令牌可執(zhí)行解鎖操作。如圖3所示,為本發(fā)明實(shí)施例一中的動(dòng)態(tài)令牌的解鎖方法流程圖,包括以下步驟:
[0177]步驟301,動(dòng)態(tài)令牌顯示令牌鎖定信息,生成并顯示解鎖請(qǐng)求碼,提示用戶輸入解鎖碼。
[0178]步驟302,客戶端獲取用戶輸入的解鎖請(qǐng)求碼。
[0179]步驟303,客戶端生成包含解鎖請(qǐng)求碼和身份信息的解鎖請(qǐng)求。
[0180]步驟304,客戶端發(fā)送解鎖請(qǐng)求給認(rèn)證服務(wù)器。
[0181]步驟305,認(rèn)證服務(wù)器根據(jù)解鎖請(qǐng)求中的身份信息,檢索與該身份信息對(duì)應(yīng)的工作密鑰,對(duì)檢索到的工作密鑰和自身保存的第三用途代碼進(jìn)行散列,將得到的第九散列數(shù)據(jù)作為第五計(jì)算密鑰。
[0182]具體地,認(rèn)證服務(wù)器可以將檢索到的工作密鑰和第三用途代碼組合成第九數(shù)據(jù),對(duì)第九數(shù)據(jù)進(jìn)行填充,得到第九消息,并對(duì)第九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第九散列數(shù)據(jù)。
[0183]本實(shí)施例中,認(rèn)證服務(wù)器檢索到的工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第三用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)檢索到的工作密鑰和第三用途代碼散列得到的第九散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0184]步驟306,認(rèn)證服務(wù)器從解鎖請(qǐng)求中獲取解鎖請(qǐng)求碼,對(duì)第五計(jì)算密鑰和解鎖請(qǐng)求碼散列,得到第十散列數(shù)據(jù)。
[0185]具體地,認(rèn)證服務(wù)器可以將第五計(jì)算密鑰和獲取到的解鎖請(qǐng)求碼組合成第十?dāng)?shù)據(jù),對(duì)第十?dāng)?shù)據(jù)進(jìn)行填充,得到第十消息,并對(duì)第十消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十散列數(shù)據(jù)。
[0186]本實(shí)施例中,認(rèn)證服務(wù)器獲取到的解鎖請(qǐng)求碼可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),第五計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),根據(jù)第五計(jì)算密鑰和獲取到的解鎖請(qǐng)求碼散列得到的第十散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0187]步驟307,認(rèn)證服務(wù)器對(duì)第十散列數(shù)據(jù)進(jìn)行截位,將得到的第五截位結(jié)果作為解鎖碼,發(fā)送解鎖碼給客戶端。
[0188]具體地,認(rèn)證服務(wù)器可以對(duì)第十散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);認(rèn)證服務(wù)器使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第五截位結(jié)果。
[0189]本實(shí)施例中,第十散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),認(rèn)證服務(wù)器可以將第十散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,認(rèn)證服務(wù)器獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第五截位結(jié)果。
[0190]步驟308,客戶端顯示解鎖碼。
[0191]步驟309,動(dòng)態(tài)令牌獲取用戶輸入的解鎖碼。
[0192]步驟310,動(dòng)態(tài)令牌檢測(cè)到第三按鍵被觸發(fā),對(duì)自身保存的工作密鑰和第三用途代碼進(jìn)行散列,將得到的第十一散列數(shù)據(jù)作為第六計(jì)算密鑰。
[0193]具體地,動(dòng)態(tài)令牌可以將自身保存的工作密鑰和第三用途代碼組合成第十一數(shù)據(jù),對(duì)第十一數(shù)據(jù)進(jìn)行填充,得到第十一消息,并對(duì)第十一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十一散列數(shù)據(jù)。
[0194]本實(shí)施例中,工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第三用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)工作密鑰和第三用途代碼散列得到的第十一散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0195]例如,動(dòng)態(tài)令牌中的第三用途代碼為“00000003”,工作密鑰為“a26dl80368a3775b810eb54193804af4c5edc74d3aldddca28ba700091e99b03”,根據(jù)工作密鑰和第三用途代碼散列得到的第十一散列數(shù)據(jù)為 “AFCC4F6EAC971346E64D5F234505426558B84B61EAF8DFAA18E8DD885BF11E3F”。
[0196]步驟311,動(dòng)態(tài)令牌對(duì)第六計(jì)算密鑰和解鎖請(qǐng)求碼進(jìn)行散列,得到第十二散列數(shù)據(jù)。
[0197]具體地,動(dòng)態(tài)令牌可以將第六計(jì)算密鑰和解鎖請(qǐng)求碼組合成第十二數(shù)據(jù),對(duì)第十二數(shù)據(jù)進(jìn)行填充,得到第十二消息,并對(duì)第十二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十二散列數(shù)據(jù)。
[0198]本實(shí)施例中,第六計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),解鎖請(qǐng)求碼可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),根據(jù)第六計(jì)算密鑰和解鎖請(qǐng)求碼散列得到的第十二散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0199]例如,解鎖請(qǐng)求碼為“ 322337 ”,第六計(jì)算密鑰為“ AFCC4F6EAC971346E64D5F234505426558B84B61EAF8DFAA18E8DD885BF11E3F”,動(dòng)態(tài)令牌計(jì)算得到的第十二散列數(shù)據(jù)為“76d4bl25bel942f9e54dd6bcd0bde811673187a74b321084ce0df24c62809123,,o
[0200]步驟312,動(dòng)態(tài)令牌對(duì)第十二散列數(shù)據(jù)進(jìn)行截位,得到第六截位結(jié)果。
[0201]具體地,動(dòng)態(tài)令牌可以對(duì)第十二散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);動(dòng)態(tài)令牌使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第六截位結(jié)果。
[0202]本實(shí)施例中,第十二散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),動(dòng)態(tài)令牌可以將第十二散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,動(dòng)態(tài)令牌獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第六截位結(jié)果。
[0203]例如,動(dòng)態(tài)令牌計(jì)算得到的第十二散列數(shù)據(jù)為“76d4bl25bel942f9e54dd6bcd0bde811673187a74b321084ce0df24c62809123”,第六截位結(jié)果為 “783109”。
[0204]步驟313,動(dòng)態(tài)令牌判斷第六截位結(jié)果是否與解鎖碼相同,如果是,則執(zhí)行步驟314 ;否則,執(zhí)行步驟315。
[0205]步驟314,動(dòng)態(tài)令牌顯示解鎖成功信息,對(duì)解鎖失敗次數(shù)進(jìn)行初始化,對(duì)開機(jī)口令進(jìn)行重置,保存重置后的開機(jī)口令,結(jié)束。
[0206]步驟315,動(dòng)態(tài)令牌顯示解鎖失敗信息,更新解鎖失敗次數(shù)。
[0207]步驟316,動(dòng)態(tài)令牌判斷解鎖失敗次數(shù)是否等于第二預(yù)設(shè)次數(shù),如果是,則執(zhí)行步驟317 ;否則,返回步驟301。
[0208]步驟317,動(dòng)態(tài)令牌清空自身保存的原始種子密鑰和工作密鑰,顯示令牌自毀信息。
[0209]如圖4所示,為本發(fā)明實(shí)施例一中的動(dòng)態(tài)令牌的同步方法流程圖,包括以下步驟:
[0210]步驟401,動(dòng)態(tài)令牌檢測(cè)到第四按鍵被觸發(fā),對(duì)自身保存的工作密鑰和第三用途代碼進(jìn)行散列,將得到的第十一散列數(shù)據(jù)作為第六計(jì)算密鑰。
[0211]具體地,動(dòng)態(tài)令牌可以將自身保存的工作密鑰和第三用途代碼組合成第十一數(shù)據(jù),對(duì)第十一數(shù)據(jù)進(jìn)行填充,得到第十一消息,并對(duì)第十一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十一散列數(shù)據(jù)。
[0212]本實(shí)施例中,工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第三用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)工作密鑰和第三用途代碼散列得到的第十一散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0213]例如,動(dòng)態(tài)令牌中的第三用途代碼為“00000003”,工作密鑰為“a26dl80368a3775b810eb54193804af4c5edc74d3aldddca28ba700091e99b03”,根據(jù)工作密鑰和第三用途代碼散列得到的第十一散列數(shù)據(jù)為 “AFCC4F6EAC971346E64D5F234505426558B84B61EAF8DFAA18E8DD885BF11E3F”。
[0214]步驟402,動(dòng)態(tài)令牌對(duì)第六計(jì)算密鑰和第五時(shí)間信息進(jìn)行散列,得到第十三散列數(shù)據(jù)。
[0215]具體地,動(dòng)態(tài)令牌可以將第六計(jì)算密鑰和第五時(shí)間信息組合成第十三數(shù)據(jù),對(duì)第十三數(shù)據(jù)進(jìn)行填充,得到第十三消息,并對(duì)第十三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十三散列數(shù)據(jù)。
[0216]本實(shí)施例中,第六計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第五時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),根據(jù)第六計(jì)算密鑰和第五時(shí)間信息散列得到的第十三散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0217]例如,第五時(shí)間信息為“ 00000000015829CE ”,第六計(jì)算密鑰為“AFCC4F6EAC971346E64D5F234505426558B84B61EAF8DFAA18E8DD885BF11E3F”,動(dòng)態(tài)令牌計(jì)算得到的第十三散列數(shù)據(jù)為 “e2738d9f6628bb77d6ef329e91c462c6a03ec54cl9087fd23779a70530bb4a80”。
[0218]步驟403,動(dòng)態(tài)令牌對(duì)第十三散列數(shù)據(jù)進(jìn)行截位,得到第七截位結(jié)果。
[0219]具體地,動(dòng)態(tài)令牌可以對(duì)第十三散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);動(dòng)態(tài)令牌使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第七截位結(jié)果。
[0220]本實(shí)施例中,第十三散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),動(dòng)態(tài)令牌可以將第七散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,動(dòng)態(tài)令牌獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第七截位結(jié)果。
[0221]例如,動(dòng)態(tài)令牌計(jì)算得到的第十三散列數(shù)據(jù)為“e2738d9f6628bb77d6ef329e91c462c6a03ec54cl9087fd23779a70530bb4a80”,第七截位結(jié)果為 “590109”。
[0222]步驟404,動(dòng)態(tài)令牌對(duì)第六計(jì)算密鑰和第六時(shí)間信息進(jìn)行散列,得到第十四散列數(shù)據(jù)。
[0223]具體地,動(dòng)態(tài)令牌可以將第六計(jì)算密鑰和第六時(shí)間信息組合成第十四數(shù)據(jù),對(duì)第十四數(shù)據(jù)進(jìn)行填充,得到第十四消息,并對(duì)第十四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十四散列數(shù)據(jù)。其中,第六時(shí)間信息晚于第五時(shí)間信息。
[0224]本實(shí)施例中,第六計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第六時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),根據(jù)第六計(jì)算密鑰和第六時(shí)間信息散列得到的第十四散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。[0225]例如,第六時(shí)間信息為“00000000015829CF”,第六計(jì)算密鑰為“AFCC4F6EAC971346E64D5F234505426558B84B61EAF8DFAA18E8DD885BF11E3F”,動(dòng)態(tài)令牌計(jì)算得到的第十四散列數(shù)據(jù)為 “ec3cf5692ca775c90d59dee26870ecdlaf67faa0588787608e838c93fe6179d5,,。
[0226]步驟405,動(dòng)態(tài)令牌對(duì)第十四散列數(shù)據(jù)進(jìn)行截位,得到第八截位結(jié)果,將第七截位結(jié)果和第八截位結(jié)果分別作為第一同步碼和第二同步碼顯示。
[0227]具體地,動(dòng)態(tài)令牌可以對(duì)第十四散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);動(dòng)態(tài)令牌使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第八截位結(jié)果。
[0228]本實(shí)施例中,第十四散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),動(dòng)態(tài)令牌可以將第十四散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,動(dòng)態(tài)令牌獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第八截位結(jié)果。
[0229]例如,動(dòng)態(tài)令牌計(jì)算得到的第十四散列數(shù)據(jù)為“ec3cf5692ca775c90d59dee26870ecdlaf67faa0588787608e838c93fe6179d5”,第八截位結(jié)果為 “836749”,即,第一同步碼為“590109”,第二同步碼為 “836749”。
[0230]步驟406,客戶端獲取用戶輸入的第一同步碼和第二同步碼。
[0231]步驟407,客戶端生成包含第一同步碼、第二同步碼和身份信息的同步請(qǐng)求。
[0232]步驟408,客戶端發(fā)送同步請(qǐng)求給認(rèn)證服務(wù)器。
[0233]步驟409,認(rèn)證服務(wù)器根據(jù)同步請(qǐng)求中的身份信息,檢索與該身份信息對(duì)應(yīng)的工作密鑰,對(duì)該工作密鑰和第三用途代碼進(jìn)行散列,將得到的第九散列數(shù)據(jù)作為第五計(jì)算密鑰。
[0234]具體地,認(rèn)證服務(wù)器可以將檢索到的工作密鑰和第三用途代碼組合成第九數(shù)據(jù),對(duì)第九數(shù)據(jù)進(jìn)行填充,得到第九消息,并對(duì)第九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第九散列數(shù)據(jù)。
[0235]本實(shí)施例中,認(rèn)證服務(wù)器檢索到的工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第三用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)檢索到的工作密鑰和第三用途代碼散列得到的第九散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0236]步驟410,認(rèn)證服務(wù)器對(duì)第五計(jì)算密鑰和第七時(shí)間信息進(jìn)行散列,得到第十五散列數(shù)據(jù)。
[0237]具體地,認(rèn)證服務(wù)器可以將第五計(jì)算密鑰和第七時(shí)間信息組合成第十五數(shù)據(jù),對(duì)第十五數(shù)據(jù)進(jìn)行填充,得到第十五消息,并對(duì)第十五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十五散列數(shù)據(jù)。
[0238]本實(shí)施例中,第五計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第七時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),根據(jù)第五計(jì)算密鑰和第七時(shí)間信息散列得到的第十五散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0239]步驟411,認(rèn)證服務(wù)器對(duì)第十五散列數(shù)據(jù)進(jìn)行截位,將得到的第九截位結(jié)果作為第一同步口令。
[0240]具體地,認(rèn)證服務(wù)器可以對(duì)第十五散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);認(rèn)證服務(wù)器使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第九截位結(jié)果。
[0241]本實(shí)施例中,第十五散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),認(rèn)證服務(wù)器可以將第十五散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,認(rèn)證服務(wù)器獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第九截位結(jié)果。
[0242]步驟412,認(rèn)證服務(wù)器判斷第一同步口令是否與從同步請(qǐng)求中獲取的第一同步碼匹配,如果是,則執(zhí)行步驟414 ;否則,執(zhí)行步驟413。
[0243]具體地,第一同步口令可以是一個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器可以判斷第一同步口令是否與從同步請(qǐng)求中獲取的第一同步碼相同,如果是,則確定第一同步口令與從同步請(qǐng)求中獲取的第一同步碼匹配;否則,確定第一同步口令與從同步請(qǐng)求中獲取的第一同步碼不匹配。
[0244]第一同步口令還可以是多個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器還可以判斷第一同步口令是否包含從同步請(qǐng)求中獲取的第一同步碼,如果是,則確定第一同步口令與從同步請(qǐng)求中獲取的第一同步碼匹配;否則,確定第一同步口令與從同步請(qǐng)求中獲取的第一同步碼不匹配。
[0245]步驟413,認(rèn)證服務(wù)器向客戶端發(fā)送同步失敗消息,結(jié)束。
[0246]步驟414,認(rèn)證服務(wù)器對(duì)第五計(jì)算密鑰和第八時(shí)間信息進(jìn)行散列,得到第十六散列數(shù)據(jù)。
[0247]具體地,認(rèn)證服務(wù)器可以將第五計(jì)算密鑰和第八時(shí)間信息組合成第十六數(shù)據(jù),對(duì)第十六數(shù)據(jù)進(jìn)行填充,得到第十六消息,并對(duì)第十六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十六散列數(shù)據(jù)。
[0248]本實(shí)施例中,第五計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第八時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),根據(jù)第五計(jì)算密鑰和第八時(shí)間信息散列得到的第十六散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0249]步驟415,認(rèn)證服務(wù)器對(duì)第十六散列數(shù)據(jù)進(jìn)行截位,將得到的第十截位結(jié)果作為第二同步口令。
[0250]具體地,認(rèn)證服務(wù)器可以對(duì)第十六散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);認(rèn)證服務(wù)器使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第十截位結(jié)果。
[0251]本實(shí)施例中,第十六散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),認(rèn)證服務(wù)器可以將第十六散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,認(rèn)證服務(wù)器獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第十截位結(jié)果。
[0252]步驟416,認(rèn)證服務(wù)器判斷第二同步口令是否與從同步請(qǐng)求中獲取的第二同步碼匹配,如果是,則執(zhí)行步驟417 ;否則,返回步驟413。
[0253]具體地,第二同步口令可以是一個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器可以判斷第二同步口令是否與從同步請(qǐng)求中獲取的第二同步碼相同,如果是,則確定第二同步口令與從同步請(qǐng)求中獲取的第二同步碼匹配;否則,確定第二同步口令與從同步請(qǐng)求中獲取的第二同步碼不匹配。
[0254]第二同步口令還可以是多個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器還可以判斷第二同步口令是否包含從同步請(qǐng)求中獲取的第二同步碼,如果是,則確定第二同步口令與從同步請(qǐng)求中獲取的第二同步碼匹配;否則,確定第二同步口令與從同步請(qǐng)求中獲取的第二同步碼不匹配。
[0255]步驟417,認(rèn)證服務(wù)器判斷第二同步碼的認(rèn)證成功時(shí)間是否晚于第一同步碼的認(rèn)證成功時(shí)間,如果是,則執(zhí)行步驟418 ;否則,返回步驟413。
[0256]步驟418,認(rèn)證服務(wù)器獲取系統(tǒng)時(shí)間與第一同步碼的認(rèn)證成功時(shí)間之間的差值,將該差值保存為與同步請(qǐng)求中的身份信息對(duì)應(yīng)的令牌偏移時(shí)間,向客戶端發(fā)送同步成功消
肩、O
[0257]本發(fā)明實(shí)施例中,動(dòng)態(tài)令牌根據(jù)不同的用途代碼生成不同的計(jì)算密鑰,并根據(jù)各個(gè)計(jì)算密鑰生成分別適用于各個(gè)應(yīng)用場(chǎng)景的動(dòng)態(tài)口令;相應(yīng)地,認(rèn)證服務(wù)器根據(jù)不同的用途代碼對(duì)適用于各個(gè)應(yīng)用場(chǎng)景的動(dòng)態(tài)口令進(jìn)行認(rèn)證,降低了用于生成動(dòng)態(tài)口令的密鑰被竊取的風(fēng)險(xiǎn),提高了令牌認(rèn)證系統(tǒng)的安全性。
[0258]如圖5所示,為本發(fā)明實(shí)施例一中的動(dòng)態(tài)令牌的激活方法流程圖,包括以下步驟:
[0259]步驟501,客戶端向認(rèn)證服務(wù)器發(fā)送激活請(qǐng)求。
[0260]步驟502,認(rèn)證服務(wù)器根據(jù)激活請(qǐng)求中的身份信息,檢索與該身份信息對(duì)應(yīng)的原始種子密鑰。
[0261]步驟503,認(rèn)證服務(wù)器生成隨機(jī)數(shù),對(duì)隨機(jī)數(shù)和檢索到的原始種子密鑰進(jìn)行散列,得到第十七散列數(shù)據(jù)。
[0262]具體地,認(rèn)證服務(wù)器可以將生成的隨機(jī)數(shù)和檢索到的原始種子密鑰組合成第十七數(shù)據(jù),對(duì)第十七數(shù)據(jù)進(jìn)行填充,得到第十七消息,并對(duì)第十七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十七散列數(shù)據(jù)。
[0263]本實(shí)施例中,認(rèn)證服務(wù)器生成的隨機(jī)數(shù)可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),檢索到的原始種子密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),相應(yīng)地,根據(jù)隨機(jī)數(shù)和原始種子密鑰散列得到的第十七散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0264]例如,認(rèn)證服務(wù)器生成的隨機(jī)數(shù)為“123456”,原始種子密鑰為“000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F”,認(rèn)證服務(wù)器計(jì)算得到的第十七散列數(shù)據(jù)為 “fl2cf8c66ed35ca267886d737elbc9ba846a4dlb316008d561b951ad4662bf54”。
[0265]步驟504,認(rèn)證服務(wù)器對(duì)第十七散列數(shù)據(jù)進(jìn)行截位,將得到的第十一截位結(jié)果與生成的隨機(jī)數(shù)進(jìn)行組合,得到激活碼。
[0266]具體地,認(rèn)證服務(wù)器可以對(duì)第十七散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);認(rèn)證服務(wù)器使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第十一截位結(jié)果。
[0267]本實(shí)施例中,第十七散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),認(rèn)證服務(wù)器可以將第十七散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,認(rèn)證服務(wù)器獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第十一截位結(jié)果。
[0268]例如,認(rèn)證服務(wù)器計(jì)算得到的第十七散列數(shù)據(jù)為“fl2cf8c66ed35ca267886d737elbc9ba846a4dlb316008d561b951ad4662bf54”,第^^一截位結(jié)果為 “792518”。認(rèn)證服務(wù)器將第十一截位結(jié)果“792518”與隨機(jī)數(shù)“123456”進(jìn)行組合,得到激活碼“123456792518”。
[0269]步驟505,認(rèn)證服務(wù)器對(duì)激活碼和檢索到的原始種子密鑰進(jìn)行散列,將得到的第十八散列數(shù)據(jù)保存為與激活請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰。
[0270]具體地,認(rèn)證服務(wù)器可以將激活碼和檢索到的原始種子密鑰組合成第十八數(shù)據(jù),對(duì)第十八數(shù)據(jù)進(jìn)行填充,得到第十八消息,并對(duì)第十八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十八散列數(shù)據(jù)。
[0271]本實(shí)施例中,激活碼可以是長(zhǎng)度為12字節(jié)的數(shù)據(jù),檢索到的原始種子密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),根據(jù)激活碼和檢索到的原始種子密鑰散列得到的第十八散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0272]步驟506,認(rèn)證服務(wù)器發(fā)送激活碼給客戶端。
[0273]步驟507,客戶端顯示激活碼。
[0274]步驟508,動(dòng)態(tài)令牌獲取用戶輸入的激活碼。
[0275]步驟509,動(dòng)態(tài)令牌對(duì)激活碼和自身保存的原始種子密鑰進(jìn)行散列,將得到的第十九散列數(shù)據(jù)保存為工作密鑰。
[0276]具體地,動(dòng)態(tài)令牌可以將激活碼和自身保存的原始種子密鑰組合成第十九數(shù)據(jù),對(duì)第十九數(shù)據(jù)進(jìn)行填充,得到第十九消息,并對(duì)第十九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十九散列數(shù)據(jù)。
[0277]本實(shí)施例中,激活碼可以是長(zhǎng)度為12字節(jié)的數(shù)據(jù),原始種子密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),根據(jù)激活碼和原始種子密鑰散列得到的第十九散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0278]例如,激活碼為“123456792518”,原始種子密鑰為“000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F”,相應(yīng)地,動(dòng)態(tài)令牌計(jì)算得到的第十九散列數(shù)據(jù)為 “a26dl80368a3775b810eb54193804af4c5edc74d3aldddca28ba700091e99b03,,。
[0279]步驟510,動(dòng)態(tài)令牌設(shè)置開機(jī)口令,并對(duì)設(shè)置的開機(jī)口令進(jìn)行保存。
[0280]實(shí)施例二
[0281]本發(fā)明實(shí)施例二提供了實(shí)施例一中所提及的身份認(rèn)證系統(tǒng)中包含的動(dòng)態(tài)令牌和認(rèn)證服務(wù)器的工作方法。
[0282]如圖6和圖7所示,為本發(fā)明實(shí)施例二中的動(dòng)態(tài)令牌的工作方法流程圖,包括以下步驟:
[0283]步驟601,動(dòng)態(tài)令牌上電。
[0284]步驟602,動(dòng)態(tài)令牌判斷自身是否被鎖定,如果是,則執(zhí)行步驟622 ;否則,執(zhí)行步驟 603。
[0285]步驟603,動(dòng)態(tài)令牌提示用戶輸入開機(jī)口令。
[0286]步驟604,當(dāng)獲取到用戶輸入的開機(jī)口令時(shí),動(dòng)態(tài)令牌判斷獲取的開機(jī)口令是否與自身保存的開機(jī)口令相同,如果是,則對(duì)開機(jī)錯(cuò)誤次數(shù)進(jìn)行初始化,并執(zhí)行步驟605;否則,執(zhí)行步驟620。
[0287]步驟605,動(dòng)態(tài)令牌等待用戶觸發(fā)按鍵。
[0288]步驟606,當(dāng)動(dòng)態(tài)令牌的按鍵被觸發(fā)時(shí),動(dòng)態(tài)令牌對(duì)被觸發(fā)的按鍵進(jìn)行判斷,如果是第一按鍵,則執(zhí)行步驟607 ;如果是第二按鍵,則執(zhí)行步驟611 ;如果是第三按鍵,則執(zhí)行步驟615。
[0289]步驟607,動(dòng)態(tài)令牌提示用戶輸入登錄挑戰(zhàn)碼。
[0290]步驟608,動(dòng)態(tài)令牌獲取用戶輸入的登錄挑戰(zhàn)碼,對(duì)自身保存的工作密鑰和第一用途代碼進(jìn)行散列,將得到的第一散列數(shù)據(jù)作為第一計(jì)算密鑰。
[0291]具體地,動(dòng)態(tài)令牌可以將自身保存的工作密鑰和第一用途代碼組合成第一數(shù)據(jù),對(duì)第一數(shù)據(jù)進(jìn)行填充,得到第一消息,并對(duì)第一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第一散列數(shù)據(jù)。
[0292]本實(shí)施例中,工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第一用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)工作密鑰和第一用途代碼散列得到的第一散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0293]例如,動(dòng)態(tài)令牌中的第一用途代碼為“00000001”,工作密鑰為“a26dl80368a3775b810eb54193804af4c5edc74d3aldddca28ba700091e99b03”,根據(jù)工作密鑰和第一用途代碼散列得到的第一散列數(shù)據(jù)為 “27AD795688C800C1FC2C1787FDDA3FB4E8A9108B538C96E666BB860B1FDA3E56”。
[0294]步驟609,動(dòng)態(tài)令牌對(duì)第一計(jì)算密鑰、第一時(shí)間信息和登錄挑戰(zhàn)碼進(jìn)行散列,得到第二散列數(shù)據(jù)。
[0295]具體地,動(dòng)態(tài)令牌可以將第一計(jì)算密鑰、第一時(shí)間信息以及用戶輸入的登錄挑戰(zhàn)碼組合成第二數(shù)據(jù),對(duì)第二數(shù)據(jù)進(jìn)行填充,得到第二消息,并對(duì)第二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第二散列數(shù)據(jù)。
[0296]本實(shí)施例中,第一計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第一時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),用戶輸入的登錄挑戰(zhàn)碼可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),根據(jù)第一計(jì)算密鑰、第一時(shí)間信息和登錄挑戰(zhàn)碼散列得到的第二散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0297]例如,第一時(shí)間信息為“00000000015829CE”,用戶輸入的登錄挑戰(zhàn)碼為“012345”,第一計(jì)算密鑰為 “27AD795688C800C1FC2C1787FDDA3FB4E8A9108B538C96E666BB860B1FDA3E56”,動(dòng)態(tài)令牌計(jì)算得到的第二散列數(shù)據(jù)為 “57f72a79575d05d01b647192clfe2f72d593fe275ce3555695f8e25684e38bec”。
[0298]步驟610,動(dòng)態(tài)令牌對(duì)第二散列數(shù)據(jù)進(jìn)行截位,將得到的第一截位結(jié)果作為登錄口令進(jìn)行顯示,并返回步驟605。
[0299]具體地,動(dòng)態(tài)令牌可以對(duì)第二散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);動(dòng)態(tài)令牌使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第一截位結(jié)果。
[0300]本實(shí)施例中,第二散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),動(dòng)態(tài)令牌可以將第二散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,動(dòng)態(tài)令牌獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第一截位結(jié)果。
[0301]例如,動(dòng)態(tài)令牌計(jì)算得到的第二散列數(shù)據(jù)為“57f72a79575d05d01b647192clfe2f72d593fe275ce3555695f8e25684e38bec”,第一截位結(jié)果為“ 126092”,即,登錄 口令為“126092”。
[0302]需要說(shuō)明的是,在本步驟之后,客戶端可以獲取動(dòng)態(tài)令牌生成的登錄口令生成包含登錄口令和身份信息的登錄認(rèn)證請(qǐng)求,并將該登錄認(rèn)證請(qǐng)求發(fā)送給認(rèn)證服務(wù)器。
[0303]步驟611,動(dòng)態(tài)令牌提示用戶輸入簽名挑戰(zhàn)碼。
[0304]步驟612,動(dòng)態(tài)令牌獲取用戶輸入的簽名挑戰(zhàn)碼,對(duì)自身保存的工作密鑰和第二用途代碼進(jìn)行散列,將得到的第三散列數(shù)據(jù)作為第二計(jì)算密鑰。
[0305]具體地,動(dòng)態(tài)令牌可以將自身保存的工作密鑰和第二用途代碼組合成第三數(shù)據(jù),對(duì)第三數(shù)據(jù)進(jìn)行填充,得到第三消息,并對(duì)第三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第三散列數(shù)據(jù)。
[0306]本實(shí)施例中,工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第二用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)工作密鑰和第二用途代碼散列得到的第三散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0307]例如,動(dòng)態(tài)令牌中的第二用途代碼為“00000002 ”,工作密鑰為“ a26dl80368a3775b810eb54193804af4c5edc74d3aldddca28ba700091e99b03”,根據(jù)工作密鑰和第二用途代碼散列得到的第三散列數(shù)據(jù)為 “8D5828922FEBFC8597FC7768A5CD856B45C3A104119BDE8B0E9A418D6A9AB768”。
[0308]步驟613,動(dòng)態(tài)令牌對(duì)第二計(jì)算密鑰、第二時(shí)間信息和簽名挑戰(zhàn)碼進(jìn)行散列,得到第四散列數(shù)據(jù)。
[0309]具體地,動(dòng)態(tài)令牌可以將第二計(jì)算密鑰、第二時(shí)間信息以及用戶輸入的簽名挑戰(zhàn)碼組合成第四數(shù)據(jù),對(duì)第四數(shù)據(jù)進(jìn)行填充,得到第四消息,并對(duì)第四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第四散列數(shù)據(jù)。
[0310]本實(shí)施例中,第二計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第二時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),用戶輸入的簽名挑戰(zhàn)碼可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),根據(jù)第二計(jì)算密鑰、第二時(shí)間信息和簽名挑戰(zhàn)碼散列得到的第四散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0311]例如,第二時(shí)間信息為“00000000015829CE”,用戶輸入的簽名挑戰(zhàn)碼為“012345”,第二計(jì)算密鑰為 “8D5828922FEBFC8597FC7768A5CD856B45C3A104119BDE8B0E9A418D6A9AB768”,動(dòng)態(tài)令牌計(jì)算得到的第四散列數(shù)據(jù)為“228ff7a222fdf903b7c84926cebe47b42dc7d2el01da3e995dc402169a4b25da”。
[0312]步驟614,動(dòng)態(tài)令牌對(duì)第四散列數(shù)據(jù)進(jìn)行截位,將得到的第二截位結(jié)果作為簽名口令進(jìn)行顯示,并返回步驟605。
[0313]具體地,動(dòng)態(tài)令牌可以對(duì)第四散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);動(dòng)態(tài)令牌使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第二截位結(jié)果。
[0314]本實(shí)施例中,第四散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),動(dòng)態(tài)令牌可以將第四散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,動(dòng)態(tài)令牌獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第二截位結(jié)果。
[0315]例如,動(dòng)態(tài)令牌計(jì)算得到的第四散列數(shù)據(jù)為“228ff7a222fdf903b7c84926cebe47b42dc7d2el01da3e995dc402169a4b25da”,第二截位結(jié)果為“821929”,即,簽名 口令為“821929”。
[0316]需要說(shuō)明的是,在本步驟之后,客戶端獲取動(dòng)態(tài)令牌生成的簽名口令,生成包含簽名口令和身份信息的簽名認(rèn)證請(qǐng)求,并將該簽名認(rèn)證請(qǐng)求發(fā)送給認(rèn)證服務(wù)器。
[0317]步驟615,動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第三用途代碼進(jìn)行散列,將得到的第五散列數(shù)據(jù)作為第三計(jì)算密鑰。
[0318]具體地,動(dòng)態(tài)令牌可以將自身保存的工作密鑰和第三用途代碼組合成第五數(shù)據(jù),對(duì)第五數(shù)據(jù)進(jìn)行填充,得到第五消息,并對(duì)第五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第五散列數(shù)據(jù)。
[0319]本實(shí)施例中,工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第三用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)工作密鑰和第三用途代碼散列得到的第五散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0320]例如,動(dòng)態(tài)令牌中的第三用途代碼為“00000003”,工作密鑰為“a26dl80368a3775b810eb54193804af4c5edc74d3aldddca28ba700091e99b03”,根據(jù)工作密鑰和第三用途代碼散列得到的第五散列數(shù)據(jù)為 “AFCC4F6EAC971346E64D5F234505426558B84B61EAF8DFAA18E8DD885BF11E3F”。
[0321]步驟616,動(dòng)態(tài)令牌對(duì)第三計(jì)算密鑰和第三時(shí)間信息進(jìn)行散列,得到第六散列數(shù)據(jù)。
[0322]具體地,動(dòng)態(tài)令牌可以將第三計(jì)算密鑰和第三時(shí)間信息組合成第六數(shù)據(jù),對(duì)第六數(shù)據(jù)進(jìn)行填充,得到第六消息,并對(duì)第六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第六散列數(shù)據(jù)。
[0323]本實(shí)施例中,第三計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第三時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),根據(jù)第三計(jì)算密鑰和第三時(shí)間信息散列得到的第六散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0324]例如,第三時(shí)間信息為“00000000015829CE”,第三計(jì)算密鑰為“AFCC4F6EAC971346E64D5F234505426558B84B61EAF8DFAA18E8DD885BF11E3F”,動(dòng)態(tài)令牌計(jì)算得到的第六散列數(shù)據(jù)為 “e2738d9f6628bb77d6ef329e91c462c6a03ec54cl9087fd23779a70530bb4a80”。
[0325]步驟617,動(dòng)態(tài)令牌對(duì)第六散列數(shù)據(jù)進(jìn)行截位,得到第三截位結(jié)果。
[0326]具體地,動(dòng)態(tài)令牌可以對(duì)第六散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);動(dòng)態(tài)令牌使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第三截位結(jié)果。
[0327]本實(shí)施例中,第六散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),動(dòng)態(tài)令牌可以將第六散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,動(dòng)態(tài)令牌獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第三截位結(jié)果。
[0328]例如,動(dòng)態(tài)令牌計(jì)算得到的第六散列數(shù)據(jù)為“e2738d9f6628bb77d6ef329e91c462c6a03ec54cl9087fd23779a70530bb4a80”,第三截位結(jié)果為 “590109”。
[0329]步驟618,動(dòng)態(tài)令牌對(duì)第三計(jì)算密鑰和第四時(shí)間信息進(jìn)行散列,得到第七散列數(shù)據(jù)。
[0330]具體地,動(dòng)態(tài)令牌可以將第三計(jì)算密鑰和第四時(shí)間信息組合成第七數(shù)據(jù),對(duì)第七數(shù)據(jù)進(jìn)行填充,得到第七消息,并對(duì)第七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第七散列數(shù)據(jù)。其中,第四時(shí)間信息晚于第三時(shí)間信息。
[0331]本實(shí)施例中,第三計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第四時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),根據(jù)第三計(jì)算密鑰和第四時(shí)間信息散列得到的第七散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0332]例如,第三時(shí)間信息為“00000000015829CF”,第三計(jì)算密鑰為“AFCC4F6EAC971346E64D5F234505426558B84B61EAF8DFAA18E8DD885BF11E3F”,動(dòng)態(tài)令牌計(jì)算得到的第七散列數(shù)據(jù)為 “ec3cf5692ca775c90d59dee26870ecdlaf67faa0588787608e838c93fe6179d5”。
[0333]步驟619,動(dòng)態(tài)令牌對(duì)第七散列數(shù)據(jù)進(jìn)行截位,得到第四截位結(jié)果,將第三截位結(jié)果和第四截位結(jié)果分別作為第一同步碼和第二同步碼進(jìn)行顯示,并返回步驟605。
[0334]具體地,動(dòng)態(tài)令牌可以對(duì)第七散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);動(dòng)態(tài)令牌使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第四截位結(jié)果。
[0335]本實(shí)施例中,第七散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),動(dòng)態(tài)令牌可以將第七散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,動(dòng)態(tài)令牌獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第四截位結(jié)果。
[0336]例如,動(dòng)態(tài)令牌計(jì)算得到的第七散列數(shù)據(jù)為“ec3cf5692ca775c90d59dee26870ecdlaf67faa0588787608e838c93fe6179d5”,第四截位結(jié)果為 “836749”,即,第一同步碼為“590109”,第二同步碼為 “836749”。
[0337]需要說(shuō)明的是,在本步驟之后,客戶端可以獲取動(dòng)態(tài)令牌生成的第一同步碼和第二同步碼,生成包含第一同步碼、第二同步碼和身份信息的同步請(qǐng)求,并將同步請(qǐng)求發(fā)送給認(rèn)證服務(wù)器。
[0338]步驟620,動(dòng)態(tài)令牌顯示口令錯(cuò)誤信息,對(duì)開機(jī)錯(cuò)誤次數(shù)進(jìn)行更新。
[0339]步驟621,動(dòng)態(tài)令牌判斷開機(jī)錯(cuò)誤次數(shù)是否等于第一預(yù)設(shè)次數(shù),如果是,則執(zhí)行步驟622 ;否則,返回步驟603。
[0340]步驟622,動(dòng)態(tài)令牌顯示令牌鎖定信息,生成并顯示解鎖請(qǐng)求碼,提示用戶輸入解鎖碼。
[0341]需要說(shuō)明的是,在本步驟之后,客戶端可以獲取動(dòng)態(tài)令牌生成的解鎖請(qǐng)求碼,生成包含解鎖請(qǐng)求碼和身份信息的解鎖請(qǐng)求,并將該解鎖請(qǐng)求發(fā)送給認(rèn)證服務(wù)器。
[0342]步驟623,當(dāng)獲取到用戶輸入的解鎖碼時(shí),動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第三用途代碼進(jìn)行散列,將得到的第五散列數(shù)據(jù)作為第三計(jì)算密鑰。
[0343]具體地,動(dòng)態(tài)令牌可以將自身保存的工作密鑰和第三用途代碼組合成第五數(shù)據(jù),對(duì)第五數(shù)據(jù)進(jìn)行填充,得到第五消息,并對(duì)第五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第五散列數(shù)據(jù)。
[0344]本實(shí)施例中,工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第三用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)工作密鑰和第三用途代碼散列得到的第五散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0345]例如,動(dòng)態(tài)令牌中的第三用途代碼為“00000003”,工作密鑰為“a26dl80368a3775b810eb54193804af4c5edc74d3aldddca28ba700091e99b03”,根據(jù)工作密鑰和第三用途代碼散列得到的第五散列數(shù)據(jù)為 “AFCC4F6EAC971346E64D5F234505426558B84B61EAF8DFAA18E8DD885BF11E3F”。
[0346]步驟624,動(dòng)態(tài)令牌對(duì)第三計(jì)算密鑰和解鎖請(qǐng)求碼進(jìn)行散列,得到第八散列數(shù)據(jù)。
[0347]具體地,動(dòng)態(tài)令牌可以將第三計(jì)算密鑰和解鎖請(qǐng)求碼組合成第八數(shù)據(jù),對(duì)第八數(shù)據(jù)進(jìn)行填充,得到第八消息,并對(duì)第八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第八散列數(shù)據(jù)。
[0348]本實(shí)施例中,第三計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),解鎖請(qǐng)求碼可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),根據(jù)第三計(jì)算密鑰和解鎖請(qǐng)求碼散列得到的第八散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0349]例如,解鎖請(qǐng)求碼為“ 322337 ”,第三計(jì)算密鑰為“ AFCC4F6EAC971346E64D5F234505426558B84B61EAF8DFAA18E8DD885BF11E3F”,動(dòng)態(tài)令牌計(jì)算得到的第八散列數(shù)據(jù)為“76d4bl25bel942f9e54dd6bcd0bde811673187a74b321084ce0df24c62809123,,o
[0350]步驟625,動(dòng)態(tài)令牌對(duì)第八散列數(shù)據(jù)進(jìn)行截位,得到第五截位結(jié)果。
[0351]具體地,動(dòng)態(tài)令牌可以對(duì)第八散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);動(dòng)態(tài)令牌使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第五截位結(jié)果。
[0352]本實(shí)施例中,第八散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),動(dòng)態(tài)令牌可以將第八散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,動(dòng)態(tài)令牌獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第五截位結(jié)果。
[0353]例如,動(dòng)態(tài)令牌計(jì)算得到的第八散列數(shù)據(jù)為“76d4bl25bel942f9e54dd6bcd0bde811673187a74b321084ce0df24c62809123”,第五截位結(jié)果為 “783109”。[0354]步驟626,動(dòng)態(tài)令牌判斷第五截位結(jié)果是否與獲取的解鎖碼相同,如果是,則執(zhí)行步驟627 ;否則,執(zhí)行步驟629。
[0355]步驟627,動(dòng)態(tài)令牌顯示解鎖成功信息,對(duì)解鎖失敗次數(shù)進(jìn)行初始化。
[0356]步驟628,動(dòng)態(tài)令牌對(duì)開機(jī)口令進(jìn)行重置,保存重置后的開機(jī)口令,對(duì)開機(jī)錯(cuò)誤次數(shù)進(jìn)行初始化,并返回步驟605。
[0357]步驟629,動(dòng)態(tài)令牌顯示解鎖失敗信息,對(duì)解鎖失敗次數(shù)進(jìn)行更新。
[0358]步驟630,動(dòng)態(tài)令牌判斷解鎖失敗次數(shù)是否等于第二預(yù)設(shè)次數(shù),如果是,則執(zhí)行步驟631 ;否則,返回步驟622。
[0359]步驟631,動(dòng)態(tài)令牌清空自身保存的原始種子密鑰和工作密鑰,顯示令牌自毀信息,結(jié)束流程。
[0360]需要說(shuō)明的是,本發(fā)明實(shí)施例中的動(dòng)態(tài)令牌需要在完成激活后才能正常工作,SP,執(zhí)行上述圖6和圖7所示的工作方法流程。本發(fā)明實(shí)施例中的動(dòng)態(tài)令牌的激活過(guò)程包括:動(dòng)態(tài)令牌獲取用戶輸入的激活碼,對(duì)該激活碼和自身保存的原始種子密鑰進(jìn)行散列,將得到的第九散列數(shù)據(jù)保存為工作密鑰;動(dòng)態(tài)令牌設(shè)置開機(jī)口令,并對(duì)設(shè)置的開機(jī)口令進(jìn)行保存,對(duì)開機(jī)錯(cuò)誤次數(shù)進(jìn)行初始化。
[0361]具體地,動(dòng)態(tài)令牌可以將激活碼和自身保存的原始種子密鑰組合成第九數(shù)據(jù),對(duì)第九數(shù)據(jù)進(jìn)行填充,得到第九消息,并對(duì)第九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第九散列數(shù)據(jù)。
[0362]本實(shí)施例中,激活碼可以是長(zhǎng)度為12字節(jié)的數(shù)據(jù),原始種子密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),根據(jù)激活碼和原始種子密鑰散列得到的第九散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0363]例如,激活碼為“123456792518”,原始種子密鑰為“000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F”,相應(yīng)地,動(dòng)態(tài)令牌計(jì)算得到的第九散列數(shù)據(jù)為“a26dl80368a3775b810eb54193804af4c5edc74d3aldddca28ba700091e99b03”。
[0364]其中,動(dòng)態(tài)令牌激活過(guò)程中使用的激活碼是由認(rèn)證服務(wù)器生成的,認(rèn)證服務(wù)器的工作方法如圖8和圖9所示,包括以下步驟:
[0365]步驟701,認(rèn)證服務(wù)器等待接收來(lái)自客戶端的請(qǐng)求。
[0366]步驟702,當(dāng)接收到來(lái)自客戶端的請(qǐng)求后,認(rèn)證服務(wù)器對(duì)接收到的請(qǐng)求進(jìn)行判斷,
[0367]如果是激活請(qǐng)求,則執(zhí)行步驟703 ;
[0368]如果是登錄請(qǐng)求,則執(zhí)行步驟707 ;
[0369]如果是登錄認(rèn)證請(qǐng)求,則執(zhí)行步驟708 ;
[0370]如果是簽名請(qǐng)求,則執(zhí)行步驟715 ;
[0371]如果是簽名認(rèn)證請(qǐng)求,則執(zhí)彳丁步驟716 ;
[0372]如果是同步請(qǐng)求,則執(zhí)行步驟723 ;
[0373]如果是解鎖請(qǐng)求,則執(zhí)行步驟733。
[0374]步驟703,認(rèn)證服務(wù)器根據(jù)激活請(qǐng)求中的身份信息,檢索與該身份信息對(duì)應(yīng)的原始種子密鑰。
[0375]其中,身份信息可以是用戶名,也可以是令牌序列號(hào),還可以是用于標(biāo)識(shí)動(dòng)態(tài)令牌用戶的身份的其他信息。[0376]步驟704,認(rèn)證服務(wù)器生成第一隨機(jī)數(shù),對(duì)第一隨機(jī)數(shù)和檢索到的原始種子密鑰進(jìn)行散列,得到第十散列數(shù)據(jù)。
[0377]具體地,認(rèn)證服務(wù)器可以將第一隨機(jī)數(shù)和檢索到的原始種子密鑰組合成第十?dāng)?shù)據(jù),對(duì)第十?dāng)?shù)據(jù)進(jìn)行填充,得到第十消息,并對(duì)第十消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十散列數(shù)據(jù)。
[0378]本實(shí)施例中,第一隨機(jī)數(shù)可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),檢索到的原始種子密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),相應(yīng)地,根據(jù)第一隨機(jī)數(shù)和原始種子密鑰散列得到的第十散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0379]例如,第一隨機(jī)數(shù)為“123456”,原始種子密鑰為“000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F”,認(rèn)證服務(wù)器計(jì)算得到的第十散列數(shù)據(jù)為“fl2cf8c66ed35ca267886d737elbc9ba846a4dlb316008d561b951ad4662bf54”。
[0380]步驟705,認(rèn)證服務(wù)器對(duì)第十散列數(shù)據(jù)進(jìn)行截位,將得到的第六截位結(jié)果與第一隨機(jī)數(shù)進(jìn)行組合,得到激活碼,并將該激活碼發(fā)送給客戶端。
[0381]具體地,認(rèn)證服務(wù)器可以對(duì)第十散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);認(rèn)證服務(wù)器使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第六截位結(jié)果。
[0382]本實(shí)施例中,第十散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),認(rèn)證服務(wù)器可以將第十散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,認(rèn)證服務(wù)器獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第/、截位結(jié)果。
[0383]例如,認(rèn)證服務(wù)器計(jì)算得到的第十散列數(shù)據(jù)為“fl2cf8c66ed35ca267886d737elbc9ba846a4dlb316008d561b951ad4662bf54”,第六截位結(jié)果為 “792518”。認(rèn)證服務(wù)器將第六截位結(jié)果“792518”與第一隨機(jī)數(shù)“ 123456”進(jìn)行組合,得到激活碼“ 123456792518”。
[0384]需要說(shuō)明的是,本步驟之后,客戶端可以將接收到的激活碼顯示給用戶。
[0385]步驟706,認(rèn)證服務(wù)器對(duì)激活碼和檢索到的原始種子密鑰進(jìn)行散列,將得到的第十一散列數(shù)據(jù)保存為與激活請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰,并返回步驟701。
[0386]具體地,認(rèn)證服務(wù)器可以將激活碼和檢索到的原始種子密鑰組合成第十一數(shù)據(jù),對(duì)第十一數(shù)據(jù)進(jìn)行填充,得到第十一消息,并對(duì)第十一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十一散列數(shù)據(jù)。
[0387]本實(shí)施例中,激活碼可以是長(zhǎng)度為12字節(jié)的數(shù)據(jù),檢索到的原始種子密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),根據(jù)激活碼和檢索到的原始種子密鑰散列得到的第十一散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0388]步驟707,認(rèn)證服務(wù)器生成第二隨機(jī)數(shù),將該第二隨機(jī)數(shù)保存為與登錄請(qǐng)求中的身份信息對(duì)應(yīng)的登錄挑戰(zhàn)碼,將該登錄挑戰(zhàn)碼發(fā)送給客戶端,并返回步驟701。
[0389]其中,第二隨機(jī)數(shù)可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),例如,“012345”。
[0390]需要說(shuō)明的是,本步驟之后,客戶端可以將接收到的登錄挑戰(zhàn)碼顯示給用戶。
[0391]步驟708,認(rèn)證服務(wù)器根據(jù)登錄認(rèn)證請(qǐng)求中的身份信息,檢索與該身份信息對(duì)應(yīng)的工作密鑰,對(duì)檢索到的工作密鑰和自身保存的第一用途代碼進(jìn)行散列,將得到的第十二散列數(shù)據(jù)作為第四計(jì)算密鑰。
[0392]具體地,認(rèn)證服務(wù)器可以將檢索到的工作密鑰和第一用途代碼組合成第十二數(shù)據(jù),對(duì)第十二數(shù)據(jù)進(jìn)行填充,得到第十二消息,并對(duì)第十二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十二散列數(shù)據(jù)。
[0393]本實(shí)施例中,認(rèn)證服務(wù)器檢索到的工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第一用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)檢索到的工作密鑰和第一用途代碼散列得到的第十二散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0394]步驟709,認(rèn)證服務(wù)器根據(jù)登錄認(rèn)證請(qǐng)求中的身份信息,檢索與該身份信息對(duì)應(yīng)的登錄挑戰(zhàn)碼。
[0395]步驟710,認(rèn)證服務(wù)器根據(jù)令牌偏移時(shí)間和系統(tǒng)時(shí)間獲取第五時(shí)間信息,對(duì)第四計(jì)算密鑰、第五時(shí)間信息和檢索到的登錄挑戰(zhàn)碼進(jìn)行散列,得到第十三散列數(shù)據(jù)。
[0396]具體地,認(rèn)證服務(wù)器可以將第四計(jì)算密鑰、第五時(shí)間信息以及檢索到的登錄挑戰(zhàn)碼組合成第十三數(shù)據(jù),對(duì)第十三數(shù)據(jù)進(jìn)行填充,得到第十三消息,并對(duì)第十三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十三散列數(shù)據(jù)。
[0397]本實(shí)施例中,第四計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第五時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),檢索到的登錄挑戰(zhàn)碼可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),根據(jù)第四計(jì)算密鑰、第五時(shí)間信息和檢索到的登錄挑戰(zhàn)碼散列得到的第十三散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0398]步驟711,認(rèn)證服務(wù)器對(duì)第十三散列數(shù)據(jù)進(jìn)行截位,將得到的第七截位結(jié)果作為計(jì)算得到的登錄口令。
[0399]具體地,認(rèn)證服務(wù)器可以對(duì)第十三散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);認(rèn)證服務(wù)器使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第七截位結(jié)果。
[0400]本實(shí)施例中,第十三散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),認(rèn)證服務(wù)器可以將第十三散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,認(rèn)證服務(wù)器獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第七截位結(jié)果。
[0401]步驟712,認(rèn)證服務(wù)器判斷計(jì)算得到的登錄口令是否與從登錄認(rèn)證請(qǐng)求中獲取的登錄口令匹配,如果是,則執(zhí)行步驟713 ;否則,執(zhí)行步驟714。
[0402]具體地,認(rèn)證服務(wù)器計(jì)算得到的登錄口令可以是一個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器可以判斷計(jì)算得到的登錄口令是否與從登錄請(qǐng)求中獲取的登錄口令相同,如果是,則確定計(jì)算得到的登錄口令與從登錄請(qǐng)求中獲取的登錄口令匹配;否則,確定計(jì)算得到的登錄口令與從登錄請(qǐng)求中獲取的登錄口令不匹配。
[0403]認(rèn)證服務(wù)器計(jì)算得到的登錄口令還可以是多個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器也可以判斷計(jì)算得到的登錄口令是否包含從登錄請(qǐng)求中獲取的登錄口令,如果是,則確定計(jì)算得到的登錄口令與從登錄請(qǐng)求中獲取的登錄口令匹配;否則,確定計(jì)算得到的登錄口令與從登錄請(qǐng)求中獲取的登錄口令不匹配。
[0404]步驟713,認(rèn)證服務(wù)器向客戶端發(fā)送認(rèn)證成功消息,并返回步驟701。
[0405]步驟714,認(rèn)證服務(wù)器向客戶端發(fā)送認(rèn)證失敗消息,并返回步驟701。
[0406]步驟715,認(rèn)證服務(wù)器生成簽名挑戰(zhàn)碼,將簽名挑戰(zhàn)碼保存為與簽名請(qǐng)求中的身份信息相對(duì)應(yīng)的信息,將該簽名挑戰(zhàn)碼發(fā)送給客戶端,并返回步驟701。
[0407]具體地,認(rèn)證服務(wù)器可以將業(yè)務(wù)數(shù)據(jù)的部分或全部保存為與簽名請(qǐng)求中的身份信息對(duì)應(yīng)的簽名挑戰(zhàn)碼;也可以生成第三隨機(jī)數(shù),將第三隨機(jī)數(shù)與業(yè)務(wù)數(shù)據(jù)的部分或全部進(jìn)行組合,將組合得到的數(shù)據(jù)保存為與簽名請(qǐng)求中的身份信息對(duì)應(yīng)的簽名挑戰(zhàn)碼,其中,簽名挑戰(zhàn)碼可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),例如,“012345”。
[0408]需要說(shuō)明的是,本步驟之后,客戶端可以將接收到的簽名挑戰(zhàn)碼顯示給用戶。
[0409]步驟716,認(rèn)證服務(wù)器根據(jù)簽名認(rèn)證請(qǐng)求中的身份信息,檢索與該身份信息對(duì)應(yīng)的工作密鑰,對(duì)檢索到的工作密鑰和自身保存的第二用途代碼進(jìn)行散列,將得到的第十四散列數(shù)據(jù)作為第五計(jì)算密鑰。
[0410]具體地,認(rèn)證服務(wù)器可以將檢索到的工作密鑰和第二用途代碼組合成第十四數(shù)據(jù),對(duì)第十四數(shù)據(jù)進(jìn)行填充,得到第十四消息,并對(duì)第十四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十四散列數(shù)據(jù)。
[0411]本實(shí)施例中,認(rèn)證服務(wù)器檢索到的工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第二用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)檢索到的工作密鑰和第二用途代碼散列得到的第十四散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0412]步驟717,認(rèn)證服務(wù)器根據(jù)簽名認(rèn)證請(qǐng)求中的身份信息,檢索與該身份信息對(duì)應(yīng)的簽名挑戰(zhàn)碼。
[0413]步驟718,認(rèn)證服務(wù)器根據(jù)令牌偏移時(shí)間和系統(tǒng)時(shí)間獲取第六時(shí)間信息,對(duì)第五計(jì)算密鑰、第六時(shí)間信息和檢索到的簽名挑戰(zhàn)碼進(jìn)行散列,得到第十五散列數(shù)據(jù)。
[0414]具體地,認(rèn)證服務(wù)器可以將第五計(jì)算密鑰、第六時(shí)間信息以及檢索到的簽名挑戰(zhàn)碼組合成第十五數(shù)據(jù),對(duì)第十五數(shù)據(jù)進(jìn)行填充,得到第十五消息,并對(duì)第十五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十五散列數(shù)據(jù)。
[0415]本實(shí)施例中,第五計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第六時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),檢索到的簽名挑戰(zhàn)碼可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),根據(jù)第五計(jì)算密鑰、第六時(shí)間信息和檢索到的簽名挑戰(zhàn)碼散列得到的第十五散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0416]步驟719,認(rèn)證服務(wù)器對(duì)第十五散列數(shù)據(jù)進(jìn)行截位,將得到的第八截位結(jié)果作為計(jì)算得到的簽名口令。
[0417]具體地,認(rèn)證服務(wù)器可以對(duì)第十五散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);認(rèn)證服務(wù)器使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第八截位結(jié)果。
[0418]本實(shí)施例中,第十五散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),認(rèn)證服務(wù)器可以將第十五散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,認(rèn)證服務(wù)器獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第八截位結(jié)果。
[0419]步驟720,認(rèn)證服務(wù)器判斷計(jì)算得到的簽名口令是否與從簽名認(rèn)證請(qǐng)求中獲取的簽名口令匹配,如果是,則執(zhí)行步驟721 ;否則,執(zhí)行步驟722。
[0420]具體地,認(rèn)證服務(wù)器計(jì)算得到的簽名口令可以是一個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器可以判斷計(jì)算得到的簽名口令是否與從簽名請(qǐng)求中獲取的簽名口令相同,如果是,則確定計(jì)算得到的簽名口令與從簽名請(qǐng)求中獲取的簽名口令匹配;否則,確定計(jì)算得到的簽名口令與從簽名請(qǐng)求中獲取的簽名口令不匹配。
[0421]認(rèn)證服務(wù)器計(jì)算得到的簽名口令還可以是多個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器也可以判斷計(jì)算得到的簽名口令是否包含從簽名請(qǐng)求中獲取的簽名口令,如果是,則確定計(jì)算得到的簽名口令與從簽名請(qǐng)求中獲取的簽名口令匹配;否則,確定計(jì)算得到的簽名口令與從簽名請(qǐng)求中獲取的簽名口令不匹配。
[0422]步驟721,認(rèn)證服務(wù)器向客戶端發(fā)送認(rèn)證成功消息,并返回步驟701。
[0423]需要說(shuō)明的是,在本步驟之后,客戶端可以將接收到的認(rèn)證成功消息顯示給用戶。
[0424]步驟722,認(rèn)證服務(wù)器向客戶端發(fā)送認(rèn)證失敗消息,并返回步驟701。
[0425]需要說(shuō)明的是,在本步驟之后,客戶端可以將接收到的認(rèn)證失敗消息顯示給用戶。
[0426]步驟723,認(rèn)證服務(wù)器根據(jù)同步請(qǐng)求中的身份信息,檢索與該身份信息對(duì)應(yīng)的工作密鑰,對(duì)檢索到的工作密鑰和自身保存的第三用途代碼進(jìn)行散列,將得到的第十六散列數(shù)據(jù)作為第六計(jì)算密鑰。
[0427]具體地,認(rèn)證服務(wù)器可以將檢索到的工作密鑰和第三用途代碼組合成第十六數(shù)據(jù),對(duì)第十六數(shù)據(jù)進(jìn)行填充,得到第十六消息,并對(duì)第十六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十六散列數(shù)據(jù)。
[0428]本實(shí)施例中,認(rèn)證服務(wù)器檢索到的工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第三用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)檢索到的工作密鑰和第三用途代碼散列得到的第十六散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0429]步驟724,認(rèn)證服務(wù)器對(duì)第六計(jì)算密鑰和第七時(shí)間信息進(jìn)行散列,得到第十七散列數(shù)據(jù)。
[0430]具體地,認(rèn)證服務(wù)器可以將第六計(jì)算密鑰和第七時(shí)間信息組合成第十七數(shù)據(jù),對(duì)第十七數(shù)據(jù)進(jìn)行填充,得到第十七消息,并對(duì)第十七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十七散列數(shù)據(jù)。
[0431]本實(shí)施例中,第六計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第七時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),根據(jù)第六計(jì)算密鑰和第七時(shí)間信息散列得到的第十七散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0432]步驟725,認(rèn)證服務(wù)器對(duì)第十七散列數(shù)據(jù)進(jìn)行截位,將得到的第九截位結(jié)果作為第
一同步口令。
[0433]具體地,認(rèn)證服務(wù)器可以對(duì)第十七散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);認(rèn)證服務(wù)器使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第九截位結(jié)果。[0434]本實(shí)施例中,第十七散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),認(rèn)證服務(wù)器可以將第十七散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,認(rèn)證服務(wù)器獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第九截位結(jié)果。
[0435]步驟726,認(rèn)證服務(wù)器判斷第一同步口令是否與從同步請(qǐng)求中獲取的第一同步碼匹配,如果是,則執(zhí)行步驟728 ;否則,執(zhí)行步驟727。
[0436]具體地,第一同步口令可以是一個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器可以判斷第一同步口令是否與從同步請(qǐng)求中獲取的第一同步碼相同,如果是,則確定第一同步口令與從同步請(qǐng)求中獲取的第一同步碼匹配;否則,確定第一同步口令與從同步請(qǐng)求中獲取的第一同步碼不匹配。
[0437]第一同步口令還可以是多個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器還可以判斷第一同步口令是否包含從同步請(qǐng)求中獲取的第一同步碼,如果是,則確定第一同步口令與從同步請(qǐng)求中獲取的第一同步碼匹配;否則,確定第一同步口令與從同步請(qǐng)求中獲取的第一同步碼不匹配。
[0438]步驟727,認(rèn)證服務(wù)器向客戶端發(fā)送同步失敗消息,并返回步驟701。
[0439]需要說(shuō)明的是,在本步驟之后,客戶端可以將接收到的同步失敗消息顯示給用戶。
[0440]步驟728,認(rèn)證服務(wù)器對(duì)第六計(jì)算密鑰和第八時(shí)間信息進(jìn)行散列,得到第十八散列數(shù)據(jù)。
[0441]具體地,認(rèn)證服務(wù)器可以將第六計(jì)算密鑰和第八時(shí)間信息組合成第十八數(shù)據(jù),對(duì)第十八數(shù)據(jù)進(jìn)行填充,得到第十八消息,并對(duì)第十八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十八散列數(shù)據(jù)。
[0442]本實(shí)施例中,第六計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第八時(shí)間信息可以是長(zhǎng)度為8字節(jié)的數(shù)據(jù),根據(jù)第六計(jì)算密鑰和第八時(shí)間信息散列得到的第十八散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0443]步驟729,認(rèn)證服務(wù)器對(duì)第十八散列數(shù)據(jù)進(jìn)行截位,將得到的第十截位結(jié)果作為第
二同步口令。
[0444]具體地,認(rèn)證服務(wù)器可以對(duì)第十八散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);認(rèn)證服務(wù)器使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第十截位結(jié)果。
[0445]本實(shí)施例中,第十八散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),認(rèn)證服務(wù)器可以將第十八散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,認(rèn)證服務(wù)器獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第十截位結(jié)果。
[0446]步驟730,認(rèn)證服務(wù)器判斷第二同步口令是否與從同步請(qǐng)求中獲取的第二同步碼匹配,如果是,則執(zhí)行步驟731 ;否則,返回步驟727。
[0447]具體地,第二同步口令可以是一個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器可以判斷第二同步口令是否與從同步請(qǐng)求中獲取的第二同步碼相同,如果是,則確定第二同步口令與從同步請(qǐng)求中獲取的第二同步碼匹配;否則,確定第二同步口令與從同步請(qǐng)求中獲取的第二同步碼不匹配。
[0448]第二同步口令還可以是多個(gè)口令,相應(yīng)地,認(rèn)證服務(wù)器還可以判斷第二同步口令是否包含從同步請(qǐng)求中獲取的第二同步碼,如果是,則確定第二同步口令與從同步請(qǐng)求中獲取的第二同步碼匹配;否則,確定第二同步口令與從同步請(qǐng)求中獲取的第二同步碼不匹配。
[0449]步驟731,認(rèn)證服務(wù)器判斷第二同步碼的認(rèn)證成功時(shí)間是否晚于第一同步碼的認(rèn)證成功時(shí)間,如果是,則執(zhí)行步驟732 ;否則,返回步驟727。
[0450]步驟732,認(rèn)證服務(wù)器獲取系統(tǒng)時(shí)間與第一同步碼的認(rèn)證成功時(shí)間之間的差值,將該差值保存為與同步請(qǐng)求中的身份信息對(duì)應(yīng)的令牌偏移時(shí)間,向客戶端發(fā)送同步成功消息,并返回步驟701。
[0451]需要說(shuō)明的是,在本步驟之后,客戶端可以將接收到的同步成功消息顯示給用戶。
[0452]步驟733,認(rèn)證服務(wù)器根據(jù)解鎖請(qǐng)求中的身份信息,檢索與該身份信息對(duì)應(yīng)的工作密鑰,對(duì)檢索到的工作密鑰和自身保存的第三用途代碼進(jìn)行散列,將得到的第十六散列數(shù)據(jù)作為第六計(jì)算密鑰。
[0453]具體地,認(rèn)證服務(wù)器可以將檢索到的工作密鑰和第三用途代碼組合成第十六數(shù)據(jù),對(duì)第十六數(shù)據(jù)進(jìn)行填充,得到第十六消息,并對(duì)第十六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十六散列數(shù)據(jù)。
[0454]本實(shí)施例中,認(rèn)證服務(wù)器檢索到的工作密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),第三用途代碼可以是長(zhǎng)度為4字節(jié)的數(shù)據(jù),根據(jù)檢索到的工作密鑰和第三用途代碼散列得到的第十六散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0455]步驟734,認(rèn)證服務(wù)器從解鎖請(qǐng)求中獲取解鎖請(qǐng)求碼,對(duì)第六計(jì)算密鑰和獲取到的解鎖請(qǐng)求碼進(jìn)行散列,得到第十九散列數(shù)據(jù)。
[0456]具體地,認(rèn)證服務(wù)器可以將第六計(jì)算密鑰和獲取到的解鎖請(qǐng)求碼組合成第十九數(shù)據(jù),對(duì)第十九數(shù)據(jù)進(jìn)行填充,得到第十九消息,并對(duì)第十九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第十九散列數(shù)據(jù)。
[0457]本實(shí)施例中,認(rèn)證服務(wù)器獲取到的解鎖請(qǐng)求碼可以是長(zhǎng)度為6字節(jié)的數(shù)據(jù),第六計(jì)算密鑰可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù),根據(jù)第六計(jì)算密鑰和獲取到的解鎖請(qǐng)求碼散列得到的第十九散列數(shù)據(jù)可以是長(zhǎng)度為32字節(jié)的數(shù)據(jù)。
[0458]步驟735,認(rèn)證服務(wù)器對(duì)第十九散列數(shù)據(jù)進(jìn)行截位,將得到的第十一截位結(jié)果作為解鎖碼發(fā)送給客戶端,并返回步驟701。
[0459]具體地,認(rèn)證服務(wù)器可以對(duì)第十九散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將上述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù);認(rèn)證服務(wù)器使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第十一截位結(jié)果。
[0460]本實(shí)施例中,第十九散列數(shù)據(jù)是長(zhǎng)度為32字節(jié)的數(shù)據(jù),認(rèn)證服務(wù)器可以將第十九散列數(shù)據(jù)分為8個(gè)字節(jié)組,每個(gè)字節(jié)組包含4個(gè)字節(jié),通過(guò)對(duì)各個(gè)字節(jié)組中的4個(gè)字節(jié)進(jìn)行移位和組合,可將8個(gè)字節(jié)組轉(zhuǎn)換為8個(gè)二進(jìn)制數(shù)。進(jìn)一步地,認(rèn)證服務(wù)器獲取上述8個(gè)二進(jìn)制數(shù)相加得到的結(jié)果,使用該結(jié)果對(duì)232取模,在使用得到的取模值對(duì)1000000取模,得到第十一截位結(jié)果。
[0461]需要說(shuō)明的是,在本步驟之后,客戶端可以將接收到的解鎖碼顯示給用戶。
[0462]本發(fā)明實(shí)施例中,認(rèn)證服務(wù)器根據(jù)不同的用途代碼獲取相應(yīng)的計(jì)算密鑰,并使用獲取的計(jì)算密鑰對(duì)適用于各個(gè)應(yīng)用場(chǎng)景的動(dòng)態(tài)口令進(jìn)行認(rèn)證,降低了密鑰被竊取的風(fēng)險(xiǎn),提高了令牌認(rèn)證系統(tǒng)的安全性。
[0463]實(shí)施例三
[0464]本發(fā)明實(shí)施例三提供了實(shí)施例一提及的身份認(rèn)證系統(tǒng)的組成結(jié)構(gòu)。
[0465]如圖10所示,為本發(fā)明實(shí)施例三中的一種身份認(rèn)證系統(tǒng)結(jié)構(gòu)圖,包括認(rèn)證服務(wù)器810、客戶端820和動(dòng)態(tài)令牌830。
[0466]其中,認(rèn)證服務(wù)器810包括:
[0467]第一接收模塊811,用于接收來(lái)自所述客戶端820的第一操作請(qǐng)求;
[0468]第一生成模塊812,用于在所述第一接收模塊811接收到所述第一操作請(qǐng)求后,生成第一挑戰(zhàn)碼,將所述第一挑戰(zhàn)碼保存為與所述第一操作請(qǐng)求中的身份信息相對(duì)應(yīng)的信息;
[0469]第一發(fā)送模塊813,用于將所述第一生成模塊812生成的所述第一挑戰(zhàn)碼發(fā)送給所述客戶端820 ;
[0470]所述客戶端820包括:
[0471]第二發(fā)送模塊821,用于向所述認(rèn)證服務(wù)器810發(fā)送所述第一操作請(qǐng)求;
[0472]第二接收模塊822,用于接收來(lái)自所述認(rèn)證服務(wù)器810的所述第一挑戰(zhàn)碼;
[0473]第一顯示模塊823,用于顯示所述第一挑戰(zhàn)碼;
[0474]所述動(dòng)態(tài)令牌830包括:
[0475]第一存儲(chǔ)模塊831,用于保存工作密鑰和第一用途代碼;
[0476]第一獲取模塊832,用于獲取用戶輸入的所述第一挑戰(zhàn)碼;
[0477]檢測(cè)模塊833,用于檢測(cè)按鍵;
[0478]第一散列模塊834,用于在所述檢測(cè)模塊833檢測(cè)到第一按鍵被觸發(fā)時(shí),對(duì)所述第一存儲(chǔ)模塊831保存的工作密鑰和第一用途代碼進(jìn)行散列,得到第一散列數(shù)據(jù);
[0479]第二散列模塊835,用于將所述第一散列模塊834散列得到的所述第一散列數(shù)據(jù)作為第一計(jì)算密鑰,對(duì)所述第一計(jì)算密鑰、第一時(shí)間信息和所述第一獲取模塊832獲取到的所述第一挑戰(zhàn)碼進(jìn)行散列,得到第二散列數(shù)據(jù);
[0480]第一截位模塊836,用于對(duì)所述第二散列模塊835散列得到的所述第二散列數(shù)據(jù)進(jìn)行截位,得到第一截位結(jié)果;
[0481]第二顯示模塊837,用于將所述第一截位模塊836截位得到的第一截位結(jié)果作為第一認(rèn)證口令進(jìn)行顯示;
[0482]所述客戶端820還包括:
[0483]第二獲取模塊824,用于獲取用戶輸入的所述第一認(rèn)證口令;
[0484]第二生成模塊825,用于生成包含身份信息和所述第一認(rèn)證口令的第一認(rèn)證請(qǐng)求;
[0485]所述第二發(fā)送模塊821,還用于將所述第二生成模塊825生成的所述第一認(rèn)證請(qǐng)求發(fā)送給所述認(rèn)證服務(wù)器810 ;
[0486]所述認(rèn)證服務(wù)器810中的所述第一接收模塊811,還用于接收來(lái)自所述客戶端820的所述第一認(rèn)證請(qǐng)求;
[0487]所述認(rèn)證服務(wù)器810還包括:
[0488]第二存儲(chǔ)模塊814,用于保存所述第一用途代碼;
[0489]第三獲取模塊815,用于獲取所述第一接收模塊811接收到的所述第一認(rèn)證請(qǐng)求中的身份信息;
[0490]檢索模塊816,用于檢索與所述第一認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和第一挑戰(zhàn)碼;
[0491]第三散列模塊817,用于對(duì)所述檢索模塊816檢索到的工作密鑰和所述第二存儲(chǔ)模塊814保存的所述第一用途代碼進(jìn)行散列,得到第三散列數(shù)據(jù);
[0492]第四散列模塊818,用于將所述第三散列模塊817散列得到的第三散列數(shù)據(jù)作為第二計(jì)算密鑰,對(duì)所述第二計(jì)算密鑰、第二時(shí)間信息和檢索到的所述第一挑戰(zhàn)碼進(jìn)行散列,得到第四散列數(shù)據(jù);
[0493]第二截位模塊819,用于對(duì)所述第四散列模塊818散列得到的所述第四散列數(shù)據(jù)進(jìn)行截位,得到第二截位結(jié)果;
[0494]第一判斷模塊841,用于將所述第二截位模塊819截位得到的所述第二截位結(jié)果作為計(jì)算得到的第一認(rèn)證口令,判斷所述計(jì)算得到的第一認(rèn)證口令是否與從所述第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令匹配;
[0495]所述第一發(fā)送模塊813,還用于在所述第一判斷模塊841判斷出所述計(jì)算得到的第一認(rèn)證口令與從所述第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令匹配時(shí),向所述客戶端820發(fā)送認(rèn)證成功消息;在所述第一判斷模塊841判斷出所述計(jì)算得到的第一認(rèn)證口令與從所述第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令不匹配時(shí),向所述客戶端820發(fā)送認(rèn)證失敗消息;
[0496]所述客戶端820中的所述第二接收模塊822,還用于接收來(lái)自所述認(rèn)證服務(wù)器810的認(rèn)證成功消息或認(rèn)證失敗消息。
[0497]具體地,所述第一散列模塊834,具體用于在所述檢測(cè)模塊833檢測(cè)到第一按鍵被觸發(fā)時(shí),將所述第一存儲(chǔ)模塊831保存的工作密鑰和所述第一用途代碼組合成第一數(shù)據(jù),對(duì)所述第一數(shù)據(jù)進(jìn)行填充,得到第一消息,并對(duì)所述第一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第一散列數(shù)據(jù);
[0498]所述第二散列模塊835,具體用于將所述第一計(jì)算密鑰、所述第一時(shí)間信息以及所述第一挑戰(zhàn)碼組合成第二數(shù)據(jù),對(duì)所述第二數(shù)據(jù)進(jìn)行填充,得到第二消息,并對(duì)所述第二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第二散列數(shù)據(jù);
[0499]所述第三散列模塊817,具體用于對(duì)所述檢索模塊816檢索到的工作密鑰和所述第二存儲(chǔ)模塊814保存的所述第一用途代碼組合成第三數(shù)據(jù),對(duì)所述第三數(shù)據(jù)進(jìn)行填充,得到第三消息,并對(duì)所述第三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第三散列數(shù)據(jù);
[0500]所述第四散列模塊818,具體用于將所述第二計(jì)算密鑰、所述第二時(shí)間信息以及所述檢索到的第一挑戰(zhàn)碼組合成第四數(shù)據(jù),對(duì)所述第四數(shù)據(jù)進(jìn)行填充,得到第四消息,并對(duì)所述第四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第四散列數(shù)據(jù)。[0501]所述第一截位模塊836,具體用于對(duì)所述第二散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第一截位結(jié)果;
[0502]所述第二截位模塊819,具體用于對(duì)所述第四散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第二截位結(jié)果。
[0503]進(jìn)一步地,所述認(rèn)證服務(wù)器810中的所述第一接收模塊811,還用于接收來(lái)自所述客戶端820的第二操作請(qǐng)求;
[0504]相應(yīng)地,所述第一生成模塊812,還用于在所述第一接收模塊811接收到所述第二操作請(qǐng)求后,生成第二挑戰(zhàn)碼,將所述第二挑戰(zhàn)碼保存為與所述第二操作請(qǐng)求中的身份信息相對(duì)應(yīng)的信息;
[0505]所述第一發(fā)送模塊813,還用于將所述第一生成模塊812生成的所述第二挑戰(zhàn)碼發(fā)送給所述客戶端820;
[0506]所述客戶端820中的所述第一顯示模塊823,還用于顯示所述第二挑戰(zhàn)碼;
[0507]所述動(dòng)態(tài)令牌830中的所述第一存儲(chǔ)模塊831,還用于保存第二用途代碼;
[0508]所述第一獲取模塊832,還用于獲取用戶輸入的所述第二挑戰(zhàn)碼;
[0509]所述第一散列模塊834,還用于在所述檢測(cè)模塊833檢測(cè)到第二按鍵被觸發(fā)時(shí),對(duì)所述第一存儲(chǔ)模塊831保存的工作密鑰和第二用途代碼進(jìn)行散列,得到第五散列數(shù)據(jù);
[0510]所述第二散列模塊835,還用于將所述第二散列模塊835散列得到的所述第五散列數(shù)據(jù)作為第三計(jì)算密鑰,對(duì)所述第三計(jì)算密鑰、第三時(shí)間信息和所述第二挑戰(zhàn)碼進(jìn)行散列,得到第六散列數(shù)據(jù);
[0511]所述第一截位模塊836,還用于對(duì)所述第六散列數(shù)據(jù)進(jìn)行截位,得到第三截位結(jié)果;
[0512]所述第二顯示模塊837,還用于將所述第一截位模塊836截位得到的第三截位結(jié)果作為第二認(rèn)證口令進(jìn)行顯示;
[0513]所述客戶端820中的所述第二獲取模塊824,還用于獲取用戶輸入的所述第二認(rèn)證口令;
[0514]所述第二生成模塊825,還用于生成包含所述第二認(rèn)證口令和身份信息的第二認(rèn)證請(qǐng)求;
[0515]所述第二發(fā)送模塊821,還用于將所述第二生成模塊825生成的所述第二認(rèn)證請(qǐng)求發(fā)送給所述認(rèn)證服務(wù)器810 ;
[0516]所述認(rèn)證服務(wù)器810中的所述第一接收模塊811,還用于接收來(lái)自所述客戶端820的所述第二認(rèn)證請(qǐng)求;
[0517]所述第二存儲(chǔ)模塊814,還用于保存所述第二用途代碼;
[0518]所述第三獲取模塊815,還用于獲取所述第二認(rèn)證請(qǐng)求中的身份信息;
[0519]所述檢索模塊816,還用于檢索與所述第二認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和第二挑戰(zhàn)碼;[0520]所述第三散列模塊817,還用于對(duì)所述檢索模塊816檢索到的工作密鑰和所述第二存儲(chǔ)模塊814保存的所述第二用途代碼進(jìn)行散列,得到第七散列數(shù)據(jù);
[0521]所述第四散列模塊818,還用于將所述第三散列模塊817散列得到的所述第七散列數(shù)據(jù)作為第四計(jì)算密鑰,對(duì)所述第四計(jì)算密鑰、第四時(shí)間信息和檢索到的所述第二挑戰(zhàn)碼進(jìn)行散列,得到第八散列數(shù)據(jù);
[0522]所述第二截位模塊819,還用于對(duì)所述第八散列數(shù)據(jù)進(jìn)行截位,得到第四截位結(jié)果;
[0523]所述第一判斷模塊841,還用于將所述第二截位模塊819截位得到的所述第四截位結(jié)果作為計(jì)算得到的第二認(rèn)證口令,判斷所述計(jì)算得到的第二認(rèn)證口令是否與從所述第二認(rèn)證請(qǐng)求中獲取的第二認(rèn)證口令匹配;
[0524]所述第一發(fā)送模塊813,還用于在所述第一判斷模塊841判斷出所述計(jì)算得到的第二認(rèn)證口令與從所述第二認(rèn)證請(qǐng)求中獲取的第二認(rèn)證口令匹配時(shí),向所述客戶端820發(fā)送認(rèn)證成功消息;在所述第一判斷模塊841判斷出所述計(jì)算得到的第二認(rèn)證口令與從所述第二認(rèn)證請(qǐng)求中獲取的第二認(rèn)證口令不匹配時(shí),向所述客戶端820發(fā)送認(rèn)證失敗消息。
[0525]其中,所述第一操作請(qǐng)求為登錄請(qǐng)求時(shí),所述第一認(rèn)證請(qǐng)求為登錄認(rèn)證請(qǐng)求,所述第二操作請(qǐng)求為簽名請(qǐng)求,所述第二認(rèn)證請(qǐng)求為簽名認(rèn)證請(qǐng)求;
[0526]所述第一操作請(qǐng)求為簽名請(qǐng)求時(shí),所述第一認(rèn)證請(qǐng)求為簽名認(rèn)證請(qǐng)求,所述第二操作請(qǐng)求為登錄請(qǐng)求,所述第二認(rèn)證請(qǐng)求為登錄認(rèn)證請(qǐng)求。
[0527]具體地,所述第一散列模塊834,具體用于在所述檢測(cè)模塊833檢測(cè)到第二按鍵被觸發(fā)時(shí),將所述第一存儲(chǔ)模塊831保存的工作密鑰和所述第二用途代碼組合成第五數(shù)據(jù),對(duì)所述第五數(shù)據(jù)進(jìn)行填充,得到第五消息,并對(duì)所述第五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第五散列數(shù)據(jù);
[0528]所述第二散列模塊835,具體用于將所述第三計(jì)算密鑰、所述第三時(shí)間信息以及所述第二挑戰(zhàn)碼組合成第六數(shù)據(jù),對(duì)所述第六數(shù)據(jù)進(jìn)行填充,得到第六消息,并對(duì)所述第六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第六散列數(shù)據(jù);
[0529]所述第三散列模塊817,具體用于對(duì)所述檢索模塊816檢索到的工作密鑰和所述第二存儲(chǔ)模塊814保存的所述第二用途代碼組合成第七數(shù)據(jù),對(duì)所述第七數(shù)據(jù)進(jìn)行填充,得到第七消息,并對(duì)所述第七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第七散列數(shù)據(jù);
[0530]所述第四散列模塊818,具體用于將所述第四計(jì)算密鑰、所述第四時(shí)間信息以及所述檢索到的第二挑戰(zhàn)碼組合成第八數(shù)據(jù),對(duì)所述第八數(shù)據(jù)進(jìn)行填充,得到第八消息,并對(duì)所述第八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第八散列數(shù)據(jù)。
[0531]所述第一截位模塊836,具體用于對(duì)所述第六散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第三截位結(jié)果;
[0532]所述第二截位模塊819,具體用于對(duì)所述第八散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第四截位結(jié)果。
[0533]進(jìn)一步地,所述動(dòng)態(tài)令牌830,還包括:
[0534]第三生成模塊,用于當(dāng)所述動(dòng)態(tài)令牌830被鎖定后,生成解鎖請(qǐng)求碼;
[0535]所述第二顯示模塊837,還用于顯示所述第三生成模塊生成的所述解鎖請(qǐng)求碼;
[0536]所述客戶端820中的所述第二獲取模塊824,還用于獲取用戶輸入的所述解鎖請(qǐng)求碼;
[0537]所述第二生成模塊825,還用于生成包含所述解鎖請(qǐng)求碼和身份信息的解鎖請(qǐng)求;
[0538]所述第二發(fā)送模塊821,還用于將所述解鎖請(qǐng)求發(fā)送給所述認(rèn)證服務(wù)器810 ;
[0539]所述認(rèn)證服務(wù)器810中的所述第一接收模塊811,還用于接收所述解鎖請(qǐng)求;
[0540]所述第二存儲(chǔ)模塊814,還用于保存第三用途代碼;
[0541]所述檢索模塊816,還用于檢索與所述解鎖請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰;
[0542]所述第三散列模塊817,還用于對(duì)所述檢索模塊816檢索到的工作密鑰和所述第二存儲(chǔ)模塊814保存的所述第三用途代碼進(jìn)行散列,得到第九散列數(shù)據(jù);
[0543]所述第三獲取模塊815,還用于從所述解鎖請(qǐng)求中獲取所述解鎖請(qǐng)求碼;
[0544]所述第四散列模塊818,還用于將所述第三散列模塊817散列得到的第九散列數(shù)據(jù)作為第五計(jì)算密鑰,對(duì)所述第五計(jì)算密鑰和所述解鎖請(qǐng)求碼進(jìn)行散列,得到第十散列數(shù)據(jù);
[0545]所述第二截位模塊819,還用于對(duì)所述第十散列數(shù)據(jù)進(jìn)行截位,得到第五截位結(jié)果;
[0546]所述第一發(fā)送模塊813,還用于將所述第二截位模塊819截位得到的第五截位結(jié)果作為解鎖碼發(fā)送給所述客戶端820 ;
[0547]所述客戶端820中的第二接收模塊822,還用于接收來(lái)自所述認(rèn)證服務(wù)器810的所述解鎖碼;
[0548]所述第一顯示模塊823,還用于顯示所述解鎖碼;
[0549]所述動(dòng)態(tài)令牌830中的所述第一獲取模塊832,還用于獲取用戶輸入的所述解鎖碼;
[0550]所述第一存儲(chǔ)模塊831,還用于保存所述第三用途代碼;
[0551]所述第一散列模塊834,還用于在所述檢測(cè)模塊833檢測(cè)到第三按鍵被觸發(fā)時(shí),對(duì)所述第一存儲(chǔ)模塊831保存的工作密鑰和所述第三用途代碼進(jìn)行散列,得到第十一散列數(shù)據(jù);
[0552]所述第二散列模塊835,還用于將所述第一散列模塊834散列得到的第十一散列數(shù)據(jù)作為第六計(jì)算密鑰,對(duì)所述第六計(jì)算密鑰和所述解鎖請(qǐng)求碼進(jìn)行散列,得到第十二散列數(shù)據(jù);
[0553]所述第一截位模塊836,還用于對(duì)所述第十二散列數(shù)據(jù)進(jìn)行截位,得到第六截位結(jié)果;
[0554]所述第一判斷模塊841,還用于判斷所述第六截位結(jié)果是否與所述解鎖碼相同;
[0555]所述第二顯示模塊837,還用于在所述第一判斷模塊841判斷出所述第六截位結(jié)果與所述解鎖碼相同時(shí),顯示解鎖成功信息;在所述第一判斷模塊841判斷出所述第六截位結(jié)果與所述解鎖碼不同時(shí),顯示解鎖失敗信息;
[0556]所述動(dòng)態(tài)令牌830,還包括:
[0557]重置模塊,用于在所述第一判斷模塊841判斷出所述第六截位結(jié)果與所述解鎖碼相同時(shí),對(duì)開機(jī)口令進(jìn)行重置,保存重置后的開機(jī)口令。
[0558]進(jìn)一步地,所述動(dòng)態(tài)令牌830中的所述第一存儲(chǔ)模塊831,還用于保存原始種子密鑰;
[0559]所述動(dòng)態(tài)令牌830,還包括:
[0560]初始化模塊,用于在所述第一判斷模塊841判斷出所述第六截位結(jié)果與所述解鎖碼相同時(shí),對(duì)解鎖失敗次數(shù)進(jìn)行初始化;
[0561]更新模塊,用于在所述第一判斷模塊841判斷出所述第六截位結(jié)果與所述解鎖碼不同時(shí),對(duì)所述解鎖失敗次數(shù)進(jìn)行更新;
[0562]第二判斷模塊,用于判斷所述解鎖失敗次數(shù)是否等于第二預(yù)設(shè)次數(shù),并在判斷出所述解鎖失敗次數(shù)不等于第二預(yù)設(shè)次數(shù)時(shí),觸發(fā)所述第三生成模塊重新生成解鎖請(qǐng)求碼;
[0563]清空模塊,用于在所述第二判斷模塊判斷出所述解鎖失敗次數(shù)等于第二預(yù)設(shè)次數(shù)時(shí),清空所述第一存儲(chǔ)模塊831保存的原始種子密鑰和工作密鑰;
[0564]所述第二顯示模塊837,還用于在所述第二判斷模塊判斷出所述解鎖失敗次數(shù)等于第二預(yù)設(shè)次數(shù)時(shí),顯示令牌自毀信息。
[0565]具體地,所述第三散列模塊817,具體用于將所述檢索模塊816檢索到的工作密鑰和所述第三用途代碼組合成第九數(shù)據(jù),對(duì)所述第九數(shù)據(jù)進(jìn)行填充,得到第九消息,并對(duì)所述第九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第九散列數(shù)據(jù);
[0566]所述第四散列模塊818,具體用于將所述第五計(jì)算密鑰和所述解鎖請(qǐng)求碼組合成第十?dāng)?shù)據(jù),對(duì)所述第十?dāng)?shù)據(jù)進(jìn)行填充,得到第十消息,并對(duì)所述第十消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十散列數(shù)據(jù);
[0567]所述第一散列模塊834,具體用于將所述第一存儲(chǔ)模塊831保存的工作密鑰和第三用途代碼組合成第十一數(shù)據(jù),對(duì)所述第十一數(shù)據(jù)進(jìn)行填充,得到第十一消息,并對(duì)所述第十一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十一散列數(shù)據(jù);
[0568]所述第二散列模塊835,具體用于將所述第六計(jì)算密鑰和所述解鎖請(qǐng)求碼組合成第十二數(shù)據(jù),對(duì)所述第十二數(shù)據(jù)進(jìn)行填充,得到第十二消息,并對(duì)所述第十二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十二散列數(shù)據(jù)。
[0569]所述第二截位模塊819,具體用于對(duì)所述第十散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第五截位結(jié)果;
[0570]所述第一截位模塊836,具體用于對(duì)所述第十二散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第六截位結(jié)果。
[0571]進(jìn)一步地,所述動(dòng)態(tài)令牌830中的所述第一存儲(chǔ)模塊831,還用于保存第三用途代碼;[0572]所述第一散列模塊834,還用于在所述檢測(cè)模塊833檢測(cè)到第四按鍵被觸發(fā)時(shí),對(duì)所述第一存儲(chǔ)模塊831保存的工作密鑰和第三用途代碼進(jìn)行散列,得到第十一散列數(shù)據(jù);
[0573]所述第二散列模塊835,還用于將所述第一散列模塊834散列得到的第十一散列數(shù)據(jù)作為第六計(jì)算密鑰,對(duì)所述第六計(jì)算密鑰和第五時(shí)間信息進(jìn)行散列,得到第十三散列數(shù)據(jù),對(duì)所述第六計(jì)算密鑰和第六時(shí)間信息進(jìn)行散列,得到第十四散列數(shù)據(jù),所述第六時(shí)間信息晚于所述第五時(shí)間信息;
[0574]所述第一截位模塊836,還用于對(duì)所述第十三散列數(shù)據(jù)進(jìn)行截位,得到第七截位結(jié)果;對(duì)所述第十四散列數(shù)據(jù)進(jìn)行截位,得到第八截位結(jié)果;
[0575]所述第二顯示模塊837,還用于將所述第七截位結(jié)果和所述第八截位結(jié)果分別作為第一同步碼和第二同步碼進(jìn)行顯示;
[0576]所述客戶端820中的所述第二獲取模塊824,還用于獲取用戶輸入的所述第一同步碼和所述第二同步碼;
[0577]所述第二生成模塊825,還用于生成包含所述第一同步碼、所述第二同步碼和身份信息的同步請(qǐng)求;
[0578]所述第二發(fā)送模塊821,還用于將所述同步請(qǐng)求發(fā)送給所述認(rèn)證服務(wù)器810 ;
[0579]所述認(rèn)證服務(wù)器810中的所述第一接收模塊811,還用于接收所述同步請(qǐng)求;
[0580]所述第二存儲(chǔ)模塊814,還用于保存第三用途代碼;
[0581]所述檢索模塊816,還用于檢索與所述同步請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰;
[0582]所述第三散列模塊817,還用于對(duì)所述檢索模塊816檢索到的工作密鑰和所述第二存儲(chǔ)模塊814保存的第三用途代碼進(jìn)行散列,得到第九散列數(shù)據(jù);
[0583]所述第四散列模塊818,還用于將所述第三散列模塊817散列得到的第九散列數(shù)據(jù)作為第五計(jì)算密鑰,對(duì)所述第五計(jì)算密鑰和第七時(shí)間信息進(jìn)行散列,得到第十五散列數(shù)據(jù);
[0584]所述第二截位模塊819,還用于對(duì)所述第十五散列數(shù)據(jù)進(jìn)行截位,得到第九截位結(jié)果;
[0585]所述第一判斷模塊841,還用于將所述第二截位模塊819截位得到的第九截位結(jié)果作為第一同步口令,判斷所述第一同步口令是否與從所述同步請(qǐng)求中獲取的第一同步碼匹配;
[0586]所述第一發(fā)送模塊813,還用于在所述第一判斷模塊841判斷出所述第一同步口令與從所述同步請(qǐng)求中獲取的第一同步碼不匹配時(shí),向所述客戶端820發(fā)送同步失敗消息;
[0587]所述第四散列模塊818,還用于在所述第一判斷模塊841判斷出所述第一同步口令與從所述同步請(qǐng)求中獲取的第一同步碼匹配時(shí),對(duì)所述第五計(jì)算密鑰和第八時(shí)間信息進(jìn)行散列,得到第十六散列數(shù)據(jù);
[0588]所述第二截位模塊819,還用于對(duì)所述第十六散列數(shù)據(jù)進(jìn)行截位,得到第十截位結(jié)果;
[0589]所述第一判斷模塊841,還用于將所述第二截位模塊819截位得到的第十截位結(jié)果作為第二同步口令,判斷所述第二同步口令是否與從所述同步請(qǐng)求中獲取的第二同步碼匹配;[0590]所述第一發(fā)送模塊813,還用于在所述第一判斷模塊841判斷出所述第二同步口令與從所述同步請(qǐng)求中獲取的第二同步碼不匹配時(shí),向所述客戶端820發(fā)送同步失敗消息;
[0591]所述第一判斷模塊841,還用于在所述第一判斷模塊841判斷出所述第二同步口令與從所述同步請(qǐng)求中獲取的第二同步碼匹配時(shí),判斷所述第二同步碼的認(rèn)證成功時(shí)間是否晚于所述第一同步碼的認(rèn)證成功時(shí)間;
[0592]所述第三獲取模塊815,還用于在所述第一判斷模塊841判斷出所述第二同步碼的認(rèn)證成功時(shí)間晚于所述第一同步碼的認(rèn)證成功時(shí)間時(shí),獲取系統(tǒng)時(shí)間與所述第一同步碼的認(rèn)證成功時(shí)間之間的差值,將所述差值保存為與所述同步請(qǐng)求中的身份信息對(duì)應(yīng)的令牌偏移時(shí)間;
[0593]所述第一發(fā)送模塊813,還用于在所述第一判斷模塊841判斷出所述第二同步碼的認(rèn)證成功時(shí)間晚于所述第一同步碼的認(rèn)證成功時(shí)間時(shí),向所述客戶端820發(fā)送同步成功消息;在所述第一判斷模塊841判斷出所述第二同步碼的認(rèn)證成功時(shí)間不晚于所述第一同步碼的認(rèn)證成功時(shí)間時(shí),向所述客戶端820發(fā)送同步失敗消息。
[0594]具體地,所述第一散列模塊834,具體用于將所述第一存儲(chǔ)模塊831保存的工作密鑰和所述第三用途代碼組合成第十一數(shù)據(jù),對(duì)所述第十一數(shù)據(jù)進(jìn)行填充,得到第十一消息,并對(duì)所述第十一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十一散列數(shù)據(jù);
[0595]所述第二散列模塊835,具體用于將所述第六計(jì)算密鑰和所述第五時(shí)間信息組合成第十三數(shù)據(jù),對(duì)所述第十三數(shù)據(jù)進(jìn)行填充,得到第十三消息,并對(duì)所述第十三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十三散列數(shù)據(jù);將所述第六計(jì)算密鑰和所述第六時(shí)間信息組合成第十四數(shù)據(jù),對(duì)所述第十四數(shù)據(jù)進(jìn)行填充,得到第十四消息,并對(duì)所述第十四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十四散列數(shù)據(jù);
[0596]所述第三散列模塊817,具體用于將所述檢索模塊816檢索到的工作密鑰和所述第三用途代碼組合成第九數(shù)據(jù),對(duì)所述第九數(shù)據(jù)進(jìn)行填充,得到第九消息,并對(duì)所述第九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第九散列數(shù)據(jù);
[0597]所述第四散列模塊818,具體用于將所述第五計(jì)算密鑰和所述第七時(shí)間信息組合成第十五數(shù)據(jù),對(duì)所述第十五數(shù)據(jù)進(jìn)行填充,得到第十五消息,并對(duì)所述第十五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十五散列數(shù)據(jù);將所述第五計(jì)算密鑰和所述第八時(shí)間信息組合成第十六數(shù)據(jù),對(duì)所述第十六數(shù)據(jù)進(jìn)行填充,得到第十六消息,并對(duì)所述第十六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十六散列數(shù)據(jù)。
[0598]所述第一截位模塊836,具體用于對(duì)所述第十三散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第七截位結(jié)果;對(duì)所述第十四散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第八截位結(jié)果;
[0599]所述第二截位模塊819,具體用于對(duì)所述第十五散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第九截位結(jié)果;對(duì)所述第十六散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第十截位結(jié)果。
[0600]進(jìn)一步地,所述認(rèn)證服務(wù)器810中的所述第一接收模塊811,還用于接收來(lái)自所述客戶端820的激活請(qǐng)求;
[0601]所述檢索模塊816,還用于檢索與所述激活請(qǐng)求中的身份信息對(duì)應(yīng)的原始種子密鑰;
[0602]所述第一生成模塊812,還用于在所述第一接收模塊811接收到所述解惑請(qǐng)求后,生成隨機(jī)數(shù);
[0603]所述認(rèn)證服務(wù)器810,還包括:
[0604]所述第五散列模塊,用于對(duì)所述第一生成模塊812生成的所述隨機(jī)數(shù)和所述檢索模塊816檢索到的原始種子密鑰進(jìn)行散列,得到第十七散列數(shù)據(jù);
[0605]第三截位模塊,用于對(duì)所述第十七散列數(shù)據(jù)進(jìn)行截位,得到第十一截位結(jié)果;
[0606]組合模塊,用于將所述第三截位模塊截位得到的第十一截位結(jié)果與所述第一生成模塊812生成的所述隨機(jī)數(shù)進(jìn)行組合,得到激活碼;
[0607]第六散列模塊,用于對(duì)所述組合模塊組合得到的所述激活碼和所述檢索模塊816檢索到的原始種子密鑰進(jìn)行散列,將得到的第十八散列數(shù)據(jù)保存為與所述激活請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰;
[0608]所述第一發(fā)送模塊813,還用于將所述組合模塊組合得到的所述激活碼發(fā)送給所述客戶端820 ;
[0609]所述客戶端820中的所述第二接收模塊822,還用于接收所述激活碼;
[0610]所述第一顯示模塊823,還用于顯示所述激活碼;
[0611]所述動(dòng)態(tài)令牌830中的所述第一存儲(chǔ)模塊831,還用于保存原始種子密鑰;
[0612]所述第一獲取模塊832,用于獲取用戶輸入的所述激活碼;
[0613]所述動(dòng)態(tài)令牌830,還包括:
[0614]第七散列模塊,用于對(duì)所述激活碼和所述第一存儲(chǔ)模塊831保存的原始種子密鑰進(jìn)行散列,將得到的第十九散列數(shù)據(jù)保存為所述工作密鑰;
[0615]設(shè)置模塊,用于在所述第七散列模塊保存所述工作密鑰后,設(shè)置開機(jī)口令,并對(duì)設(shè)置的所述開機(jī)口令進(jìn)行保存。
[0616]具體地,所述第五散列模塊,具體用于將所述隨機(jī)數(shù)和所述檢索到的原始種子密鑰組合成第十七數(shù)據(jù),對(duì)所述第十七數(shù)據(jù)進(jìn)行填充,得到第十七消息,并對(duì)所述第十七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十七散列數(shù)據(jù);
[0617]所述第六散列模塊,具體用于將所述激活碼和所述檢索到的原始種子密鑰組合成第十八數(shù)據(jù),對(duì)所述第十八數(shù)據(jù)進(jìn)行填充,得到第十八消息,并對(duì)所述第十八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十八散列數(shù)據(jù);
[0618]所述第七散列模塊,具體用于將所述激活碼和所述自身保存的原始種子密鑰組合成第十九數(shù)據(jù),對(duì)所述第十九數(shù)據(jù)進(jìn)行填充,得到第十九消息,并對(duì)所述第十九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十九散列數(shù)據(jù)。
[0619]所述第三截位模塊,具體用于對(duì)所述第十七散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第十一截位結(jié)果。
[0620]本發(fā)明實(shí)施例中,動(dòng)態(tài)令牌根據(jù)不同的用途代碼生成不同的計(jì)算密鑰,并根據(jù)各個(gè)計(jì)算密鑰生成分別適用于各個(gè)應(yīng)用場(chǎng)景的動(dòng)態(tài)口令;相應(yīng)地,認(rèn)證服務(wù)器根據(jù)不同的用途代碼對(duì)適用于各個(gè)應(yīng)用場(chǎng)景的動(dòng)態(tài)口令進(jìn)行認(rèn)證,降低了用于生成動(dòng)態(tài)口令的密鑰被竊取的風(fēng)險(xiǎn),提高了令牌認(rèn)證系統(tǒng)的安全性。
[0621]實(shí)施例四
[0622]本發(fā)明實(shí)施例提供了實(shí)施例二提及的動(dòng)態(tài)令牌和認(rèn)證服務(wù)器的組成結(jié)構(gòu)。
[0623]如圖11所示,為本發(fā)明實(shí)施例四中的動(dòng)態(tài)令牌的結(jié)構(gòu)示意圖,包括:
[0624]存儲(chǔ)模塊910,用于保存工作密鑰、第一用途代碼和第二用途代碼;
[0625]獲取模塊920,用于獲取用戶輸入的登錄挑戰(zhàn)碼和簽名挑戰(zhàn)碼;
[0626]檢測(cè)模塊930,用于檢測(cè)按鍵;
[0627]第一判斷模塊940,用于在所述檢測(cè)模塊930檢測(cè)到所述動(dòng)態(tài)令牌的按鍵被觸發(fā)時(shí),對(duì)被觸發(fā)的按鍵進(jìn)行判斷;
[0628]第一散列模塊950,用于在所述第一判斷模塊940判斷出所述被觸發(fā)的按鍵為第一按鍵時(shí),對(duì)所述存儲(chǔ)模塊910保存的工作密鑰和第一用途代碼進(jìn)行散列,得到第一散列數(shù)據(jù);在所述第一判斷模塊940判斷出所述被觸發(fā)的按鍵為第二按鍵時(shí),對(duì)所述存儲(chǔ)模塊910保存的工作密鑰和第二用途代碼進(jìn)行散列,得到第三散列數(shù)據(jù);
[0629]第二散列模塊960,用于將所述第一散列模塊950散列得到的第一散列數(shù)據(jù)作為第一計(jì)算密鑰,對(duì)所述第一計(jì)算密鑰、第一時(shí)間信息和所述獲取模塊920獲取的登錄挑戰(zhàn)碼進(jìn)行散列,得到第二散列數(shù)據(jù);將所述第一散列模塊950散列得到的第三散列數(shù)據(jù)作為第二計(jì)算密鑰,對(duì)所述第二計(jì)算密鑰、第二時(shí)間信息和所述獲取模塊920獲取的簽名挑戰(zhàn)碼進(jìn)行散列,得到第四散列數(shù)據(jù);
[0630]截位模塊970,用于對(duì)所述第二散列模塊960散列得到的第二散列數(shù)據(jù)進(jìn)行截位,得到第一截位結(jié)果;對(duì)所述第二散列模塊960散列得到的第四散列數(shù)據(jù)進(jìn)行截位,得到第~ 截位結(jié)果;
[0631]顯示模塊980,用于將所述截位模塊970截位得到的第一截位結(jié)果作為登錄口令進(jìn)行顯示,將所述截位模塊970截位得到的第二截位結(jié)果作為簽名口令進(jìn)行顯示。
[0632]具體地,所述第一散列模塊950,具體用于將所述工作密鑰和所述第一用途代碼組合成第一數(shù)據(jù),對(duì)所述第一數(shù)據(jù)進(jìn)行填充,得到第一消息,并對(duì)所述第一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第一散列數(shù)據(jù);將所述工作密鑰和所述第二用途代碼組合成第三數(shù)據(jù),對(duì)所述第三數(shù)據(jù)進(jìn)行填充,得到第三消息,并對(duì)所述第三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第三散列數(shù)據(jù);
[0633]所述第二散列模塊960,具體用于將所述第一計(jì)算密鑰、所述第一時(shí)間信息以及所述登錄挑戰(zhàn)碼組合成第二數(shù)據(jù),對(duì)所述第二數(shù)據(jù)進(jìn)行填充,得到第二消息,并對(duì)所述第二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第二散列數(shù)據(jù);將所述第二計(jì)算密鑰、所述第二時(shí)間信息以及所述簽名挑戰(zhàn)碼組合成第四數(shù)據(jù),對(duì)所述第四數(shù)據(jù)進(jìn)行填充,得到第四消息,并對(duì)所述第四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第四散列數(shù)據(jù)。
[0634]所述截位模塊970,具體用于對(duì)所述第二散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第一截位結(jié)果;對(duì)所述第四散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第二截位結(jié)果。
[0635]進(jìn)一步地,上述存儲(chǔ)模塊910,還用于保存第三用途代碼;
[0636]所述第一散列模塊950,還用于在所述第一判斷模塊940判斷出所述被觸發(fā)的按鍵為第三按鍵時(shí),對(duì)所述存儲(chǔ)模塊910保存的工作密鑰和第三用途代碼進(jìn)行散列,得到第五散列數(shù)據(jù);
[0637]所述第二散列模塊960,還用于將所述第一散列模塊950散列得到的第五散列數(shù)據(jù)作為第三計(jì)算密鑰,對(duì)所述第三計(jì)算密鑰和第三時(shí)間信息進(jìn)行散列,得到第六散列數(shù)據(jù);對(duì)所述第三計(jì)算密鑰和第四時(shí)間信息進(jìn)行散列,得到第七散列數(shù)據(jù);
[0638]所述截位模塊970,還用于對(duì)所述第六散列數(shù)據(jù)進(jìn)行截位,得到第三截位結(jié)果;對(duì)所述第七散列數(shù)據(jù)進(jìn)行截位,得到第四截位結(jié)果;
[0639]所述顯示模塊980,還用于將所述第三截位結(jié)果和所述第四截位結(jié)果分別作為第一同步碼和第二同步碼進(jìn)行顯示。
[0640]具體地,所述第一散列模塊950,具體用于將所述工作密鑰和所述第三用途代碼組合成第五數(shù)據(jù),對(duì)所述第五數(shù)據(jù)進(jìn)行填充,得到第五消息,并對(duì)所述第五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第五散列數(shù)據(jù);
[0641]所述第二散列模塊960,具體用于將所述第三計(jì)算密鑰和所述第三時(shí)間信息組合成第六數(shù)據(jù),對(duì)所述第六數(shù)據(jù)進(jìn)行填充,得到第六消息,并對(duì)所述第六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第六散列數(shù)據(jù);將所述第三計(jì)算密鑰和所述第四時(shí)間信息組合成第七數(shù)據(jù),對(duì)所述第七數(shù)據(jù)進(jìn)行填充,得到第七消息,并對(duì)所述第七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第七散列數(shù)據(jù)。
[0642]所述截位模塊970,具體用于對(duì)所述第六散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第三截位結(jié)果;對(duì)所述第七散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第四截位結(jié)果。
[0643]進(jìn)一步地,所述存儲(chǔ)模塊910,還用于保存原始種子密鑰和第三用途代碼;
[0644]所述獲取模塊920,還用于獲取用戶輸入的激活碼;[0645]所述動(dòng)態(tài)令牌,還包括:
[0646]第三散列模塊,用于對(duì)所述激活碼和所述原始種子密鑰進(jìn)行散列,將得到的第九散列數(shù)據(jù)保存為所述工作密鑰;
[0647]設(shè)置模塊,用于在所述第三散列模塊保存所述工作密鑰后,設(shè)置開機(jī)口令,并將所述開機(jī)口令保存到所述存儲(chǔ)模塊910中。
[0648]具體地,所述第三散列模塊,具體用于將所述激活碼和所述原始種子密鑰組合成第九數(shù)據(jù),對(duì)所述第九數(shù)據(jù)進(jìn)行填充,得到第九消息,并對(duì)所述第九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第九散列數(shù)據(jù)。
[0649]進(jìn)一步地,所述顯示模塊980,還用于提示用戶輸入開機(jī)口令;
[0650]所述獲取模塊920,還用于獲取用戶輸入的開機(jī)口令;
[0651]相應(yīng)地,所述動(dòng)態(tài)令牌,還包括:
[0652]第二判斷模塊,用于判斷所述獲取模塊920獲取的開機(jī)口令是否與所述存儲(chǔ)模塊910保存的開機(jī)口令相同;
[0653]第一初始化模塊,用于在所述第二判斷模塊判斷出所述獲取模塊920獲取的開機(jī)口令與所述存儲(chǔ)模塊910保存的開機(jī)口令相同時(shí),對(duì)開機(jī)錯(cuò)誤次數(shù)進(jìn)行初始化;
[0654]第一更新模塊,用于在所述第二判斷模塊判斷出所述獲取模塊920獲取的開機(jī)口令與所述存儲(chǔ)模塊910保存的開機(jī)口令不同時(shí),對(duì)所述開機(jī)錯(cuò)誤次數(shù)進(jìn)行更新;
[0655]第三判斷模塊,用于判斷所述第一更新模塊更新后的所述開機(jī)錯(cuò)誤次數(shù)是否等于第一預(yù)設(shè)次數(shù);
[0656]生成模塊,用于在所述第三判斷模塊判斷出所述開機(jī)錯(cuò)誤次數(shù)等于第一預(yù)設(shè)次數(shù)時(shí),生成解鎖請(qǐng)求碼;
[0657]所述顯示模塊980,還用于顯示所述生成模塊生成的所述解鎖請(qǐng)求碼,提示用戶輸入解鎖碼;
[0658]所述獲取模塊920,還用于獲取用戶輸入的解鎖碼;
[0659]所述第一散列模塊950,還用于對(duì)所述存儲(chǔ)模塊910保存的工作密鑰和第三用途代碼進(jìn)行散列,得到第五散列數(shù)據(jù);
[0660]所述第二散列模塊960,還用于將所述第五散列數(shù)據(jù)作為第三計(jì)算密鑰,對(duì)所述第三計(jì)算密鑰和解鎖請(qǐng)求碼進(jìn)行散列,得到第八散列數(shù)據(jù);
[0661]所述截位模塊970,還用于對(duì)所述第八散列數(shù)據(jù)進(jìn)行截位,得到第五截位結(jié)果;
[0662]所述第四判斷模塊,用于判斷所述第五截位結(jié)果是否與所述解鎖碼相同;
[0663]所述顯示模塊980,還用于在所述第四判斷模塊判斷出所述第五截位結(jié)果與所述解鎖碼相同時(shí),顯示解鎖成功信息;在所述第四判斷模塊判斷出所述第五截位結(jié)果與所述解鎖碼不同時(shí),顯示解鎖失敗信息;
[0664]所述設(shè)置模塊,還用于在所述第四判斷模塊判斷出所述第五截位結(jié)果與所述解鎖碼相同時(shí),對(duì)開機(jī)口令進(jìn)行重置,保存重置后的開機(jī)口令。
[0665]進(jìn)一步地,上述動(dòng)態(tài)令牌,還包括:
[0666]第二初始化模塊,用于在所述第四判斷模塊判斷出所述第五截位結(jié)果與所述解鎖碼相同時(shí),對(duì)解鎖失敗次數(shù)進(jìn)行初始化;
[0667]第二更新模塊,用于在所述第四判斷模塊判斷出所述第五截位結(jié)果與所述解鎖碼不同時(shí),對(duì)所述解鎖失敗次數(shù)進(jìn)行更新;
[0668]第五判斷模塊,用于判斷所述解鎖失敗次數(shù)是否等于第二預(yù)設(shè)次數(shù),并在判斷出所述解鎖失敗次數(shù)不等于第二預(yù)設(shè)次數(shù)時(shí),觸發(fā)所述生成模塊生成解鎖請(qǐng)求碼;
[0669]清空模塊,用于在所述第五判斷模塊判斷出所述解鎖失敗次數(shù)等于第二預(yù)設(shè)次數(shù)時(shí),清空所述存儲(chǔ)模塊910保存的原始種子密鑰和工作密鑰;
[0670]所述顯示模塊980,還用于在所述第五判斷模塊判斷出所述解鎖失敗次數(shù)等于第二預(yù)設(shè)次數(shù)時(shí),顯示令牌自毀信息。
[0671]進(jìn)一步地,上述動(dòng)態(tài)令牌,還包括:
[0672]第六判斷模塊,用于在所述動(dòng)態(tài)令牌上電后,判斷所述動(dòng)態(tài)令牌是否被鎖定,并在判斷出所述動(dòng)態(tài)令牌被鎖定后,觸發(fā)所述生成模塊生成解鎖請(qǐng)求碼;在判斷出所述動(dòng)態(tài)令牌沒(méi)有被鎖定后,觸發(fā)所述顯示模塊980提示用戶輸入開機(jī)口令。
[0673]具體地,所述第一散列模塊950,具體用于將所述工作密鑰和所述第三用途代碼組合成第五數(shù)據(jù),對(duì)所述第五數(shù)據(jù)進(jìn)行填充,得到第五消息,并對(duì)所述第五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第五散列數(shù)據(jù);
[0674]所述第二散列模塊960,具體用于將所述第三計(jì)算密鑰和所述解鎖請(qǐng)求碼組合成第八數(shù)據(jù),對(duì)所述第八數(shù)據(jù)進(jìn)行填充,得到第八消息,并對(duì)所述第八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第八散列數(shù)據(jù)。
[0675]所述截位模塊970,具體用于對(duì)所述第八散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第五截位結(jié)果。
[0676]本發(fā)明實(shí)施例中,動(dòng)態(tài)令牌根據(jù)不同的用途代碼生成不同的計(jì)算密鑰,并根據(jù)各個(gè)計(jì)算密鑰生成分別適用于各個(gè)應(yīng)用場(chǎng)景的動(dòng)態(tài)口令,降低了用于生成動(dòng)態(tài)口令的密鑰被竊取的風(fēng)險(xiǎn),提高了令牌認(rèn)證系統(tǒng)的安全性。
[0677]如圖12所示,為本發(fā)明實(shí)施例四中的認(rèn)證服務(wù)器的結(jié)構(gòu)示意圖,包括:
[0678]存儲(chǔ)模塊1001,用于保存第一用途代碼和第二用途代碼;
[0679]接收模塊1002,用于接收來(lái)自客戶端的請(qǐng)求;
[0680]第一判斷模塊1003,用于對(duì)所述接收模塊1002接收到的請(qǐng)求進(jìn)行判斷;
[0681]第一生成模塊1004,用于在所述第一判斷模塊1003判斷所述接收到的請(qǐng)求為登錄請(qǐng)求時(shí),生成登錄挑戰(zhàn)碼,將所述登錄挑戰(zhàn)碼保存為與所述登錄請(qǐng)求中的身份信息相對(duì)應(yīng)的信息;在所述第一判斷模塊1003判斷所述接收到的請(qǐng)求為簽名請(qǐng)求時(shí),生成簽名挑戰(zhàn)碼,將所述簽名挑戰(zhàn)碼保存為與所述簽名請(qǐng)求中的身份信息相對(duì)應(yīng)的信息;
[0682]發(fā)送模塊1005,用于將所述第一生成模塊1004生成的所述登錄挑戰(zhàn)碼和所述簽名挑戰(zhàn)碼發(fā)送給所述客戶端;
[0683]檢索模塊1006,用于在所述第一判斷模塊1003判斷出所述接收到的請(qǐng)求為登錄認(rèn)證請(qǐng)求時(shí),檢索與所述登錄認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和登錄挑戰(zhàn)碼;在所述第一判斷模塊1003判斷出所述接收到的請(qǐng)求為簽名認(rèn)證請(qǐng)求時(shí),檢索與所述簽名認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和簽名挑戰(zhàn)碼;
[0684]第一散列模塊1007,用于對(duì)所述檢索模塊1006檢索到的工作密鑰和所述存儲(chǔ)模塊1001保存的第一用途代碼進(jìn)行散列,得到第十二散列數(shù)據(jù);對(duì)所述檢索模塊1006檢索到的工作密鑰和所述存儲(chǔ)模塊1001保存的第二用途代碼進(jìn)行散列,得到第十四散列數(shù)據(jù);
[0685]第二散列模塊1008,用于將所述第一散列模塊1007散列得到的所述第十二散列數(shù)據(jù)作為第四計(jì)算密鑰,對(duì)所述第四計(jì)算密鑰、第五時(shí)間信息和所述檢索模塊1006檢索到的登錄挑戰(zhàn)碼進(jìn)行散列,得到第十三散列數(shù)據(jù);將所述第一散列模塊1007散列得到的第十四散列數(shù)據(jù)作為第五計(jì)算密鑰,對(duì)所述第五計(jì)算密鑰、第六時(shí)間信息和檢索到的簽名挑戰(zhàn)碼進(jìn)行散列,得到第十五散列數(shù)據(jù);
[0686]截位模塊1009,用于對(duì)所述第二散列模塊1008散列得到的所述第十三散列數(shù)據(jù)進(jìn)行截位,得到第七截位結(jié)果;對(duì)所述第二散列模塊1008散列得到的所述第十五散列數(shù)據(jù)進(jìn)行截位,得到第八截位結(jié)果;
[0687]第二判斷模塊1010,用于將所述截位模塊1009截位得到的第七截位結(jié)果作為計(jì)算得到的登錄口令,判斷所述計(jì)算得到的登錄口令是否與從所述登錄認(rèn)證請(qǐng)求中獲取的登錄口令匹配;將所述截位模塊1009截位得到的第八截位結(jié)果作為計(jì)算得到的簽名口令,判斷所述計(jì)算得到的簽名口令是否與從所述簽名認(rèn)證請(qǐng)求中獲取的簽名口令匹配;
[0688]上述發(fā)送模塊1005,還用于在所述第二判斷模塊1010判斷出所述計(jì)算得到的登錄口令與從所述登錄認(rèn)證請(qǐng)求中獲取的登錄口令匹配時(shí),向所述客戶端發(fā)送認(rèn)證成功消息;在所述第二判斷模塊1010判斷出所述計(jì)算得到的登錄口令與從所述登錄認(rèn)證請(qǐng)求中獲取的登錄口令不匹配時(shí),向所述客戶端發(fā)送認(rèn)證失敗消息;在所述第二判斷模塊1010判斷出所述計(jì)算得到的簽名口令與從所述簽名認(rèn)證請(qǐng)求中獲取的簽名口令匹配時(shí),向所述客戶端發(fā)送認(rèn)證成功消息;在所述第二判斷模塊1010判斷出所述計(jì)算得到的簽名口令與從所述簽名認(rèn)證請(qǐng)求中獲取的簽名口令不匹配時(shí),向所述客戶端發(fā)送認(rèn)證失敗消息。
[0689]具體地,所述第一散列模塊1007,具體用于將所述檢索模塊1006檢索到的工作密鑰和所述第一用途代碼組合成第十二數(shù)據(jù),對(duì)所述第十二數(shù)據(jù)進(jìn)行填充,得到第十二消息,并對(duì)所述第十二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十二散列數(shù)據(jù);將所述檢索模塊1006檢索到的工作密鑰和所述第二用途代碼組合成第十四數(shù)據(jù),對(duì)所述第十四數(shù)據(jù)進(jìn)行填充,得到第十四消息,并對(duì)所述第十四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十四散列數(shù)據(jù);
[0690]所述第二散列模塊1008,具體用于將所述第四計(jì)算密鑰、所述第五時(shí)間信息以及所述檢索到的登錄挑戰(zhàn)碼組合成第十三數(shù)據(jù),對(duì)所述第十三數(shù)據(jù)進(jìn)行填充,得到第十三消息,并對(duì)所述第十三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十三散列數(shù)據(jù);將所述第五計(jì)算密鑰、所述第六時(shí)間信息以及所述檢索到的簽名挑戰(zhàn)碼組合成第十五數(shù)據(jù),對(duì)所述第十五數(shù)據(jù)進(jìn)行填充,得到第十五消息,并對(duì)所述第十五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十五散列數(shù)據(jù)。
[0691]所述截位模塊1009,具體用于對(duì)所述第十三散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第七截位結(jié)果;對(duì)第十五散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第八截位結(jié)果。
[0692]進(jìn)一步地,所述檢索模塊1006,還用于在所述第一判斷模塊1003判斷出所述接收到的請(qǐng)求為激活請(qǐng)求時(shí),檢索與所述激活請(qǐng)求中的身份信息對(duì)應(yīng)的原始種子密鑰;
[0693]相應(yīng)地,所述認(rèn)證服務(wù)器,還包括:
[0694]第二生成模塊,用于在所述第一判斷模塊1003判斷出所述接收到的請(qǐng)求為激活請(qǐng)求時(shí),生成第一隨機(jī)數(shù);
[0695]所述第一散列模塊1007,還用于對(duì)所述第二生成模塊生成的所述第一隨機(jī)數(shù)和所述檢索模塊1006檢索到的原始種子密鑰進(jìn)行散列,得到第十散列數(shù)據(jù);
[0696]所述截位模塊1009,還用于對(duì)所述第十散列數(shù)據(jù)進(jìn)行截位,得到第六截位結(jié)果;
[0697]所述認(rèn)證服務(wù)器,還包括:
[0698]組合模塊,用于將所述截位模塊1009截位得到的第六截位結(jié)果與所述第一隨機(jī)數(shù)進(jìn)行組合,得到激活碼;
[0699]第三散列模塊,用于對(duì)所述組合模塊組合得到的所述激活碼和所述檢索模塊1006檢索到的原始種子密鑰進(jìn)行散列,將得到的第十一散列數(shù)據(jù)保存為與所述激活請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰;
[0700]所述發(fā)送模塊1005,還用于向所述客戶端發(fā)送所述組合模塊生成的所述激活碼。
[0701]具體地,所述第一散列模塊1007,具體用于將所述第一隨機(jī)數(shù)和所述檢索模塊1006檢索到的原始種子密鑰組合成第十?dāng)?shù)據(jù),對(duì)所述第十?dāng)?shù)據(jù)進(jìn)行填充,得到第十消息,并對(duì)所述第十消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十散列數(shù)據(jù)。
[0702]所述截位模塊1009,具體用于對(duì)所述第十散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第六截位結(jié)果。
[0703]進(jìn)一步地,上述存儲(chǔ)模塊1001,還用于保存第三用途代碼;
[0704]所述檢索模塊1006,還用于在所述第一判斷模塊1003判斷出所述接收到的請(qǐng)求為解鎖請(qǐng)求時(shí),檢索與所述解鎖請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰;
[0705]所述第一散列模塊1007,還用于對(duì)所述檢索模塊1006檢索到的工作密鑰和所述存儲(chǔ)模塊1001保存的第三用途代碼進(jìn)行散列,得到第十六散列數(shù)據(jù);
[0706]所述第二散列模塊1008,還用于將所述第一散列模塊1007散列得到的第十六散列數(shù)據(jù)作為第六計(jì)算密鑰,對(duì)所述第六計(jì)算密鑰和從所述解鎖請(qǐng)求中獲取到的解鎖請(qǐng)求碼進(jìn)行散列,得到第十九散列數(shù)據(jù);
[0707]所述截位模塊1009,還用于對(duì)所述第十九散列數(shù)據(jù)進(jìn)行截位,得到第十一截位結(jié)果;
[0708]所述發(fā)送該模塊,還用于將所述截位模塊1009截位得到的第十一截位結(jié)果作為解鎖碼發(fā)送給所述客戶端。
[0709]具體地,所述第一散列模塊1007,具體用于將所述檢索到的工作密鑰和所述第三用途代碼組合成第十六數(shù)據(jù),對(duì)所述第十六數(shù)據(jù)進(jìn)行填充,得到第十六消息,并對(duì)所述第十六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十六散列數(shù)據(jù);
[0710]所述第二散列模塊1008,具體用于將所述第六計(jì)算密鑰和所述獲取到的解鎖請(qǐng)求碼組合成第十九數(shù)據(jù),對(duì)所述第十九數(shù)據(jù)進(jìn)行填充,得到第十九消息,并對(duì)所述第十九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第所述十九散列數(shù)據(jù)。
[0711]所述截位模塊1009,具體用于對(duì)所述第十九散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第十一截位結(jié)果。
[0712]進(jìn)一步地,所述存儲(chǔ)模塊1001,還用于保存第三用途代碼;
[0713]所述檢索模塊1006,還用于在所述第一判斷模塊1003判斷出所述接收到的請(qǐng)求為同步請(qǐng)求時(shí),檢索與所述同步請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰;
[0714]所述第一散列模塊1007,還用于對(duì)所述檢索模塊1006檢索到的工作密鑰和所述存儲(chǔ)模塊1001保存的第三用途代碼進(jìn)行散列,得到第十六散列數(shù)據(jù);
[0715]所述第二散列模塊1008,還用于對(duì)所述第一散列模塊1007散列得到的第十六散列數(shù)據(jù)作為第六計(jì)算密鑰,對(duì)所述第六計(jì)算密鑰和第七時(shí)間信息進(jìn)行散列,得到第十七散列數(shù)據(jù);
[0716]所述截位模塊1009,還用于對(duì)所述第十七散列數(shù)據(jù)進(jìn)行截位,得到第九截位結(jié)果;
[0717]第二判斷模塊1010,還用于將所述截位模塊1009截位得到的第九截位結(jié)果作為第一同步口令,判斷所述第一同步口令是否與從所述同步請(qǐng)求中獲取的第一同步碼匹配;
[0718]所述發(fā)送模塊1005,還用于在所述第二判斷模塊1010判斷出所述第一同步口令與從所述同步請(qǐng)求中獲取的第一同步碼不匹配時(shí),向所述客戶端發(fā)送同步失敗消息;
[0719]所述認(rèn)證服務(wù)器,還包括:
[0720]第四散列模塊,用于在所述第二判斷模塊1010判斷出所述第一同步口令與從所述同步請(qǐng)求中獲取的第一同步碼匹配時(shí),對(duì)所述第六計(jì)算密鑰和第八時(shí)間信息進(jìn)行散列,得到第十八散列數(shù)據(jù);
[0721]所述截位模塊1009,還用于對(duì)所述第十八散列數(shù)據(jù)進(jìn)行截位,得到第十截位結(jié)果;
[0722]所述認(rèn)證服務(wù)器,還包括:
[0723]第三判斷模塊,用于將所述截位模塊1009截位得到的第十截位結(jié)果作為第二同步口令,判斷所述第二同步口令是否與從所述同步請(qǐng)求中獲取的第二同步碼匹配;
[0724]第四判斷模塊,用于在所述第三判斷模塊判斷出所述第二同步口令與從所述同步請(qǐng)求中獲取的第二同步碼匹配時(shí),判斷所述第二同步碼的認(rèn)證成功時(shí)間是否晚于所述第一同步碼的認(rèn)證成功時(shí)間;
[0725]所述獲取模塊,用于在所述第四判斷模塊判斷出所述第二同步碼的認(rèn)證成功時(shí)間晚于所述第一同步碼的認(rèn)證成功時(shí)間時(shí),獲取系統(tǒng)時(shí)間與所述第一同步碼的認(rèn)證成功時(shí)間之間的差值,將所述差值保存為與所述同步請(qǐng)求中的身份信息對(duì)應(yīng)的令牌偏移時(shí)間;
[0726]所述發(fā)送模塊1005,還用于在所述第三判斷模塊判斷出所述第二同步口令與從所述同步請(qǐng)求中獲取的第二同步碼不匹配時(shí),向所述客戶端發(fā)送同步失敗消息;在所述第三判斷模塊判斷出所述第二同步口令與從所述同步請(qǐng)求中獲取的第二同步碼匹配時(shí),向所述客戶端發(fā)送同步成功消息;在所述第四判斷模塊判斷出所述第二同步碼的認(rèn)證成功時(shí)間不晚于所述第一同步碼的認(rèn)證成功時(shí)間時(shí),向所述客戶端發(fā)送同步失敗消息。
[0727]具體地,所述第一散列模塊1007,具體用于所述認(rèn)證服務(wù)器將所述檢索到的工作密鑰和所述第三用途代碼組合成第十六數(shù)據(jù),對(duì)所述第十六數(shù)據(jù)進(jìn)行填充,得到第十六消息,并對(duì)所述第十六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十六散列數(shù)據(jù);
[0728]所述第二散列模塊1008,具體用于將所述第六計(jì)算密鑰和所述第七時(shí)間信息組合成第十七數(shù)據(jù),對(duì)所述第十七數(shù)據(jù)進(jìn)行填充,得到第十七消息,并對(duì)所述第十七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十七散列數(shù)據(jù);
[0729]所述第四散列模塊,具體用于將所述第六計(jì)算密鑰和所述第八時(shí)間信息組合成第十八數(shù)據(jù),對(duì)所述第十八數(shù)據(jù)進(jìn)行填充,得到第十八消息,并對(duì)所述第十八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十八散列數(shù)據(jù)。
[0730]所述截位模塊1009,具體用于對(duì)第十七散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第九截位結(jié)果;
[0731]對(duì)第十八散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第十截位結(jié)果。
[0732]本發(fā)明實(shí)施例中,認(rèn)證服務(wù)器根據(jù)不同的用途代碼獲取相應(yīng)的計(jì)算密鑰,并使用獲取的計(jì)算密鑰對(duì)適用于各個(gè)應(yīng)用場(chǎng)景的動(dòng)態(tài)口令進(jìn)行認(rèn)證,降低了密鑰被竊取的風(fēng)險(xiǎn),提高了令牌認(rèn)證系統(tǒng)的安全性。
[0733]結(jié)合本文中所公開的實(shí)施例描述的方法中的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM),電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或【技術(shù)領(lǐng)域】?jī)?nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
[0734]以上所述,僅為本發(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)。
【權(quán)利要求】
1.一種身份認(rèn)證方法,應(yīng)用于包括動(dòng)態(tài)令牌、客戶端和認(rèn)證服務(wù)器的系統(tǒng)中,其特征在于,所述方法包括以下步驟: 所述認(rèn)證服務(wù)器接收來(lái)自所述客戶端的第一操作請(qǐng)求,生成第一挑戰(zhàn)碼,將所述第一挑戰(zhàn)碼保存為與所述第一操作請(qǐng)求中的身份信息相對(duì)應(yīng)的信息,將所述第一挑戰(zhàn)碼發(fā)送給所述客戶端; 所述客戶端顯示所述第一挑戰(zhàn)碼; 當(dāng)所述動(dòng)態(tài)令牌獲取到用戶輸入的所述第一挑戰(zhàn)碼,檢測(cè)到第一按鍵被觸發(fā)時(shí),所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第一用途代碼進(jìn)行散列,將得到的第一散列數(shù)據(jù)作為第一計(jì)算密鑰,對(duì)所述第一計(jì)算密鑰、第一時(shí)間信息和所述第一挑戰(zhàn)碼進(jìn)行散列,得到第二散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)所述第二散列數(shù)據(jù)進(jìn)行截位,將得到的第一截位結(jié)果作為第一認(rèn)證口令進(jìn)行顯示; 所述客戶端獲取用戶輸入的所述第一認(rèn)證口令,生成包含所述第一認(rèn)證口令和身份信息的第一認(rèn)證請(qǐng)求,將所述第一認(rèn)證請(qǐng)求發(fā)送給所述認(rèn)證服務(wù)器; 所述認(rèn)證服務(wù)器獲取所述第一認(rèn)證請(qǐng)求中的身份信息,檢索與所述第一認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和第一挑戰(zhàn)碼,對(duì)檢索到的工作密鑰和自身保存的所述第一用途代碼進(jìn)行散列,將得到的第三散列數(shù)據(jù)作為第二計(jì)算密鑰,對(duì)所述第二計(jì)算密鑰、第二時(shí)間信息和檢索到的所述第一挑戰(zhàn)碼進(jìn)行散列,得到第四散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)所述第四散列數(shù)據(jù)進(jìn)行截位,將得到的第二截位結(jié)果作為計(jì)算得到的第一認(rèn)證口令,判斷所述計(jì)算得到的第一認(rèn)證口令是否與從所述第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令匹配,如果是,則向所述客戶端發(fā)送認(rèn)證成功消息;否則,向所述客戶端發(fā)送認(rèn)證失敗消息。
2.如權(quán)利要求1所述的方法,其特征在于,所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第一用途代碼進(jìn)行散列,具體為: 所述動(dòng)態(tài)令牌將自身保存的工作密鑰和所述第一用途代碼組合成第一數(shù)據(jù),對(duì)所述第一數(shù)據(jù)進(jìn)行填充,得到第一消息,并對(duì)所述第一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第一散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)第一計(jì)算密鑰、第一時(shí)間信息和第一挑戰(zhàn)碼進(jìn)行散列,得到第二散列數(shù)據(jù),具體為: 所述動(dòng)態(tài)令牌將所述第一計(jì)算密鑰、所述第一時(shí)間信息以及所述第一挑戰(zhàn)碼組合成第二數(shù)據(jù),對(duì)所述第二數(shù)據(jù)進(jìn)行填充,得到第二消息,并對(duì)所述第二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第二散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)檢索到的工作密鑰和自身保存的第一用途代碼進(jìn)行散列,具體為:所述認(rèn)證服務(wù)器將所述檢索到的工作密鑰和所述第一用途代碼組合成第三數(shù)據(jù),對(duì)所述第三數(shù)據(jù)進(jìn)行填充,得到第三消息,并對(duì)所述第三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第三散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)第二計(jì)算密鑰、第二時(shí)間信息和檢索到的第一挑戰(zhàn)碼進(jìn)行散列,得到第四散列數(shù)據(jù),具體為: 所述認(rèn)證服務(wù)器將所述第二計(jì)算密鑰、所述第二時(shí)間信息以及所述檢索到的第一挑戰(zhàn)碼組合成第四數(shù)據(jù),對(duì)所述第四數(shù)據(jù)進(jìn)行填充,得到第四消息,并對(duì)所述第四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第四散列數(shù)據(jù)。
3.如權(quán)利要求1所述的方法,其特征在于,所述動(dòng)態(tài)令牌對(duì)第二散列數(shù)據(jù)進(jìn)行截位,具體為: 所述動(dòng)態(tài)令牌對(duì)所述第二散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第一截位結(jié)果; 所述認(rèn)證服務(wù)器對(duì)第四散列數(shù)據(jù)進(jìn)行截位,具體為: 所述認(rèn)證服務(wù)器對(duì)所述第四散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第二截位結(jié)果。
4.如權(quán)利要求1所述 的方法,其特征在于,還包括: 所述認(rèn)證服務(wù)器接收來(lái)自所述客戶端的第二操作請(qǐng)求,生成第二挑戰(zhàn)碼,將所述第二挑戰(zhàn)碼保存為與所述第二操作請(qǐng)求中的身份信息相對(duì)應(yīng)的信息,將所述第二挑戰(zhàn)碼發(fā)送給所述客戶端; 所述客戶端顯示所述第二挑戰(zhàn)碼; 當(dāng)所述動(dòng)態(tài)令牌獲取到用戶輸入的所述第二挑戰(zhàn)碼,檢測(cè)到第二按鍵被觸發(fā)時(shí),所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第二用途代碼進(jìn)行散列,將得到的第五散列數(shù)據(jù)作為第三計(jì)算密鑰,對(duì)所述第三計(jì)算密鑰、第三時(shí)間信息和所述第二挑戰(zhàn)碼進(jìn)行散列,得到第六散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)所述第六散列數(shù)據(jù)進(jìn)行截位,將得到的第三截位結(jié)果作為第二認(rèn)證口令進(jìn)行顯示; 所述客戶端獲取用戶輸入的所述第二認(rèn)證口令,生成包含所述第二認(rèn)證口令和身份信息的第二認(rèn)證請(qǐng)求,將所述第二認(rèn)證請(qǐng)求發(fā)送給所述認(rèn)證服務(wù)器; 所述認(rèn)證服務(wù)器獲取所述第二認(rèn)證請(qǐng)求中的身份信息,檢索與所述第二認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和第二挑戰(zhàn)碼,對(duì)檢索到的工作密鑰和自身保存的所述第二用途代碼進(jìn)行散列,將得到的第七散列數(shù)據(jù)作為第四計(jì)算密鑰,對(duì)所述第四計(jì)算密鑰、第四時(shí)間信息和檢索到的所述第二挑戰(zhàn)碼進(jìn)行散列,得到第八散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)所述第八散列數(shù)據(jù)進(jìn)行截位,將得到的第四截位結(jié)果作為計(jì)算得到的第二認(rèn)證口令,判斷所述計(jì)算得到的第二認(rèn)證口令是否與從所述第二認(rèn)證請(qǐng)求中獲取的第二認(rèn)證口令匹配,如果是,則向所述客戶端發(fā)送認(rèn)證成功消息;否則,向所述客戶端發(fā)送認(rèn)證失敗消息。
5.如權(quán)利要求4所述的方法,其特征在于,所述第一操作請(qǐng)求為登錄請(qǐng)求時(shí),所述第一認(rèn)證請(qǐng)求為登錄認(rèn)證請(qǐng)求,所述第二操作請(qǐng)求為簽名請(qǐng)求,所述第二認(rèn)證請(qǐng)求為簽名認(rèn)證請(qǐng)求; 所述第一操作請(qǐng)求為簽名請(qǐng)求時(shí),所述第一認(rèn)證請(qǐng)求為簽名認(rèn)證請(qǐng)求,所述第二操作請(qǐng)求為登錄請(qǐng)求,所述第二認(rèn)證請(qǐng)求為登錄認(rèn)證請(qǐng)求。
6.如權(quán)利要求4所述的方法,其特征在于,所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第二用途代碼進(jìn)行散列,具體為: 所述動(dòng)態(tài)令牌將所述自身保存的工作密鑰和所述第二用途代碼組合成第五數(shù)據(jù),對(duì)所述第五數(shù)據(jù)進(jìn)行填充,得到第五消息,并對(duì)所述第五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第五散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)第三計(jì)算密鑰、第三時(shí)間信息和第二挑戰(zhàn)碼進(jìn)行散列,得到第六散列數(shù)據(jù),具體為: 所述動(dòng)態(tài)令牌將所述第三計(jì)算密鑰、所述第三時(shí)間信息以及所述第二挑戰(zhàn)碼組合成第六數(shù)據(jù),對(duì)所述第六數(shù)據(jù)進(jìn)行填充,得到第六消息,并對(duì)所述第六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第六散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)檢索到的工作密鑰和自身保存的第二用途代碼進(jìn)行散列,具體為:所述認(rèn)證服務(wù)器將所述檢索到的工作密鑰和第二用途代碼組合成第七數(shù)據(jù),對(duì)所述第七數(shù)據(jù)進(jìn)行填充,得到第七消息,并對(duì)所述第七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第七散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)第四計(jì)算密鑰、第四時(shí)間信息和檢索到的第二挑戰(zhàn)碼進(jìn)行散列,得到第八散列數(shù)據(jù),具體為: 所述認(rèn)證服務(wù)器將所述第四計(jì)算密鑰、所述第四時(shí)間信息以及所述檢索到的第二挑戰(zhàn)碼組合成第八數(shù)據(jù),對(duì)所述第八數(shù)據(jù)進(jìn)行填充,得到第八消息,并對(duì)所述第八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第八散列數(shù)據(jù)。
7.如權(quán)利要求4所述的方法,其特征在于,所述動(dòng)態(tài)令牌對(duì)第六散列數(shù)據(jù)進(jìn)行截位,具體為: 所述動(dòng)態(tài)令牌對(duì)所述第六散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第三截位結(jié)果; 所述認(rèn)證服務(wù)器對(duì)第八散列數(shù)據(jù)進(jìn)行截位,具體為: 所述認(rèn)證服務(wù)器對(duì)所述第八散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第四截位結(jié)果。
8.如權(quán)利要求1所述的方法,其特征在于,還包括: 當(dāng)所述動(dòng)態(tài)令牌被鎖定后,所述動(dòng)態(tài)令牌生成并顯示解鎖請(qǐng)求碼; 所述客戶端獲取用戶輸入的所述解鎖請(qǐng)求碼,生成包含所述解鎖請(qǐng)求碼和身份信息的解鎖請(qǐng)求; 所述客戶端將所述解鎖請(qǐng)求發(fā)送給所述認(rèn)證服務(wù)器; 所述認(rèn)證服務(wù)器檢索與所述解鎖請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰,對(duì)檢索到的工作密鑰和自身保存的第三用途代碼進(jìn)行散列,將得到的第九散列數(shù)據(jù)作為第五計(jì)算密鑰;所述認(rèn)證服務(wù)器從所述解鎖請(qǐng)求中獲取所述解鎖請(qǐng)求碼,對(duì)所述第五計(jì)算密鑰和所述解鎖請(qǐng)求碼進(jìn)行散列,得到第十散列數(shù)據(jù);所述認(rèn)證服務(wù)器對(duì)所述第十散列數(shù)據(jù)進(jìn)行截位,將得到的第五截位結(jié)果作為解鎖碼發(fā)送給所述客戶端; 所述客戶端顯示所述解鎖碼; 當(dāng)所述動(dòng)態(tài)令牌獲取到用戶輸入的所述解鎖碼,檢測(cè)到第三按鍵被觸發(fā)時(shí),所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和所述第三用途代碼進(jìn)行散列,將得到的第十一散列數(shù)據(jù)作為第六計(jì)算密鑰,對(duì)所述第六計(jì)算密鑰和所述解鎖請(qǐng)求碼進(jìn)行散列,得到第十二散列數(shù)據(jù);所述動(dòng)態(tài)令牌對(duì)所述第十二散列數(shù)據(jù)進(jìn)行截位,得到第六截位結(jié)果,判斷所述第六截位結(jié)果是否與所述解鎖碼相同,如果是,則顯示解鎖成功信息,對(duì)開機(jī)口令進(jìn)行重置,保存重置后的開機(jī)口令;否則,顯示解鎖失敗信息。
9.如權(quán)利要求8所述的方法,其特征在于,所述動(dòng)態(tài)令牌判斷出所述第六截位結(jié)果與所述解鎖碼相同之后,還包括: 所述動(dòng)態(tài)令牌對(duì)解鎖失敗次數(shù)進(jìn)行初始化; 所述動(dòng)態(tài)令牌判斷出所述第六截位結(jié)果與所述解鎖碼不同之后,還包括: 所述動(dòng)態(tài)令牌對(duì)解鎖失敗次數(shù)進(jìn)行更新,判斷所述解鎖失敗次數(shù)是否等于第二預(yù)設(shè)次數(shù),如果是,清空自身保存的原始種子密鑰和工作密鑰,顯示令牌自毀信息;否則,重新生成并顯示解鎖請(qǐng)求碼,繼續(xù)根據(jù)所述解鎖請(qǐng)求碼執(zhí)行解鎖操作。
10.如權(quán)利要求8所述的 方法,其特征在于,所述認(rèn)證服務(wù)器對(duì)檢索到的工作密鑰和自身保存的第三用途代碼進(jìn)行散列,具體為: 所述認(rèn)證服務(wù)器將所述檢索到的工作密鑰和所述第三用途代碼組合成第九數(shù)據(jù),對(duì)所述第九數(shù)據(jù)進(jìn)行填充,得到第九消息,并對(duì)所述第九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第九散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)所述第五計(jì)算密鑰和所述解鎖請(qǐng)求碼進(jìn)行散列,得到第十散列數(shù)據(jù),具體為: 所述認(rèn)證服務(wù)器將所述第五計(jì)算密鑰和所述解鎖請(qǐng)求碼組合成第十?dāng)?shù)據(jù),對(duì)所述第十?dāng)?shù)據(jù)進(jìn)行填充,得到第十消息,并對(duì)所述第十消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第三用途代碼進(jìn)行散列,具體為: 所述動(dòng)態(tài)令牌將所述自身保存的工作密鑰和第三用途代碼組合成第十一數(shù)據(jù),對(duì)所述第十一數(shù)據(jù)進(jìn)行填充,得到第十一消息,并對(duì)所述第十一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十一散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)第六計(jì)算密鑰和解鎖請(qǐng)求碼進(jìn)行散列,得到第十二散列數(shù)據(jù),具體為: 所述動(dòng)態(tài)令牌將所述第六計(jì)算密鑰和所述解鎖請(qǐng)求碼組合成第十二數(shù)據(jù),對(duì)所述第十二數(shù)據(jù)進(jìn)行填充,得到第十二消息,并對(duì)所述第十二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十二散列數(shù)據(jù)。
11.如權(quán)利要求8所述的方法,其特征在于,所述認(rèn)證服務(wù)器對(duì)第十散列數(shù)據(jù)進(jìn)行截位,具體為: 所述認(rèn)證服務(wù)器對(duì)所述第十散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第五截位結(jié)果; 所述動(dòng)態(tài)令牌對(duì)第十二散列數(shù)據(jù)進(jìn)行截位,得到第六截位結(jié)果,具體為: 所述動(dòng)態(tài)令牌對(duì)所述第十二散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第六截位結(jié)果。
12.如權(quán)利要求1所述的方法,其特征在于,還包括: 當(dāng)所述動(dòng)態(tài)令牌檢測(cè)到第四按鍵被觸發(fā)時(shí),所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第三用途代碼進(jìn)行散列,將得到的第十一散列數(shù)據(jù)作為第六計(jì)算密鑰,對(duì)所述第六計(jì)算密鑰和第五時(shí)間信息進(jìn)行散列,得到第十三散列數(shù)據(jù),對(duì)所述第十三散列數(shù)據(jù)進(jìn)行截位,得到第七截位結(jié)果;對(duì)所述第六計(jì)算密鑰和第六時(shí)間信息進(jìn)行散列,得到第十四散列數(shù)據(jù),對(duì)所述第十四散列數(shù)據(jù)進(jìn)行截位,得到第八截位結(jié)果,將所述第七截位結(jié)果和所述第八截位結(jié)果分別作為第一同步碼和第二同步碼進(jìn)行顯示,所述第六時(shí)間信息晚于所述第五時(shí)間信息;所述客戶端獲取用戶輸入的所述第一同步碼和所述第二同步碼,生成包含所述第一同步碼、所述第二同步碼和身份信息的同步請(qǐng)求,將所述同步請(qǐng)求發(fā)送給所述認(rèn)證服務(wù)器;所述認(rèn)證服務(wù)器檢索與所述同步請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰,對(duì)檢索到的工作密鑰和自身保存的第三用途代碼進(jìn)行散列,將得到的第九散列數(shù)據(jù)作為第五計(jì)算密鑰,對(duì)所述第五計(jì)算密鑰和第七時(shí)間信息進(jìn)行散列,得到第十五散列數(shù)據(jù),對(duì)所述第十五散列數(shù)據(jù)進(jìn)行截位,將得到的第九截位結(jié)果作為第一同步口令,判斷所述第一同步口令是否與從所述同步請(qǐng)求中獲取的第一同步碼匹配,如果不匹配,則向所述客戶端發(fā)送同步失敗消息;如果匹配,則對(duì)所述第五計(jì)算密鑰和第八時(shí)間信息進(jìn)行散列,得到第十六散列數(shù)據(jù),對(duì)所述第十六散列數(shù)據(jù)進(jìn)行截位,將得到的第十截位結(jié)果作為第二同步口令,判斷所述第二同步口令是否與從所述同步請(qǐng)求`中獲取的第二同步碼匹配,如果不匹配,則向所述客戶端發(fā)送同步失敗消息;如果匹配,則判斷第二同步碼的認(rèn)證成功時(shí)間是否晚于第一同步碼的認(rèn)證成功時(shí)間,如果是,則獲取系統(tǒng)時(shí)間與所述第一同步碼的認(rèn)證成功時(shí)間之間的差值,將所述差值保存為與所述同步請(qǐng)求中的身份信息對(duì)應(yīng)的令牌偏移時(shí)間,向所述客戶端發(fā)送同步成功消息;否則,向所述客戶端發(fā)送同步失敗消息。
13.如權(quán)利要求12所述的方法,其特征在于,所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第三用途代碼進(jìn)行散列,具體為: 所述動(dòng)態(tài)令牌將所述自身保存的工作密鑰和所述第三用途代碼組合成第十一數(shù)據(jù),對(duì)所述第十一數(shù)據(jù)進(jìn)行填充,得到第十一消息,并對(duì)所述第十一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十一散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)第六計(jì)算密鑰和第五時(shí)間信息進(jìn)行散列,得到第十三散列數(shù)據(jù),具體為: 所述動(dòng)態(tài)令牌將所述第六計(jì)算密鑰和所述第五時(shí)間信息組合成第十三數(shù)據(jù),對(duì)所述第十三數(shù)據(jù)進(jìn)行填充,得到第十三消息,并對(duì)所述第十三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十三散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)第六計(jì)算密鑰和第六時(shí)間信息進(jìn)行散列,得到第十四散列數(shù)據(jù),具體為: 所述動(dòng)態(tài)令牌將所述第六計(jì)算密鑰和所述第六時(shí)間信息組合成第十四數(shù)據(jù),對(duì)所述第十四數(shù)據(jù)進(jìn)行填充,得到第十四消息,并對(duì)所述第十四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十四散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)檢索到的工作密鑰和自身保存的第三用途代碼進(jìn)行散列,具體為:所述認(rèn)證服務(wù)器將所述檢索到的工作密鑰和所述第三用途代碼組合成第九數(shù)據(jù),對(duì)所述第九數(shù)據(jù)進(jìn)行填充,得到第九消息,并對(duì)所述第九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第九散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)第五計(jì)算密鑰和第七時(shí)間信息進(jìn)行散列,得到第十五散列數(shù)據(jù),具體為: 所述認(rèn)證服務(wù)器將所述第五計(jì)算密鑰和所述第七時(shí)間信息組合成第十五數(shù)據(jù),對(duì)所述第十五數(shù)據(jù)進(jìn)行填充,得到第十五消息,并對(duì)所述第十五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十五散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)第五計(jì)算密鑰和第八時(shí)間信息進(jìn)行散列,得到第十六散列數(shù)據(jù),具體為: 所述認(rèn)證服務(wù)器將所述第五計(jì) 算密鑰和所述第八時(shí)間信息組合成第十六數(shù)據(jù),對(duì)所述第十六數(shù)據(jù)進(jìn)行填充,得到第十六消息,并對(duì)所述第十六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十六散列數(shù)據(jù)。
14.如權(quán)利要求12所述的方法,其特征在于,所述動(dòng)態(tài)令牌對(duì)第十三散列數(shù)據(jù)進(jìn)行截位,得到第七截位結(jié)果,具體為: 所述動(dòng)態(tài)令牌對(duì)所述第十三散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第七截位結(jié)果; 所述動(dòng)態(tài)令牌對(duì)第十四散列數(shù)據(jù)進(jìn)行截位,得到第八截位結(jié)果,具體為: 所述動(dòng)態(tài)令牌對(duì)所述第十四散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第八截位結(jié)果; 所述認(rèn)證服務(wù)器對(duì)第十五散列數(shù)據(jù)進(jìn)行截位,具體為: 所述認(rèn)證服務(wù)器對(duì)所述第十五散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第九截位結(jié)果; 所述認(rèn)證服務(wù)器對(duì)第十六散列數(shù)據(jù)進(jìn)行截位,具體為: 所述認(rèn)證服務(wù)器對(duì)所述第十六散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第十截位結(jié)果。
15.如權(quán)利要求1所述的方法,其特征在于,還包括: 所述認(rèn)證服務(wù)器接收來(lái)自所述客戶端的激活請(qǐng)求,檢索與所述激活請(qǐng)求中的身份信息對(duì)應(yīng)的原始種子密鑰,并生成隨機(jī)數(shù),對(duì)所述隨機(jī)數(shù)和檢索到的原始種子密鑰進(jìn)行散列,得到第十七散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)所述第十七散列數(shù)據(jù)進(jìn)行截位,將得到的第十一截位結(jié)果與所述隨機(jī)數(shù)進(jìn)行組合,得到激活碼,對(duì)所述激活碼和所述檢索到的原始種子密鑰進(jìn)行散列,將得到的第十八散列數(shù)據(jù)保存為與所述激活請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰,將所述激活碼發(fā)送給所述客戶端;所述客戶端顯示所述激活碼; 所述動(dòng)態(tài)令牌獲取用戶輸入的所述激活碼,對(duì)所述激活碼和自身保存的原始種子密鑰進(jìn)行散列,將得到的第十九散列數(shù)據(jù)保存為所述工作密鑰,設(shè)置開機(jī)口令,并對(duì)設(shè)置的所述開機(jī)口令進(jìn)行保存。
16.如權(quán)利要求15所述的方法,其特征在于,所述認(rèn)證服務(wù)器對(duì)隨機(jī)數(shù)和檢索到的原始種子密鑰進(jìn)行散列,得到第十七散列數(shù)據(jù),具體為: 所述認(rèn)證服務(wù)器將所述隨機(jī)數(shù)和所述檢索到的原始種子密鑰組合成第十七數(shù)據(jù),對(duì)所述第十七數(shù)據(jù)進(jìn)行填充,得到第十七消息,并對(duì)所述第十七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十七散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)激活碼和檢索到的原始種子密鑰進(jìn)行散列,具體為: 所述認(rèn)證服務(wù)器將所述激活碼和所述檢索到的原始種子密鑰組合成第十八數(shù)據(jù),對(duì)所述第十八數(shù)據(jù)進(jìn)行填充,得到第十八消息,并對(duì)所述第十八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十八散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)所述激活碼和自身保存的原始種子密鑰進(jìn)行散列,具體為: 所述動(dòng)態(tài)令牌將所述激活碼和所述自身保存的原始種子密鑰組合成第十九數(shù)據(jù),對(duì)所述第十九數(shù)據(jù)進(jìn)行填充,得到第十九消息,并對(duì)所述第十九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十九散列數(shù)據(jù)。
17.如權(quán)利要求15所述的方法,其特征在于,所述認(rèn)證服務(wù)器對(duì)所述第十七散列數(shù)據(jù)進(jìn)行截位,具體為: 所述認(rèn)證服務(wù)器對(duì)所述第十七散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第十一截位結(jié)果。
18.—種動(dòng)態(tài)令牌的工作方法,其特征在于,包括以下步驟: Al、所述動(dòng)態(tài)令牌等待用戶觸發(fā)按鍵; A2、當(dāng)所述動(dòng)態(tài)令牌的按鍵被觸發(fā)時(shí),所述動(dòng)態(tài)令牌對(duì)被觸發(fā)的按鍵進(jìn)行判斷,如果是第一按鍵,則執(zhí)行步驟A3 ;如果是第二按鍵,則執(zhí)行步驟A5 ; A3、所述動(dòng)態(tài)令牌獲取用戶輸入的登錄挑戰(zhàn)碼,對(duì)自身保存的工作密鑰和第一用途代碼進(jìn)行散列,將得到的第一散列數(shù)據(jù)作為第一計(jì)算密鑰,對(duì)所述第一計(jì)算密鑰、第一時(shí)間信息和所述登錄挑戰(zhàn)碼進(jìn)行散列,得到第二散列數(shù)據(jù); A4、所述動(dòng)態(tài)令牌對(duì)所述第二散列數(shù)據(jù)進(jìn)行截位,將得到的第一截位結(jié)果作為登錄口令進(jìn)行顯示,并返回步驟Al ;A5、所述動(dòng)態(tài)令牌獲取用戶輸入的簽名挑戰(zhàn)碼,對(duì)自身保存的工作密鑰和第二用途代碼進(jìn)行散列,將得到的第三散列數(shù)據(jù)作為第二計(jì)算密鑰,對(duì)所述第二計(jì)算密鑰、第二時(shí)間信息和所述簽名挑戰(zhàn)碼進(jìn)行散列,得到第四散列數(shù)據(jù); A6、所述動(dòng)態(tài)令牌對(duì)所述第四散列數(shù)據(jù)進(jìn)行截位,將得到的第二截位結(jié)果作為簽名口令進(jìn)行顯示,并返回步驟Al。
19.如權(quán)利要求18所述的方法,其特征在于,所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第一用途代碼進(jìn)行散列,具體包括: 所述動(dòng)態(tài)令牌將所述自身保存的工作密鑰和所述第一用途代碼組合成第一數(shù)據(jù),對(duì)所述第一數(shù)據(jù)進(jìn)行填充,得到第一消息,并對(duì)所述第一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第一散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)第一計(jì)算密鑰、第一時(shí)間信息和登錄挑戰(zhàn)碼進(jìn)行散列,得到第二散列數(shù)據(jù),具體為: 所述動(dòng)態(tài)令牌將所述第一計(jì)算密鑰、所述第一時(shí)間信息以及所述登錄挑戰(zhàn)碼組合成第二數(shù)據(jù),對(duì)所述第二數(shù)據(jù)進(jìn)行填充,得到第二消息,并對(duì)所述第二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第二散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第二用途代碼進(jìn)行散列,具體為: 所述動(dòng)態(tài)令牌將所述自身保存的工作密鑰和所述第二用途代碼組合成第三數(shù)據(jù),對(duì)所述第三數(shù)據(jù)進(jìn)行填充,得到第三消息,并對(duì)所述第三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第三散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)第二計(jì)算密鑰、第二時(shí)間信息和簽名挑戰(zhàn)碼進(jìn)行散列,得到第四散列數(shù)據(jù),具體為:` 所述動(dòng)態(tài)令牌將所述第二計(jì)算密鑰、所述第二時(shí)間信息以及所述簽名挑戰(zhàn)碼組合成第四數(shù)據(jù),對(duì)所述第四數(shù)據(jù)進(jìn)行填充,得到第四消息,并對(duì)所述第四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第四散列數(shù)據(jù)。
20.如權(quán)利要求18所述的方法,其特征在于,所述動(dòng)態(tài)令牌對(duì)第二散列數(shù)據(jù)進(jìn)行截位,具體為: 所述動(dòng)態(tài)令牌對(duì)所述第二散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第一截位結(jié)果; 所述動(dòng)態(tài)令牌對(duì)第四散列數(shù)據(jù)進(jìn)行截位,具體為: 所述動(dòng)態(tài)令牌對(duì)所述第四散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第二截位結(jié)果。
21.如權(quán)利要求18所述的方法,其特征在于,所述動(dòng)態(tài)令牌判斷出所述被觸發(fā)的按鍵為第三按鍵之后,還包括: 所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第三用途代碼進(jìn)行散列,將得到的第五散列數(shù)據(jù)作為第三計(jì)算密鑰,對(duì)所述第三計(jì)算密鑰和第三時(shí)間信息進(jìn)行散列,得到第六散列數(shù)據(jù),對(duì)所述第六散列數(shù)據(jù)進(jìn)行截位,得到第三截位結(jié)果;對(duì)所述第三計(jì)算密鑰和第四時(shí)間信息進(jìn)行散列,得到第七散列數(shù)據(jù),對(duì)所述第七散列數(shù)據(jù)進(jìn)行截位,得到第四截位結(jié)果,將所述第三截位結(jié)果和所述第四截位結(jié)果分別作為第一同步碼和第二同步碼進(jìn)行顯示,并返回步驟Al。
22.如權(quán)利要求21所述的方法,其特征在于,所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第三用途代碼進(jìn)行散列,具體為: 所述動(dòng)態(tài)令牌將所述自身保存的工作密鑰和所述第三用途代碼組合成第五數(shù)據(jù),對(duì)所述第五數(shù)據(jù)進(jìn)行填充,得到第五消息,并對(duì)所述第五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第五散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)第三計(jì)算密鑰和第三時(shí)間信息進(jìn)行散列,得到第六散列數(shù)據(jù),具體為: 所述動(dòng)態(tài)令牌將所述第三計(jì)算密鑰和所述第三時(shí)間信息組合成第六數(shù)據(jù),對(duì)所述第六數(shù)據(jù)進(jìn)行填充,得到第六消息,并對(duì)所述第六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第六散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)第三計(jì)算密鑰和第四時(shí)間信息進(jìn)行散列,得到第七散列數(shù)據(jù),具體為: 所述動(dòng)態(tài)令牌將所述第三計(jì)算密鑰和所述第四時(shí)間信息組合成第七數(shù)據(jù),對(duì)所述第七數(shù)據(jù)進(jìn)行填充,得到第七消息,并對(duì)所述第七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第七散列數(shù)據(jù)。
23.如權(quán)利要求21所述`的方法,其特征在于,所述動(dòng)態(tài)令牌對(duì)所述第六散列數(shù)據(jù)進(jìn)行截位,得到第三截位結(jié)果,具體為: 所述動(dòng)態(tài)令牌對(duì)所述第六散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第三截位結(jié)果; 所述動(dòng)態(tài)令牌對(duì)所述第七散列數(shù)據(jù)進(jìn)行截位,得到第四截位結(jié)果,具體為: 所述動(dòng)態(tài)令牌對(duì)所述第七散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第四截位結(jié)果。
24.如權(quán)利要求18所述的方法,其特征在于,還包括: 所述動(dòng)態(tài)令牌獲取用戶輸入的激活碼,對(duì)所述激活碼和自身保存的原始種子密鑰進(jìn)行散列,將得到的第九散列數(shù)據(jù)保存為所述工作密鑰,設(shè)置開機(jī)口令,并對(duì)設(shè)置的所述開機(jī)口令進(jìn)行保存。
25.如權(quán)利要求24所述的方法,其特征在于,所述動(dòng)態(tài)令牌對(duì)所述激活碼和自身保存的原始種子密鑰進(jìn)行散列,具體為: 所述動(dòng)態(tài)令牌將所述激活碼和所述自身保存的原始種子密鑰組合成第九數(shù)據(jù),對(duì)所述第九數(shù)據(jù)進(jìn)行填充,得到第九消息,并對(duì)所述第九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第九散列數(shù)據(jù)。
26.如權(quán)利要求24所述的方法,其特征在于,所述步驟Al之前,還包括: B1、所述動(dòng)態(tài)令牌提示用戶輸入開機(jī)口令; B2、當(dāng)獲取到用戶輸入的開機(jī)口令時(shí),所述動(dòng)態(tài)令牌判斷獲取的開機(jī)口令是否與自身保存的開機(jī)口令相同,如果是,則對(duì)開機(jī)錯(cuò)誤次數(shù)進(jìn)行初始化,并執(zhí)行步驟Al ;否則,執(zhí)行步驟B3 ; B3、所述動(dòng)態(tài)令牌對(duì)所述開機(jī)錯(cuò)誤次數(shù)進(jìn)行更新,判斷所述開機(jī)錯(cuò)誤次數(shù)是否等于第一預(yù)設(shè)次數(shù),如果是,則執(zhí)行步驟B4 ;否則,返回步驟BI ; B4、所述動(dòng)態(tài)令牌生成并顯示解鎖請(qǐng)求碼,提示用戶輸入解鎖碼; B5、當(dāng)獲取到用戶輸入的解鎖碼時(shí),所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第三用途代碼進(jìn)行散列,將得到的第五散列數(shù)據(jù)作為第三計(jì)算密鑰,對(duì)所述第三計(jì)算密鑰和解鎖請(qǐng)求碼進(jìn)行散列,得到第八散列數(shù)據(jù); B6、所述動(dòng)態(tài)令牌對(duì)所述第八散列數(shù)據(jù)進(jìn)行截位,得到第五截位結(jié)果,判斷所述第五截位結(jié)果是否與所述解鎖碼相同,如果是,則顯示解鎖成功信息,對(duì)開機(jī)口令進(jìn)行重置,保存重置后的開機(jī)口令,并執(zhí)行步驟Al ;否則,顯示解鎖失敗信息,返回步驟B4。
27.如權(quán)利要求26所述的方法,其特征在于,所述動(dòng)態(tài)令牌判斷出所述第五截位結(jié)果與所述解鎖碼相同之后,還包括: 所述動(dòng)態(tài)令牌對(duì)解鎖失敗次數(shù)進(jìn)行初始化; 所述動(dòng)態(tài)令牌判斷出所述第五截位結(jié)果與所述解鎖碼不同之后,還包括: 所述動(dòng)態(tài)令牌對(duì)解鎖失敗次數(shù)進(jìn)行更新,判斷所述解鎖失敗次數(shù)是否等于第二預(yù)設(shè)次數(shù),如果是,清空自身保存的原始種子密鑰和工作密鑰,顯示令牌自毀信息,結(jié)束流程;否貝U,返回步驟B4。
28.如權(quán)利要求26所述的方法,其特征在于,所述步驟BI之前,還包括: 所述動(dòng)態(tài)令牌上電,判斷自身是否被鎖定,如果是,則執(zhí)行步驟B4 ;否則,執(zhí)行步驟BI。
29.如權(quán)利要求26所述的方法,其特征在于,所述動(dòng)態(tài)令牌對(duì)自身保存的工作密鑰和第三用途代碼進(jìn)行散列,具體為: 所述動(dòng)態(tài)令牌將所述自身保存的工作密鑰和所述第三用途代碼組合成第五數(shù)據(jù),對(duì)所述第五數(shù)據(jù)進(jìn)行填充,得到第五消息,并對(duì)所述第五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第五散列數(shù)據(jù); 所述動(dòng)態(tài)令牌對(duì)第三計(jì)算密鑰和解鎖請(qǐng)求碼進(jìn)行散列,得到第八散列數(shù)據(jù),具體為:所述動(dòng)態(tài)令牌將所述第三計(jì)算密鑰和所述解鎖請(qǐng)求碼組合成第八數(shù)據(jù),對(duì)所述第八數(shù)據(jù)進(jìn)行填充,得到第八消息,并對(duì)所述第八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第八散列數(shù)據(jù)。
30.如權(quán)利要求26所述的方法,其特征在于,所述動(dòng)態(tài)令牌對(duì)第八散列數(shù)據(jù)進(jìn)行截位,得到第五截位結(jié)果,具體為: 所述動(dòng)態(tài)令牌對(duì)所述第八散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第五截位結(jié)果。
31.一種認(rèn)證服務(wù)器的工作方法,其特征在于,包括以下步驟:Cl、所述認(rèn)證服務(wù)器等待接收來(lái)自客戶端的請(qǐng)求; C2、當(dāng)接收到來(lái)自所述客戶端的請(qǐng)求后,所述認(rèn)證服務(wù)器對(duì)接收到的請(qǐng)求進(jìn)行判斷,如果是登錄請(qǐng)求,則執(zhí)行步驟C3 ;如果是登錄認(rèn)證請(qǐng)求,則執(zhí)行步驟C4 ;如果是簽名請(qǐng)求,則執(zhí)行步驟C6 ;如果是簽名認(rèn)證請(qǐng)求,則執(zhí)行步驟C7 ; C3、所述認(rèn)證服務(wù)器生成登錄挑戰(zhàn)碼,將所述登錄挑戰(zhàn)碼保存為與所述登錄請(qǐng)求中的身份信息相對(duì)應(yīng)的信息,將所述登錄挑戰(zhàn)碼發(fā)送給所述客戶端,并返回步驟Cl ; C4、所述認(rèn)證服務(wù)器檢索與所述登錄認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和登錄挑戰(zhàn)碼,對(duì)檢索到的工作密鑰和自身保存的第一用途代碼進(jìn)行散列,將得到的第十二散列數(shù)據(jù)作為第四計(jì)算密鑰,對(duì)所述第四計(jì)算密鑰、第五時(shí)間信息和檢索到的登錄挑戰(zhàn)碼進(jìn)行散列,得到第十三散列數(shù)據(jù); C5、所述認(rèn)證服務(wù)器對(duì)所述第十三散列數(shù)據(jù)進(jìn)行截位,將得到的第七截位結(jié)果作為計(jì)算得到的登錄口令,判斷所述計(jì)算得到的登錄口令是否與從所述登錄認(rèn)證請(qǐng)求中獲取的登錄口令匹配,如果是,則向所述客戶端發(fā)送認(rèn)證成功消息,并返回步驟Cl ;否則,向所述客戶端發(fā)送認(rèn)證失敗消息,并返回步驟Cl ; C6、所述認(rèn)證服務(wù)器生成簽名挑戰(zhàn)碼,將所述簽名挑戰(zhàn)碼保存為與所述簽名請(qǐng)求中的身份信息相對(duì)應(yīng)的信息,將所述簽名挑戰(zhàn)碼發(fā)送給所述客戶端,并返回步驟Cl ; C7、所述認(rèn)證服務(wù)器檢索與所述簽名認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和簽名挑戰(zhàn)碼,對(duì)檢索到的工作密鑰和自身保存的第二用途代碼進(jìn)行散列,將得到的第十四散列數(shù)據(jù)作為第五計(jì)算密鑰,對(duì)所述第五計(jì)算密鑰、第六時(shí)間信息和檢索到的簽名挑戰(zhàn)碼進(jìn)行散列,得到第十五散列數(shù)據(jù); CS、所述認(rèn)證服務(wù)器對(duì)所述第十五散列數(shù)據(jù)進(jìn)行截位,將得到的第八截位結(jié)果作為計(jì)算得到的簽名口令,判斷所述計(jì)算得到的簽名口令是否與從簽名認(rèn)證請(qǐng)求中獲取的簽名口令匹配,如果是,則向所述客戶端發(fā)送認(rèn)證成功消息,并返回步驟Cl ;否則,向所述客戶端發(fā)送認(rèn)證失敗消息,并返回步驟Cl。
32.如權(quán)利要求31所述的方法,其特征在于,所述認(rèn)證服務(wù)器對(duì)檢索到的工作密鑰和自身保存的第一用途代碼進(jìn)行散列,具體為: 所述認(rèn)證服務(wù)器將所述檢索到的工作密鑰和所述第一用途代碼組合成第十二數(shù)據(jù),對(duì)所述第十二數(shù)據(jù)進(jìn)行填充,得到第十二消息,并對(duì)所述第十二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十二散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)第四計(jì)算密鑰、第五時(shí)間信息和檢索到的登錄挑戰(zhàn)碼進(jìn)行散列,得到第十三散列數(shù)據(jù),具體為: 所述認(rèn)證服務(wù)器將所述第四計(jì)算密鑰、所述第五時(shí)間信息以及所述檢索到的登錄挑戰(zhàn)碼組合成第十三數(shù)據(jù),對(duì)所述第十三數(shù)據(jù)進(jìn)行填充,得到第十三消息,并對(duì)所述第十三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十三散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)檢索到的工作密鑰和自身保存的第二用途代碼進(jìn)行散列,具體為:所述認(rèn)證服務(wù)器將所述檢索到的工作密鑰和所述第二用途代碼組合成第十四數(shù)據(jù),對(duì)所述第十四數(shù)據(jù)進(jìn)行填充,得到第十四消息,并對(duì)所述第十四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十四散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)第五計(jì)算密鑰、第六時(shí)間信息和檢索到的簽名挑戰(zhàn)碼進(jìn)行散列,得到第十五散列數(shù)據(jù),具體為: 所述認(rèn)證服務(wù)器將所述第五計(jì)算密鑰、所述第六時(shí)間信息以及所述檢索到的簽名挑戰(zhàn)碼組合成第十五數(shù)據(jù),對(duì)所述第十五數(shù)據(jù)進(jìn)行填充,得到第十五消息,并對(duì)所述第十五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十五散列數(shù)據(jù)。
33.如權(quán)利要求31所述的方法,其特征在于,所述認(rèn)證服務(wù)器對(duì)所述第十三散列數(shù)據(jù)進(jìn)行截位,得到第七截位結(jié)果,具體為: 所述認(rèn)證服務(wù)器對(duì)所述第十三散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第七截位結(jié)果; 所述認(rèn)證服務(wù)器對(duì)所述第十五散列數(shù)據(jù)進(jìn)行截位,具體為: 所述認(rèn)證服務(wù)器對(duì)第十五散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第八截位結(jié)果。
34.如權(quán)利要求31所述的方法,其特征在于,所述認(rèn)證服務(wù)器判斷出所述接收到的請(qǐng)求為激活請(qǐng)求后,還包括: 所述認(rèn)證服務(wù)器檢索與所述激活請(qǐng)求中的身份信息對(duì)應(yīng)的原始種子密鑰,生成第一隨機(jī)數(shù),對(duì)所述第一隨機(jī)數(shù)和檢索到的原始種子密鑰進(jìn)行散列,得到第十散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)所述第十散列數(shù)據(jù)進(jìn)行截位,將得到的第六截位結(jié)果與所述第一隨機(jī)數(shù)進(jìn)行組合,得到激活碼,對(duì)所述激活碼和所述檢索到的原始種子密鑰進(jìn)行散列,將得到的第十一散列數(shù)據(jù)保存為與所述激活請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰,向所述客戶端發(fā)送所述激活碼,并返回步驟Cl。`
35.如權(quán)利要求34所述的方法,其特征在于,所述認(rèn)證服務(wù)器生成第一隨機(jī)數(shù),對(duì)所述第一隨機(jī)數(shù)和檢索到的原始種子密鑰進(jìn)行散列,得到第十散列數(shù)據(jù),具體為: 所述認(rèn)證服務(wù)器將所述第一隨機(jī)數(shù)和所述檢索到的原始種子密鑰組合成第十?dāng)?shù)據(jù),對(duì)所述第十?dāng)?shù)據(jù)進(jìn)行填充,得到第十消息,并對(duì)所述第十消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十散列數(shù)據(jù)。
36.如權(quán)利要求34所述的方法,其特征在于,所述認(rèn)證服務(wù)器對(duì)所述第十散列數(shù)據(jù)進(jìn)行截位,具體為: 所述認(rèn)證服務(wù)器對(duì)所述第十散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第六截位結(jié)果。
37.如權(quán)利要求31所述的方法,其特征在于,所述認(rèn)證服務(wù)器判斷出所述接收到的請(qǐng)求為解鎖請(qǐng)求后,還包括: 所述認(rèn)證服務(wù)器檢索與所述解鎖請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰,對(duì)檢索到的工作密鑰和自身保存的第三用途代碼進(jìn)行散列,將得到的第十六散列數(shù)據(jù)作為第六計(jì)算密鑰,對(duì)所述第六計(jì)算密鑰和從所述解鎖請(qǐng)求中獲取到的解鎖請(qǐng)求碼進(jìn)行散列,得到第十九散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)所述第十九散列數(shù)據(jù)進(jìn)行截位,將得到的第十一截位結(jié)果作為解鎖碼發(fā)送給所述客戶端,并返回步驟Cl。
38.如權(quán)利要求37所述的方法,其特征在于,所述認(rèn)證服務(wù)器對(duì)檢索到的工作密鑰和自身保存的第三用途代碼進(jìn)行散列,具體為: 所述認(rèn)證服務(wù)器將所述檢索到的工作密鑰和所述第三用途代碼組合成第十六數(shù)據(jù),對(duì)所述第十六數(shù)據(jù)進(jìn)行填充,得到第十六消息,并對(duì)所述第十六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十六散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)第六計(jì)算密鑰和獲取到的解鎖請(qǐng)求碼進(jìn)行散列,得到第十九散列數(shù)據(jù),具體為: 所述認(rèn)證服務(wù)器將所述第六計(jì)算密鑰和所述獲取到的解鎖請(qǐng)求碼組合成第十九數(shù)據(jù),對(duì)所述第十九數(shù)據(jù)進(jìn)行填充,得到第十九消息,并對(duì)所述第十九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十九散列數(shù)據(jù)。
39.如權(quán)利要求37所述的方法,其特征在于,所述認(rèn)證服務(wù)器對(duì)所述第十九散列數(shù)據(jù)進(jìn)行截位,具體為: 所述認(rèn)證服務(wù)器對(duì)所述第十九散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第十一截位結(jié)果。
40.如權(quán)利要求31所述的方法,其特征在于,所述認(rèn)證服務(wù)器判斷出所述接收到的請(qǐng)求為同步請(qǐng)求后,還包括: 所述認(rèn)證服務(wù)器檢索與所述同步請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰,對(duì)檢索到的工作密鑰和自身保存的第三用途代碼進(jìn)行散列,將得到的第十六散列數(shù)據(jù)作為第六計(jì)算密鑰,對(duì)所述第六計(jì)算密鑰和第七時(shí)間信息進(jìn)行散列,得到第十七散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)所述第十七散列數(shù)據(jù)進(jìn)行截位,將得到的第九截位結(jié)果作為第一同步口令,判斷所述第一同步口令是否與從所述同步請(qǐng)求中獲取的第一同步碼匹配; 如果不匹配,所述認(rèn)證服務(wù)器向所述客戶端發(fā)送同步失敗消息,并返回步驟Cl ; 如果匹配,所述認(rèn)證服務(wù)器對(duì)所述第六計(jì)算密鑰和第八時(shí)間信息進(jìn)行散列,得到第十八散列數(shù)據(jù),對(duì)所述第十八散列數(shù)據(jù)進(jìn)行截位,將得到的第十截位結(jié)果作為第二同步口令,判斷所述第二同步口令是否與從所述同步請(qǐng)求中獲取的第二同步碼匹配,如果不匹配,則向所述客戶端發(fā)送同步失敗消息,并返回步驟Cl ;如果匹配,則判斷第二同步碼的認(rèn)證成功時(shí)間是否晚于第一同步碼的認(rèn)證成功時(shí)間,如果是,則獲取系統(tǒng)時(shí)間與所述第一同步碼的認(rèn)證成功時(shí)間之間的差值,將所述差值保存為與所述同步請(qǐng)求中的身份信息對(duì)應(yīng)的令牌偏移時(shí)間,向所述客戶端發(fā)送同步成功消息,并返回步驟Cl;否則,向所述客戶端發(fā)送同步失敗消息,并返回步驟Cl。
41.如權(quán)利要求40所述的方法,其特征在于,所述認(rèn)證服務(wù)器對(duì)檢索到的工作密鑰和自身保存的第三用途代碼 進(jìn)行散列,具體為: 所述認(rèn)證服務(wù)器將所述檢索到的工作密鑰和所述第三用途代碼組合成第十六數(shù)據(jù),對(duì)所述第十六數(shù)據(jù)進(jìn)行填充,得到第十六消息,并對(duì)所述第十六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十六散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)第六計(jì)算密鑰和第七時(shí)間信息進(jìn)行散列,得到第十七散列數(shù)據(jù),具體為: 所述認(rèn)證服務(wù)器將所述第六計(jì)算密鑰和所述第七時(shí)間信息組合成第十七數(shù)據(jù),對(duì)所述第十七數(shù)據(jù)進(jìn)行填充,得到第十七消息,并對(duì)所述第十七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十七散列數(shù)據(jù); 所述認(rèn)證服務(wù)器對(duì)第六計(jì)算密鑰和第八時(shí)間信息進(jìn)行散列,得到第十八散列數(shù)據(jù),具體為: 所述認(rèn)證服務(wù)器將所述第六計(jì)算密鑰和所述第八時(shí)間信息組合成第十八數(shù)據(jù),對(duì)所述第十八數(shù)據(jù)進(jìn)行填充,得到第十八消息,并對(duì)所述第十八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十八散列數(shù)據(jù)。
42.如權(quán)利要求40所述的方法,其特征在于,所述認(rèn)證服務(wù)器對(duì)所述第十七散列數(shù)據(jù)進(jìn)行截位,具體為: 所述認(rèn)證服務(wù)器對(duì)第十七散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第九截位結(jié)果; 所述認(rèn)證服務(wù)器對(duì)第 十八散列數(shù)據(jù)進(jìn)行截位,具體為: 所述認(rèn)證服務(wù)器對(duì)第十八散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第十截位結(jié)果。
43.一種身份認(rèn)證系統(tǒng),包括動(dòng)態(tài)令牌、客戶端和認(rèn)證服務(wù)器,其特征在于, 所述認(rèn)證服務(wù)器包括: 第一接收模塊,用于接收來(lái)自所述客戶端的第一操作請(qǐng)求; 第一生成模塊,用于在所述第一接收模塊接收到所述第一操作請(qǐng)求后,生成第一挑戰(zhàn)碼,將所述第一挑戰(zhàn)碼保存為與所述第一操作請(qǐng)求中的身份信息相對(duì)應(yīng)的信息; 第一發(fā)送模塊,用于將所述第一生成模塊生成的所述第一挑戰(zhàn)碼發(fā)送給所述客戶端; 所述客戶端包括: 第二發(fā)送模塊,用于向所述認(rèn)證服務(wù)器發(fā)送所述第一操作請(qǐng)求; 第二接收模塊,用于接收來(lái)自所述認(rèn)證服務(wù)器的所述第一挑戰(zhàn)碼; 第一顯示模塊,用于顯示所述第一挑戰(zhàn)碼; 所述動(dòng)態(tài)令牌包括: 第一存儲(chǔ)模塊,用于保存工作密鑰和第一用途代碼; 第一獲取模塊,用于獲取用戶輸入的所述第一挑戰(zhàn)碼; 檢測(cè)模塊,用于檢測(cè)按鍵; 第一散列模塊,用于在所述檢測(cè)模塊檢測(cè)到第一按鍵被觸發(fā)時(shí),對(duì)所述第一存儲(chǔ)模塊保存的工作密鑰和第一用途代碼進(jìn)行散列,得到第一散列數(shù)據(jù); 第二散列模塊,用于將所述第一散列模塊散列得到的所述第一散列數(shù)據(jù)作為第一計(jì)算密鑰,對(duì)所述第一計(jì)算密鑰、第一時(shí)間信息和所述第一獲取模塊獲取到的所述第一挑戰(zhàn)碼進(jìn)行散列,得到第二散列數(shù)據(jù); 第一截位模塊,用于對(duì)所述第二散列模塊散列得到的所述第二散列數(shù)據(jù)進(jìn)行截位,得到第一截位結(jié)果; 第二顯示模塊,用于將所述第一截位模塊截位得到的第一截位結(jié)果作為第一認(rèn)證口令進(jìn)行顯示; 所述客戶端還包括: 第二獲取模塊,用于獲取用戶輸入的所述第一認(rèn)證口令; 第二生成模塊,用于生成包含身份信息和所述第一認(rèn)證口令的第一認(rèn)證請(qǐng)求; 所述第二發(fā)送模塊,還用于將所述第二生成模塊生成的所述第一認(rèn)證請(qǐng)求發(fā)送給所述認(rèn)證服務(wù)器; 所述認(rèn)證服務(wù)器中的所述第一接收模塊,還用于接收來(lái)自所述客戶端的所述第一認(rèn)證請(qǐng)求; 所述認(rèn)證服務(wù)器還包括: 第二存儲(chǔ)模塊,用于保存所述第一用途代碼; 第三獲取模塊,用于獲取所述第一接收模塊接收到的所述第一認(rèn)證請(qǐng)求中的身份信息;` 檢索模塊,用于檢索與所述第一認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和第一挑戰(zhàn)碼; 第三散列模塊,用于對(duì)所述檢索模塊檢索到的工作密鑰和所述第二存儲(chǔ)模塊保存的所述第一用途代碼進(jìn)行散列,得到第三散列數(shù)據(jù); 第四散列模塊,用于將所述第三散列模塊散列得到的第三散列數(shù)據(jù)作為第二計(jì)算密鑰,對(duì)所述第二計(jì)算密鑰、第二時(shí)間信息和檢索到的所述第一挑戰(zhàn)碼進(jìn)行散列,得到第四散列數(shù)據(jù); 第二截位模塊,用于對(duì)所述第四散列模塊散列得到的所述第四散列數(shù)據(jù)進(jìn)行截位,得到第二截位結(jié)果; 第一判斷模塊,用于將所述第二截位模塊截位得到的所述第二截位結(jié)果作為計(jì)算得到的第一認(rèn)證口令,判斷所述計(jì)算得到的第一認(rèn)證口令是否與從所述第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令匹配; 所述第一發(fā)送模塊,還用于在所述第一判斷模塊判斷出所述計(jì)算得到的第一認(rèn)證口令與從所述第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令匹配時(shí),向所述客戶端發(fā)送認(rèn)證成功消息;在所述第一判斷模塊判斷出所述計(jì)算得到的第一認(rèn)證口令與從所述第一認(rèn)證請(qǐng)求中獲取的第一認(rèn)證口令不匹配時(shí),向所述客戶端發(fā)送認(rèn)證失敗消息; 所述客戶端中的所述第二接收模塊,還用于接收來(lái)自所述認(rèn)證服務(wù)器的認(rèn)證成功消息或認(rèn)證失敗消息。
44.如權(quán)利要求43所述的系統(tǒng),其特征在于, 所述第一散列模塊,具體用于在所述檢測(cè)模塊檢測(cè)到第一按鍵被觸發(fā)時(shí),將所述第一存儲(chǔ)模塊保存的工作密鑰和所述第一用途代碼組合成第一數(shù)據(jù),對(duì)所述第一數(shù)據(jù)進(jìn)行填充,得到第一消息,并對(duì)所述第一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第一散列數(shù)據(jù); 所述第二散列模塊,具體用于將所述第一計(jì)算密鑰、所述第一時(shí)間信息以及所述第一挑戰(zhàn)碼組合成第二數(shù)據(jù),對(duì)所述第二數(shù)據(jù)進(jìn)行填充,得到第二消息,并對(duì)所述第二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第二散列數(shù)據(jù); 所述第三散列模塊,具體用于對(duì)所述檢索模塊檢索到的工作密鑰和所述第二存儲(chǔ)模塊保存的所述第一用途代碼組合成第三數(shù)據(jù),對(duì)所述第三數(shù)據(jù)進(jìn)行填充,得到第三消息,并對(duì)所述第三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第三散列數(shù)據(jù); 所述第四散列模塊,具體用于將所述第二計(jì)算密鑰、所述第二時(shí)間信息以及所述檢索到的第一挑戰(zhàn)碼組合成第四數(shù)據(jù),對(duì)所述第四數(shù)據(jù)進(jìn)行填充,得到第四消息,并對(duì)所述第四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第四散列數(shù)據(jù)。
45.如權(quán)利要求43所述的系統(tǒng),其特征在于, 所述第一截位模塊,具體用于對(duì)所述第二散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第一截位結(jié)果; 所述第二截位模塊,具體用于對(duì)所述第四散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的 和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第二截位結(jié)果。
46.如權(quán)利要求43所述的系統(tǒng),其特征在于, 所述認(rèn)證服務(wù)器中的所述第一接收模塊,還用于接收來(lái)自所述客戶端的第二操作請(qǐng)求; 所述第一生成模塊,還用于在所述第一接收模塊接收到所述第二操作請(qǐng)求后,生成第二挑戰(zhàn)碼,將所述第二挑戰(zhàn)碼保存為與所述第二操作請(qǐng)求中的身份信息相對(duì)應(yīng)的信息;所述第一發(fā)送模塊,還用于將所述第一生成模塊生成的所述第二挑戰(zhàn)碼發(fā)送給所述客戶端; 所述客戶端中的所述第一顯示模塊,還用于顯示所述第二挑戰(zhàn)碼; 所述動(dòng)態(tài)令牌中的所述第一存儲(chǔ)模塊,還用于保存第二用途代碼; 所述第一獲取模塊,還用于獲取用戶輸入的所述第二挑戰(zhàn)碼; 所述第一散列模塊,還用于在所述檢測(cè)模塊檢測(cè)到第二按鍵被觸發(fā)時(shí),對(duì)所述第一存儲(chǔ)模塊保存的工作密鑰和第二用途代碼進(jìn)行散列,得到第五散列數(shù)據(jù); 所述第二散列模塊,還用于將所述第二散列模塊散列得到的所述第五散列數(shù)據(jù)作為第三計(jì)算密鑰,對(duì)所述第三計(jì)算密鑰、第三時(shí)間信息和所述第二挑戰(zhàn)碼進(jìn)行散列,得到第六散列數(shù)據(jù); 所述第一截位模塊,還用于對(duì)所述第六散列數(shù)據(jù)進(jìn)行截位,得到第三截位結(jié)果; 所述第二顯示模塊,還用于將所述第一截位模塊截位得到的第三截位結(jié)果作為第二認(rèn)證口令進(jìn)行顯示; 所述客戶端中的所述第二獲取模塊,還用于獲取用戶輸入的所述第二認(rèn)證口令; 所述第二生成模塊,還用于生成包含所述第二認(rèn)證口令和身份信息的第二認(rèn)證請(qǐng)求;所述第二發(fā)送模塊,還用于將所述第二生成模塊生成的所述第二認(rèn)證請(qǐng)求發(fā)送給所述認(rèn)證服務(wù)器; 所述認(rèn)證服務(wù)器中的所述第一接收模塊,還用于接收來(lái)自所述客戶端的所述第二認(rèn)證請(qǐng)求; 所述第二存儲(chǔ)模塊,還用于保存所述第二用途代碼; 所述第三獲取模塊,還用于獲取所述第二認(rèn)證請(qǐng)求中的身份信息; 所述檢索模塊,還用于檢索與所述第二認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和第二挑戰(zhàn)碼; 所述第三散列模塊,還用于對(duì)所述檢索模塊檢索到的工作密鑰和所述第二存儲(chǔ)模塊保存的所述第二用途代碼進(jìn)行散列,得到第七散列數(shù)據(jù); 所述第四散列模塊,還用于將所述第三散列模塊散列得到的所述第七散列數(shù)據(jù)作為第四計(jì)算密鑰,對(duì)所述第四計(jì)算密鑰、第四時(shí)間信息和檢索到的所述第二挑戰(zhàn)碼進(jìn)行散列,得到第八散列數(shù)據(jù); 所述第二截位模塊,還用于對(duì)所述第八散列數(shù)據(jù)進(jìn)行截位,得到第四截位結(jié)果; 所述第一判斷模塊,還用于將所述第二截位模塊截位得到的所述第四截位結(jié)果作為計(jì)算得到的第二認(rèn)證口令,判 斷所述計(jì)算得到的第二認(rèn)證口令是否與從所述第二認(rèn)證請(qǐng)求中獲取的第二認(rèn)證口令匹配; 所述第一發(fā)送模塊,還用于在所述第一判斷模塊判斷出所述計(jì)算得到的第二認(rèn)證口令與從所述第二認(rèn)證請(qǐng)求中獲取的第二認(rèn)證口令匹配時(shí),向所述客戶端發(fā)送認(rèn)證成功消息;在所述第一判斷模塊判斷出所述計(jì)算得到的第二認(rèn)證口令與從所述第二認(rèn)證請(qǐng)求中獲取的第二認(rèn)證口令不匹配時(shí),向所述客戶端發(fā)送認(rèn)證失敗消息。
47.如權(quán)利要求46所述的系統(tǒng),其特征在于,所述第一操作請(qǐng)求為登錄請(qǐng)求時(shí),所述第一認(rèn)證請(qǐng)求為登錄認(rèn)證請(qǐng)求,所述第二操作請(qǐng)求為簽名請(qǐng)求,所述第二認(rèn)證請(qǐng)求為簽名認(rèn)證請(qǐng)求; 所述第一操作請(qǐng)求為簽名請(qǐng)求時(shí),所述第一認(rèn)證請(qǐng)求為簽名認(rèn)證請(qǐng)求,所述第二操作請(qǐng)求為登錄請(qǐng)求,所述第二認(rèn)證請(qǐng)求為登錄認(rèn)證請(qǐng)求。
48.如權(quán)利要求46所述的系統(tǒng),其特征在于, 所述第一散列模塊,具體用于在所述檢測(cè)模塊檢測(cè)到第二按鍵被觸發(fā)時(shí),將所述第一存儲(chǔ)模塊保存的工作密鑰和所述第二用途代碼組合成第五數(shù)據(jù),對(duì)所述第五數(shù)據(jù)進(jìn)行填充,得到第五消息,并對(duì)所述第五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第五散列數(shù)據(jù); 所述第二散列模塊,具體用于將所述第三計(jì)算密鑰、所述第三時(shí)間信息以及所述第二挑戰(zhàn)碼組合成第六數(shù)據(jù),對(duì)所述第六數(shù)據(jù)進(jìn)行填充,得到第六消息,并對(duì)所述第六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第六散列數(shù)據(jù); 所述第三散列模塊,具體用于對(duì)所述檢索模塊檢索到的工作密鑰和所述第二存儲(chǔ)模塊保存的所述第二用途代碼組合成第七數(shù)據(jù),對(duì)所述第七數(shù)據(jù)進(jìn)行填充,得到第七消息,并對(duì)所述第七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第七散列數(shù)據(jù); 所述第四散列模塊,具體用于將所述第四計(jì)算密鑰、所述第四時(shí)間信息以及所述檢索到的第二挑戰(zhàn)碼組合成第八數(shù)據(jù),對(duì)所述第八數(shù)據(jù)進(jìn)行填充,得到第八消息,并對(duì)所述第八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第八散列數(shù)據(jù)。
49.如權(quán)利要求46所述的系統(tǒng),其特征在于, 所述第一截位模塊,具體用于對(duì)所述第六散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第三截位結(jié)果; 所述第二截位模塊,具體用于對(duì)所述第八散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第四截位結(jié)果。
50.如權(quán)利要求43所述的系統(tǒng),其特征在于, 所述動(dòng)態(tài)令牌,還包括: 第三生成模塊,用于當(dāng) 所述動(dòng)態(tài)令牌被鎖定后,生成解鎖請(qǐng)求碼; 所述第二顯示模塊,還用于顯示所述第三生成模塊生成的所述解鎖請(qǐng)求碼; 所述客戶端中的所述第二獲取模塊,還用于獲取用戶輸入的所述解鎖請(qǐng)求碼; 所述第二生成模塊,還用于生成包含所述解鎖請(qǐng)求碼和身份信息的解鎖請(qǐng)求; 所述第二發(fā)送模塊,還用于將所述解鎖請(qǐng)求發(fā)送給所述認(rèn)證服務(wù)器; 所述認(rèn)證服務(wù)器中的所述第一接收模塊,還用于接收所述解鎖請(qǐng)求; 所述第二存儲(chǔ)模塊,還用于保存第三用途代碼; 所述檢索模塊,還用于檢索與所述解鎖請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰; 所述第三散列模塊,還用于對(duì)所述檢索模塊檢索到的工作密鑰和所述第二存儲(chǔ)模塊保存的所述第三用途代碼進(jìn)行散列,得到第九散列數(shù)據(jù); 所述第三獲取模塊,還用于從所述解鎖請(qǐng)求中獲取所述解鎖請(qǐng)求碼; 所述第四散列模塊,還用于將所述第三散列模塊散列得到的第九散列數(shù)據(jù)作為第五計(jì)算密鑰,對(duì)所述第五計(jì)算密鑰和所述解鎖請(qǐng)求碼進(jìn)行散列,得到第十散列數(shù)據(jù); 所述第二截位模塊,還用于對(duì)所述第十散列數(shù)據(jù)進(jìn)行截位,得到第五截位結(jié)果; 所述第一發(fā)送模塊,還用于將所述第二截位模塊截位得到的第五截位結(jié)果作為解鎖碼發(fā)送給所述客戶端; 所述客戶端中的第二接收模塊,還用于接收來(lái)自所述認(rèn)證服務(wù)器的所述解鎖碼; 所述第一顯示模塊,還用于顯示所述解鎖碼; 所述動(dòng)態(tài)令牌中的所述第一獲取模塊,還用于獲取用戶輸入的所述解鎖碼; 所述第一存儲(chǔ)模塊,還用于保存所述第三用途代碼; 所述第一散列模塊,還用于在所述檢測(cè)模塊檢測(cè)到第三按鍵被觸發(fā)時(shí),對(duì)所述第一存儲(chǔ)模塊保存的工作密鑰和所述第三用途代碼進(jìn)行散列,得到第十一散列數(shù)據(jù); 所述第二散列模塊,還用于將所述第一散列模塊散列得到的第十一散列數(shù)據(jù)作為第六計(jì)算密鑰,對(duì)所述第六計(jì)算密鑰和所述解鎖請(qǐng)求碼進(jìn)行散列,得到第十二散列數(shù)據(jù); 所述第一截位模塊,還用于對(duì)所述第十二散列數(shù)據(jù)進(jìn)行截位,得到第六截位結(jié)果; 所述第一判斷模塊,還用于判斷所述第六截位結(jié)果是否與所述解鎖碼相同; 所述第二顯示模塊,還用于在所述第一判斷模塊判斷出所述第六截位結(jié)果與所述解鎖碼相同時(shí),顯示解鎖成功信息;在所述第一判斷模塊判斷出所述第六截位結(jié)果與所述解鎖碼不同時(shí),顯示解鎖失敗信息; 所述動(dòng)態(tài)令牌,還包括: 重置模塊,用于在所述第一判斷模塊判斷出所述第六截位結(jié)果與所述解鎖碼相同時(shí),對(duì)開機(jī)口令進(jìn)行重置,保存重置后的開機(jī)口令。
51.如權(quán)利要求50所述的系統(tǒng),其特征在于, 所述動(dòng)態(tài)令牌中的所述第一存儲(chǔ)模塊,還用于保存原始種子密鑰; 所述動(dòng)態(tài)令牌,還包括: 初始化模塊,用于在所述第一判斷模塊判斷出所述第六截位結(jié)果與所述解鎖碼相同時(shí),對(duì)解鎖失敗次數(shù)進(jìn)行初始化; 更新模塊,用于在所述第一判斷模塊判斷出所述第六截位結(jié)果與所述解鎖碼不同時(shí),對(duì)所述解鎖失敗次數(shù)進(jìn)行更新; 第二判斷模塊,用于判斷所述解鎖失敗次數(shù)是否等于第二預(yù)設(shè)次數(shù),并在判斷出所述解鎖失敗次數(shù)不等于第二預(yù)設(shè)次數(shù)時(shí),觸發(fā)所述第三生成模塊重新生成解鎖請(qǐng)求碼; 清空模塊,用于在所述第二判斷模塊判斷出所述解鎖失敗次數(shù)等于第二預(yù)設(shè)次數(shù)時(shí),清空所述第一存儲(chǔ)模塊保存的原始種子密鑰和工作密鑰; 所述第二顯示模塊, 還用于在所述第二判斷模塊判斷出所述解鎖失敗次數(shù)等于第二預(yù)設(shè)次數(shù)時(shí),顯示令牌自毀信息。
52.如權(quán)利要求50所述的系統(tǒng),其特征在于, 所述第三散列模塊,具體用于將所述檢索模塊檢索到的工作密鑰和所述第三用途代碼組合成第九數(shù)據(jù),對(duì)所述第九數(shù)據(jù)進(jìn)行填充,得到第九消息,并對(duì)所述第九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第九散列數(shù)據(jù); 所述第四散列模塊,具體用于將所述第五計(jì)算密鑰和所述解鎖請(qǐng)求碼組合成第十?dāng)?shù)據(jù),對(duì)所述第十?dāng)?shù)據(jù)進(jìn)行填充,得到第十消息,并對(duì)所述第十消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十散列數(shù)據(jù); 所述第一散列模塊,具體用于將所述第一存儲(chǔ)模塊保存的工作密鑰和第三用途代碼組合成第十一數(shù)據(jù),對(duì)所述第十一數(shù)據(jù)進(jìn)行填充,得到第十一消息,并對(duì)所述第十一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十一散列數(shù)據(jù); 所述第二散列模塊,具體用于將所述第六計(jì)算密鑰和所述解鎖請(qǐng)求碼組合成第十二數(shù)據(jù),對(duì)所述第十二數(shù)據(jù)進(jìn)行填充,得到第十二消息,并對(duì)所述第十二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十二散列數(shù)據(jù)。
53.如權(quán)利要求50所述的系統(tǒng),其特征在于, 所述第二截位模塊,具體用于對(duì)所述第十散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第五截位結(jié)果; 所述第一截位模塊,具體用于對(duì)所述第十二散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第六截位結(jié)果。
54.如權(quán)利要求43所述的系統(tǒng),其特征在于, 所述動(dòng)態(tài)令牌中的所述第一存儲(chǔ)模塊,還用于保存第三用途代碼; 所述第一散列模塊,還用于在所述檢測(cè)模塊檢測(cè)到第四按鍵被觸發(fā)時(shí),對(duì)所述第一存儲(chǔ)模塊保存的工作密鑰和第三用途代碼進(jìn)行散列,得到第十一散列數(shù)據(jù); 所述第二散列模塊,還用于將所述第一散列模塊散列得到的第十一散列數(shù)據(jù)作為第六計(jì)算密鑰,對(duì)所述第六計(jì)算密鑰和第五時(shí)間信息進(jìn)行散列,得到第十三散列數(shù)據(jù),對(duì)所述第六計(jì)算密鑰和第六時(shí)間信息進(jìn)行散列,得到第十四散列數(shù)據(jù),所述第六時(shí)間信息晚于所述第五時(shí)間信息; 所述第一截位模塊,還用于對(duì)所述第十三散列數(shù)據(jù)進(jìn)行截位,得到第七截位結(jié)果;對(duì)所述第十四散列數(shù)據(jù)進(jìn)行截位,得到第八截位結(jié)果; 所述第二顯示模塊,還用于將所述第七截位結(jié)果和所述第八截位結(jié)果分別作為第一同步碼和第二同步碼進(jìn)行顯示; 所述客戶端中的所述第二獲取模塊,還用于獲取用戶輸入的所述第一同步碼和所述第二同步碼; 所述第二生成模塊,還用于生成包含所述第一同步碼、所述第二同步碼和身份信息的同步請(qǐng)求; 所述第二發(fā)送模塊,還用于將所述同步請(qǐng)求發(fā)送給所述認(rèn)證服務(wù)器; 所述認(rèn)證服務(wù)器中的所述第一接收模塊,還用于接收所述同步請(qǐng)求;` 所述第二存儲(chǔ)模塊,還用于保存第三用途代碼; 所述檢索模塊,還用于檢索與所述同步請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰; 所述第三散列模塊,還用于對(duì)所述檢索模塊檢索到的工作密鑰和所述第二存儲(chǔ)模塊保存的第三用途代碼進(jìn)行散列,得到第九散列數(shù)據(jù); 所述第四散列模塊,還用于將所述第三散列模塊散列得到的第九散列數(shù)據(jù)作為第五計(jì)算密鑰,對(duì)所述第五計(jì)算密鑰和第七時(shí)間信息進(jìn)行散列,得到第十五散列數(shù)據(jù); 所述第二截位模塊,還用于對(duì)所述第十五散列數(shù)據(jù)進(jìn)行截位,得到第九截位結(jié)果; 所述第一判斷模塊,還用于將所述第二截位模塊截位得到的第九截位結(jié)果作為第一同步口令,判斷所述第一同步口令是否與從所述同步請(qǐng)求中獲取的第一同步碼匹配; 所述第一發(fā)送模塊,還用于在所述第一判斷模塊判斷出所述第一同步口令與從所述同步請(qǐng)求中獲取的第一同步碼不匹配時(shí),向所述客戶端發(fā)送同步失敗消息; 所述第四散列模塊,還用于在所述第一判斷模塊判斷出所述第一同步口令與從所述同步請(qǐng)求中獲取的第一同步碼匹配時(shí),對(duì)所述第五計(jì)算密鑰和第八時(shí)間信息進(jìn)行散列,得到第十六散列數(shù)據(jù); 所述第二截位模塊,還用于對(duì)所述第十六散列數(shù)據(jù)進(jìn)行截位,得到第十截位結(jié)果; 所述第一判斷模塊,還用于將所述第二截位模塊截位得到的第十截位結(jié)果作為第二同步口令,判斷所述第二同步口令是否與從所述同步請(qǐng)求中獲取的第二同步碼匹配; 所述第一發(fā)送模塊,還用于在所述第一判斷模塊判斷出所述第二同步口令與從所述同步請(qǐng)求中獲取的第二同步碼不匹配時(shí),向所述客戶端發(fā)送同步失敗消息; 所述第一判斷模塊,還用于在所述第一判斷模塊判斷出所述第二同步口令與從所述同步請(qǐng)求中獲取的第二同步碼匹配時(shí),判斷所述第二同步碼的認(rèn)證成功時(shí)間是否晚于所述第一同步碼的認(rèn)證成功時(shí)間; 所述第三獲取模塊,還用于在所述第一判斷模塊判斷出所述第二同步碼的認(rèn)證成功時(shí)間晚于所述第一同步碼的認(rèn)證成功時(shí)間時(shí),獲取系統(tǒng)時(shí)間與所述第一同步碼的認(rèn)證成功時(shí)間之間的差值,將所述差值保存為與所述同步請(qǐng)求中的身份信息對(duì)應(yīng)的令牌偏移時(shí)間;所述第一發(fā)送模塊,還用于在所述第一判斷模塊判斷出所述第二同步碼的認(rèn)證成功時(shí)間晚于所述第一同步碼的認(rèn)證成功時(shí)間時(shí),向所述客戶端發(fā)送同步成功消息;在所述第一判斷模塊判斷出所述第二同步碼的認(rèn)證成功時(shí)間不晚于所述第一同步碼的認(rèn)證成功時(shí)間時(shí),向所述客戶端發(fā)送同步失敗消息。
55.如權(quán)利要求54所述的系統(tǒng),其特征在于, 所述第一散列模塊,具體用于將所述第一存儲(chǔ)模塊保存的工作密鑰和所述第三用途代碼組合成第十一數(shù)據(jù),對(duì)所述第十一數(shù)據(jù)進(jìn)行填充,得到第十一消息,并對(duì)所述第十一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十一散列數(shù)據(jù); 所述第二散列模塊,具體用于將所述第六計(jì)算密鑰和所述第五時(shí)間信息組合成第十三數(shù)據(jù),對(duì)所述第十三數(shù)據(jù)進(jìn)行填充,得到第十三消息,并對(duì)所述第十三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十三散列數(shù)據(jù);將所述第六計(jì)算密鑰和所述第六時(shí)間信息組合成第十四數(shù)據(jù),對(duì)所述第十四數(shù)據(jù)進(jìn)行填充,得到第十四消息,并對(duì)所述第十四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十四散列數(shù)據(jù); 所述第三散列模塊,具體用于將所述檢索模塊檢索到的工作密鑰和所述第三用途代碼組合成第九數(shù)據(jù),對(duì)所述第九數(shù)據(jù)進(jìn)行填充,得到第九消息,并對(duì)所述第九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第九散列數(shù)據(jù); 所述第四散列模塊,具體用于將所述第五計(jì)算密鑰和所述第七時(shí)間信息組合成第十五數(shù)據(jù),對(duì)所述第十五數(shù)據(jù)進(jìn)行填充,得到第十五消息,并對(duì)所述第十五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十五散列數(shù)據(jù);將所述第五計(jì)算密鑰和所述第八時(shí)間信息組合成第十六數(shù)據(jù),對(duì)所述第十六數(shù)據(jù)進(jìn)行填充,得到第十六消息,并對(duì)所述第十六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十六散列數(shù)據(jù)。
56.如權(quán)利要求54所述的系統(tǒng),其特征在于, 所述第一截位模塊,具體用于對(duì)所述第十三散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第七截位結(jié)果;對(duì)所述第十四散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第八截位結(jié)果; 所述第二截位模塊,具體用于對(duì)所述第十五散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第九截位結(jié)果;對(duì)所述第十六散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第十截位結(jié)果。
57.如權(quán)利要求43所述的系統(tǒng),其特征在于, 所述認(rèn)證服務(wù)器中的所述第一接收模塊,還用于接收來(lái)自所述客戶端的激活請(qǐng)求; 所述檢索模塊,還用于檢索與所述激活請(qǐng)求中的身份信息對(duì)應(yīng)的原始種子密鑰; 所述第一生成模塊,還用于在所述第一接收模塊接收到所述解惑請(qǐng)求后,生成隨機(jī)數(shù); 所述認(rèn)證服務(wù)器,還包括: 所述第五散列模塊,用于對(duì)所述第一生成模塊生成的所述隨機(jī)數(shù)和所述檢索模塊檢索到的原始種子密鑰進(jìn)行散列,得到第十七散列數(shù)據(jù); 第三截位模塊,用于對(duì)所述第十七散列數(shù)據(jù)進(jìn)行截位,得到第十一截位結(jié)果; 組合模塊,用于將所述第三截位模塊截位得到的第十一截位結(jié)果與所述第一生成模塊生成的所述隨機(jī)數(shù)進(jìn) 行組合,得到激活碼; 第六散列模塊,用于對(duì)所述組合模塊組合得到的所述激活碼和所述檢索模塊檢索到的原始種子密鑰進(jìn)行散列,將得到的第十八散列數(shù)據(jù)保存為與所述激活請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰; 所述第一發(fā)送模塊,還用于將所述組合模塊組合得到的所述激活碼發(fā)送給所述客戶端; 所述客戶端中的所述第二接收模塊,還用于接收所述激活碼; 所述第一顯示模塊,還用于顯示所述激活碼; 所述動(dòng)態(tài)令牌中的所述第一存儲(chǔ)模塊,還用于保存原始種子密鑰; 所述第一獲取模塊,用于獲取用戶輸入的所述激活碼; 所述動(dòng)態(tài)令牌,還包括: 第七散列模塊,用于對(duì)所述激活碼和所述第一存儲(chǔ)模塊保存的原始種子密鑰進(jìn)行散列,將得到的第十九散列數(shù)據(jù)保存為所述工作密鑰; 設(shè)置模塊,用于在所述第七散列模塊保存所述工作密鑰后,設(shè)置開機(jī)口令,并對(duì)設(shè)置的所述開機(jī)口令進(jìn)行保存。
58.如權(quán)利要求57所述的系統(tǒng),其特征在于, 所述第五散列模塊,具體用于將所述隨機(jī)數(shù)和所述檢索到的原始種子密鑰組合成第十七數(shù)據(jù),對(duì)所述第十七數(shù)據(jù)進(jìn)行填充,得到第十七消息,并對(duì)所述第十七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十七散列數(shù)據(jù); 所述第六散列模塊,具體用于將所述激活碼和所述檢索到的原始種子密鑰組合成第十八數(shù)據(jù),對(duì)所述第十八數(shù)據(jù)進(jìn)行填充,得到第十八消息,并對(duì)所述第十八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十八散列數(shù)據(jù); 所述第七散列模塊,具體用于將所述激活碼和所述自身保存的原始種子密鑰組合成第十九數(shù)據(jù),對(duì)所述第十九數(shù)據(jù)進(jìn)行填充,得到第十九消息,并對(duì)所述第十九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十九散列數(shù)據(jù)。
59.如權(quán)利要求57所述的系統(tǒng),其特征在于, 所述第三截位模塊,具體用于對(duì)所述第十七散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第十一截位結(jié)果。
60.一種動(dòng)態(tài)令牌,其特征在于,包括: 存儲(chǔ)模塊,用于保存工作密鑰、第一用途代碼和第二用途代碼; 獲取模塊,用于獲取用戶輸入的登錄挑戰(zhàn)碼和簽名挑戰(zhàn)碼; 檢測(cè)模塊,用于檢測(cè)按鍵; 第一判斷模塊,用于在所述檢測(cè)模塊檢測(cè)到所述動(dòng)態(tài)令牌的按鍵被觸發(fā)時(shí),對(duì)被觸發(fā)的按鍵進(jìn)行判斷; 第一散列模塊,用于在所述第一判斷模塊判斷出所述被觸發(fā)的按鍵為第一按鍵時(shí),對(duì)所述存儲(chǔ)模塊保存的工作密鑰和第一用途代碼進(jìn)行散列,得到第一散列數(shù)據(jù);在所述第一判斷模塊判斷出所述被觸發(fā)的按鍵為第二按鍵時(shí),對(duì)所述存儲(chǔ)模塊保存的工作密鑰和第二用途代碼進(jìn)行散列,得到第三散列數(shù)據(jù); 第二散列模塊,用于將所述第一散列模塊散列得到的第一散列數(shù)據(jù)作為第一計(jì)算密鑰,對(duì)所述第一計(jì)算密鑰、第一時(shí)間信息和所述獲取模塊獲取的登錄挑戰(zhàn)碼進(jìn)行散列,得到第二散列數(shù)據(jù);將所述第一散列模塊散列得到的第三散列數(shù)據(jù)作為第二計(jì)算密鑰,對(duì)所述第二計(jì)算密鑰、第二時(shí)間信息和所述獲取模塊獲取的簽名挑戰(zhàn)碼進(jìn)行散列,得到第四散列數(shù)據(jù); 截位模塊,用于對(duì)所述第二散列模塊散列得到的第二散列數(shù)據(jù)進(jìn)行截位,得到第一截位結(jié)果;對(duì)所述第二散列模`塊散列得到的第四散列數(shù)據(jù)進(jìn)行截位,得到第二截位結(jié)果; 顯示模塊,用于將所述截位模塊截位得到的第一截位結(jié)果作為登錄口令進(jìn)行顯示,將所述截位模塊截位得到的第二截位結(jié)果作為簽名口令進(jìn)行顯示。
61.如權(quán)利要求60所述的動(dòng)態(tài)令牌,其特征在于, 所述第一散列模塊,具體用于將所述工作密鑰和所述第一用途代碼組合成第一數(shù)據(jù),對(duì)所述第一數(shù)據(jù)進(jìn)行填充,得到第一消息,并對(duì)所述第一消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第一散列數(shù)據(jù);將所述工作密鑰和所述第二用途代碼組合成第三數(shù)據(jù),對(duì)所述第三數(shù)據(jù)進(jìn)行填充,得到第三消息,并對(duì)所述第三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第三散列數(shù)據(jù); 所述第二散列模塊,具體用于將所述第一計(jì)算密鑰、所述第一時(shí)間信息以及所述登錄挑戰(zhàn)碼組合成第二數(shù)據(jù),對(duì)所述第二數(shù)據(jù)進(jìn)行填充,得到第二消息,并對(duì)所述第二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第二散列數(shù)據(jù);將所述第二計(jì)算密鑰、所述第二時(shí)間信息以及所述簽名挑戰(zhàn)碼組合成第四數(shù)據(jù),對(duì)所述第四數(shù)據(jù)進(jìn)行填充,得到第四消息,并對(duì)所述第四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第四散列數(shù)據(jù)。
62.如權(quán)利要求60所述的動(dòng)態(tài)令牌,其特征在于, 所述截位模塊,具體用于對(duì)所述第二散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第一截位結(jié)果;對(duì)所述第四散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第二截位結(jié)果。
63.如權(quán)利要求60所述的動(dòng)態(tài)令牌,其特征在于, 所述存儲(chǔ)模塊,還用于保存第三用途代碼; 所述第一散列模塊,還用于在所述第一判斷模塊判斷出所述被觸發(fā)的按鍵為第三按鍵時(shí),對(duì)所述存儲(chǔ)模塊保存的工作密鑰和第三用途代碼進(jìn)行散列,得到第五散列數(shù)據(jù); 所述第二散列模塊,還用于將所述第一散列模塊散列得到的第五散列數(shù)據(jù)作為第三計(jì)算密鑰,對(duì)所述第三計(jì)算密鑰和第三時(shí)間信息進(jìn)行散列,得到第六散列數(shù)據(jù);對(duì)所述第三計(jì)算密鑰和第四時(shí)間信息進(jìn)行散列,得到第七散列數(shù)據(jù); 所述截位模塊,還用于對(duì)所述第六散列數(shù)據(jù)進(jìn)行截位,得到第三截位結(jié)果;對(duì)所述第七散列數(shù)據(jù)進(jìn)行截位,得到第四截位結(jié)果; 所述顯示模塊,還用于將所述第三截位結(jié)果和所述第四截位結(jié)果分別作為第一同步碼和第二同步碼進(jìn)行顯示。
64.如權(quán)利要求63所述的動(dòng)態(tài)令牌,其特征在于, 所述第一散列模塊,具體用于將所述工作密鑰和所述第三用途代碼組合成第五數(shù)據(jù),對(duì)所述第五數(shù)據(jù)進(jìn)行填充,得到第五消息,并對(duì)所述第五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第五散列數(shù)據(jù); 所述第二散列模塊,具體用于將所述第三計(jì)算密鑰和所述第三時(shí)間信息組合成第六數(shù)據(jù),對(duì)所述第六數(shù)據(jù)進(jìn)行填充,得到第六消息,并對(duì)所述第六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第六散列數(shù)據(jù);將所述第三計(jì)算密鑰和所述第四時(shí)間信息組合成第七數(shù)據(jù),對(duì)所述第七數(shù)據(jù)進(jìn)行填充,得到第七消息,并對(duì)所述第七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第七散列數(shù)據(jù)。
65.如權(quán)利要求63所述的動(dòng)態(tài)令牌,其特征在于, 所述截位模塊,具體用于對(duì)所述第六散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第三截位結(jié)果;對(duì)所述第七散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第四截位結(jié)果。
66.如權(quán)利要求60所述的動(dòng)態(tài)令牌,其特征在于, 所述存儲(chǔ)模塊,還用于保存原始種子密鑰和第三用途代碼; 所述獲取模塊,還用于獲取用戶輸入的激活碼; 所述動(dòng)態(tài)令牌,還包括: 第三散列模塊,用于對(duì)所述激活碼和所述原始種子密鑰進(jìn)行散列,將得到的第九散列數(shù)據(jù)保存為所述工作密鑰; 設(shè)置模塊,用于在所述第三散列模塊保存所述工作模塊后,設(shè)置開機(jī)口令,并將所述開機(jī)口令保存到所述存儲(chǔ)模塊中。
67.如權(quán)利要求66所述的動(dòng)態(tài)令牌,其特征在于, 所述第三散列模塊,具體用于將所述激活碼和所述原始種子密鑰組合成第九數(shù)據(jù),對(duì)所述第九數(shù)據(jù)進(jìn)行填充,得到第九消息,并對(duì)所述第九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第九散列數(shù)據(jù)。
68.如權(quán)利要求66所述的動(dòng)態(tài)令牌,其特征在于, 所述顯示模塊,還用于提示用戶輸入開機(jī)口令; 所述獲取模塊,還用于獲取用戶輸入的開機(jī)口令; 所述動(dòng)態(tài)令牌,還包括: 第二判斷模塊,用于判斷所述獲取模塊獲取的開機(jī)口令是否與所述存儲(chǔ)模塊保存的開機(jī)口令相同; 第一初始化模塊,用于在所述第二判斷模塊判斷出所述獲取模塊獲取的開機(jī)口令與所述存儲(chǔ)模塊保存的開機(jī)口令相同時(shí),對(duì)開機(jī)錯(cuò)誤次數(shù)進(jìn)行初始化; 第一更新模塊,用于在所述第二判斷模塊判斷出所述獲取模塊獲取的開機(jī)口令與所述存儲(chǔ)模塊保存的開機(jī)口令不同時(shí),對(duì)所述開機(jī)錯(cuò)誤次數(shù)進(jìn)行更新; 第三判斷模塊, 用于判斷所述第一更新模塊更新后的所述開機(jī)錯(cuò)誤次數(shù)是否等于第一預(yù)設(shè)次數(shù); 生成模塊,用于在所述第三判斷模塊判斷出所述開機(jī)錯(cuò)誤次數(shù)等于第一預(yù)設(shè)次數(shù)時(shí),生成解鎖請(qǐng)求碼; 所述顯示模塊,還用于顯示所述生成模塊生成的所述解鎖請(qǐng)求碼,提示用戶輸入解鎖碼; 所述獲取模塊,還用于獲取用戶輸入的解鎖碼; 所述第一散列模塊,還用于對(duì)所述存儲(chǔ)模塊保存的工作密鑰和第三用途代碼進(jìn)行散列,得到第五散列數(shù)據(jù); 所述第二散列模塊,還用于將所述第五散列數(shù)據(jù)作為第三計(jì)算密鑰,對(duì)所述第三計(jì)算密鑰和解鎖請(qǐng)求碼進(jìn)行散列,得到第八散列數(shù)據(jù); 所述截位模塊,還用于對(duì)所述第八散列數(shù)據(jù)進(jìn)行截位,得到第五截位結(jié)果; 所述第四判斷模塊,用于判斷所述第五截位結(jié)果是否與所述解鎖碼相同; 所述顯示模塊,還用于在所述第四判斷模塊判斷出所述第五截位結(jié)果與所述解鎖碼相同時(shí),顯示解鎖成功信息;在所述第四判斷模塊判斷出所述第五截位結(jié)果與所述解鎖碼不同時(shí),顯示解鎖失敗信息; 所述設(shè)置模塊,還用于在所述第四判斷模塊判斷出所述第五截位結(jié)果與所述解鎖碼相同時(shí),對(duì)開機(jī)口令進(jìn)行重置,保存重置后的開機(jī)口令。
69.如權(quán)利要求68所述的動(dòng)態(tài)令牌,其特征在于,還包括: 第二初始化模塊,用于在所述第四判斷模塊判斷出所述第五截位結(jié)果與所述解鎖碼相同時(shí),對(duì)解鎖失敗次數(shù)進(jìn)行初始化; 第二更新模塊,用于在所述第四判斷模塊判斷出所述第五截位結(jié)果與所述解鎖碼不同時(shí),對(duì)所述解鎖失敗次數(shù)進(jìn)行更新; 第五判斷模塊,用于判斷所述解鎖失敗次數(shù)是否等于第二預(yù)設(shè)次數(shù),并在判斷出所述解鎖失敗次數(shù)不等于第二預(yù)設(shè)次數(shù)時(shí),觸發(fā)所述生成模塊生成解鎖請(qǐng)求碼;清空模塊,用于在所述第五判斷模塊判斷出所述解鎖失敗次數(shù)等于第二預(yù)設(shè)次數(shù)時(shí),清空所述存儲(chǔ)模塊保存的原始種子密鑰和工作密鑰; 所述顯示模塊,還用于在所述第五判斷模塊判斷出所述解鎖失敗次數(shù)等于第二預(yù)設(shè)次數(shù)時(shí),顯示令牌自毀信息。
70.如權(quán)利要求68所述的動(dòng)態(tài)令牌,其特征在于,還包括: 第六判斷模塊,用于在所述動(dòng)態(tài)令牌上電后,判斷所述動(dòng)態(tài)令牌是否被鎖定,并在判斷出所述動(dòng)態(tài)令牌被鎖定后,觸發(fā)所述生成模塊生成解鎖請(qǐng)求碼;在判斷出所述動(dòng)態(tài)令牌沒(méi)有被鎖定后,觸發(fā)所述顯示模塊提示用戶輸入開機(jī)口令。
71.如權(quán)利要求68所述的動(dòng)態(tài)令牌,其特征在于, 所述第一散列模塊,具體用于將所述工作密鑰和所述第三用途代碼組合成第五數(shù)據(jù),對(duì)所述第五數(shù)據(jù)進(jìn)行填充,得到第五消息,并對(duì)所述第五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第五散列數(shù)據(jù); 所述第二散列模塊,具體用于將所述第三計(jì)算密鑰和所述解鎖請(qǐng)求碼組合成第八數(shù)據(jù),對(duì)所述第八數(shù)據(jù)進(jìn)行填充,得到第八消息,并對(duì)所述第八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第八散列數(shù)據(jù)。
72.如權(quán)利要求68所述的動(dòng)態(tài)令牌,其特征在于, 所述截位模塊,具體用于對(duì)所述第八散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第五截位結(jié)果。
73.—種認(rèn)證服務(wù)器,其特征在于,包括: 存儲(chǔ)模塊,用于保存第一用途代碼和第二用途代碼; 接收模塊,用于接收來(lái)自客戶端的請(qǐng)求; 第一判斷模塊,用于對(duì)所述接收模塊接收到的請(qǐng)求進(jìn)行判斷; 第一生成模塊,用于在所述第一判斷模塊判斷所述接收到的請(qǐng)求為登錄請(qǐng)求時(shí),生成登錄挑戰(zhàn)碼,將所述登錄挑戰(zhàn)碼保存為與所述登錄請(qǐng)求中的身份信息相對(duì)應(yīng)的信息;在所述第一判斷模塊判斷所述接收到的請(qǐng)求為簽名請(qǐng)求時(shí),生成簽名挑戰(zhàn)碼,將所述簽名挑戰(zhàn)碼保存為與所述簽名請(qǐng)求中的身份信息相對(duì)應(yīng)的信息; 發(fā)送模塊,用于將所述第一生成模塊生成的所述登錄挑戰(zhàn)碼和所述簽名挑戰(zhàn)碼發(fā)送給所述客戶端; 檢索模塊,用于在所述第一判斷模塊判斷出所述接收到的請(qǐng)求為登錄認(rèn)證請(qǐng)求時(shí),檢索與所述登錄認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和登錄挑戰(zhàn)碼;在所述第一判斷模塊判斷出所述接收到的請(qǐng)求為簽名認(rèn)證請(qǐng)求時(shí),檢索與所述簽名認(rèn)證請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰和簽名挑戰(zhàn)碼; 第一散列模塊,用于對(duì)所述檢索模塊檢索到的工作密鑰和所述存儲(chǔ)模塊保存的第一用途代碼進(jìn)行散列,得到第十二散列數(shù)據(jù);對(duì)所述檢索模塊檢索到的工作密鑰和所述存儲(chǔ)模塊保存的第二用途代碼進(jìn)行散列,得到第十四散列數(shù)據(jù); 第二散列模塊,用于將所述第一散列模塊散列得到的所述第十二散列數(shù)據(jù)作為第四計(jì)算密鑰,對(duì)所述第四計(jì)算密鑰、第五時(shí)間信息和所述檢索模塊檢索到的登錄挑戰(zhàn)碼進(jìn)行散列,得到第十三散列數(shù)據(jù);將所述第一散列模塊散列得到的第十四散列數(shù)據(jù)作為第五計(jì)算密鑰,對(duì)所述第五計(jì)算密鑰、第六時(shí)間信息和檢索到的簽名挑戰(zhàn)碼進(jìn)行散列,得到第十五散列數(shù)據(jù); 截位模塊,用于對(duì)所述第二散列模塊散列得到的所述第十三散列數(shù)據(jù)進(jìn)行截位,得到第七截位結(jié)果;對(duì)所述第二散列模塊散列得到的所述第十五散列數(shù)據(jù)進(jìn)行截位,得到第八截位結(jié)果; 第二判斷模塊,用于將所述截位模塊截位得到的第七截位結(jié)果作為計(jì)算得到的登錄口令,判斷所述計(jì)算得到的登錄口令是否與從所述登錄認(rèn)證請(qǐng)求中獲取的登錄口令匹配;將所述截位模塊截位得到的第八截位結(jié)果作為計(jì)算得到的簽名口令,判斷所述計(jì)算得到的簽名口令是否與從所述簽名認(rèn)證請(qǐng)求中獲取的簽名口令匹配; 所述發(fā)送模塊,還用于在所述第二判斷模塊判斷出所述計(jì)算得到的登錄口令與從所述登錄認(rèn)證請(qǐng)求中獲取的登錄口令匹配時(shí),向所述客戶端發(fā)送認(rèn)證成功消息;在所述第二判斷模塊判斷出所述計(jì)算得到的登錄口令與從所述登錄認(rèn)證請(qǐng)求中獲取的登錄口令不匹配時(shí),向所述客戶端發(fā)送認(rèn)證失敗消息;在所述第二判斷模塊判斷出所述計(jì)算得到的簽名口令與從所述簽名認(rèn)證請(qǐng)求中獲取的簽名口令匹配時(shí),向所述客戶端發(fā)送認(rèn)證成功消息;在所述第二判斷模塊判斷出所述計(jì)算得到的簽名口令與從所述簽名認(rèn)證請(qǐng)求中獲取的簽名口令不匹配時(shí),向所述客戶端發(fā)送認(rèn)證失敗消息。
74.如權(quán)利要求73所述的認(rèn)證服務(wù)器,其特征在于, 所述第一散列模塊,具體用于將所述檢索模塊檢索到的工作密鑰和所述第一用途代碼組合成第十二數(shù)據(jù),對(duì)所述第十二數(shù)據(jù)進(jìn)行填充,得到第十二消息,并對(duì)所述第十二消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十二散列數(shù)據(jù);將所述檢索模塊檢索到的工作密鑰和所述第二用途代碼組合成第十四數(shù)據(jù),對(duì)所述第十四數(shù)據(jù)進(jìn)行填充,得到第十四消息,并對(duì)所述第十四消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十四散列數(shù)據(jù); 所述第二散列模塊,具體用于將所述第四計(jì)算密鑰、所述第五時(shí)間信息以及所述檢索到的登錄挑戰(zhàn)碼組合成第十三數(shù)據(jù),對(duì)所述第十三數(shù)據(jù)進(jìn)行填充,得到第十三消息,并對(duì)所述第十三消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十三散列數(shù)據(jù);將所述第五計(jì)算密鑰、所述第六時(shí)間信息以及所述檢索到的簽名挑戰(zhàn)碼組合成第十五數(shù)據(jù),對(duì)所述第十五數(shù)據(jù)進(jìn)行填充,得到第十五消息,并對(duì)所述第十五消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十五散列數(shù)據(jù)。
75.如權(quán)利要求73所述的認(rèn)證服務(wù)器,其特征在于, 所述截位模塊,具體用于對(duì)所述第十三散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到第七截位結(jié)果;對(duì)第十五散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第八截位結(jié)果。
76.如權(quán)利要求73所述的認(rèn)證服務(wù)器,其特征在于,所述檢索模塊,還用于在所述第一判斷模塊判斷出所述接收到的請(qǐng)求為激活請(qǐng)求時(shí),檢索與所述激活請(qǐng)求中的身份信息對(duì)應(yīng)的原始種子密鑰; 所述認(rèn)證服務(wù)器,還包括: 第二生成模塊,用于在所述第一判斷模塊判斷出所述接收到的請(qǐng)求為激活請(qǐng)求時(shí),生成第一隨機(jī)數(shù); 所述第一散列模塊,還用于對(duì)所述第二生成模塊生成的所述第一隨機(jī)數(shù)和所述檢索模塊檢索到的原始種子密鑰進(jìn)行散列,得到第十散列數(shù)據(jù); 所述截位模塊,還用于對(duì)所述第十散列數(shù)據(jù)進(jìn)行截位,得到第六截位結(jié)果; 所述認(rèn)證服務(wù)器,還包括: 組合模塊,用于將所述 截位模塊截位得到的第六截位結(jié)果與所述第一隨機(jī)數(shù)進(jìn)行組合,得到激活碼; 第三散列模塊,用于對(duì)所述組合模塊組合得到的所述激活碼和所述檢索模塊檢索到的原始種子密鑰進(jìn)行散列,將得到的第十一散列數(shù)據(jù)保存為與所述激活請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰; 所述發(fā)送模塊,還用于向所述客戶端發(fā)送所述組合模塊生成的所述激活碼。
77.如權(quán)利要求76所述的認(rèn)證服務(wù)器,其特征在于, 所述第一散列模塊,具體用于將所述第一隨機(jī)數(shù)和所述檢索模塊檢索到的原始種子密鑰組合成第十?dāng)?shù)據(jù),對(duì)所述第十?dāng)?shù)據(jù)進(jìn)行填充,得到第十消息,并對(duì)所述第十消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十散列數(shù)據(jù)。
78.如權(quán)利要求76所述的認(rèn)證服務(wù)器,其特征在于, 所述截位模塊,具體用于對(duì)所述第十散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第六截位結(jié)果。
79.如權(quán)利要求73所述的認(rèn)證服務(wù)器,其特征在于, 所述存儲(chǔ)模塊,還用于保存第三用途代碼; 所述檢索模塊,還用于在所述第一判斷模塊判斷出所述接收到的請(qǐng)求為解鎖請(qǐng)求時(shí),檢索與所述解鎖請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰; 所述第一散列模塊,還用于對(duì)所述檢索模塊檢索到的工作密鑰和所述存儲(chǔ)模塊保存的第三用途代碼進(jìn)行散列,得到第十六散列數(shù)據(jù); 所述第二散列模塊,還用于將所述第一散列模塊散列得到的第十六散列數(shù)據(jù)作為第六計(jì)算密鑰,對(duì)所述第六計(jì)算密鑰和從所述解鎖請(qǐng)求中獲取到的解鎖請(qǐng)求碼進(jìn)行散列,得到第十九散列數(shù)據(jù); 所述截位模塊,還用于對(duì)所述第十九散列數(shù)據(jù)進(jìn)行截位,得到第十一截位結(jié)果; 所述發(fā)送模塊,還用于將所述截位模塊截位得到的第十一截位結(jié)果作為解鎖碼發(fā)送給所述客戶端。
80.如權(quán)利要求79所述的認(rèn)證服務(wù)器,其特征在于, 所述第一散列模塊,具體用于將所述檢索到的工作密鑰和所述第三用途代碼組合成第十六數(shù)據(jù),對(duì)所述第十六數(shù)據(jù)進(jìn)行填充,得到第十六消息,并對(duì)所述第十六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十六散列數(shù)據(jù); 所述第二散列模塊,具體用于將所述第六計(jì)算密鑰和所述獲取到的解鎖請(qǐng)求碼組合成第十九數(shù)據(jù),對(duì)所述第十九數(shù)據(jù)進(jìn)行填充,得到第十九消息,并對(duì)所述第十九消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到第所述十九散列數(shù)據(jù)。
81.如權(quán)利要求79所述的認(rèn)證服務(wù)器,其特征在于, 所述截位模塊,具體用于對(duì)所述第十九散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第十一截位結(jié)果。
82.如權(quán)利要求73所述的認(rèn)證服務(wù)器,其特征在于, 所述存儲(chǔ)模塊,還用于保存第三用途代碼; 所述檢索模塊,還用于在所述第一判斷模塊判斷出所述接收到的請(qǐng)求為同步請(qǐng)求時(shí),檢索與所述同步請(qǐng)求中的身份信息對(duì)應(yīng)的工作密鑰; 所述第一散列模塊,還用于對(duì)所述檢索模塊檢索到的工作密鑰和所述存儲(chǔ)模塊保存的第三用途代碼進(jìn)行散列,得到第十六散列數(shù)據(jù); 所述第二散列模塊,還用于對(duì)所述第一散列模塊散列得到的第十六散列數(shù)據(jù)作為第六計(jì)算密鑰,對(duì)所述第六計(jì)算密鑰和第七時(shí)間信息進(jìn)行散列,得到第十七散列數(shù)據(jù); 所述截位模塊,還用于對(duì)所述第十七散列數(shù)據(jù)進(jìn)行截位,得到第九截位結(jié)果; 所述第二判斷模塊,還用于將所述截位模塊截位得到的第九截位結(jié)果作為第一同步口令,判斷所述第一同步口令是否與從所述同步請(qǐng)求中獲取的第一同步碼匹配; 所述發(fā)送模塊,還用于在所述第二判斷模塊判斷出所述第一同步口令與從所述同步請(qǐng)求中獲取的第一同步碼不匹配時(shí),向所述客戶端發(fā)送同步失敗消息; 所述認(rèn)證服務(wù)器,還包括: 第四散列模塊,用于在所述第二判斷模塊判斷出所述第一同步口令與從所述同步請(qǐng)求中獲取的第一同步碼匹配時(shí),對(duì)所述第六計(jì)算密鑰和第八時(shí)間信息進(jìn)行散列,得到第十八散列數(shù)據(jù); 所述截位模塊,還用于對(duì)所述第十八散列數(shù)據(jù)進(jìn)行截位,得到第十截位結(jié)果; 所述認(rèn)證服務(wù)器,還包括: 第三判斷模塊,用于將所述截位模塊截位得到的第十截位結(jié)果作為第二同步口令,判斷所述第二同步口令是否與從所述同步請(qǐng)求中獲取的第二同步碼匹配; 第四判斷模塊,用于在所述第三判斷模塊判斷出所述第二同步口令與從所述同步請(qǐng)求中獲取的第二同步碼匹配時(shí),判斷所述第二同步碼的認(rèn)證成功時(shí)間是否晚于所述第一同步碼的認(rèn)證成功時(shí)間; 所述獲取模塊,用于在所述第四判斷模塊判斷出所述第二同步碼的認(rèn)證成功時(shí)間晚于所述第一同步碼的認(rèn)證成功時(shí)間時(shí),獲取系統(tǒng)時(shí)間與所述第一同步碼的認(rèn)證成功時(shí)間之間的差值,將所述差值保存為與所述同步請(qǐng)求中的身份信息對(duì)應(yīng)的令牌偏移時(shí)間; 所述發(fā)送模塊,還用于在所述第三判斷模塊判斷出所述第二同步口令與從所述同步請(qǐng)求中獲取的第二同步碼不匹配時(shí),向所述客戶端發(fā)送同步失敗消息;在所述第三判斷模塊判斷出所述第二同步口令與從所述同步請(qǐng)求中獲取的第二同步碼匹配時(shí),向所述客戶端發(fā)送同步成功消息;在所述第四判斷模塊判斷出所述第二同步碼的認(rèn)證成功時(shí)間不晚于所述第一同步碼的認(rèn)證成功時(shí)間時(shí),向所述客戶端發(fā)送同步失敗消息。
83.如權(quán)利要求82所述的認(rèn)證服務(wù)器,其特征在于, 所述第一散列模塊,具體用于所述認(rèn)證服務(wù)器將所述檢索到的工作密鑰和所述第三用途代碼組合成第十六數(shù)據(jù),對(duì)所述第十六數(shù)據(jù)進(jìn)行填充,得到第十六消息,并對(duì)所述第十六消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十六散列數(shù)據(jù); 所述第二散列模塊,具體用于將所述第六計(jì)算密鑰和所述第七時(shí)間信息組合成第十七數(shù)據(jù),對(duì)所述第十七數(shù)據(jù)進(jìn)行填充,得到第十七消息,并對(duì)所述第十七消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十七散列數(shù)據(jù); 所述第四散列模塊,具體用于將所述第六計(jì)算密鑰和所述第八時(shí)間信息組合成第十八數(shù)據(jù),對(duì)所述第十八數(shù)據(jù)進(jìn)行填充,得到第十八消息,并對(duì)所述第十八消息進(jìn)行分組,對(duì)得到的分組數(shù)據(jù)進(jìn)行迭代壓縮,得到所述第十八散列數(shù)據(jù)。
84.如權(quán)利要求82所述的認(rèn)證服務(wù)器,其特征在于, 所述截位模塊,具體用于對(duì)第十七散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第九截位結(jié)果; 對(duì)第十八散列數(shù)據(jù)進(jìn)行分組,得到多個(gè)字節(jié)組,通過(guò)對(duì)各個(gè)字節(jié)組包含的字節(jié)進(jìn)行移位和組合,將所述各個(gè)字節(jié)組分別轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制數(shù),使用轉(zhuǎn)換得到的所有二進(jìn)制數(shù)的和對(duì)第一預(yù)設(shè)值進(jìn)行取模,并使用得到的取模值對(duì)第二預(yù)設(shè)值進(jìn)行取模,得到所述第十截位結(jié)果。
【文檔編號(hào)】H04L9/32GK103731272SQ201410004757
【公開日】2014年4月16日 申請(qǐng)日期:2014年1月6日 優(yōu)先權(quán)日:2014年1月6日
【發(fā)明者】陸舟, 于華章 申請(qǐng)人:飛天誠(chéng)信科技股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
普陀区| 永善县| 彰武县| 太和县| 精河县| 苍溪县| 渭源县| 望都县| 冀州市| 贵德县| 荣昌县| 东阿县| 德格县| 南靖县| 乌海市| 太湖县| 定南县| 诸暨市| 祥云县| 醴陵市| 安仁县| 宁国市| 军事| 深圳市| 焦作市| 乐清市| 陆河县| 连城县| 开平市| 洞口县| 屯门区| 乌拉特中旗| 宿松县| 扶沟县| 溆浦县| 洞口县| 乌拉特后旗| 台东县| 陆河县| 白河县| 鄱阳县|