身份認證方法和裝置的制造方法
【專利摘要】本申請提供一種身份認證方法和裝置,該方法包括:在與服務端建立HTTPS連接后,檢測是否有USB Key接入;如果有USB Key接入,則生成隨機數,并向USB Key發送隨機數,以使USB Key根據預存的算法對隨機數進行計算得到第一計算結果,并利用預存的私鑰對第一計算結果進行加密得到第一加密結果;在獲取到第一加密結果和USB Key中預存的數字證書后,構造攜帶隨機數、第一加密結果和數字證書的認證報文,并基于HTTPS連接向服務端發送認證報文,以使服務端在確定數字證書合法,且確定對隨機數的計算結果和對第一加密結果的解密結果一致時,確定身份認證成功。本申請技術方案可以提高身份認證方案的適用性。
【專利說明】
身份認證方法和裝置
技術領域
[0001 ]本申請涉及通信技術領域,尤其涉及一種身份認證方法和裝置。
【背景技術】
[0002] 隨著互聯網的快速發展,網絡安全問題越來越重要。對于防火墻等網絡安全產品, 管理員可以對其參數進行配置管理,而配置管理的安全性又首先取決于管理員身份的合法 性。在相關技術中,在對管理員身份的合法性進行認證時,可以在客戶端與服務端建立 HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer,基于安全套接層的 超文本傳輸協議)連接的過程中完成身份認證過程。
[0003] 在上述情況下,需要在USB Key中預存符合中國國家標準的數字證書,并在客戶端 和服務端的0penSSL(0pen Secure Socket Layer,開源安全套接層)庫中集成符合中國國 家標準的密碼算法套件,否則就無法在建立HTTPS連接的過程中進行身份認證。由于將符合 中國國家標準的密碼算法套件集成在OpenSSL庫中的過程非常復雜,因此上述身份認證方 案的適用性低。
【發明內容】
[0004] 有鑒于此,本申請提供一種身份認證方法和裝置,以解決相關技術中身份認證方 案的適用性低的問題。
[0005] 具體地,本申請是通過如下技術方案實現的:
[0006] 第一方面,本申請提供一種身份認證方法,所述方法應用于客戶端,包括:
[0007] 在與服務端建立HTTPS連接后,檢測是否有USB Key接入;
[0008] 如果有USB Key接入,則生成隨機數,并向所述USB Key發送所述隨機數,以使所述 USB Key根據預存的算法對所述隨機數進行計算以得到第一計算結果,并利用預存的私鑰 對所述第一計算結果進行加密以得到第一加密結果;
[0009] 在獲取到所述第一加密結果和USB Key中預存的數字證書后,構造攜帶所述隨機 數、所述第一加密結果和所述數字證書的認證報文,并基于所述HTTPS連接向所述服務端發 送所述認證報文,以使所述服務端在確定所述數字證書合法,且確定對所述隨機數的計算 結果和對所述第一加密結果的解密結果一致時,確定身份認證成功。
[0010] 第二方面,本申請提供一種身份認證方法,所述方法應用于服務端,包括:
[0011]在與客戶端建立HTTPS連接后,接收所述客戶端基于所述HTTPS連接發送的認證報 文,所述認證報文攜帶隨機數、第一加密結果和數字證書,所述隨機數由所述客戶端生成, 所述第一加密結果為USB Key在根據預存的算法對所述隨機數進行計算以得到第一計算結 果后,利用預存的私鑰對所述第一計算結果進行加密后得到,所述數字證書為USB Key中預 存的數字證書;
[0012]在確定所述數字證書合法時,從所述數字證書中獲取預存的算法和公鑰,并根據 所述算法對所述隨機數進行計算以得到第二計算結果,以及利用所述公鑰對所述第一加密 結果進行解密以得到第一解密結果;
[0013]在確定所述第二計算結果與所述第一解密結果一致時,確定身份認證成功。
[0014] 第三方面,本申請提供一種身份認證裝置,所述裝置應用于客戶端,包括:
[0015] 檢測單元,用于在與服務端建立HTTPS連接后,檢測是否有USB Key接入;
[0016] 執行單元,用于在有USB Key接入時,生成隨機數,并向所述USB Key發送所述隨機 數,以使所述USB Key根據預存的算法對所述隨機數進行計算以得到第一計算結果,并利用 預存的私鑰對所述第一計算結果進行加密以得到第一加密結果;
[0017] 第一發送單元,用于在獲取到所述第一加密結果和USB Key中預存的數字證書后, 構造攜帶所述隨機數、所述第一加密結果和所述數字證書的認證報文,并基于所述HTTPS連 接向所述服務端發送所述認證報文,以使所述服務端在確定所述數字證書合法,且確定對 所述隨機數的計算結果和對所述第一加密結果的解密結果一致時,確定身份認證成功。
[0018] 第四方面,本申請提供一種身份認證裝置,所述裝置應用于服務端,包括:
[0019] 接收單元,用于在與客戶端建立HTTPS連接后,接收所述客戶端基于所述HTTPS連 接發送的認證報文,所述認證報文攜帶隨機數、第一加密結果和數字證書,所述隨機數由所 述客戶端生成,所述第一加密結果為USB Key在根據預存的算法對所述隨機數進行計算以 得到第一計算結果后,利用預存的私鑰對所述第一計算結果進行加密后得到,所述數字證 書為USB Key中預存的數字證書;
[0020] 計算單元,用于在確定所述數字證書合法時,從所述數字證書中獲取預存的算法 和公鑰,并根據所述算法對所述隨機數進行計算以得到第二計算結果,以及利用所述公鑰 對所述第一加密結果進行解密以得到第一解密結果;
[0021] 認證單元,用于在確定所述第二計算結果與所述第一解密結果一致時,確定身份 認證成功。
[0022]分析上述技術方案可知,客戶端與服務端可以先利用其OpenSSL庫中已集成的符 合國際標準的算法建立HTTPS連接,再由客戶端基于所述HTTPS連接向服務端發送認證報 文。服務端在接收到該認證報文后,可以利用該認證報文對接入的USB Key進行認證,完成 身份認證過程。與相關技術相比,在USB Key中預存的是符合中國國家標準的數字證書時, 無需在客戶端與服務端的OpenSSL庫中集成符合中國國家標準的算法,也可以實現身份認 證過程,從而提高了上述身份認證方案的適用性。
【附圖說明】
[0023]圖1是本申請一示例性實施例示出的一種身份認證方法的流程圖;
[0024] 圖2是本申請一示例性實施例示出的另一種身份認證方法的流程圖;
[0025] 圖3是本申請一示例性實施例示出的另一種身份認證方法的流程圖;
[0026] 圖4是本申請一示例性實施例示出的一種身份認證裝置所在設備的硬件結構圖;
[0027] 圖5是本申請一示例性實施例示出的另一種身份認證裝置所在設備的硬件結構 圖;
[0028] 圖6是本申請一示例性實施例示出的一種身份認證裝置的框圖;
[0029]圖7是本申請一示例性實施例示出的另一種身份認證裝置的框圖。
【具體實施方式】
[0030]這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及 附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例 中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附 權利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。
[0031 ]在本申請使用的術語是僅僅出于描述特定實施例的目的,而非旨在限制本申請。 在本申請和所附權利要求書中所使用的單數形式的"一種"、"所述"和"該"也旨在包括多數 形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語"和/或"是指并包 含一個或多個相關聯的列出項目的任何或所有可能組合。
[0032]應當理解,盡管在本申請可能采用術語第一、第二、第三等來描述各種信息,但這 些信息不應限于這些術語。這些術語僅用來將同一類型的信息彼此區分開。例如,在不脫離 本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第 一信息。取決于語境,如在此所使用的詞語"如果"可以被解釋成為"在……時"或"當…… 時"或"響應于確定"。
[0033] 相關技術中,客戶端與服務端可以在通過雙向的SSL(Secure Sockets Layer,安 全套接層)握手建立HTTPS連接的過程中,實現身份認證過程,即將身份認證過程整合到雙 向的SSL握手過程中。由于在身份認證過程中使用的USB Key中預存的是符合中國國家標準 的數字證書,因此為了在SSL握手過程中實現身份認證,需要分別在客戶端與服務端的 OpenSSL庫中集成符合中國國家標準的算法。由于該算法集成過程非常復雜,因此上述身份 認證方案的適用性低。
[0034]參考圖1,為本申請一示例性實施例示出的一種身份認證方法的流程圖,該方法應 用在客戶端,包括以下步驟:
[0035]步驟101:在與服務端建立HTTPS連接后,檢測是否有USB Key接入。
[0036] 本實施例中,客戶端與服務端可以先通過相關技術中的SSL握手過程建立HTTPS連 接,此時SSL握手過程可以采用已集成在客戶端與服務端的OpenSSL庫中符合國際標準的算 法,也可以采用較容易集成到OpenSSL庫中的算法。客戶端可以在與服務端建立HTTPS連接 后,檢測是否有USB Key接入。如果有USB Key接入,則可以執行步驟102。如果沒有USB Key 接入,則客戶端可以通過彈窗提示用戶插入USB Key。
[0037] 步驟102:生成隨機數,并向所述USB Key發送所述隨機數,以使所述USB Key根據 預存的算法對所述隨機數進行計算以得到第一計算結果,并利用預存的私鑰對所述第一計 算結果進行加密以得到第一加密結果。
[0038]本實施例中,如果客戶端在前述步驟101中檢測到已有USB Key接入,則可以生成 隨機數。USB Key在獲取到客戶端生成的隨機數后,可以根據預存的算法對所述隨機數進行 計算,得到第一計算結果,并利用預存的私鑰對所述第一計算結果進行加密,得到第一加密 結果。其中,所述隨機數的長度可以是默認的缺省值,也可以是用戶預先設置的閾值,本申 請不作特殊限制。
[0039]步驟103:在獲取到所述第一加密結果和USB Key中預存的數字證書后,構造攜帶 所述隨機數、所述第一加密結果和所述數字證書的認證報文,并基于所述HTTPS連接向所述 服務端發送所述認證報文,以使所述服務端在確定所述數字證書合法,且確定對所述隨機 數的計算結果和對所述第一加密結果的解密結果一致時,確定身份認證成功。
[0040] 本實施例中,USB Key可以將在前述步驟102中得到的第一加密結果和預存的數字 證書發送給客戶端,客戶端可以基于在前述步驟102中生成的隨機數,以及獲取到的第一加 密結果和數字證書,構造認證報文,并將該認證報文發送給服務端。服務端在接收到該認證 報文后,可以先檢測所述數字證書是否合法,如果合法,則可以利用所述數字證書中的算法 和公鑰,比較對所述隨機數的計算結果和對所述第一加密結果的解密結果是否一致,如果 一致,則服務端確定身份認證成功;否則,服務端確定身份認證失敗。
[0041] 由上述實施例可見,客戶端與服務端可以先利用其OpenSSL庫中已集成的符合國 際標準的算法建立HTTPS連接,再由客戶端基于所述HTTPS連接向服務端發送認證報文。月艮 務端在接收到該認證報文后,可以利用該認證報文對接入的USB Key進行認證,完成身份認 證過程。與相關技術相比,在USB Key中預存的是符合中國國家標準的數字證書時,無需在 客戶端與服務端的OpenSSL庫中集成符合中國國家標準的算法,利用數字證書中預存的算 法即可實現身份認證過程,從而大幅提高了上述身份認證方案的適用性。
[0042]參考圖2,為本申請一示例性實施例示出的另一種身份認證方法的流程圖,該方法 應用在服務端,包括以下步驟:
[0043]步驟201:在與客戶端建立HTTPS連接后,接收所述客戶端基于所述HTTPS連接發送 的認證報文,所述認證報文攜帶隨機數、第一加密結果和數字證書,所述隨機數由所述客戶 端生成,所述第一加密結果為USB Key在根據預存的算法對所述隨機數進行計算以得到第 一計算結果后,利用預存的私鑰對所述第一計算結果進行加密后得到,所述數字證書為USB Key中預存的數字證書。
[0044] 本實施例中,客戶端與服務端可以先通過相關技術中的SSL握手過程建立HTTPS連 接,此時SSL握手過程可以采用已集成在客戶端與服務端的OpenSSL庫中符合國際標準的算 法,也可以采用較容易集成到OpenSSL庫中的算法。客戶端在檢測到已有USB Key接入后,可 以生成隨機數。USB Key在獲取到客戶端生成的隨機數后,可以根據預存的算法對所述隨機 數進行計算,得到第一計算結果,并利用預存的私鑰對所述第一計算結果進行加密,得到第 一加密結果。其中,所述隨機數的長度可以是默認的缺省值,也可以是用戶預先設置的閾 值,本申請不作特殊限制。客戶端可以基于生成的隨機數,以及通過USB Key獲取到的第一 加密結果和USB Key中預存的數字證書,構造認證報文,并將該認證報文發送給服務端。 [0045]步驟202:在確定所述數字證書合法時,從所述數字證書中獲取預存的算法和公 鑰,并根據所述算法對所述隨機數進行計算以得到第二計算結果,以及利用所述公鑰對所 述第一加密結果進行解密以得到第一解密結果。
[0046]本實施例中,服務端在接收到客戶端發送的認證報文后,可以先檢測其攜帶的數 字證書是否合法。USB Key預存的數字證書中包含有該USB Key的公鑰和支持的算法,服務 端可以在所述數字證書合法時,從所述數字證書中提取出所述公鑰和所述算法。服務端可 以利用所述算法對接收到的認證報文攜帶的隨機數進行計算,得到第二計算結果,同時還 可以利用所述公鑰,對接收到的認證報文攜帶的第一加密結果進行解密,得到第一解密結 果。其中,所述算法即為前述步驟201中USB Key對隨機數進行計算所使用的算法。
[0047]步驟203:在確定所述第二計算結果與所述第一解密結果一致時,確定身份認證成 功。
[0048] 本實施例中,服務端在前述步驟202中得到第二計算結果和第一解密結果后,可以 比較兩者是否一致。如果兩者一致,則服務端確定身份認證成功;如果兩者不一致,則服務 端確定身份認證失敗。
[0049] 由上述實施例可見,客戶端與服務端可以先利用其OpenSSL庫中已集成的符合國 際標準的算法建立HTTPS連接,再由客戶端基于所述HTTPS連接向服務端發送認證報文。月艮 務端在接收到該認證報文后,可以利用該認證報文對接入的USB Key進行認證,完成身份認 證過程。與相關技術相比,在USB Key中預存的是符合中國國家標準的數字證書時,無需在 客戶端與服務端的OpenSSL庫中集成符合中國國家標準的算法,利用數字證書中預存的算 法即可實現身份認證過程,從而大幅提高了上述身份認證方案的適用性。
[0050] 參考圖3,為本申請一示例性實施例示出的另一種身份認證方法的流程圖,該方法 包括以下步驟:
[00511步驟301:客戶端在與服務端建立HTTPS連接后,檢測是否有USB Key接入。若是,執 行步驟302。
[0052] 本實施例中,客戶端與服務端可以先通過相關技術中的SSL握手過程建立HTTPS連 接,此時SSL握手過程可以采用已集成在客戶端與服務端的OpenSSL庫中符合國際標準的算 法,也可以采用較容易集成到OpenSSL庫中的算法,本申請不作特殊限制。客戶端可以在與 服務端建立HTTPS連接后,檢測是否有USB Key接入。如果有USB Key接入,則可以執行步驟 302。如果沒有USB Key接入,則客戶端可以通過彈窗提示用戶插入USB Key。
[0053]步驟302:客戶端生成隨機數,并向所述USB Key發送所述隨機數,以使所述USB Key根據預存的算法對所述隨機數進行計算以得到第一計算結果,并利用預存的私鑰對所 述第一計算結果進行加密以得到第一加密結果。
[0054] 本實施例中,如果客戶端在前述步驟301中檢測到已有USB Key接入,則可以生成 隨機數。USB Key在獲取到客戶端生成的隨機數后,可以根據預存的算法對所述隨機數進行 計算,得到第一計算結果,并利用預存的私鑰對所述第一計算結果進行加密,得到第一加密 結果。其中,所述隨機數的長度可以是默認的缺省值,也可以是用戶預先設置的閾值,本申 請不作特殊限制。
[0055]步驟303:客戶端在獲取到所述第一加密結果和USB Key中預存的數字證書后,構 造攜帶所述隨機數、所述第一加密結果和所述數字證書的認證報文,并基于所述HTTPS連接 向所述服務端發送所述認證報文。
[0056]本實施例中,USB Key可以將在前述步驟302中得到的第一加密結果和預存的數字 證書發送給客戶端,客戶端可以基于在前述步驟302中生成的隨機數,以及獲取到的第一加 密結果和數字證書,構造認證報文,并將該認證報文發送給服務端。如表1所示,為認證報文 的一種不例:
[0058]表1
[0059]其中,認證頭即為該認證報文的報文頭,包括有源IP地址和目的IP地址等信息。 [0060]步驟304:服務端在接收到所述認證報文后,檢測所述數字證書是否合法。若是,執 行步驟305。
[0061]本實施例中,服務端在接收到客戶端發送的認證報文后,可以先檢測其攜帶的數 字證書是否合法。具體的,數字證書的合法性可以包括:數字證書是否過期,簽發數字證書 的CA( Cert if icat ion Authority,證書管理機構)是否可靠,數字證書中的公鑰是否能正確 解密其中來自CA的數字簽名,數字證書中的域名是否與實際域名一致。如果所述數字證書 合法,則可以執行步驟305;如果所述數字證書不合法,則服務端確定身份認證失敗,客戶端 可以在接收到服務端返回的身份認證失敗信息后,通過彈窗提示用戶認證失敗。
[0062]步驟305:服務端從所述數字證書中獲取預存的算法和公鑰,并根據所述算法對所 述隨機數進行計算以得到第二計算結果,以及利用所述公鑰對所述第一加密結果進行解密 以得到第一解密結果。
[0063]本實施例中,如果服務端在前述步驟304中檢測到所述數字證書合法,則可以從所 述數字證書中獲取預存的算法和公鑰。USB Key中預存的數字證書中包含有該USB Key的公 鑰和支持的算法,服務端可以從接收到的認證報文攜帶的數字證書中,提取出所述公鑰和 所述算法。服務端可以利用所述算法對接收到的認證報文攜帶的隨機數進行計算,得到第 二計算結果,同時還可以利用所述公鑰,對接收到的認證報文攜帶的第一加密結果進行解 密,得到第一解密結果。其中,所述算法即為前述步驟302中USB Key對隨機數進行計算所使 用的算法。
[0064]步驟306:服務端比較所述第二計算結果與所述第一解密結果是否一致。若是,執 行步驟307。
[0065]本實施例中,在服務端前述步驟305中得到第二計算結果和第一解密結果后,可以 比較兩者是否一致。如果兩者一致,則可以執行步驟307;如果兩者不一致,則服務端確定身 份認證失敗,客戶端可以在接收到服務端返回的身份認證失敗信息后,通過彈窗提示用戶 認證失敗。
[0066] 步驟307:服務端確定身份認證成功。
[0067]基于前述步驟306的判斷結果,如果所述第二計算結果與所述第一解密結果一致, 則服務端確定身份認證成功,此時客戶端將配置管理頁面顯示給用戶。
[0068]在一個可選的實施例中,在前述步驟302前,還可以包括:客戶端顯示基于用戶名 和密碼的登錄頁面,所述登錄頁面中包含有供用戶輸入其用戶名和密碼的輸入框,客戶端 可以獲取到用戶輸入的用戶名和密碼。此后,客戶端可以構造攜帶所述用戶名和所述密碼 的數據報文,并將該數據報文發送給服務端。服務端預先存儲有用戶名和密碼的對應關系, 在接收到該數據報文后,可以根據所述對應關系檢測用戶輸入的用戶名和密碼是否匹配。 如果兩者匹配,則服務端可以向客戶端發送密碼驗證成功的消息,此后客戶端可以執行步 驟302;如果兩者不匹配,則服務端確定身份認證失敗,客戶端可以在接收到服務端返回的 身份認證失敗信息后,通過彈窗提示用戶認證失敗。
[0069]由上述實施例可見,客戶端與服務端可以先利用其OpenSSL庫中已集成的符合國 際標準的算法建立HTTPS連接,再由客戶端基于所述HTTPS連接向服務端發送認證報文。月艮 務端在接收到該認證報文后,可以利用該認證報文對接入的USB Key進行認證,完成身份認 證過程。與相關技術相比,在USB Key中預存的是符合中國國家標準的數字證書時,無需在 客戶端與服務端的OpenSSL庫中集成符合中國國家標準的算法,利用數字證書中預存的算 法即可實現身份認證過程,從而大幅提高了上述身份認證方案的適用性。另外,在上述身份 認證方案中,還可以兼容通過用戶名和密碼進行身份認證的過程,提高了身份認證的準確 性。
[0070] 與前述身份認證方法的實施例相對應,本申請還提供了身份認證裝置的實施例。
[0071] 本申請身份認證裝置的實施例可以分別應用在客戶端與服務端上。裝置實施例可 以通過軟件實現,也可以通過硬件或者軟硬件結合的方式實現。以軟件實現為例,作為一個 邏輯意義上的裝置,是通過其所在設備的處理器將非易失性存儲器中對應的計算機程序指 令讀取到內存中運行形成的。從硬件層面而言,如圖4所示,為本申請身份認證裝置所在客 戶端的一種硬件結構圖,如圖5所示,為本申請身份認證裝置所在服務端的一種硬件結構 圖。除了圖4與圖5所示的處理器、內存、網絡接口、以及非易失性存儲器之外,實施例中裝置 所在的客戶端與服務端通常根據身份認證的實際功能,還可以包括其他硬件,對此不再贅 述。
[0072]參考圖6,為本申請一示例性實施例示出的一種身份認證裝置的框圖,該身份認證 裝置600可以應用于圖4中的客戶端,包括:
[0073]檢測單元601,用于在與服務端建立HTTPS連接后,檢測是否有USB Key接入;
[0074]執行單元602,用于在有USB Key接入時,生成隨機數,并向所述USB Key發送所述 隨機數,以使所述USB Key根據預存的算法對所述隨機數進行計算以得到第一計算結果,并 利用預存的私鑰對所述第一計算結果進行加密以得到第一加密結果;
[0075] 第一發送單元603,用于在獲取到所述第一加密結果和USB Key中預存的數字證書 后,構造攜帶所述隨機數、所述第一加密結果和所述數字證書的認證報文,并基于所述 HTTPS連接向所述服務端發送所述認證報文,以使所述服務端在確定所述數字證書合法,且 確定對所述隨機數的計算結果和對所述第一加密結果的解密結果一致時,確定身份認證成 功。
[0076] 在一個可選的實施例中,所述裝置600還可以包括:
[0077] 顯示單元604,用于顯示基于用戶名和密碼的登錄頁面;
[0078]第二發送單元605,用于將用戶基于所述登錄頁面輸入的用戶名和密碼發送給服 務端以進行密碼驗證;
[0079]所述執行單元602用于在接收到服務端返回的密碼驗證成功的消息后,生成所述 隨機數。
[0080]參考圖7,為本申請一示例性實施例示出的另一種身份認證裝置的框圖,該身份認 證裝置700可以應用于圖5中的服務端,包括:
[0081 ]接收單元701,用于在與客戶端建立HTTPS連接后,接收所述客戶端基于所述HTTPS 連接發送的認證報文,所述認證報文攜帶隨機數、第一加密結果和數字證書,所述隨機數由 所述客戶端生成,所述第一加密結果為USB Key在根據預存的算法對所述隨機數進行計算 以得到第一計算結果后,利用預存的私鑰對所述第一計算結果進行加密后得到,所述數字 證書為USB Key中預存的數字證書;
[0082]計算單元702,用于在確定所述數字證書合法時,從所述數字證書中獲取預存的算 法和公鑰,并根據所述算法對所述隨機數進行計算以得到第二計算結果,以及利用所述公 鑰對所述第一加密結果進行解密以得到第一解密結果;
[0083]認證單元703,用于在確定所述第二計算結果與所述第一解密結果一致時,確定身 份認證成功。
[0084]在一個可選的實施例中,所述裝置700還可以包括:所述認證單元703用于在滿足 以下條件之一時,確定身份認證失敗:
[0085]客戶端發送的用戶基于登錄頁面輸入的用戶名和密碼不匹配;
[0086] 所述數字證書不合法;
[0087] 所述第二計算結果與所述第一解密結果不一致。
[0088] 上述裝置中各個單元的功能和作用的實現過程具體詳見上述方法中對應步驟的 實現過程,在此不再贅述。
[0089] 對于裝置實施例而言,由于其基本對應于方法實施例,所以相關之處參見方法實 施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件 說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以 不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的 需要選擇其中的部分或者全部模塊來實現本申請方案的目的。本領域普通技術人員在不付 出創造性勞動的情況下,即可以理解并實施。
[0090] 以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精 神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本申請保護的范圍之內。
【主權項】
1. 一種身份認證方法,所述方法應用于客戶端,其特征在于,包括: 在與服務端建立HTTPS連接后,檢測是否有USB Key接入; 如果有USB Key接入,則生成隨機數,并向所述USB Key發送所述隨機數,以使所述USB Key根據預存的算法對所述隨機數進行計算以得到第一計算結果,并利用預存的私鑰對所 述第一計算結果進行加密以得到第一加密結果; 在獲取到所述第一加密結果和USB Key中預存的數字證書后,構造攜帶所述隨機數、所 述第一加密結果和所述數字證書的認證報文,并基于所述HTTPS連接向所述服務端發送所 述認證報文,以使所述服務端在確定所述數字證書合法,且確定對所述隨機數的計算結果 和對所述第一加密結果的解密結果一致時,確定身份認證成功。2. 根據權利要求1所述的方法,其特征在于,在所述生成隨機數前,還包括: 顯示基于用戶名和密碼的登錄頁面; 將用戶基于所述登錄頁面輸入的用戶名和密碼發送給服務端以進行密碼驗證; 在接收到服務端返回的密碼驗證成功的消息后,生成所述隨機數。3. -種身份認證方法,所述方法應用于服務端,其特征在于,包括: 在與客戶端建立HTTPS連接后,接收所述客戶端基于所述HTTPS連接發送的認證報文, 所述認證報文攜帶隨機數、第一加密結果和數字證書,所述隨機數由所述客戶端生成,所述 第一加密結果為USB Key在根據預存的算法對所述隨機數進行計算以得到第一計算結果 后,利用預存的私鑰對所述第一計算結果進行加密后得到,所述數字證書為USB Key中預存 的數字證書; 在確定所述數字證書合法時,從所述數字證書中獲取預存的算法和公鑰,并根據所述 算法對所述隨機數進行計算以得到第二計算結果,以及利用所述公鑰對所述第一加密結果 進行解密以得到第一解密結果; 在確定所述第二計算結果與所述第一解密結果一致時,確定身份認證成功。4. 根據權利要求3所述的方法,其特征在于,在滿足以下條件之一時,確定身份認證失 敗: 客戶端發送的用戶基于登錄頁面輸入的用戶名和密碼不匹配; 所述數字證書不合法; 所述第二計算結果與所述第一解密結果不一致。5. -種身份認證方法,其特征在于,所述方法包括: 客戶端在與服務端建立HTTPS連接后,檢測是否有USB Key接入; 如果有USB Key接入,則客戶端生成隨機數,并向所述USB Key發送所述隨機數,以使所 述USB Key根據預存的算法對所述隨機數進行計算以得到第一計算結果,并利用預存的私 鑰對所述第一計算結果進行加密以得到第一加密結果; 客戶端在獲取到第一加密結果和USB Key中預存的數字證書后,構造攜帶所述隨機數、 所述第一加密結果和所述數字證書的認證報文,并基于所述HTTPS連接將所述認證報文發 送給服務端; 服務端在接收到所述認證報文后,如果確定所述數字證書合法,則從所述數字證書中 獲取預存的算法和公鑰,并根據所述算法對所述隨機數進行計算以得到第二計算結果,以 及利用所述公鑰對所述第一加密結果進行解密以得到第一解密結果; 服務端在確定所述第二計算結果與所述第一解密結果一致時,確定身份認證成功。6. -種身份認證裝置,所述裝置應用于客戶端,其特征在于,包括: 檢測單元,用于在與服務端建立HTTPS連接后,檢測是否有USB Key接入; 執行單元,用于在有USB Key接入時,生成隨機數,并向所述USB Key發送所述隨機數, 以使所述USB Key根據預存的算法對所述隨機數進行計算以得到第一計算結果,并利用預 存的私鑰對所述第一計算結果進行加密以得到第一加密結果; 第一發送單元,用于在獲取到所述第一加密結果和USB Key中預存的數字證書后,構造 攜帶所述隨機數、所述第一加密結果和所述數字證書的認證報文,并基于所述HTTPS連接向 所述服務端發送所述認證報文,以使所述服務端在確定所述數字證書合法,且確定對所述 隨機數的計算結果和對所述第一加密結果的解密結果一致時,確定身份認證成功。7. 根據權利要求6所述的裝置,其特征在于,所述裝置還包括: 顯示單元,用于顯示基于用戶名和密碼的登錄頁面; 第二發送單元,用于將用戶基于所述登錄頁面輸入的用戶名和密碼發送給服務端以進 行密碼驗證; 所述執行單元用于在接收到服務端返回的密碼驗證成功的消息后,生成所述隨機數。8. -種身份認證裝置,所述裝置應用于服務端,其特征在于,包括: 接收單元,用于在與客戶端建立HTTPS連接后,接收所述客戶端基于所述HTTPS連接發 送的認證報文,所述認證報文攜帶隨機數、第一加密結果和數字證書,所述隨機數由所述客 戶端生成,所述第一加密結果為USB Key在根據預存的算法對所述隨機數進行計算以得到 第一計算結果后,利用預存的私鑰對所述第一計算結果進行加密后得到,所述數字證書為 USB Key中預存的數字證書; 計算單元,用于在確定所述數字證書合法時,從所述數字證書中獲取預存的算法和公 鑰,并根據所述算法對所述隨機數進行計算以得到第二計算結果,以及利用所述公鑰對所 述第一加密結果進行解密以得到第一解密結果; 認證單元,用于在確定所述第二計算結果與所述第一解密結果一致時,確定身份認證 成功。9. 根據權利要求8所述的裝置,其特征在于,所述裝置還包括:所述認證單元用于在滿 足以下條件之一時,確定身份認證失敗: 客戶端發送的用戶基于登錄頁面輸入的用戶名和密碼不匹配; 所述數字證書不合法; 所述第二計算結果與所述第一解密結果不一致。
【文檔編號】H04L29/06GK106027574SQ201610615981
【公開日】2016年10月12日
【申請日】2016年7月28日
【發明人】黃春平, 王永亮, 姜廣龍
【申請人】杭州迪普科技有限公司