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