一種安全登錄的方法和系統的制作方法
【專利摘要】本發明公開一種安全登錄的方法和系統,該方法包括:客戶端向認證中心發送敏感信息下發請求;認證中心查找第二敏感信息,生成隨機數、第一應答數據和應答報文,向客戶端發送應答報文;客戶端得到第一應答數據和第二敏感信息,將第一應答數據發送到認證設備;認證設備得到第二敏感信息和隨機數,向客戶端返回第二敏感信息;若客戶端判斷接收到的第二敏感信息與根據應答報文得到的第二敏感信息一致,則認證設備根據時間因子、預設算法以及隨機數生成第一動態口令,通過客戶端向認證中心發送所述第一動態口令;認證中心根據隨機數、時間因子和預設算法,生成第二動態口令,判斷第一動態口令與第二動態口令是否一致,是則認證成功,否則失敗。
【專利說明】一種安全登錄的方法和系統
【技術領域】
[0001] 本發明涉及信息安全領域,尤其涉及一種安全登錄的方法和系統。
【背景技術】
[0002] 動態口令作為身份認證技術之一,目前已經被越來越多的行業所應用。由于它使 用便捷,且與平臺無關性,隨著移動互聯網的發展,動態口令技術已成為用戶登錄時的身份 認證技術的主流,被廣泛應用于企業、電子商務等領域,目前用于生成動態口令終端有硬件 令牌、短信密碼和手機令牌。現有的基于動態口令的身份認證技術雖然方便快捷,但是在傳 輸動態口令的過程中,動態口令易被他人截獲、篡改,因此現有的基于動態口令的登錄方法 安全性差。
【發明內容】
[0003] 本發明的目的是為了克服現有技術的不足,提供一種安全登錄的方法和系統,實 現安全登錄。
[0004] 本發明提供的一種安全登錄的方法,應用于包括客戶端、認證中心和認證設備的 系統中,所述方法包括:
[0005] 步驟S1 :當所述客戶端檢測到觸發信息后,所述客戶端獲取所述認證設備的認證 設備序列號和第一敏感信息標識,根據所述認證設備序列號和所述第一敏感信息標識生成 敏感信息下發請求,向所述認證中心發送所述敏感信息下發請求;
[0006] 步驟S2 :所述認證中心根據所述敏感信息下發請求中的所述第一敏感信息標識, 查找對應的第一敏感信息,并在所述認證中心查找第二敏感信息,生成隨機數,將所述隨機 數與所述敏感信息下發請求中的所述認證設備序列號對應存儲,根據所述第一敏感信息、 所述第二敏感信息和所述隨機數生成第一應答數據,根據所述第一應答數據和所述第二敏 感信息生成應答報文,向所述客戶端發送所述應答報文;
[0007] 步驟S3 :所述客戶端根據所述應答報文,得到第一應答數據和第二敏感信息,將 得到的第一應答數據發送到所述認證設備;
[0008] 步驟S4 :所述認證設備根據接收到的第一應答數據,得到第一敏感信息、第二敏 感信息和隨機數,對得到的第一敏感信息進行顯示;
[0009] 步驟S5 :當所述認證設備檢測到按鍵被觸發后,所述認證設備判斷所述按鍵的類 型,若是第一按鍵則向所述客戶端返回從所述第一應答數據中得到的第二敏感信息,執行 步驟S7,若是第二按鍵則向所述客戶端返回錯誤碼,執行步驟S6 ;
[0010] 步驟S6 :所述客戶端接收所述認證設備發送的錯誤碼,根據所述錯誤碼顯示登錄 失敗信息,結束;
[0011] 步驟S7 :所述客戶端判斷接收到的第二敏感信息與根據所述應答報文得到的第 二敏感信息是否一致,是則向所述認證設備發送登錄指令,執行步驟S8,否則顯示登錄失敗 信息,結束;
[0012] 步驟S8 :所述認證設備根據所述認證設備中的時間因子、預設算法以及從第一應 答數據中得到的隨機數,生成第一動態口令,向所述客戶端發送所述第一動態口令和所述 認證設備序列號;
[0013] 步驟S9 :所述客戶端向所述認證中心發送所述第一動態口令和所述認證設備序 列號;
[0014] 步驟S10 :所述認證中心根據所述認證設備序列號查找對應的隨機數,根據查找 到的隨機數、所述認證中心中的時間因子和預設算法,生成第二動態口令,判斷所述第一動 態口令與所述第二動態口令是否一致,是則向所述客戶端發送認證成功信息,結束,否則向 所述客戶端返回錯誤碼,執行步驟S11 ;
[0015] 步驟S11 :所述客戶端接收所述認證中心發送的錯誤碼,根據所述錯誤碼顯示登 錄失敗信息,結束。
[0016] 所述客戶端獲取所述認證設備的認證設備序列號和第一敏感信息標識,具體為: 所述客戶端向所述認證設備發送獲取指令,接收所述認證設備返回的認證設備序列號和第 一敏感信息標識。
[0017] 所述客戶端獲取所述認證設備的認證設備序列號和第一敏感信息標識,具體為: 所述客戶端接收用戶輸入的用戶信息,根據所述用戶信息在所述客戶端內部查找對應的認 證設備序列號和第一敏感信息標識。
[0018] 所述步驟S2之前包括:
[0019] 步驟A1 :所述認證中心根據所述敏感信息下發請求,判斷所述認證設備是否合 法,是則執行步驟S2,否則向所述客戶端返回錯誤碼,執行步驟A2 ;
[0020] 步驟A2 :所述客戶端接收所述認證中心發送的錯誤碼,根據所述錯誤碼顯示登錄 失敗信息,結束。
[0021] 所述步驟A1具體為:
[0022] 所述認證中心根據所述敏感信息下發請求中的所述認證設備序列號,查找對應的 認證設備的狀態和認證設備公鑰,若根據查找到的所述認證設備的狀態,判斷所述認證設 備可用并且所述認證設備公鑰存在時,則執行步驟S2,否則向所述客戶端返回錯誤碼,執行 步驟A2。
[0023] 所述根據所述第一敏感信息、所述第二敏感信息和所述隨機數生成第一應答數 據,具體為:
[0024] 所述認證中心根據所述敏感信息下發請求中的所述認證設備序列號,在所述認證 中心查找對應的認證設備公鑰,所述認證中心對所述第一敏感信息、所述第二敏感信息和 所述隨機數進行拼接組合,得到第一數據,根據查找到的所述認證設備公鑰對所述第一數 據進行加密,得到第一加密數據,使用認證中心私鑰對所述第一加密數據進行簽名,得到第 一簽名值,根據所述第一加密數據和所述第一簽名值得到所述第一應答數據;
[0025] 所述步驟S4之前還包括:
[0026] 步驟B1 :所述認證設備根據存儲的認證中心公鑰,對接收到的第一應答數據進行 驗簽,判斷是否驗簽成功,是則執行步驟S4,否則向所述客戶端返回錯誤碼,執行步驟B2 ;
[0027] 步驟B2 :所述客戶端接收所述認證設備發送的錯誤碼,根據所述錯誤碼顯示登錄 失敗信息,結束;
[0028] 所述認證設備根據接收到的第一應答數據,得到第一敏感信息、第二敏感信息和 隨機數,具體為:
[0029] 所述認證設備根據認證設備私鑰對接收到的第一應答數據中的第一加密數據進 行解密,得到第一數據,對得到的第一數據進行拆分,得到第一敏感信息、第二敏感信息和 隨機數。
[0030] 所述根據所述第一加密數據和所述第一簽名值得到所述第一應答數據,具體為:
[0031] 所述認證中心對所述第一加密數據進行base64編碼,得到第一字符數據,對所述 第一簽名值進行base64編碼,得到第二字符數據,對所述第一字符數據和所述第二字符數 據進行組合拼接,生成所述第一應答數據;
[0032] 所述認證設備根據存儲的認證中心公鑰,對接收到的第一應答數據進行驗簽,具 體為:
[0033] 所述認證設備對接收到的第一應答數據中的第一字符數據進行base64解碼,得 到第一加密數據,對第一應答數據中的第二字符數據進行base64解碼,得到第一簽名值, 根據base64解碼得到的第一加密數據和第一簽名值對第一應答數據進行驗簽。
[0034] 所述根據所述第一加密數據和所述第一簽名值得到所述第一應答數據,具體為:
[0035] 所述認證中心對所述第一加密數據和所述第一簽名值進行組合拼接,得到第二數 據,對所述第二數據進行base64編碼,得到所述第一應答數據;
[0036] 所述認證設備根據存儲的認證中心公鑰,對接收到的第一應答數據進行驗簽,具 體為:
[0037] 所述認證設備對接收到的第一應答數據進行base64解碼,得到第二數據,根據 base64解碼得到的第二數據中的第一加密數據和第一簽名值對第一應答數據進行驗簽。 [0038] 所述對第一應答數據進行驗簽,具體為:
[0039] 所述認證設備根據認證中心公鑰對第一簽名值進行運算,得到第一驗證數據,判 斷運算得到的所述第一驗證數據與base64解碼得到的第一加密數據是否一致,是則確定 驗簽成功,否則確定驗簽失敗。
[0040] 所述根據所述第一應答數據和所述第二敏感信息生成應答報文,具體為:
[0041] 所述認證中心將所述第一應答數據和所述第二敏感信息進行組合拼接,生成應答 報文;
[0042] 所述根據所述應答報文,得到第一應答數據和第二敏感信息,具體為:
[0043] 所述客戶端對所述應答報文進行拆分,得到第一應答數據和第二敏感信息。
[0044] 所述步驟S3還包括:所述客戶端顯示所述第二敏感信息;
[0045] 所述步驟S5中當所述認證設備檢測到所述第一按鍵被觸發后,還包括:所述認證 設備顯示從第一應答數據中得到的第二敏感信息。
[0046] 所述步驟S7中向所述認證設備發送登錄指令之前還包括:
[0047] 步驟C1 :所述客戶端根據所述認證設備序列號判斷所述認證設備是否已與用戶 綁定,是則執行步驟C3,否則執行步驟C2 ;
[0048] 步驟C2 :所述客戶端提示所述用戶進行注冊,接收所述用戶輸入的用戶信息,根 據接收到的所述用戶信息將所述用戶與所述認證設備進行綁定,執行步驟C3 ;
[0049] 步驟C3 :所述客戶端向所述認證設備發送所述登錄指令。
[0050] 所述客戶端根據所述認證設備序列號判斷所述認證設備是否已與用戶綁定,具體 為:
[0051] 所述客戶端判斷是否能夠在所述客戶端內部查找到與所述認證設備序列號對應 的用戶信息,是則確定所述認證設備已與所述用戶綁定,否則確定所述認證設備未與所述 用戶綁定。
[0052] 所述根據接收到的所述用戶信息將所述用戶與所述認證設備進行綁定,具體為: 所述客戶端將接收到的所述用戶信息與所述認證設備序列號對應進行存儲,完成綁定。
[0053] 所述步驟S7中所述客戶端判斷接收到的所述第二敏感信息與根據所述應答報文 得到的所述第二敏感信息一致之后,還包括:
[0054] 所述客戶端獲取與所述認證設備對應的用戶信息;
[0055] 所述步驟S9之前包括:所述客戶端根據所述用戶信息判斷所述用戶是否合法,是 則執行步驟S9,否則顯示登錄失敗信息,結束。
[0056] 所述客戶端根據所述用戶信息判斷所述用戶是否合法,具體為:
[0057] 所述客戶端根據所述用戶信息查找對應的用戶狀態,判斷所述用戶狀態是否異 常,是則確定所述用戶不合法,否則確定所述用戶合法。
[0058] 所述步驟S8之前還包括:
[0059] 步驟D1 :所述認證設備接收到所述登錄指令后,提示用戶是否登錄;
[0060] 步驟D2 :當所述認證設備檢測到按鍵被觸發后,所述認證設備判斷按鍵的類型, 若是第一按鍵則執行步驟S8,若是第二按鍵則向所述客戶端返回錯誤碼,執行步驟D3 ;
[0061] 步驟D3 :所述客戶端接收所述認證設備發送的錯誤碼,根據所述錯誤碼顯示登錄 失敗信息,結束。
[0062] 所述認證設備根據所述認證設備中的時間因子、所述預設算法以及從第一應答數 據中得到的隨機數,生成第一動態口令,具體為:
[0063] 步驟E1 :所述認證設備根據所述認證設備中的時間因子、所述預設算法以及從第 一應答數據中得到的隨機數,生成第一明文動態口令;
[0064] 步驟E2 :所述認證設備根據認證中心公鑰對所述第一明文動態口令進行加密,得 到第一密文動態口令;
[0065] 步驟E3 :所述認證設備使用認證設備私鑰對所述第一密文動態口令進行簽名,得 到第二簽名值;
[0066] 步驟E4:所述認證設備根據所述第一密文動態口令和所述第二簽名值,得到所述 第一動態口令;
[0067] 所述步驟S10具體為:
[0068] 步驟F1 :所述認證中心根據所述認證設備公鑰對接收到的所述第一動態口令進 行驗簽,判斷是否驗簽成功,是則執行步驟F2,否則向所述客戶端返回錯誤碼,執行步驟 S11 ;
[0069] 步驟F2 :所述認證中心根據所述認證設備序列號查找對應的隨機數,根據所述隨 機數、所述認證中心中的時間因子和預設算法生成第二明文動態口令,根據認證中心私鑰 對所述第一動態口令中的第一密文動態口令進行解密,得到第一明文動態口令;
[0070] 步驟F3 :所述認證中心判斷所述第一明文動態口令和所述第二明文動態口令是 否一致,是則向客戶端發送認證成功信息,結束,否則向客戶端返回錯誤碼,執行步驟Sll。
[0071] 所述認證設備根據所述第一密文動態口令和所述第二簽名值,得到所述第一動態 口令,包括:
[0072] 所述認證設備對所述第一密文動態口令進行base64編碼,得到第三字符數據,對 所述第二簽名值進行base64編碼,得到第四字符數據,對所述第三字符數據和所述第四字 符數據進行組合拼接,得到所述第一動態口令;
[0073] 所述認證中心根據所述認證設備公鑰對所述第一動態口令進行驗簽,具體為:
[0074] 所述認證中心對所述第一動態口令進行拆分,得到第三字符數據和第四字符數 據,對得到的第三字符數據進行base64解碼,得到第一密文動態口令,對得到的第四字符 數據進行base64解碼,得到第二簽名值,根據認證設備公鑰對base64解碼得到的第二簽名 值進行運算,得到第二驗證數據,判斷運算得到的所述第二驗證數據與base64解碼得到的 第一密文動態口令是否一致,是則確定驗簽成功,否則確定驗簽失敗。
[0075] 所述認證中心判斷接收到的所述第一動態口令與生成的所述第二動態口令一致 之后,還包括:清除所述隨機數;
[0076] 所述步驟S10中生成第二動態口令之前包括:
[0077] 所述認證中心判斷是否查找到隨機數,是則繼續,否則向所述客戶端返回錯誤碼, 執行步驟S11。
[0078] 本發明提供的一種安全登錄的系統,所述系統包括客戶端、認證中心和認證設 備;
[0079] 所述客戶端包括:第一檢測模塊、第一獲取模塊、第一生成模塊、第一發送模塊、第 一接收模塊、第一處理模塊、第一顯示模塊和第一判斷模塊;
[0080] 所述第一檢測模塊,用于檢測是否有觸發信息;
[0081] 所述第一獲取模塊,用于當所述第一檢測模塊檢測到觸發信息后,獲取所述認證 設備的認證設備序列號和第一敏感信息標識;
[0082] 所述第一生成模塊,用于根據所述第一獲取模塊獲取到的所述認證設備序列號和 所述第一敏感信息標識生成敏感信息下發請求;
[0083] 所述第一發送模塊,用于向所述認證中心發送所述第一生成模塊生成的所述敏感 信息下發請求;向所述認證設備發送所述第一處理模塊得到的第一應答數據;當所述第一 判斷模塊判斷所述第一接收模塊接收到的第二敏感信息與所述第一處理模塊得到的第二 敏感信息一致時,向所述認證設備發送登錄指令;當所述第一接收模塊接收到所述認證設 備發送的第一動態口令和認證設備序列號后,向所述認證中心發送所述第一動態口令和所 述認證設備序列號;
[0084] 所述第一接收模塊,用于接收所述認證中心發送的應答報文,接收所述認證設備 發送的錯誤碼,接收所述認證設備發送的第二敏感信息,接收所述認證設備發送的第一動 態口令和認證設備序列號,接收所述認證中心發送的認證成功信息,接收所述認證中心發 送的錯誤碼;
[0085] 所述第一處理模塊,用于根據所述第一接收模塊接收到的所述應答報文,得到第 一應答數據和第二敏感信息;
[0086] 所述第一顯示模塊,用于根據所述第一接收模塊接收到的錯誤碼顯示登錄失敗信 息,當所述第一判斷模塊判斷所述第一接收模塊接收到的第二敏感信息與所述第一處理模 塊得到的第二敏感信息不一致時,顯示登錄失敗信息;
[0087] 所述第一判斷模塊,用于判斷所述第一接收模塊接收到的第二敏感信息與所述第 一處理模塊得到的第二敏感信息是否一致;
[0088] 所述認證中心包括:第二接收模塊、第一查找模塊、第二生成模塊、第三生成模塊、 第四生成模塊、第二發送模塊、第二查找模塊、第五生成模塊和第二判斷模塊;
[0089]所述第二接收模塊,用于接收所述客戶端發送的所述敏感信息下發請求,接收所 述客戶端發送的所述第一動態口令和所述認證設備序列號;
[0090] 所述第一查找模塊,用于根據所述第二接收模塊接收到的所述敏感信息下發請求 中的所述第一敏感信息標識,查找對應的第一敏感信息,并在所述認證中心查找第二敏感 信息;
[0091] 所述第二生成模塊,用于生成隨機數,將所述隨機數與所述第二接收模塊接收到 的所述敏感信息下發請求中的所述認證設備序列號對應存儲;
[0092] 所述第三生成模塊,用于根據所述第一查找模塊查找到的所述第一敏感信息、所 述第二敏感信息和所述第二生成模塊生成的所述隨機數,生成第一應答數據;
[0093] 所述第四生成模塊,用于根據所述第三生成模塊生成的所述第一應答數據和所述 第一查找模塊查找到的所述第二敏感信息,生成應答報文;
[0094] 所述第二發送模塊,用于向所述客戶端發送所述第四生成模塊生成的所述應答報 文,當所述第二判斷模塊判斷所述第二接收模塊接收到的所述第一動態口令與所述第五生 成模塊生成的第二動態口令一致時,向所述客戶端發送認證成功信息,當所述第二判斷模 塊判斷所述第二接收模塊接收到的所述第一動態口令與所述第五生成模塊生成的第二動 態口令不一致時,向所述客戶端返回錯誤碼;
[0095] 所述第二查找模塊,用于根據所述第二接收模塊接收到的所述認證設備序列號查 找對應的隨機數;
[0096] 所述第五生成模塊,用于根據所述第二查找模塊查找到的所述隨機數、所述認證 中心中的時間因子和預設算法,生成第二動態口令;
[0097] 所述第二判斷模塊,用于判斷所述第二接收模塊接收到的所述第一動態口令與所 述第五生成模塊生成的所述第二動態口令是否一致;
[0098] 所述認證設備包括:第三接收模塊、第二處理模塊、第二顯示模塊、第二檢測模塊、 第三判斷模塊、第三發送模塊和第六生成模塊;
[0099]所述第三接收模塊,用于接收所述客戶端發送的第一應答數據,接收所述客戶端 發送的所述登錄指令;
[0100] 所述第二處理模塊,用于根據所述第三接收模塊接收到的所述第一應答數據,得 到第一敏感信息、第二敏感信息和隨機數;
[0101] 所述第二顯示模塊,用于對所述第二處理模塊得到的所述第一敏感信息進行顯 示;
[0102] 所述第二檢測模塊,用于當所述第二顯示模塊對第一敏感信息進行顯示時,檢測 按鍵是否被觸發;
[0103] 所述第三判斷模塊,用于當所述第二檢測模塊檢測到按鍵被觸發后,判斷所述按 鍵的類型;
[0104] 所述第三發送模塊,用于向所述客戶端發送所述第六生成模塊生成的第一動態口 令,當所述第三判斷模塊判斷所述按鍵為第一按鍵時,向所述客戶端返回所述第二處理模 塊得到的第二敏感信息,當所述第三判斷模塊判斷所述按鍵為第二按鍵時,向所述客戶端 返回錯誤碼;
[0105] 所述第六生成模塊,用于當所述第三接收模塊接收到所述登錄指令后,根據所述 認證設備中的時間因子、預設算法以及所述第二處理模塊得到的隨機數,生成第一動態口 令。
[0106] 所述第一發送模塊還用于向所述認證設備發送獲取指令;
[0107] 所述第一接收模塊還用于接收所述認證設備返回的認證設備序列號和第一敏感 信息標識。
[0108] 所述第一接收模塊還用于接收用戶輸入的用戶信息;
[0109] 所述第一獲取模塊具體用于根據所述第一接收模塊接收到的所述用戶信息,在所 述客戶端內部查找對應的認證設備序列號和第一敏感信息標識。
[0110] 所述認證中心還包括:第四判斷模塊,用于根據所述第二接收模塊接收到的所述 敏感信息下發請求,判斷所述認證設備是否合法;
[0111] 所述第一查找模塊,還用于當所述第四判斷模塊判斷所述認證設備合法后,進行 工作;
[0112] 所述第二發送模塊,還用于當所述第四判斷模塊判斷所述認證設備不合法后,向 所述客戶端返回錯誤碼。
[0113] 所述第四判斷模塊具體用于根據所述第二接收模塊接收到的所述敏感信息下發 請求中的所述認證設備序列號,查找對應的認證設備的狀態和認證設備公鑰,若根據查找 到的所述認證設備的狀態,判斷所述認證設備可用并且所述認證設備公鑰存在,則確定所 述認證設備合法,否則確定所述認證設備不合法。
[0114] 所述第三生成模塊,包括:第一查找單元、第一組合單元、第一加密單元、第一簽名 單元和第一處理單元;
[0115] 所述第一查找單元,用于根據所述敏感信息下發請求中的所述認證設備序列號, 在所述認證中心查找對應的認證設備公鑰;
[0116] 所述第一組合單元,用于對所述第一敏感信息、所述第二敏感信息和所述隨機數 進行拼接組合,得到第一數據;
[0117] 所述第一加密單元,用于根據所述第一查找單元查找到的所述認證設備公鑰對所 述第一數據進行加密,得到第一加密數據;
[0118] 所述第一簽名單元,用于使用認證中心私鑰對所述第一加密數據進行簽名,得到 第一簽名值;
[0119] 所述第一處理單元,用于根據所述第一加密數據和所述第一簽名值得到所述第一 應答數據;
[0120] 所述認證設備還包括第一驗簽模塊;所述第一驗簽模塊,用于根據存儲的認證中 心公鑰,對所述第三接收模塊接收到的第一應答數據進行驗簽,判斷是否驗簽成功;
[0121] 所述第二處理模塊還用于當所述第一驗簽模塊判斷驗簽成功后,進行工作;
[0122] 所述第三發送模塊還用于當所述第一驗簽模塊判斷驗簽失敗后,向所述客戶端返 回錯誤碼;
[0123] 所述第二處理模塊,具體用于根據認證設備私鑰對所述第三接收模塊接收到的第 一應答數據中的第一加密數據進行解密,得到第一數據,對得到的第一數據進行拆分,得到 第一敏感信息、第二敏感信息和隨機數。
[0124] 所述第一處理單元具體用于對所述第一加密數據進行base64編碼,得到第一字 符數據,對所述第一加密數據進行base64編碼,得到第二字符數據,對所述第一字符數據 和所述第二字符數據進行組合拼接,生成所述第一應答數據;
[0125] 所述第一驗簽模塊具體用于對所述第三接收模塊接收到的第一應答數據中的第 一字符數據進行base64解碼,得到第一加密數據,對第一應答數據中的第二字符數據進行 base64解碼,得到第一簽名值,根據base64解碼得到的第一加密數據和第一簽名值對第一 應答數據進行驗簽。
[0126] 所述第一處理單元具體用于對所述第一加密數據和所述第一簽名值進行組合拼 接,得到第二數據,對所述第二數據進行base64編碼,得到所述第一應答數據;
[0127] 所述第一驗簽模塊具體用于對所述第三接收模塊接收到的第一應答數據進行 base64解碼,得到第二數據,根據base64解碼得到的第二數據中的第一加密數據和第一簽 名值對第一應答數據進行驗簽。
[0128] 所述第一驗簽模塊,具體用于根據認證中心公鑰對第一簽名值進行運算,得到第 一驗證數據,判斷運算得到的所述第一驗證數據與base64解碼得到的第一加密數據是否 一致,是則確定驗簽成功,否則確定驗簽失敗。
[0129] 所述第四生成模塊,具體用于將所述第一應答數據和所述第二敏感信息進行組合 拼接,生成應答報文;
[0130] 所述第一處理模塊,具體用于對所述應答報文進行拆分,得到第一應答數據和第 二敏感信息。
[0131] 所述第一顯示模塊還用于顯示所述第一處理模塊處理得到的第二敏感信息;
[0132] 所述第二顯示模塊還用于顯示所述第二處理模塊得到的第二敏感信息。
[0133] 所述客戶端還包括:第五判斷模塊和注冊模塊;
[0134] 所述第五判斷模塊,用于在所述第一判斷模塊判斷所述第一接收模塊接收到的第 二敏感信息與所述第一處理模塊得到的第二敏感信息一致時,根據所述認證設備序列號判 斷所述認證設備是否已與用戶綁定;
[0135] 所述注冊模塊,用于在所述第五判斷模塊判斷所述認證設備未與用戶綁定后,提 示所述用戶進行注冊,接收所述用戶輸入的用戶信息,根據接收到的所述用戶信息將所述 用戶與所述認證設備進行綁定;
[0136] 所述第一發送模塊,具體用于所述注冊模塊工作完成后,向所述認證設備發送所 述登錄指令,當所述第五判斷模塊判斷所述認證設備已與用戶綁定后,向所述認證設備發 送所述登錄指令。
[0137] 所述第五判斷模塊具體用于判斷是否能夠在所述客戶端內部查找到與所述認證 設備序列號對應的用戶信息,是則確定所述認證設備已與所述用戶綁定,否則確定所述認 證設備未與所述用戶綁定。
[0138] 所述注冊模塊具體用于提示所述用戶進行注冊,接收所述用戶輸入的用戶信息, 將接收到的所述用戶信息與所述認證設備序列號對應進行存儲,完成綁定。
[0139] 所述客戶端還包括:第二獲取模塊和第六判斷模塊;
[0140] 所述第二獲取模塊,用于所述第一判斷模塊判斷所述第一接收模塊接收到的第二 敏感信息與所述第一處理模塊得到的第二敏感信息一致時,獲取與所述認證設備對應的用 戶信息;
[0141] 所述第六判斷模塊,用于根據所述第二獲取模塊獲取到的所述用戶信息判斷所述 用戶是否合法;
[0142] 所述第一發送模塊還用于在所述第六判斷模塊判斷所述用戶合法后,向所述認證 中心發送所述第一動態口令和所述認證設備序列號;
[0143] 所述第一顯示模塊還用于在所述第六判斷模塊判斷所述用戶不合法后,顯示登錄 失敗息。
[0144] 所述第六判斷模塊具體用于根據所述用戶信息查找對應的用戶狀態,判斷所述用 戶狀態是否異常,是則確定所述用戶不合法,否則確定所述用戶合法。
[0145] 所述第二顯示模塊,還用于在所述第三接收模塊接收到所述登錄指令后,提示用 戶是否登錄;
[0146] 所述第二檢測模塊,還用于所述第二顯示模塊提示用戶是否登錄后,檢測按鍵是 否被觸發;
[0147] 所述第三判斷模塊,還用于所述第二檢測模塊檢測到按鍵被觸發后,判斷按鍵的 類型;
[0148] 所述第六生成模塊還用于所述第三判斷模塊判斷出第一按鍵被觸發后,進行工 作;
[0149] 所述第三發送模塊還用于所述第三判斷模塊判斷出第二按鍵被觸發后,向所述客 戶端返回錯誤碼。
[0150] 所述第六生成模塊包括:第一生成單元、第二加密單元、第二簽名單元和第二處理 單元;
[0151] 所述第一生成單元,用于根據所述認證設備中的時間因子、所述預設算法以及隨 機數,生成第一明文動態口令;
[0152] 所述第二加密單元,用于根據認證中心公鑰對所述第一生成單元生成的所述第一 明文動態口令進行加密,得到第一密文動態口令;
[0153] 所述第二簽名單元,用于使用認證設備私鑰對所述第二加密單元加密得到的所述 第一密文動態口令進行簽名,得到第二簽名值;
[0154] 所述第二處理單元,用于根據所述第二加密單元加密得到的所述第一密文動態口 令和所述第二簽名單元得到的所述第二簽名值,得到所述第一動態口令;
[0155] 所述認證中心還包括:第二驗簽模塊、第七生成模塊和第七判斷模塊;
[0156] 所述第二驗簽模塊,用于根據所述認證設備公鑰對所述第二接收模塊接收到的所 述第一動態口令進行驗簽,判斷是否驗簽成功;
[0157] 所述第七生成模塊,用于在所述第二驗簽模塊判斷驗簽成功后,根據所述認證設 備序列號查找對應的隨機數,根據所述隨機數、所述認證中心中的時間因子和預設算法生 成第二明文動態口令,根據認證中心私鑰對所述第一動態口令中的第一密文動態口令進行 解密,得到第一明文動態口令;
[0158] 所述第二發送模塊還用于在所述第二驗簽模塊判斷驗簽失敗后,向所述客戶端返 回錯誤碼;
[0159] 所述第七判斷模塊,用于判斷所述第七生成模塊得到的第一明文動態口令和所述 第二明文動態口令是否一致;
[0160] 所述第二發送模塊還用于在所述第七判斷模塊判斷所述第七生成模塊得到的第 一明文動態口令和所述第二明文動態口令一致后,向客戶端發送認證成功信息,在所述第 七判斷模塊判斷所述第七生成模塊得到的第一明文動態口令和所述第二明文動態口令不 一致后,向所述客戶端返回錯誤碼。
[0161] 所述第二處理單元具體用于對所述第一密文動態口令進行base64編碼,得到第 三字符數據,對所述第二簽名值進行base64編碼,得到第四字符數據,對所述第三字符數 據和所述第四字符數據進行組合拼接,得到所述第一動態口令;
[0162] 所述第二驗簽模塊,具體用于對所述第一動態口令進行拆分,得到第三字符數據 和第四字符數據,對得到的第三字符數據進行base64解碼,得到第一密文動態口令,對得 到的第四字符數據進行base64解碼,得到第二簽名值,根據認證設備公鑰對base64解碼 得到的第二簽名值進行運算,得到第二驗證數據,判斷運算得到的所述第二驗證數據與 base64解碼得到的第一密文動態口令是否一致,是則確定驗簽成功,否則確定驗簽失敗。
[0163] 所述認證中心還包括清除模塊和第八判斷模塊;
[0164] 所述清除模塊,用于在所述第二判斷模塊判斷所述第一動態口令與所述第二動態 口令一致后,清除所述隨機數;
[0165] 所述第八判斷模塊,用于判斷是否查找到隨機數;
[0166] 所述第五生成模塊,用于所述第八判斷模塊判斷查找到隨機數后,進行工作;
[0167] 所述第二發送模塊還用于所述第八判斷模塊判斷未查找到隨機數后,向所述客戶 端返回錯誤碼。
[0168] 本發明與現有技術相比,具有以下優點:
[0169] 本發明提供的一種安全登錄的方法和系統,認證中心向客戶端下發明文形式的敏 感信息,向認證設備發送加密簽名后的敏感信息,客戶端和認證設備分別顯示敏感信息,用 戶確認后認證設備產生動態口令,向認證中心返回動態口令,認證中心根據接收到的動態 口令對用戶的身份進行認證,從而實現安全登錄。
【專利附圖】
【附圖說明】
[0170] 圖1是本發明實施例1提供的一種安全登錄的方法的流程圖;
[0171] 圖2和圖3是本發明實施例2提供的一種安全登錄的方法的流程圖;
[0172] 圖4是本發明實施例3提供的一種安全登錄的系統的模塊圖。
【具體實施方式】
[0173] 下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于 本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他 實施例,都屬于本發明保護的范圍。
[0174] 本方法應用于包括認證設備、客戶端與認證中心的系統中。
[0175] 實施例1
[0176] 本發明的實施例1提供了一種安全登錄的方法,如圖1所示,包括:
[0177] 步驟S1 :當客戶端檢測到觸發信息后,客戶端獲取認證設備的認證設備序列號和 第一敏感信息標識,根據認證設備序列號和第一敏感信息標識生成敏感信息下發請求,向 認證中心發送敏感信息下發請求;
[0178] 步驟S2 :認證中心根據敏感信息下發請求中的第一敏感信息標識,查找對應的第 一敏感信息,并在所述認證中心查找第二敏感信息,生成隨機數,將隨機數與敏感信息下發 請求中的認證設備序列號對應存儲,根據第一敏感信息、第二敏感信息和隨機數生成第一 應答數據,根據第一應答數據和第二敏感信息生成應答報文,向客戶端發送應答報文;
[0179] 步驟S3 :客戶端根據應答報文,得到第一應答數據和第二敏感信息,將得到的第 一應答數據發送到認證設備;
[0180] 步驟S4 :認證設備根據接收到的第一應答數據,得到第一敏感信息、第二敏感信 息和隨機數,對得到的第一敏感信息進行顯示;
[0181] 步驟S5 :當認證設備檢測到按鍵被觸發后,認證設備判斷按鍵的類型,若是第一 按鍵則向客戶端返回從第一應答數據中得到的第二敏感信息,執行步驟S7,若是第二按鍵 則向客戶端返回錯誤碼,執行步驟S6 ;
[0182] 步驟S6 :客戶端接收認證設備發送的錯誤碼,根據錯誤碼顯示登錄失敗信息,結 束;
[0183] 步驟S7 :客戶端判斷接收到的第二敏感信息與根據應答報文得到的第二敏感信 息是否一致,是則向認證設備發送登錄指令,執行步驟S8,否則顯示登錄失敗信息,結束;
[0184] 步驟S8 :認證設備根據認證設備中的時間因子、預設算法以及從第一應答數據中 得到的隨機數,生成第一動態口令,向客戶端發送第一動態口令和認證設備序列號;
[0185] 步驟S9 :客戶端向認證中心發送第一動態口令和認證設備序列號;
[0186] 步驟S10 :認證中心根據認證設備序列號查找對應的隨機數,根據查找到的隨機 數、認證中心中的時間因子和預設算法,生成第二動態口令,判斷第一動態口令與第二動態 口令是否一致,是則向客戶端發送認證成功信息,結束,否則向客戶端返回錯誤碼,執行步 驟 S11 ;
[0187] 步驟S11 :客戶端接收認證中心發送的錯誤碼,根據錯誤碼顯示登錄失敗信息,結 束。
[0188] 實施例2
[0189] 本發明的實施例2提供了一種安全登錄的方法,如圖2和圖3所示,包括:
[0190] 步驟101 :當客戶端檢測到觸發信息后,客戶端獲取認證設備的認證設備序列號 和第一敏感信息標識,根據認證設備序列號和第一敏感信息標識生成敏感信息下發請求, 向認證中心發送敏感信息下發請求;
[0191] 具體地,獲取認證設備的認證設備序列號和第一敏感信息標識的方法可以為:客 戶端向認證設備發送獲取指令,接收認證設備返回的認證設備序列號和第一敏感信息標 識;除此之外,還可以為:客戶端接收用戶輸入的用戶信息,根據用戶信息在客戶端內部查 找對應的認證設備序列號和第一敏感信息標識;
[0192] 例如,認證設備序列號為"1000313600001",第一敏感信息標識為"icbc";
[0193] 步驟102 :認證中心接收敏感信息下發請求,根據接收到的敏感信息下發請求,判 斷認證設備是否合法,是則執行步驟104,否則向客戶端返回錯誤碼,執行步驟103 ;
[0194] 具體地,認證中心根據敏感信息下發請求中的認證設備序列號,查找對應的認證 設備的狀態和認證設備公鑰,若根據查找到的認證設備的狀態,判斷該認證設備可用并且 認證設備公鑰存在時,則確定認證設備合法,否則確定認證設備不合法;
[0195] 步驟103 :客戶端接收認證中心發送的錯誤碼,根據錯誤碼顯示登錄失敗信息,結 束;
[0196] 步驟104 :認證中心根據敏感信息下發請求中的第一敏感信息標識,查找對應的 第一敏感信息,并在認證中心查找第二敏感信息;
[0197] 例如,查找到的第一敏感信息為" icbc95585",查找到的第二敏感信息為 "unionpay";
[0198] 步驟105 :認證中心生成隨機數,將生成的隨機數與認證設備序列號對應存儲,根 據第一敏感信息、第二敏感信息和隨機數生成第一應答數據;
[0199] 具體地,認證中心根據敏感信息下發請求中的認證設備序列號,在認證中心查找 對應的認證設備公鑰,認證中心對第一敏感信息、第二敏感信息和隨機數進行拼接組合,得 到第一數據,根據查找到的認證設備公鑰對第一數據進行加密,得到第一加密數據,使用認 證中心私鑰對第一加密數據進行簽名,得到第一簽名值,根據第一加密數據和第一簽名值 得到第一應答數據;其中,根據第一加密數據和第一簽名值得到第一應答數據,具體為:認 證中心對第一加密數據進行base64編碼,得到第一字符數據,對第一簽名值進行base64編 碼,得到第二字符數據,對得到的第一字符數據和第二字符數據進行組合拼接,生成第一應 答數據;
[0200] 例如,認證中心生成的隨機數為"12345678",認證設備序列號"1000313600001";
[0201] 認證中心生成第一應答數據具體包括:
[0202] 認證中心對第一敏感信息、第二敏感信息和隨機數進行拼接組合,得到第一數據 為:
[0203] icbc95585[#*#]unionpay[#*#]12345678
[0204] 認證中心先根據認證設備公鑰對第一數據進行加密,得到第一加密數據為:
[0205] [22, _85,7,21,_114,69, -34, _89,68, -117, -110, -22, _71,99,79,114,18, -21, 7,-73,78,116,-82,109,-56,-50,-87,-57,-111,-118,-52,-84, 77,-116, 71,60,-23,-47, 42,-88,81,2,63,-66,-109,86, 79, 38, 26,69,9, 38,-43,-45,-40,-73,-15, 2,87,-50,-7, 33,102, -12,80,67,13, -7,96,23, -103,1, -121,71,8,96,65,31, -71,58,43, -92, 83, -28,123,72, -29,80, -113,14,92, -88,40,109,108, -85, -96,19, -27, -65,30, -73, 118, -122, -32,18,3, -101,-66, -58, -43, -6, -124,111,-109, -30, -49,9, -27, -94,41, 122, -99, -73, -18,115,31,-35]
[0206] 認證中心對第一加密數據進行base64編碼,得到第一字符數據為:
[0207] FqsHFY5F3qdEi5LquffNPchLrB7d0dK5tyM6px5GKzKxNjEc86dEqqFECP76TVk8m GkUJ JtXT2LfxAlf0+SFm9FBDDflgF5kBh0cIYEEfuTorpFPke0jjUI80XKgobWyroBPl vx63dobgEgOb vsbV+oRvk+LPCeWiKXqdt+5zH90 =
[0208] 認證中心使用認證中心私鑰對第一加密數據進行簽名,得到第一簽名值為:
[0209] [80,-14, 105, 46,-110,-89,-93, 40,-75, 67,_119,119, 103, -49, -28, -2, -7, -112,25, -85, _118,99,3,87,8, -96,58, -74, -127, -15,8, -92, 83, _127,72,0, -121,88, -110,101, -4, -13,63,24,119,74, -105, -110, -68, -1, 69, -110, -16, -59,124, -45,67,21, -72,78,21, -56, -5,126,97, -3, -55,92,62,81, 31,3, -83, -54,64,35, -100, -101,71, -126, -105,30, -82, -72, -103,102,56,2,29, 35, -82, -104, -118,78, -77, -50,122,32, _72,52,50,38,34, -106,6, -57,53, -11,70, 76,-12,22,-109,-66,-93,68,-76,4, -30,98,-48,4, -2,28,12,43,-55,36]
[0210] 認證中心對第一簽名值進行base64編碼,得到第二字符數據為:
[0211] UPJpLpKnoyilQ413Z8/k/vmQGauKYwNXCKA6toHxCKRTgUgAhliSZfzzPxh3SpeS vP9F kvDFfNNDFbh0Fcj7fmH9yVw+UR8DrcpAI5ybR4KXHq64mffY4Ah0jrpiKTrP0eiC4NDImIpYGxzXlR kzOFpO+oOSOBOJiOAT+HAwrySQ =
[0212] 認證中心對第一字符數據和第二字符數據進行組合拼接,生成第一應答數據為:
[0213] FqsHFY5F3qdEi5LquffNPchLrB7d0dK5tyM6px5GKzKxNjEc86dEqqFECP76TVk8m GkUJ JtXT2LfxAlf0+SFm9FBDDflgF5kBh0cIYEEfuTorpFPke0jjUI80XKgobffyroBPl vx63dobgEg0b vsbV+oRvk+LPCeffiKXqdt+5zH90 = [#*#]UPJpLpKnoyilQ413Z8/k/vm QGauKYwNXCKA6toHxCK RTgUgAhliSZfzzPxh3SpeSvP9FkvDFfNNDFbhOFcj7fmH9yVw+UR8DrcpAI5ybR4KXHq64mffY4AhO jrpiKTrP0eiC4NDImIpYGxzXlRkz0Fp0+o0S0B0J iOAT+HAwrySQ =
[0214] 除此之外,認證中心根據第一加密數據和第一簽名值得到第一應答數據,也可以 為:先根據認證設備公鑰對第一數據進行加密,得到第一加密數據,使用認證中心私鑰對第 一加密數據進行簽名,得到第一簽名值,對第一加密數據和第一簽名值進行組合拼接,得到 第二數據,認證中心再對第二數據進行base64編碼,得到第一應答數據;
[0215] 步驟106 :認證中心根據第一應答數據和第二敏感信息生成應答報文,向客戶端 發送應答報文;
[0216] 具體地,認證中心將第一應答數據和第二敏感信息進行組合拼接,生成應答報 文;
[0217] 例如,認證中心根據第一應答數據和第二敏感信息生成的應答報文為:
[0218] FqsHFY5F3qdEi5LquffNPchLrB7d0dK5tyM6px5GKzKxNjEc86dEqqFECP76TVk8m GkUJ JtXT2LfxAlf0+SFm9FBDDflgF5kBh0cIYEEfuTorpFPke0jjUI80XKgobffyroBPl vx63dobgEg0b vsbV+oRvk+LPCeffiKXqdt+5zH90 = [#*#]UPJpLpKnoyilQ413Z8/k/vm QGauKYwNXCKA6toHxCK RTgUgAhliSZfzzPxh3SpeSvP9FkvDFfNNDFbhOFcj7fmH9yVw+UR8DrcpAI5ybR4KXHq64mffY4AhO jrpiKTrP0eiC4NDImIpYGxzXlRkz0Fp0+o0S0B0J iOAT+HAwrySQ = [#*#]unionpay
[0219] 步驟107 :客戶端接收應答報文,根據接收到的應答報文得到第一應答數據和第 二敏感信息,顯示第二敏感信息,向認證設備發送第一應答數據;
[0220] 具體地,客戶端對接收到的應答報文進行拆分,得到第一應答數據和第二敏感信 息;
[0221] 例如,客戶端接收到的應答報文為:
[0222] FqsHFY5F3qdEi5LquffNPchLrB7d0dK5tyM6px5GKzKxNjEc86dEqqFECP76TVk8m GkUJ JtXT2LfxAlf0+SFm9FBDDflgF5kBh0cIYEEfuTorpFPke0jjUI80XKgobffyroBPl vx63dobgEg0b vsbV+oRvk+LPCeffiKXqdt+5zH90 = [#*#]UPJpLpKnoyilQ413Z8/k/vm QGauKYwNXCKA6toHxCK RTgUgAhliSZfzzPxh3SpeSvP9FkvDFfNNDFbhOFcj7fmH9yVw+UR8DrcpAI5ybR4KXHq64mffY4AhO jrpiKTrP0eiC4NDImIpYGxzXlRkz0Fp0+o0S0B0J iOAT+HAwrySQ = [#*#]unionpay
[0223] 拆分得到的第一應答數據為:
[0224] FqsHFY5F3qdEi5LquffNPchLrB7d0dK5tyM6px5GKzKxNjEc86dEqqFECP76TVk8m GkUJ JtXT2LfxAlf0+SFm9FBDDflgF5kBh0cIYEEfuTorpFPke0jjUI80XKgobffyroBPl vx63dobgEg0b vsbV+oRvk+LPCeffiKXqdt+5zH90 = [#*#]UPJpLpKnoyilQ413Z8/k/vm QGauKYwNXCKA6toHxCK RTgUgAhliSZfzzPxh3SpeSvP9FkvDFfNNDFbhOFcj7fmH9yVw+UR8DrcpAI5ybR4KXHq64mffY4AhO jrpiKTrP0eiC4NDImIpYGxzXlRkz0Fp0+o0S0B0J iOAT+HAwrySQ =
[0225] 拆分得到的第二敏感信息為:unionpay ;客戶端顯示第二敏感信息"unionpay" ;
[0226] 步驟108 :認證設備接收第一應答數據,根據預設的認證中心公鑰對第一應答數 據進行驗簽,判斷是否驗簽成功,是則執行步驟110,否則向客戶端返回錯誤碼,執行步驟 109 ;
[0227] 具體地,認證設備獲取第一應答數據中的第一加密數據和第一簽名值,根據第一 加密數據和第一簽名值對第一應答數據進行驗簽;
[0228] 例如,認證設備對第一應答數據中的第一字符數據進行base64解碼,得到第一加 密數據,認證設備對第一應答數據中的第二字符數據進行base64解碼,得到第一簽名值, 認證設備根據base64解碼得到的第一加密數據和第一簽名值對第一應答數據進行驗簽;
[0229] 認證設備對第一應答數據中的第一字符數據進行base64解碼,得到第一加密數 據為:
[0230] [22, -85,7,21,-114,69, -34, -89,68, -117, -110, -22, -71,99,79,114,18, -21, 7,-73,78,116,-82,109,-56,-50,-87,-57,-111,-118,-52,-84, 77,-116, 71,60,-23,-47, 42, -88,81,2,63, -66, -109,86, 79, 38, 26,69,9, 38, -43,-45, -40, -73,-15, 2,87,-50, -7, 33,102, -12,80,67,13, -7,96,23, -103,1, -121,71,8,96,65,31, -71,58,43, -92, 83, -28,123,72, -29,80, -113,14,92, -88,40,109,108, -85, -96,19, -27, -65,30, -73, 118, -122, -32,18,3, -101,-66, -58, -43, -6, -124,111,-109, -30, -49,9, -27, -94,41, 122, -99, -73, -18,115,31,-35]
[0231] 認證設備對第一應答數據中的第二字符數據進行base64解碼,得到第一簽名值 為:
[0232] [80,-14, 105, 46,-110,-89,-93, 40,-75, 67,_119,119, 103, -49, -28, -2, -7, -112,25, -85, _118,99,3,87,8, -96,58, -74, -127, -15,8, -92, 83, _127,72,0, -121,88, -110,101, -4, -13,63,24,119,74, -105, -110, -68, -1, 69, -110, -16, -59,124, -45,67,21, -72,78,21, -56, -5,126,97, -3, -55,92,62,81, 31,3, -83, -54,64,35, -100, -101,71, -126, -105,30, -82, -72, -103,102,56,2,29, 35, -82, -104, -118,78, -77, -50,122,32, _72,52,50,38,34, -106,6, -57,53, -11,70, 76,-12,22,-109,-66,-93,68,-76,4, -30,98,-48,4, -2,28,12,43,-55,36]
[0233] 認證設備根據認證中心公鑰對base64解碼得到的第一簽名值進行運算,得到第 一驗證數據,判斷運算得到的第一驗證數據與base64解碼得到的第一加密數據是否一致, 是則確定驗簽成功,否則確定驗簽失敗;
[0234] 除此之外,認證設備也可以:對第一應答數據進行base64解碼,得到第二數據,認 證設備根據解密得到的第二數據中的第一加密數據和第二數據中的第一簽名值對第一應 答數據進行驗簽;
[0235] 步驟109 :客戶端接收認證設備發送的錯誤碼,根據錯誤碼顯示登錄失敗信息,結 束;
[0236] 步驟110 :認證設備根據第一應答數據得到第一敏感信息、第二敏感信息和隨機 數;
[0237] 具體地,認證設備根據認證設備私鑰對第一應答數據中的第一加密數據進行解 密,得到第一敏感信息、第二敏感信息和隨機數;
[0238] 例如,認證設備根據認證設備私鑰對第一應答數據中的第一加密數據進行解密, 得到第一數據為:
[0239] icbc95585[#*#]unionpay[#*#]12345678
[0240] 認證設備對第一數據進行拆分,得到的第一敏感信息為"icbc95585",第二敏感信 息為 "unionpay",隨機數為 " 12345678" ;
[0241] 步驟111 :認證設備顯示第一敏感信息;
[0242] 例如,認證設備顯示第一敏感信息"icbc95585" ;
[0243] 步驟112 :當認證設備檢測到按鍵被觸發后,認證設備判斷按鍵的類型,若是第一 按鍵則執行步驟114,若是第二按鍵則向客戶端返回錯誤碼,執行步驟113 ;
[0244] 優選地,本實施例中,第一按鍵為確認鍵,第二按鍵為取消鍵;
[0245] 步驟113 :客戶端接收認證設備發送的錯誤碼,根據錯誤碼顯示登錄失敗信息,結 束;
[0246] 步驟114 :認證設備顯示第二敏感信息,向客戶端返回第二敏感信息;
[0247] 例如,認證設備顯示第二敏感信息"unionpay" ;
[0248] 步驟115 :客戶端接收認證設備發送的第二敏感信息,判斷接收到的第二敏感信 息與根據應答報文得到的第二敏感信息是否一致,是則執行步驟116,否則顯示登錄失敗信 息,結束;
[0249] 例如,本實施中,客戶端根據應答報文得到的第二敏感信息為"unionpay",客戶端 接收到的第二敏感信息也為"unionpay",則接收到的第二敏感信息與根據應答報文得到的 第二敏感信息一致;
[0250] 步驟116 :客戶端根據認證設備序列號判斷認證設備是否已與用戶綁定,是則執 行步驟118,否則執行步驟117;
[0251] 具體地,客戶端判斷是否能夠在客戶端內部查找到與認證設備序列號對應的用戶 信息,是則確定認證設備已與用戶綁定,否則確定認證設備未與用戶綁定;該步驟判斷認證 設備已與用戶綁定后,還包括客戶端獲取與認證設備對應的用戶信息;
[0252] 步驟117 :客戶端提示用戶進行注冊,接收用戶輸入的用戶信息,根據接收到的用 戶信息將用戶與認證設備進行綁定,執行步驟118 ;
[0253] 具體地,客戶端將接收到的用戶信息與認證設備序列號對應進行存儲,完成綁 定;
[0254] 步驟118 :客戶端向認證設備發送登錄指令;
[0255] 步驟119 :認證設備接收登錄指令,提示用戶是否登錄;
[0256] 步驟120 :當認證設備檢測到按鍵被觸發后,認證設備判斷按鍵的類型,若是第一 按鍵則執行步驟122,若是第二按鍵則向客戶端返回錯誤碼,執行步驟121 ;
[0257] 優選地,本實施例中,第一按鍵為確認鍵,第二按鍵為取消鍵;
[0258] 步驟121 :客戶端接收認證設備發送的錯誤碼,根據錯誤碼顯示登錄失敗信息,結 束;
[0259] 步驟122 :認證設備根據從第一應答數據中得到的隨機數、認證設備中的時間因 子和預設算法,生成第一動態口令,向客戶端發送第一動態口令和認證設備序列號;
[0260] 例如,從第一應答數據中得到的隨機數為"12345678",根據從第一應答數據中得 到的隨機數、認證設備中的時間因子和預設算法產生的第一動態口令為"654321";
[0261] 本實施例中,認證設備根據隨機數和預設算法產生第一動態口令的過程可以放在 步驟110、步驟111、步驟114、步驟119和步驟122中的任意一個步驟中;
[0262] 除此之外,認證設備產生第一動態口令的方法還可以為:
[0263] 步驟122-1 :認證設備根據從第一應答數據中得到的隨機數、認證設備中的時間 因子和預設算法,生成第一明文動態口令;
[0264] 例如,從第一應答數據中得到的隨機數為12345678,生成的第一明文動態口令為: 654321 ;
[0265] 步驟122-2 :認證設備使用認證中心公鑰對第一明文動態口令進行加密,得到第 一密文動態口令;
[0266] 例如,第一密文動態口令為:
[0267] [38,-90,-125,-5,111,-113,87,-48, -104,120,105,30,23,70,-9,93,-128,55, 25,91,-53, -93, -83, -1,89,107, -12,69, -61,-100, -61,-22, 35,49, 79, -66, 79, -125,19, 57,63,95,-44,61,127,19,-4,91,103,-32,-86,62,78,48,56,-10,126,-34,114,-49,-63, 4,-107,26,-38, -116,51,113, _117,48,61,38,109, -101,26, -25,62,14, -102,115,105, 22,-25,-20,50,-2,16, -35, -34,82,66,67,127, _59,62, _89,97,62,54,24,88,2, _47,22, 97, -87, -103, -32, -82, -126,60, -116, -125, -120,125,125,74,85, -44, -52, -52,102, 102, -12, -106, -30, 25, -23]
[0268] 步驟122-3 :認證設備根據認證設備私鑰對第一密文動態口令進行簽名,得到第 二簽名值;
[0269] 例如,第二簽名值為:
[0270] [64,105,108,61,68, -80,64, -1, -12, -7,10,73,93, -67,29,85,112, -54, -50, 107, -101,-125,70, -48, -64, -123, -45,45,35, -53, -34,112, -67, -128, -127, 67,49,47,51,84,114, -83, -72, -68, -6, -34, -97, -83, _108,39,74,55, -66,66, 59, -77, -27, -118,42, -56,95, -86,47,95,49, -45, -45,24, -117,74,13, -91,119, 67, -107, -114, -60, -34, -1,20,94, -115,113, -124,82,40, -111,50, -71,62, -95, -36, 19,111,_125,83,-64, _38,50,20,36,20,-120, _127,58,2,16, _128,48,-3, _113,64,-81, 113, -115,75, -77, -68, -40, -109,126,84,26,11,37,58,110,127]
[0271] 步驟122-4 :認證設備根據第一密文動態口令和第二簽名值,得到第一動態口令;
[0272] 具體地,認證設備對第一密文動態口令進行base64編碼,得到第三字符數據,對 第二簽名值進行base64編碼,得到第四字符數據,對第三字符數據和第四字符數據進行組 合拼接,得到第一動態口令;
[0273] 例如,認證設備根據第一密文動態口令和第二簽名值,得到第一動態口令,包括:
[0274] 認證設備對第一密文動態口令進行base64編碼,得到第三字符數據為:
[0275] fPhTri05/nXaJ4z3B7vzdGGoZ//+lnrddNXVHmTtAyPSmb/9z+P24CTUc3JygoHQ ucd6AfUqz8m+zK0Z9BpzKACnJ/0hPj4J9yX8oKDFW5pjuPt8kdEuq8IZyzrsnc0gPy0S +1HBQXL0 j++V504MPI1lGGfIfsaV8D9JfVd/wgNu =
[0276] 認證設備對第二簽名值進行base64編碼,得到第四字符數據為:
[0277] QGlsPUSwQP/0+QpJXb0dVXDKzmubg0bQwIXTLSPL3nC9gIFDMS8zVHKtuLz63p+t lCdK N75C07P1iirIX6ovXzHT0xiLSg21d00VjsTe/xRejXGEUiiRMrk+odwTb4NTwNoy FCQUiIE6AhCA MP2PQK9xjUuzvNiTflQaCyU6bn8 =
[0278] 認證設備對第三字符數據和第四字符數據進行組合拼接,得到第一動態口令為:
[0279] fPhTri05/nXaJ4z3B7vzdGGoZ//+lnrddNXVHmTtAyPSmb/9z+P24CTUc3JygoHQ ucd6AfUqz8m+zK0Z9BpzKACnJ/0hPj4J9yX8oKDFW5pjuPt8kdEuq8IZyzrsnc0gPy0S+lHBQXL0j ++V504MPIllGGflfsaV8D9JfVd/wgNu = [#*#] QGlsPUSwQP/O+QpJXbOdVX DKzmubgObQwIXTLS PL3nC9gIFDMS8zVHKtuLz63p+tlCdKN75C07PliirIX6ovXzHT0x iLSg21dOOVjsTe/xRejXGEUi iRMrk+odwTb4NTwNoyFCQUiIE6AhCAMP2PQK9xjUuzvN iTflQaCyU6bn8 =
[0280] 步驟123 :客戶端接收第一動態口令和認證設備序列號,根據用戶信息判斷用戶 是否合法,是則執行步驟124,否則顯示登錄失敗信息,結束;
[0281] 具體為,客戶端根據用戶信息查找對應的用戶狀態,判斷用戶狀態是否異常,是則 確定用戶不合法,否則用戶合法;
[0282] 步驟124 :客戶端向認證中心發送第一動態口令和認證設備序列號;
[0283] 例如,第一動態口令為"654321",認證設備序列號為"1000313600001";
[0284] 步驟125 :認證中心接收第一動態口令和認證設備序列號,根據認證設備序列號 查找對應的隨機數,判斷是否查找到隨機數,是則執行步驟126,否則向客戶端返回錯誤碼, 執行步驟127 ;
[0285] 本實施例中,該步驟之前,還包括:
[0286] 認證中心接收第一動態口令和認證設備序列號,根據認證設備公鑰對第一動態口 令進行驗簽,判斷是否驗簽成功,是則執行步驟125,否則向客戶端返回錯誤碼,執行步驟 127 ;
[0287] 具體地,認證中心對第一動態口令進行拆分,得到第三字符數據和第四字符數據, 對得到的第三字符數據進行base64解碼,得到第一密文動態口令,對得到的第四字符數據 進行base64解碼,得到第二簽名值,根據認證設備公鑰對base64解碼得到的第二簽名值進 行運算,得到第二驗證數據,判斷運算得到的第二驗證數據與base64解碼得到的第一密文 動態口令是否一致,是則確定驗簽成功,否則確定驗簽失敗。
[0288] 例如,認證中心接收到的第一動態口令為:
[0289] fPhTri05/nXaJ4z3B7vzdGGoZ//+lnrddNXVHmTtAyPSmb/9z+P24CTUc3JygoHQ ucd6AfUqz8m+zK0Z9BpzKACnJ/0hPj4J9yX8oKDFW5pjuPt8kdEuq8IZyzrsnc0gPy0S +1HBQXL0 j++V504MPIllGGflfsaV8D9JfVd/wgNu = [#*#] QGlsPUSwQP/O+QpJXbOdVX DKzmubgObQwIXTL SPL3nC9gIFDMS8zVHKtuLz63p+tlCdKN75C07PliirIX6ovXzHT0x iLSg21dOOVjsTe/xRejXGEU iiRMrk+odwTb4NTwNoyFCQUiIE6AhCAMP2PQK9xjUuzvN iTflQaCyU6bn8 =
[0290] 認證中心對第一動態口令進行拆分,得到第三字符數據和第四字符數據,分別為: 第三字符數據為:
[0291] fPhTri05/nXaJ4z3B7vzdGGoZ//+lnrddNXVHmTtAyPSmb/9z+P24CTUc3JygoHQ ucd6AfUqz8m+zK0Z9BpzKACnJ/0hPj4J9yX8oKDFW5pjuPt8kdEuq8IZyzrsnc0gPy0S +1HBQXL0 j++V504MPI1lGGfIfsaV8D9JfVd/wgNu =
[0292] 第四字符數據為:
[0293] QGlsPUSwQP/0+QpJXb0dVXDKzmubg0bQwIXTLSPL3nC9gIFDMS8zVHKtuLz63p+t lCdK N75C07P1iirIX6ovXzHT0xiLSg21d00VjsTe/xRejXGEUiiRMrk+odwTb4NTwNoy FCQUiIE6AhCA MP2PQK9xjUuzvNiTflQaCyU6bn8 =
[0294] 認證中心對第三字符數據進行base64解碼,得到第一密文動態口令為:
[0295] [38,-90,-125,-5,111,_113,87,-48, -104,120,105,30,23,70, _9,93, _128,55, 25,91,-53, -93, -83, -1,89,107, -12,69, -61,-100, -61,-22, 35,49, 79, -66, 79, -125,19, 57,63,95,-44,61,127,19,-4,91,103,-32,-86,62,78,48,56,-10,126,-34,114,-49,-63, 4, -107,26,-38, -116,51,113, _117,48,61,38,109, -101,26, -25,62,14, -102,115,105, 22,-25,-20,50,-2,16,-35, _34,82,66,67,127, _59,62, _89,97,62,54,24,88,2, _47,22, 97, -87, -103, -32, -82, -126,60, -116, -125, -120,125,125,74,85, -44, -52, -52,102, 102, -12, -106, -30, 25, -23]
[0296] 認證中心對第四字符數據進行base64解碼,得到第二簽名值為:
[0297] [64,105,108,61,68, -80,64, -1, -12, -7,10,73,93, -67,29,85,112, -54, -50, 107, -101,-125,70, -48, -64, -123, -45,45,35, -53, -34,112, -67, -128, -127, 67,49,47,51,84,114, -83, -72, -68, -6, -34, -97, -83, _108,39,74,55, -66,66, 59, -77, -27, -118,42, -56,95, -86,47,95,49, -45, -45,24, -117,74,13, -91,119, 67, -107, -114, -60, -34, -1,20,94, -115, 113, -124,82,40, -111,50, -71,62, -95, -36, 19,111,_125,83,-64, _38,50,20,36,20,-120, _127,58,2,16, _128,48,-3, _113,64,-81, 113, -115,75, -77, -68, -40, -109,126,84,26,11,37,58,110,127]
[0298] 認證中心根據認證設備公鑰對base64解碼得到的第二簽名值進行運算,得到第 二驗證數據,判斷運算得到的第二驗證數據與base64解碼得到的第一密文動態口令是否 一致,是則確定驗簽成功,否則確定驗簽失敗;
[0299] 步驟126 :認證中心根據查找到的隨機數、認證中心中的時間因子和預設算法,生 成第二動態口令,判斷接收到的第一動態口令與生成的第二動態口令是否一致,是則向客 戶端發送認證成功信息,結束,否則向客戶端返回錯誤碼,執行步驟127 ;
[0300] 具體地,該步驟判斷接收到的第一動態口令與生成的第二動態口令一致后,還包 括:認證中心清除生成的隨機數;
[0301] 例如,認證中心根據認證設備序列號" 1000313600001"查找到的對應的隨機數為 "12345678",根據查找到的隨機數、認證中心中的時間因子和預設算法產生的第二動態口 令為"654321",由于生成的第二動態口令與接收到的第一動態口令一致,則認證成功;
[0302] 除此之外,步驟126包括:
[0303] 步驟126-1 :認證中心根據查找到的隨機數、認證中心中的時間因子和預設算法 生成第二明文動態口令,根據認證中心私鑰對第一動態口令中的第一密文動態口令進行解 密,得到第一明文動態口令;
[0304] 例如,認證中心根據認證設備序列號查找對應的隨機數為12345678,根據隨機數、 認證中心中的時間因子和預設算法生成第二明文動態口令為:654321 ;使用認證中心私鑰 對第一動態口令中的第一密文動態口令進行解密,得到第一明文動態口令為:654321 ;
[0305] 步驟126-2 :認證中心判斷解密得到的第一明文動態口令和生成的第二明文動態 口令是否一致,是則向客戶端發送認證成功信息,結束,否則向客戶端返回錯誤碼,執行步 驟 127 ;
[0306] 具體地,該步驟判斷判斷解密得到的第一明文動態口令和生成的第二明文動態口 令一致后,還包括:認證中心清除生成的隨機數;
[0307] 步驟127 :客戶端接收認證中心發送的錯誤碼,根據錯誤碼顯示登錄失敗信息,結 束;
[0308] 本實施例中提供的一種安全登錄的方法,認證中心向客戶端下發明文形式的敏感 信息,向認證設備發送加密簽名后的敏感信息,客戶端和認證設備分別顯示敏感信息,用戶 確認后認證設備產生動態口令,向認證中心返回動態口令,認證中心根據接收到的動態口 令對用戶的身份進行認證,從而實現安全登錄。
[0309] 實施例3
[0310] 本發明的實施例3提供了一種安全登錄的系統,如圖4所示,包括:客戶端、認證中 心和認證設備;
[0311] 客戶端包括:第一檢測模塊201、第一獲取模塊202、第一生成模塊203、第一發送 模塊204、第一接收模塊205、第一處理模塊206、第一顯不模塊207和第一判斷模塊208 ;
[0312] 第一檢測模塊201,用于檢測是否有觸發信息;
[0313] 第一獲取模塊202,用于當第一檢測模塊201檢測到觸發信息后,獲取認證設備的 認證設備序列號和第一敏感信息標識;
[0314] 第一生成模塊203,用于根據第一獲取模塊202獲取到的認證設備序列號和第一 敏感信息標識生成敏感信息下發請求;
[0315] 第一發送模塊204,用于向認證中心發送第一生成模塊203生成的敏感信息下發 請求;向認證設備發送第一處理模塊206得到的第一應答數據;當第一判斷模塊208判斷 第一接收模塊205接收到的第二敏感信息與第一處理模塊206得到的第二敏感信息一致 時,向認證設備發送登錄指令;當第一接收模塊205接收到認證設備發送的第一動態口令 和認證設備序列號后,向認證中心發送第一動態口令和認證設備序列號;
[0316] 第一接收模塊205,用于接收認證中心發送的應答報文,接收認證設備發送的錯誤 碼,接收認證設備發送的第二敏感信息,接收認證設備發送的第一動態口令和認證設備序 列號,接收認證中心發送的認證成功信息,接收認證中心發送的錯誤碼;
[0317] 第一處理模塊206,用于根據第一接收模塊205接收到的應答報文,得到第一應答 數據和第二敏感信息;
[0318] 第一顯示模塊207,用于根據第一接收模塊205接收到的錯誤碼顯示登錄失敗信 息,當第一判斷模塊208判斷第一接收模塊205接收到的第二敏感信息與第一處理模塊206 得到的第二敏感信息不一致時,顯示登錄失敗信息;
[0319] 第一判斷模塊208,用于判斷第一接收模塊205接收到的第二敏感信息與第一處 理模塊206得到的第二敏感信息是否一致;
[0320] 認證中心包括:第二接收模塊301、第一查找模塊302、第二生成模塊303、第三生 成模塊304、第四生成模塊305、第二發送模塊306、第二查找模塊307、第五生成模塊308和 第二判斷模塊309 ;
[0321] 第二接收模塊301,用于接收客戶端發送的敏感信息下發請求,接收客戶端發送的 第一動態口令和認證設備序列號;
[0322] 第一查找模塊302,用于根據第二接收模塊301接收到的敏感信息下發請求中的 第一敏感信息標識,查找對應的第一敏感信息,并在所述認證中心查找第二敏感信息;
[0323] 第二生成模塊303,用于生成隨機數,將隨機數與第二接收模塊301接收到的敏感 信息下發請求中的認證設備序列號對應存儲;
[0324] 第三生成模塊304,用于根據第一查找模塊302查找到的第一敏感信息、第二敏感 信息和第二生成模塊303生成的隨機數,生成第一應答數據;
[0325] 第四生成模塊305,用于根據第三生成模塊304生成的第一應答數據和第一查找 模塊302查找到的第二敏感信息,生成應答報文;
[0326] 第二發送模塊306,用于向客戶端發送第四生成模塊305生成的應答報文,當第二 判斷模塊309判斷第二接收模塊301接收到的第一動態口令與第五生成模塊308生成的第 二動態口令一致時,向客戶端發送認證成功信息,當第二判斷模塊309判斷第二接收模塊 301接收到的第一動態口令與第五生成模塊308生成的第二動態口令不一致時,向客戶端 返回錯誤碼;
[0327] 第二查找模塊307,用于根據第二接收模塊301接收到的認證設備序列號查找對 應的隨機數;
[0328] 第五生成模塊308,用于根據第二查找模塊307查找到的隨機數、認證中心中的時 間因子和預設算法,生成第二動態口令;
[0329] 第二判斷模塊309,用于判斷第二接收模塊301接收到的第一動態口令與第五生 成模塊308生成的第二動態口令是否一致;
[0330] 認證設備包括:第三接收模塊401、第二處理模塊402、第二顯示模塊403、第二檢 測模塊404、第三判斷模塊405、第三發送模塊406和第六生成模塊407 ;
[0331] 第三接收模塊401,用于接收客戶端發送的第一應答數據,接收客戶端發送的登錄 指令;
[0332] 第二處理模塊402,用于根據第三接收模塊401接收到的第一應答數據,得到第一 敏感信息、第二敏感信息和隨機數;
[0333] 第二顯示模塊403,用于對第二處理模塊402得到的第一敏感信息進行顯示;
[0334] 第二檢測模塊404,用于當第二顯示模塊403對第一敏感信息進行顯示時,檢測按 鍵是否被觸發;
[0335] 第三判斷模塊405,用于當第二檢測模塊404檢測到按鍵被觸發后,判斷按鍵的類 型;
[0336] 第三發送模塊406,用于向客戶端發送第六生成模塊407生成的第一動態口令,當 第三判斷模塊405判斷按鍵為第一按鍵時,向客戶端返回第二處理模塊402得到的第二敏 感信息,當第三判斷模塊405判斷按鍵為第二按鍵時,向客戶端返回錯誤碼;
[0337] 第六生成模塊407,用于當第三接收模塊401接收到登錄指令后,根據認證設備中 的時間因子、預設算法以及第二處理模塊402得到的隨機數,生成第一動態口令。
[0338] 第一發送模塊204還用于向認證設備發送獲取指令;
[0339] 第一接收模塊205還用于接收認證設備返回的認證設備序列號和第一敏感信息 標識。
[0340] 第一接收模塊205還用于接收用戶輸入的用戶信息;
[0341] 第一獲取模塊202具體用于根據第一接收模塊205接收到的用戶信息,在客戶端 內部查找對應的認證設備序列號和第一敏感信息標識。
[0342] 認證中心還包括:第四判斷模塊,用于根據第二接收模塊301接收到的敏感信息 下發請求,判斷認證設備是否合法;
[0343] 第一查找模塊302,還用于當第四判斷模塊判斷認證設備合法后,進行工作;
[0344] 第二發送模塊306,還用于當第四判斷模塊判斷認證設備不合法后,向客戶端返回 錯誤碼。
[0345] 第四判斷模塊具體用于根據第二接收模塊301接收到的敏感信息下發請求中的 認證設備序列號,查找對應的認證設備的狀態和認證設備公鑰,若根據查找到的認證設備 的狀態,判斷認證設備可用并且認證設備公鑰存在,則確定認證設備合法,否則確定認證設 備不合法。
[0346] 第三生成模塊304,包括:第一查找單元、第一組合單元、第一加密單元、第一簽名 單元和第一處理單元;
[0347] 第一查找單元,用于根據敏感信息下發請求中的認證設備序列號,在認證中心查 找對應的認證設備公鑰;
[0348] 第一組合單元,用于對第一敏感信息、第二敏感信息和隨機數進行拼接組合,得到 第一數據;
[0349] 第一加密單元,用于根據第一查找單元查找到的認證設備公鑰對第一數據進行加 密,得到第一加密數據;
[0350] 第一簽名單元,用于使用認證中心私鑰對第一加密數據進行簽名,得到第一簽名 值;
[0351] 第一處理單元,用于根據第一加密數據和第一簽名值得到第一應答數據;
[0352] 認證設備還包括第一驗簽模塊;第一驗簽模塊,用于根據存儲的認證中心公鑰,對 第三接收模塊401接收到的第一應答數據進行驗簽,判斷是否驗簽成功;
[0353] 第二處理模塊402還用于當第一驗簽模塊判斷驗簽成功后,進行工作;
[0354] 第三發送模塊406還用于當第一驗簽模塊判斷驗簽失敗后,向客戶端返回錯誤 碼;
[0355] 第二處理模塊402,具體用于根據認證設備私鑰對第三接收模塊401接收到的第 一應答數據中的第一加密數據進行解密,得到第一數據,對得到的第一數據進行拆分,得到 第一敏感信息、第二敏感信息和隨機數。
[0356] 第一處理單元具體用于對第一加密數據進行base64編碼,得到第一字符數據,對 第一加密數據進行base64編碼,得到第二字符數據,對第一字符數據和第二字符數據進行 組合拼接,生成第一應答數據;
[0357] 第一驗簽模塊具體用于對第三接收模塊401接收到的第一應答數據中的第一 字符數據進行base64解碼,得到第一加密數據,對第一應答數據中的第二字符數據進行 base64解碼,得到第一簽名值,根據base64解碼得到的第一加密數據和第一簽名值對第一 應答數據進行驗簽。
[0358] 第一處理單元具體用于對第一加密數據和第一簽名值進行組合拼接,得到第二數 據,對第二數據進行base64編碼,得到第一應答數據;
[0359] 第一驗簽模塊具體用于對第三接收模塊401接收到的第一應答數據進行base64 解碼,得到第二數據,根據base64解碼得到的第二數據中的第一加密數據和第一簽名值對 第一應答數據進行驗簽。
[0360] 第一驗簽模塊,具體用于根據認證中心公鑰對第一簽名值進行運算,得到第一驗 證數據,判斷運算得到的第一驗證數據與base64解碼得到的第一加密數據是否一致,是則 確定驗簽成功,否則確定驗簽失敗。
[0361] 第四生成模塊305,具體用于將第一應答數據和第二敏感信息進行組合拼接,生成 應答報文;
[0362] 第一處理模塊206,具體用于對應答報文進行拆分,得到第一應答數據和第二敏感 信息。
[0363] 第一顯示模塊207還用于顯示第一處理模塊206處理得到的第二敏感信息;
[0364] 第二顯示模塊403還用于顯示第二處理模塊402得到的第二敏感信息。
[0365] 客戶端還包括:第五判斷模塊和注冊模塊;
[0366] 第五判斷模塊,用于在第一判斷模塊208判斷第一接收模塊205接收到的第二敏 感信息與第一處理模塊206得到的第二敏感信息一致時,根據認證設備序列號判斷認證設 備是否已與用戶綁定;
[0367] 注冊模塊,用于當第五判斷模塊判斷認證設備未與用戶綁定后,提示用戶進行注 冊,接收用戶輸入的用戶信息,根據接收到的用戶信息將用戶與認證設備進行綁定;
[0368] 第一發送模塊204,具體用于注冊模塊工作完成后,向認證設備發送登錄指令,當 第五判斷模塊判斷認證設備已與用戶綁定后,向認證設備發送登錄指令。
[0369] 第五判斷模塊具體用于判斷是否能夠在客戶端內部查找到與認證設備序列號對 應的用戶信息,是則確定認證設備已與用戶綁定,否則確定認證設備未與用戶綁定。
[0370] 注冊模塊具體用于提示用戶進行注冊,接收用戶輸入的用戶信息,將接收到的用 戶信息與認證設備序列號對應進行存儲,完成綁定。
[0371] 客戶端還包括:第二獲取模塊和第六判斷模塊;
[0372] 第二獲取模塊,用于第一判斷模塊208判斷第一接收模塊205接收到的第二敏感 信息與第一處理模塊206得到的第二敏感信息一致時,獲取與認證設備對應的用戶信息;
[0373] 第六判斷模塊,用于根據第二獲取模塊獲取到的用戶信息判斷用戶是否合法;
[0374] 第一發送模塊204還用于在第六判斷模塊判斷用戶合法后,向認證中心發送第一 動態口令和認證設備序列號;
[0375] 第一顯示模塊207還用于在第六判斷模塊判斷用戶不合法后,顯示登錄失敗信 肩、。
[0376] 第六判斷模塊具體用于根據用戶信息查找對應的用戶狀態,判斷用戶狀態是否異 常,是則確定用戶不合法,否則確定用戶合法。
[0377] 第二顯示模塊403,還用于在第三接收模塊401接收到登錄指令后,提示用戶是否 登錄;
[0378] 第二檢測模塊404,還用于在第二顯示模塊403提示用戶是否登錄后,檢測按鍵是 否被觸發;
[0379] 第三判斷模塊405,用于第二檢測模塊404檢測到按鍵被觸發后,判斷按鍵的類 型;
[0380] 第六生成模塊407還用于第三判斷模塊405判斷出第一按鍵被觸發后,進行工 作;
[0381] 第三發送模塊406還用于第三判斷模塊405判斷出第二按鍵被觸發后,向客戶端 返回錯誤碼。
[0382] 第六生成模塊407包括:第一生成單元、第二加密單元、第二簽名單元和第二處理 單元;
[0383] 第一生成單元,用于根據認證設備中的時間因子、預設算法以及隨機數,生成第一 明文動態口令;
[0384] 第二加密單元,用于根據認證中心公鑰對第一生成單元生成的第一明文動態口令 進行加密,得到第一密文動態口令;
[0385] 第二簽名單元,用于使用認證設備私鑰對第二加密單元加密得到的第一密文動態 口令進行簽名,得到第二簽名值;
[0386] 第二處理單元,用于根據第二加密單元加密得到的第一密文動態口令和第二簽名 單元得到的第二簽名值,得到第一動態口令;
[0387] 認證中心還包括:第二驗簽模塊、第七生成模塊和第七判斷模塊;
[0388] 第二驗簽模塊,用于根據認證設備公鑰對第二接收模塊301接收到的第一動態口 令進行驗簽,判斷是否驗簽成功;
[0389] 第七生成模塊,用于在第二驗簽模塊判斷驗簽成功后,根據認證設備序列號查找 對應的隨機數,根據隨機數、認證中心中的時間因子和預設算法生成第二明文動態口令, 根據認證中心私鑰對第一動態口令中的第一密文動態口令進行解密,得到第一明文動態口 令;
[0390] 第二發送模塊306還用于在第二驗簽模塊判斷驗簽失敗后,向客戶端返回錯誤 碼;
[0391] 第七判斷模塊,用于判斷第七生成模塊得到的第一明文動態口令和第二明文動態 口令是否一致;
[0392] 第二發送模塊306還用于在第七判斷模塊判斷第七生成模塊得到的第一明文動 態口令和第二明文動態口令一致后,向客戶端發送認證成功信息,在第七判斷模塊判斷第 七生成模塊得到的第一明文動態口令和第二明文動態口令不一致后,向客戶端返回錯誤 碼。
[0393] 第二處理單元具體用于對第一密文動態口令進行base64編碼,得到第三字符數 據,對第二簽名值進行base64編碼,得到第四字符數據,對第三字符數據和第四字符數據 進行組合拼接,得到第一動態口令;
[0394] 第二驗簽模塊,具體用于對第一動態口令進行拆分,得到第三字符數據和第四字 符數據,對得到的第三字符數據進行base64解碼,得到第一密文動態口令,對得到的第四 字符數據進行base64解碼,得到第二簽名值,根據認證設備公鑰對base64解碼得到的第二 簽名值進行運算,得到第二驗證數據,判斷運算得到的第二驗證數據與base64解碼得到的 第一密文動態口令是否一致,是則確定驗簽成功,否則確定驗簽失敗。
[0395] 認證中心還包括清除模塊和第八判斷模塊;
[0396] 清除模塊,用于在第二判斷模塊309判斷第一動態口令與第二動態口令一致后, 清除隨機數;
[0397] 第八判斷模塊,用于判斷是否查找到隨機數;
[0398] 第五生成模塊308,用于第八判斷模塊判斷查找到隨機數后,進行工作;
[0399] 第二發送模塊306還用于第八判斷模塊判斷未查找到隨機數后,向客戶端返回錯 誤碼。
[〇4〇〇] 以上所述,僅為本發明較佳的【具體實施方式】,但本發明的保護范圍并不局限于此, 任何熟悉本【技術領域】的技術人員在本發明公開的技術范圍內,可輕易想到的變化或替換, 都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求的保護范圍 為準。
【權利要求】
1. 一種安全登錄的方法,應用于包括客戶端、認證中心和認證設備的系統中,其特征在 于,所述方法包括: 步驟S1 :當所述客戶端檢測到觸發信息后,所述客戶端獲取所述認證設備的認證設備 序列號和第一敏感信息標識,根據所述認證設備序列號和所述第一敏感信息標識生成敏感 信息下發請求,向所述認證中心發送所述敏感信息下發請求; 步驟S2 :所述認證中心根據所述敏感信息下發請求中的所述第一敏感信息標識,查找 對應的第一敏感信息,并在所述認證中心查找第二敏感信息,生成隨機數,將所述隨機數與 所述敏感信息下發請求中的所述認證設備序列號對應存儲,根據所述第一敏感信息、所述 第二敏感信息和所述隨機數生成第一應答數據,根據所述第一應答數據和所述第二敏感信 息生成應答報文,向所述客戶端發送所述應答報文; 步驟S3 :所述客戶端根據所述應答報文,得到第一應答數據和第二敏感信息,將得到 的第一應答數據發送到所述認證設備; 步驟S4 :所述認證設備根據接收到的第一應答數據,得到第一敏感信息、第二敏感信 息和隨機數,對得到的第一敏感信息進行顯示; 步驟S5 :當所述認證設備檢測到按鍵被觸發后,所述認證設備判斷所述按鍵的類型, 若是第一按鍵則向所述客戶端返回從所述第一應答數據中得到的第二敏感信息,執行步驟 S7,若是第二按鍵則向所述客戶端返回錯誤碼,執行步驟S6 ; 步驟S6 :所述客戶端接收所述認證設備發送的錯誤碼,根據所述錯誤碼顯示登錄失敗 信息,結束; 步驟S7 :所述客戶端判斷接收到的第二敏感信息與根據所述應答報文得到的第二敏 感信息是否一致,是則向所述認證設備發送登錄指令,執行步驟S8,否則顯示登錄失敗信 息,結束; 步驟S8 :所述認證設備根據所述認證設備中的時間因子、預設算法以及從第一應答數 據中得到的隨機數,生成第一動態口令,向所述客戶端發送所述第一動態口令和所述認證 設備序列號; 步驟S9 :所述客戶端向所述認證中心發送所述第一動態口令和所述認證設備序列號; 步驟S10 :所述認證中心根據所述認證設備序列號查找對應的隨機數,根據查找到的 隨機數、所述認證中心中的時間因子和預設算法,生成第二動態口令,判斷所述第一動態口 令與所述第二動態口令是否一致,是則向所述客戶端發送認證成功信息,結束,否則向所述 客戶端返回錯誤碼,執行步驟S11 ; 步驟S11 :所述客戶端接收所述認證中心發送的錯誤碼,根據所述錯誤碼顯示登錄失 敗信息,結束。
2. 根據權利要求1所述的方法,其特征在于,所述客戶端獲取所述認證設備的認證設 備序列號和第一敏感信息標識,具體為:所述客戶端向所述認證設備發送獲取指令,接收所 述認證設備返回的認證設備序列號和第一敏感信息標識。
3. 根據權利要求1所述的方法,其特征在于,所述客戶端獲取所述認證設備的認證設 備序列號和第一敏感信息標識,具體為:所述客戶端接收用戶輸入的用戶信息,根據所述用 戶信息在所述客戶端內部查找對應的認證設備序列號和第一敏感信息標識。
4. 根據權利要求1所述的方法,其特征在于,所述步驟S2之前包括: 步驟A1 :所述認證中心根據所述敏感信息下發請求,判斷所述認證設備是否合法,是 則執行步驟S2,否則向所述客戶端返回錯誤碼,執行步驟A2 ; 步驟A2 :所述客戶端接收所述認證中心發送的錯誤碼,根據所述錯誤碼顯示登錄失敗 信息,結束。
5. 根據權利要求4所述的方法,其特征在于,所述步驟A1具體為: 所述認證中心根據所述敏感信息下發請求中的所述認證設備序列號,查找對應的認證 設備的狀態和認證設備公鑰,若根據查找到的所述認證設備的狀態,判斷所述認證設備可 用并且所述認證設備公鑰存在時,則執行步驟S2,否則向所述客戶端返回錯誤碼,執行步驟 A2。
6. 根據權利要求1所述的方法,其特征在于,所述根據所述第一敏感信息、所述第二敏 感信息和所述隨機數生成第一應答數據,具體為: 所述認證中心根據所述敏感信息下發請求中的所述認證設備序列號,在所述認證中心 查找對應的認證設備公鑰,所述認證中心對所述第一敏感信息、所述第二敏感信息和所述 隨機數進行拼接組合,得到第一數據,根據查找到的所述認證設備公鑰對所述第一數據進 行加密,得到第一加密數據,使用認證中心私鑰對所述第一加密數據進行簽名,得到第一簽 名值,根據所述第一加密數據和所述第一簽名值得到所述第一應答數據; 所述步驟S4之前還包括: 步驟B1 :所述認證設備根據存儲的認證中心公鑰,對接收到的第一應答數據進行驗 簽,判斷是否驗簽成功,是則執行步驟S4,否則向所述客戶端返回錯誤碼,執行步驟B2 ; 步驟B2 :所述客戶端接收所述認證設備發送的錯誤碼,根據所述錯誤碼顯示登錄失敗 信息,結束; 所述認證設備根據接收到的第一應答數據,得到第一敏感信息、第二敏感信息和隨機 數,具體為: 所述認證設備根據認證設備私鑰對接收到的第一應答數據中的第一加密數據進行解 密,得到第一數據,對得到的第一數據進行拆分,得到第一敏感信息、第二敏感信息和隨機 數。
7. 根據權利要求6所述的方法,其特征在于,所述根據所述第一加密數據和所述第一 簽名值得到所述第一應答數據,具體為: 所述認證中心對所述第一加密數據進行base64編碼,得到第一字符數據,對所述第一 簽名值進行base64編碼,得到第二字符數據,對所述第一字符數據和所述第二字符數據進 行組合拼接,生成所述第一應答數據; 所述認證設備根據存儲的認證中心公鑰,對接收到的第一應答數據進行驗簽,具體 為: 所述認證設備對接收到的第一應答數據中的第一字符數據進行base64解碼,得到第 一加密數據,對第一應答數據中的第二字符數據進行base64解碼,得到第一簽名值,根據 base64解碼得到的第一加密數據和第一簽名值對第一應答數據進行驗簽。
8. 根據權利要求6所述的方法,其特征在于,所述根據所述第一加密數據和所述第一 簽名值得到所述第一應答數據,具體為: 所述認證中心對所述第一加密數據和所述第一簽名值進行組合拼接,得到第二數據, 對所述第二數據進行base64編碼,得到所述第一應答數據; 所述認證設備根據存儲的認證中心公鑰,對接收到的第一應答數據進行驗簽,具體 為: 所述認證設備對接收到的第一應答數據進行base64解碼,得到第二數據,根據base64 解碼得到的第二數據中的第一加密數據和第一簽名值對第一應答數據進行驗簽。
9. 根據權利要求7或8所述的方法,其特征在于,所述對第一應答數據進行驗簽,具體 為: 所述認證設備根據認證中心公鑰對第一簽名值進行運算,得到第一驗證數據,判斷運 算得到的所述第一驗證數據與base64解碼得到的第一加密數據是否一致,是則確定驗簽 成功,否則確定驗簽失敗。
10. 根據權利要求1所述的方法,其特征在于,所述根據所述第一應答數據和所述第二 敏感信息生成應答報文,具體為: 所述認證中心將所述第一應答數據和所述第二敏感信息進行組合拼接,生成應答報 文; 所述根據所述應答報文,得到第一應答數據和第二敏感信息,具體為: 所述客戶端對所述應答報文進行拆分,得到第一應答數據和第二敏感信息。
11. 根據權利要求1所述的方法,其特征在于,所述步驟S3還包括:所述客戶端顯示所 述第二敏感信息; 所述步驟S5中當所述認證設備檢測到所述第一按鍵被觸發后,還包括:所述認證設備 顯示從第一應答數據中得到的第二敏感信息。
12. 根據權利要求1所述的方法,其特征在于,所述步驟S7中向所述認證設備發送登錄 指令之前還包括: 步驟C1 :所述客戶端根據所述認證設備序列號判斷所述認證設備是否已與用戶綁定, 是則執行步驟C3,否則執行步驟C2 ; 步驟C2 :所述客戶端提示所述用戶進行注冊,接收所述用戶輸入的用戶信息,根據接 收到的所述用戶信息將所述用戶與所述認證設備進行綁定,執行步驟C3 ; 步驟C3 :所述客戶端向所述認證設備發送所述登錄指令。
13. 根據權利要求12所述的方法,其特征在于,所述客戶端根據所述認證設備序列號 判斷所述認證設備是否已與用戶綁定,具體為: 所述客戶端判斷是否能夠在所述客戶端內部查找到與所述認證設備序列號對應的用 戶信息,是則確定所述認證設備已與所述用戶綁定,否則確定所述認證設備未與所述用戶 綁定。
14. 根據權利要求12所述的方法,其特征在于,所述根據接收到的所述用戶信息將所 述用戶與所述認證設備進行綁定,具體為:所述客戶端將接收到的所述用戶信息與所述認 證設備序列號對應進行存儲,完成綁定。
15. 根據權利要求1所述的方法,其特征在于,所述步驟S7中所述客戶端判斷接收到的 所述第二敏感信息與根據所述應答報文得到的所述第二敏感信息一致之后,還包括: 所述客戶端獲取與所述認證設備對應的用戶信息; 所述步驟S9之前包括:所述客戶端根據所述用戶信息判斷所述用戶是否合法,是則執 行步驟S9,否則顯示登錄失敗信息,結束。
16. 根據權利要求15所述的方法,其特征在于,所述客戶端根據所述用戶信息判斷所 述用戶是否合法,具體為: 所述客戶端根據所述用戶信息查找對應的用戶狀態,判斷所述用戶狀態是否異常,是 則確定所述用戶不合法,否則確定所述用戶合法。
17. 根據權利要求1所述的方法,其特征在于,所述步驟S8之前還包括: 步驟D1 :所述認證設備接收到所述登錄指令后,提示用戶是否登錄; 步驟D2:當所述認證設備檢測到按鍵被觸發后,所述認證設備判斷按鍵的類型,若是 第一按鍵則執行步驟S8,若是第二按鍵則向所述客戶端返回錯誤碼,執行步驟D3 ; 步驟D3 :所述客戶端接收所述認證設備發送的錯誤碼,根據所述錯誤碼顯示登錄失敗 信息,結束。
18. 根據權利要求1所述的方法,其特征在于,所述認證設備根據所述認證設備中的時 間因子、所述預設算法以及從第一應答數據中得到的隨機數,生成第一動態口令,具體為: 步驟E1 :所述認證設備根據所述認證設備中的時間因子、所述預設算法以及從第一應 答數據中得到的隨機數,生成第一明文動態口令; 步驟E2 :所述認證設備根據認證中心公鑰對所述第一明文動態口令進行加密,得到第 一密文動態口令; 步驟E3 :所述認證設備使用認證設備私鑰對所述第一密文動態口令進行簽名,得到第 二簽名值; 步驟E4:所述認證設備根據所述第一密文動態口令和所述第二簽名值,得到所述第一 動態口令; 所述步驟S10具體為: 步驟F1 :所述認證中心根據所述認證設備公鑰對接收到的所述第一動態口令進行驗 簽,判斷是否驗簽成功,是則執行步驟F2,否則向所述客戶端返回錯誤碼,執行步驟SI 1 ; 步驟F2 :所述認證中心根據所述認證設備序列號查找對應的隨機數,根據所述隨機 數、所述認證中心中的時間因子和預設算法生成第二明文動態口令,根據認證中心私鑰對 所述第一動態口令中的第一密文動態口令進行解密,得到第一明文動態口令; 步驟F3 :所述認證中心判斷所述第一明文動態口令和所述第二明文動態口令是否一 致,是則向客戶端發送認證成功信息,結束,否則向客戶端返回錯誤碼,執行步驟S11。
19. 根據權利要求18所述的方法,其特征在于,所述認證設備根據所述第一密文動態 口令和所述第二簽名值,得到所述第一動態口令,包括: 所述認證設備對所述第一密文動態口令進行base64編碼,得到第三字符數據,對所述 第二簽名值進行base64編碼,得到第四字符數據,對所述第三字符數據和所述第四字符數 據進行組合拼接,得到所述第一動態口令; 所述認證中心根據所述認證設備公鑰對所述第一動態口令進行驗簽,具體為: 所述認證中心對所述第一動態口令進行拆分,得到第三字符數據和第四字符數據,對 得到的第三字符數據進行base64解碼,得到第一密文動態口令,對得到的第四字符數據進 行base64解碼,得到第二簽名值,根據認證設備公鑰對base64解碼得到的第二簽名值進行 運算,得到第二驗證數據,判斷運算得到的所述第二驗證數據與base64解碼得到的第一密 文動態口令是否一致,是則確定驗簽成功,否則確定驗簽失敗。
20. 根據權利要求1所述的方法,其特征在于,所述認證中心判斷接收到的所述第一動 態口令與生成的所述第二動態口令一致之后,還包括:清除所述隨機數; 所述步驟S10中生成第二動態口令之前包括: 所述認證中心判斷是否查找到隨機數,是則繼續,否則向所述客戶端返回錯誤碼,執行 步驟S11。
21. -種安全登錄的系統,其特征在于,所述系統包括客戶端、認證中心和認證設備; 所述客戶端包括:第一檢測模塊、第一獲取模塊、第一生成模塊、第一發送模塊、第一接 收模塊、第一處理模塊、第一顯示模塊和第一判斷模塊; 所述第一檢測模塊,用于檢測是否有觸發信息; 所述第一獲取模塊,用于當所述第一檢測模塊檢測到觸發信息后,獲取所述認證設備 的認證設備序列號和第一敏感信息標識; 所述第一生成模塊,用于根據所述第一獲取模塊獲取到的所述認證設備序列號和所述 第一敏感信息標識生成敏感信息下發請求; 所述第一發送模塊,用于向所述認證中心發送所述第一生成模塊生成的所述敏感信息 下發請求;向所述認證設備發送所述第一處理模塊得到的第一應答數據;當所述第一判斷 模塊判斷所述第一接收模塊接收到的第二敏感信息與所述第一處理模塊得到的第二敏感 信息一致時,向所述認證設備發送登錄指令;當所述第一接收模塊接收到所述認證設備發 送的第一動態口令和認證設備序列號后,向所述認證中心發送所述第一動態口令和所述認 證設備序列號; 所述第一接收模塊,用于接收所述認證中心發送的應答報文,接收所述認證設備發送 的錯誤碼,接收所述認證設備發送的第二敏感信息,接收所述認證設備發送的第一動態口 令和認證設備序列號,接收所述認證中心發送的認證成功信息,接收所述認證中心發送的 錯誤碼; 所述第一處理模塊,用于根據所述第一接收模塊接收到的所述應答報文,得到第一應 答數據和第二敏感信息; 所述第一顯示模塊,用于根據所述第一接收模塊接收到的錯誤碼顯示登錄失敗信息, 當所述第一判斷模塊判斷所述第一接收模塊接收到的第二敏感信息與所述第一處理模塊 得到的第二敏感信息不一致時,顯示登錄失敗信息; 所述第一判斷模塊,用于判斷所述第一接收模塊接收到的第二敏感信息與所述第一處 理模塊得到的第二敏感信息是否一致; 所述認證中心包括:第二接收模塊、第一查找模塊、第二生成模塊、第三生成模塊、第四 生成模塊、第二發送模塊、第二查找模塊、第五生成模塊和第二判斷模塊; 所述第二接收模塊,用于接收所述客戶端發送的所述敏感信息下發請求,接收所述客 戶端發送的所述第一動態口令和所述認證設備序列號; 所述第一查找模塊,用于根據所述第二接收模塊接收到的所述敏感信息下發請求中 的所述第一敏感信息標識,查找對應的第一敏感信息,并在所述認證中心查找第二敏感信 息; 所述第二生成模塊,用于生成隨機數,將所述隨機數與所述第二接收模塊接收到的所 述敏感信息下發請求中的所述認證設備序列號對應存儲; 所述第三生成模塊,用于根據所述第一查找模塊查找到的所述第一敏感信息、所述第 二敏感信息和所述第二生成模塊生成的所述隨機數,生成第一應答數據; 所述第四生成模塊,用于根據所述第三生成模塊生成的所述第一應答數據和所述第一 查找模塊查找到的所述第二敏感信息,生成應答報文; 所述第二發送模塊,用于向所述客戶端發送所述第四生成模塊生成的所述應答報文, 當所述第二判斷模塊判斷所述第二接收模塊接收到的所述第一動態口令與所述第五生成 模塊生成的第二動態口令一致時,向所述客戶端發送認證成功信息,當所述第二判斷模塊 判斷所述第二接收模塊接收到的所述第一動態口令與所述第五生成模塊生成的第二動態 口令不一致時,向所述客戶端返回錯誤碼; 所述第二查找模塊,用于根據所述第二接收模塊接收到的所述認證設備序列號查找對 應的隨機數; 所述第五生成模塊,用于根據所述第二查找模塊查找到的所述隨機數、所述認證中心 中的時間因子和預設算法,生成第二動態口令; 所述第二判斷模塊,用于判斷所述第二接收模塊接收到的所述第一動態口令與所述第 五生成模塊生成的所述第二動態口令是否一致; 所述認證設備包括:第三接收模塊、第二處理模塊、第二顯示模塊、第二檢測模塊、第三 判斷模塊、第三發送模塊和第六生成模塊; 所述第三接收模塊,用于接收所述客戶端發送的第一應答數據,接收所述客戶端發送 的所述登錄指令; 所述第二處理模塊,用于根據所述第三接收模塊接收到的所述第一應答數據,得到第 一敏感信息、第二敏感信息和隨機數; 所述第二顯示模塊,用于對所述第二處理模塊得到的所述第一敏感信息進行顯示; 所述第二檢測模塊,用于當所述第二顯示模塊對第一敏感信息進行顯示時,檢測按鍵 是否被觸發; 所述第三判斷模塊,用于當所述第二檢測模塊檢測到按鍵被觸發后,判斷所述按鍵的 類型; 所述第三發送模塊,用于向所述客戶端發送所述第六生成模塊生成的第一動態口令, 當所述第三判斷模塊判斷所述按鍵為第一按鍵時,向所述客戶端返回所述第二處理模塊得 到的第二敏感信息,當所述第三判斷模塊判斷所述按鍵為第二按鍵時,向所述客戶端返回 錯誤碼; 所述第六生成模塊,用于當所述第三接收模塊接收到所述登錄指令后,根據所述認證 設備中的時間因子、預設算法以及所述第二處理模塊得到的隨機數,生成第一動態口令。
22. 根據權利要求21所述的系統,其特征在于,所述第一發送模塊還用于向所述認證 設備發送獲取指令; 所述第一接收模塊還用于接收所述認證設備返回的認證設備序列號和第一敏感信息 標識。
23. 根據權利要求21所述的系統,其特征在于,所述第一接收模塊還用于接收用戶輸 入的用戶信息; 所述第一獲取模塊具體用于根據所述第一接收模塊接收到的所述用戶信息,在所述客 戶端內部查找對應的認證設備序列號和第一敏感信息標識。
24. 根據權利要求21所述的系統,其特征在于,所述認證中心還包括:第四判斷模塊, 用于根據所述第二接收模塊接收到的所述敏感信息下發請求,判斷所述認證設備是否合 法; 所述第一查找模塊,還用于當所述第四判斷模塊判斷所述認證設備合法后,進行工 作; 所述第二發送模塊,還用于當所述第四判斷模塊判斷所述認證設備不合法后,向所述 客戶端返回錯誤碼。
25. 根據權利要求24所述的系統,其特征在于,所述第四判斷模塊具體用于根據所述 第二接收模塊接收到的所述敏感信息下發請求中的所述認證設備序列號,查找對應的認證 設備的狀態和認證設備公鑰,若根據查找到的所述認證設備的狀態,判斷所述認證設備可 用并且所述認證設備公鑰存在,則確定所述認證設備合法,否則確定所述認證設備不合法。
26. 根據權利要求21所述的系統,其特征在于,所述第三生成模塊,包括:第一查找單 元、第一組合單元、第一加密單元、第一簽名單元和第一處理單元; 所述第一查找單元,用于根據所述敏感信息下發請求中的所述認證設備序列號,在所 述認證中心查找對應的認證設備公鑰; 所述第一組合單元,用于對所述第一敏感信息、所述第二敏感信息和所述隨機數進行 拼接組合,得到第一數據; 所述第一加密單元,用于根據所述第一查找單元查找到的所述認證設備公鑰對所述第 一數據進行加密,得到第一加密數據; 所述第一簽名單元,用于使用認證中心私鑰對所述第一加密數據進行簽名,得到第一 簽名值; 所述第一處理單元,用于根據所述第一加密數據和所述第一簽名值得到所述第一應答 數據; 所述認證設備還包括第一驗簽模塊;所述第一驗簽模塊,用于根據存儲的認證中心公 鑰,對所述第三接收模塊接收到的第一應答數據進行驗簽,判斷是否驗簽成功; 所述第二處理模塊還用于當所述第一驗簽模塊判斷驗簽成功后,進行工作; 所述第三發送模塊還用于當所述第一驗簽模塊判斷驗簽失敗后,向所述客戶端返回錯 誤碼; 所述第二處理模塊,具體用于根據認證設備私鑰對所述第三接收模塊接收到的第一應 答數據中的第一加密數據進行解密,得到第一數據,對得到的第一數據進行拆分,得到第一 敏感信息、第二敏感信息和隨機數。
27. 根據權利要求26所述的系統,其特征在于,所述第一處理單元具體用于對所述第 一加密數據進行base64編碼,得到第一字符數據,對所述第一加密數據進行base64編碼, 得到第二字符數據,對所述第一字符數據和所述第二字符數據進行組合拼接,生成所述第 一應答數據; 所述第一驗簽模塊具體用于對所述第三接收模塊接收到的第一應答數據中的第一 字符數據進行base64解碼,得到第一加密數據,對第一應答數據中的第二字符數據進行 base64解碼,得到第一簽名值,根據base64解碼得到的第一加密數據和第一簽名值對第一 應答數據進行驗簽。
28. 根據權利要求26所述的系統,其特征在于,所述第一處理單元具體用于對所述第 一加密數據和所述第一簽名值進行組合拼接,得到第二數據,對所述第二數據進行base64 編碼,得到所述第一應答數據; 所述第一驗簽模塊具體用于對所述第三接收模塊接收到的第一應答數據進行base64 解碼,得到第二數據,根據base64解碼得到的第二數據中的第一加密數據和第一簽名值對 第一應答數據進行驗簽。
29. 根據權利要求27或28所述的系統,其特征在于,所述第一驗簽模塊,具體用于根 據認證中心公鑰對第一簽名值進行運算,得到第一驗證數據,判斷運算得到的所述第一驗 證數據與base64解碼得到的第一加密數據是否一致,是則確定驗簽成功,否則確定驗簽失 敗。
30. 根據權利要求21所述的系統,其特征在于,所述第四生成模塊,具體用于將所述第 一應答數據和所述第二敏感信息進行組合拼接,生成應答報文; 所述第一處理模塊,具體用于對所述應答報文進行拆分,得到第一應答數據和第二敏 感信息。
31. 根據權利要求21所述的系統,其特征在于,所述第一顯示模塊還用于顯示所述第 一處理模塊處理得到的第二敏感信息; 所述第二顯示模塊還用于顯示所述第二處理模塊得到的第二敏感信息。
32. 根據權利要求21所述的系統,其特征在于,所述客戶端還包括:第五判斷模塊和注 冊模塊; 所述第五判斷模塊,用于在所述第一判斷模塊判斷所述第一接收模塊接收到的第二敏 感信息與所述第一處理模塊得到的第二敏感信息一致時,根據所述認證設備序列號判斷所 述認證設備是否已與用戶綁定; 所述注冊模塊,用于當所述第五判斷模塊判斷所述認證設備未與用戶綁定后,提示所 述用戶進行注冊,接收所述用戶輸入的用戶信息,根據接收到的所述用戶信息將所述用戶 與所述認證設備進行綁定; 所述第一發送模塊,具體用于所述注冊模塊工作完成后,向所述認證設備發送所述登 錄指令,當所述第五判斷模塊判斷所述認證設備已與用戶綁定后,向所述認證設備發送所 述登錄指令。
33. 根據權利要求32所述的系統,其特征在于,所述第五判斷模塊具體用于判斷是否 能夠在所述客戶端內部查找到與所述認證設備序列號對應的用戶信息,是則確定所述認證 設備已與所述用戶綁定,否則確定所述認證設備未與所述用戶綁定。
34. 根據權利要求32所述的系統,其特征在于,所述注冊模塊具體用于提示所述用戶 進行注冊,接收所述用戶輸入的用戶信息,將接收到的所述用戶信息與所述認證設備序列 號對應進行存儲,完成綁定。
35. 根據權利要求21所述的系統,其特征在于,所述客戶端還包括:第二獲取模塊和第 六判斷模塊; 所述第二獲取模塊,用于所述第一判斷模塊判斷所述第一接收模塊接收到的第二敏感 信息與所述第一處理模塊得到的第二敏感信息一致時,獲取與所述認證設備對應的用戶信 息; 所述第六判斷模塊,用于根據所述第二獲取模塊獲取到的所述用戶信息判斷所述用戶 是否合法; 所述第一發送模塊還用于在所述第六判斷模塊判斷所述用戶合法后,向所述認證中心 發送所述第一動態口令和所述認證設備序列號; 所述第一顯示模塊還用于在所述第六判斷模塊判斷所述用戶不合法后,顯示登錄失敗 信息。
36. 根據權利要求35所述的系統,其特征在于,所述第六判斷模塊具體用于根據所述 用戶信息查找對應的用戶狀態,判斷所述用戶狀態是否異常,是則確定所述用戶不合法,否 則確定所述用戶合法。
37. 根據權利要求21所述的系統,其特征在于,所述第二顯示模塊,還用于在所述第三 接收模塊接收到所述登錄指令后,提示用戶是否登錄; 所述第二檢測模塊,還用于在所述第二顯示模塊提示用戶是否登錄后,檢測按鍵是否 被觸發; 所述第三判斷模塊,還用于所述第二檢測模塊檢測到按鍵被觸發后,判斷按鍵的類 型; 所述第六生成模塊還用于所述第三判斷模塊判斷出第一按鍵被觸發后,進行工作; 所述第三發送模塊還用于所述第三判斷模塊判斷出第二按鍵被觸發后,向所述客戶端 返回錯誤碼。
38. 根據權利要求21所述的系統,其特征在于,所述第六生成模塊包括:第一生成單 元、第二加密單元、第二簽名單元和第二處理單元; 所述第一生成單元,用于根據所述認證設備中的時間因子、所述預設算法以及隨機數, 生成第一明文動態口令; 所述第二加密單元,用于根據認證中心公鑰對所述第一生成單元生成的所述第一明文 動態口令進行加密,得到第一密文動態口令; 所述第二簽名單元,用于使用認證設備私鑰對所述第二加密單元加密得到的所述第一 密文動態口令進行簽名,得到第二簽名值; 所述第二處理單元,用于根據所述第二加密單元加密得到的所述第一密文動態口令和 所述第二簽名單元得到的所述第二簽名值,得到所述第一動態口令; 所述認證中心還包括:第二驗簽模塊、第七生成模塊和第七判斷模塊; 所述第二驗簽模塊,用于根據所述認證設備公鑰對所述第二接收模塊接收到的所述第 一動態口令進行驗簽,判斷是否驗簽成功; 所述第七生成模塊,用于在所述第二驗簽模塊判斷驗簽成功后,根據所述認證設備序 列號查找對應的隨機數,根據所述隨機數、所述認證中心中的時間因子和預設算法生成第 二明文動態口令,根據認證中心私鑰對所述第一動態口令中的第一密文動態口令進行解 密,得到第一明文動態口令; 所述第二發送模塊還用于在所述第二驗簽模塊判斷驗簽失敗后,向所述客戶端返回錯 誤碼; 所述第七判斷模塊,用于判斷所述第七生成模塊得到的第一明文動態口令和所述第二 明文動態口令是否一致; 所述第二發送模塊還用于在所述第七判斷模塊判斷所述第七生成模塊得到的第一明 文動態口令和所述第二明文動態口令一致后,向客戶端發送認證成功信息,在所述第七判 斷模塊判斷所述第七生成模塊得到的第一明文動態口令和所述第二明文動態口令不一致 后,向所述客戶端返回錯誤碼。
39. 根據權利要求38所述的系統,其特征在于,所述第二處理單元具體用于對所述第 一密文動態口令進行base64編碼,得到第三字符數據,對所述第二簽名值進行base64編 碼,得到第四字符數據,對所述第三字符數據和所述第四字符數據進行組合拼接,得到所述 第一動態口令; 所述第二驗簽模塊,具體用于對所述第一動態口令進行拆分,得到第三字符數據和第 四字符數據,對得到的第三字符數據進行base64解碼,得到第一密文動態口令,對得到的 第四字符數據進行base64解碼,得到第二簽名值,根據認證設備公鑰對base64解碼得到的 第二簽名值進行運算,得到第二驗證數據,判斷運算得到的所述第二驗證數據與base64解 碼得到的第一密文動態口令是否一致,是則確定驗簽成功,否則確定驗簽失敗。
40. 根據權利要求21所述的系統,其特征在于,所述認證中心還包括清除模塊和第八 判斷模塊; 所述清除模塊,用于在所述第二判斷模塊判斷所述第一動態口令與所述第二動態口令 一致后,清除所述隨機數; 所述第八判斷模塊,用于判斷是否查找到隨機數; 所述第五生成模塊,用于所述第八判斷模塊判斷查找到隨機數后,進行工作; 所述第二發送模塊還用于所述第八判斷模塊判斷未查找到隨機數后,向所述客戶端返 回錯誤碼。
【文檔編號】H04L29/06GK104104687SQ201410362690
【公開日】2014年10月15日 申請日期:2014年7月28日 優先權日:2014年7月28日
【發明者】陸舟, 于華章 申請人:飛天誠信科技股份有限公司