用戶認(rèn)證方法、ssl vpn服務(wù)器及ssl vpn系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種用戶認(rèn)證方法、SSL?VPN服務(wù)器及SSL?VPN系統(tǒng)。其中,所述用戶認(rèn)證方法包括:接收客戶端設(shè)備發(fā)送的用戶登錄請(qǐng)求,所述用戶登錄請(qǐng)求攜帶有用戶在此次登錄之前使用過的客戶端數(shù)字證書;驗(yàn)證所述客戶端數(shù)字證書的合法性以及所述用戶是否持有所述客戶端數(shù)字證書的私鑰;若所述用戶持有所述私鑰,且所述客戶端數(shù)字證書合法,則獲取所述客戶端數(shù)字證書的特征值;查詢存儲(chǔ)的用戶綁定的特征值與用戶名的關(guān)聯(lián)關(guān)系中是否有與所述特征值對(duì)應(yīng)的用戶名,若有,認(rèn)證通過,否則,認(rèn)證失敗。本發(fā)明提供的方法通過復(fù)用用戶在此次登錄之前使用過的客戶端數(shù)字證書,可有效地提高用戶認(rèn)證的效率。
【專利說明】用戶認(rèn)證方法、SSL VPN服務(wù)器及SSL VPN系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)信息技術(shù)安全領(lǐng)域,尤其涉及一種用戶認(rèn)證方法、SSL VPN服務(wù)器及SSL VPN系統(tǒng)。
【背景技術(shù)】
[0002]基于安全套接字層(Security Socket Layer,簡(jiǎn)稱SSL協(xié)議)構(gòu)建的虛擬專用網(wǎng)(Virtual Private Network,簡(jiǎn)稱VPN)技術(shù)是為遠(yuǎn)程用戶安全訪問企業(yè)內(nèi)網(wǎng)的一項(xiàng)網(wǎng)絡(luò)通信技術(shù)。SSL協(xié)議通過對(duì)計(jì)算機(jī)之間整個(gè)會(huì)話進(jìn)行加密,保證在互聯(lián)網(wǎng)上傳輸數(shù)據(jù)的保密性和完整性;VPN是企業(yè)或其他團(tuán)體在公共網(wǎng)絡(luò)資源中通過私有的隧道技術(shù)建立點(diǎn)到點(diǎn)的專線,可以確保數(shù)據(jù)的機(jī)密性并且具有一定的訪問控制功能,將兩者結(jié)合起來形成“SSL VPN”技術(shù),可以在公共網(wǎng)絡(luò)中為企業(yè)設(shè)定一個(gè)有明確邊界定義的網(wǎng)絡(luò)。在SSL VPN系統(tǒng)中,用戶通過瀏覽器登錄并通過SSL VPN服務(wù)器的認(rèn)證后,就能夠訪問相應(yīng)的內(nèi)網(wǎng)資源。
[0003]客戶端數(shù)字證書登錄方式是一種較為安全的方式。數(shù)字證書就是互聯(lián)網(wǎng)通訊中標(biāo)志通訊各方身份信息的一系列數(shù)據(jù),提供了一種在網(wǎng)絡(luò)中驗(yàn)證身份的方式,其作用類似于司機(jī)的駕駛執(zhí)照或日常生活中的身份證,它是由一個(gè)權(quán)威機(jī)構(gòu)——證書授權(quán)中心(Certificate Authority,簡(jiǎn)稱CA)發(fā)行的,人們可以在網(wǎng)上用它來識(shí)別對(duì)方的身份。
[0004]現(xiàn)有SSL VPN系統(tǒng)中,用戶使用客戶端數(shù)字證書登錄并通過SSL VPN服務(wù)器認(rèn)證的方式主要有以下兩種。第一種方式是:SSL VPN服務(wù)器內(nèi)預(yù)置有一個(gè)CA (可以是企業(yè)自建的私有CA或是知名的第三方CA)證書。用戶通過客戶端設(shè)備向SSL VPN服務(wù)器申請(qǐng)CA簽發(fā)的客戶端數(shù)字證書,并將申請(qǐng)到的客戶端數(shù)字證書導(dǎo)入瀏覽器。用戶使用當(dāng)前導(dǎo)入的客戶端數(shù)字證書登錄SSL VPN服務(wù)器,以使SSL VPN服務(wù)器根據(jù)所述客戶端數(shù)字證書,驗(yàn)證所述用戶,并為通過驗(yàn)證的用戶提供相應(yīng)的內(nèi)網(wǎng)資源。第二種方式是:SSLVPN服務(wù)器內(nèi)預(yù)置有一個(gè)CA證書。用戶在客戶端設(shè)備的瀏覽器上使用用戶名登錄SSLVPN服務(wù)器的頁面后,在頁面上點(diǎn)擊申請(qǐng)證書的按鈕。SSLVPN服務(wù)器通過短信貓等方式向客戶端設(shè)備發(fā)送驗(yàn)證碼;用戶輸入驗(yàn)證碼,客戶端設(shè)備將所述驗(yàn)證碼發(fā)送至所述SSLVPN服務(wù)器,所述SSLVPN服務(wù)器驗(yàn)證該驗(yàn)證碼,通過認(rèn)證后,為用戶簽發(fā)客戶端身份證書并將該客戶端數(shù)字證書發(fā)送至所述客戶端設(shè)備,以使用戶下載并將所述客戶端身份證書導(dǎo)入瀏覽器。用戶使用當(dāng)前導(dǎo)入的客戶端數(shù)字證書登錄SSL VPN服務(wù)器,以使SSL VPN服務(wù)器根據(jù)所述客戶端數(shù)字證書,驗(yàn)證所述用戶,并為通過驗(yàn)證的用戶提供相應(yīng)的內(nèi)網(wǎng)資源。
[0005]由上述內(nèi)容可知,現(xiàn)有技術(shù)中用戶每次登錄和認(rèn)證過程都需要重新申請(qǐng)、下載和導(dǎo)入客戶端數(shù)字證書。當(dāng)同一個(gè)用戶多次訪問內(nèi)網(wǎng)資源時(shí),由于該用戶需每次都經(jīng)過客戶端數(shù)字證書的申請(qǐng)、下載和導(dǎo)入過程,使得SSL VPN服務(wù)器對(duì)用戶的認(rèn)證效率較低。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的多個(gè)方面提供一種用戶認(rèn)證方法、SSL VPN服務(wù)器及SSL VPN系統(tǒng),用以提高認(rèn)證效率。[0007]本發(fā)明的一方面,提供一種用戶認(rèn)證方法,包括:
[0008]接收客戶端設(shè)備發(fā)送的用戶登錄請(qǐng)求,所述用戶登錄請(qǐng)求攜帶有用戶在此次登錄之前使用過的客戶端數(shù)字證書;
[0009]驗(yàn)證所述客戶端數(shù)字證書的合法性以及所述用戶是否持有所述客戶端數(shù)字證書的私鑰;
[0010]若所述用戶持有所述私鑰,且所述客戶端數(shù)字證書合法,則獲取所述客戶端數(shù)字證書的特征值;
[0011]查詢存儲(chǔ)的用戶綁定的特征值與用戶名的關(guān)聯(lián)關(guān)系中是否有與所述特征值對(duì)應(yīng)的用戶名,若有,認(rèn)證通過,否則,認(rèn)證失敗。
[0012]本發(fā)明的另一方面,提供一種SSL VPN服務(wù)器,包括:
[0013]第一接收模塊,用于接收客戶端設(shè)備發(fā)送的用戶登錄請(qǐng)求,所述用戶登錄請(qǐng)求攜帶有用戶在此次登錄之前使用過的客戶端數(shù)字證書;
[0014]驗(yàn)證模塊,用于驗(yàn)證所述客戶端數(shù)字證書的合法性以及所述用戶是否持有所述客戶端數(shù)字證書的私鑰;
[0015]第一獲取模塊,用于當(dāng)所述用戶持有所述私鑰,且所述客戶端數(shù)字證書合法時(shí),獲取所述客戶端數(shù)字證書的特征值;
[0016]查詢認(rèn)證模塊,用于查詢存儲(chǔ)的用戶綁定的特征值與用戶名的關(guān)聯(lián)關(guān)系中是否有與所述特征值對(duì)應(yīng)的用戶名,若有,認(rèn)證通過,否則,認(rèn)證失敗。
[0017]本發(fā)明的又一個(gè)方面,提供一種SSL VPN系統(tǒng),包括:客戶端設(shè)備以及所述的SSLVPN服務(wù)器;其中,所述SSL VPN服務(wù)器用于接收客戶端設(shè)備發(fā)送的用戶登錄請(qǐng)求,所述用戶登錄請(qǐng)求攜帶有用戶在此次登錄之前使用過的客戶端數(shù)字證書;驗(yàn)證所述客戶端數(shù)字證書的合法性以及所述用戶是否持有所述客戶端數(shù)字證書的私鑰;若所述用戶持有所述私鑰,且所述客戶端數(shù)字證書合法,則獲取所述客戶端數(shù)字證書的特征值;查詢存儲(chǔ)的用戶綁定的特征值與用戶名的關(guān)聯(lián)關(guān)系中是否有與所述特征值對(duì)應(yīng)的用戶名,若有,認(rèn)證通過,否貝U,認(rèn)證失敗。
[0018]由上述技術(shù)方案可知,本發(fā)明實(shí)施例提供的方法直接復(fù)用用戶在此次登錄前使用過的客戶端數(shù)字證書登錄SSL VPN服務(wù)器,SSL VPN服務(wù)器除驗(yàn)證所述用戶是否持有私鑰以及所述客戶端數(shù)字證書的合法性外,還驗(yàn)證所述客戶端數(shù)字證書的特征值是否有與其對(duì)應(yīng)的用戶名,只有當(dāng)上述驗(yàn)證均通過后,該用戶才算驗(yàn)證通過。本發(fā)明提供的方法由于復(fù)用了用戶之前登錄使用過的客戶端數(shù)字證書,且增加了對(duì)客戶端數(shù)字證書特征值的驗(yàn)證;因此,無需占用網(wǎng)絡(luò)資源向SSL VPN服務(wù)器申請(qǐng)、下載和導(dǎo)入客戶端數(shù)字證書,避免了因申請(qǐng)、下載和導(dǎo)入客戶端數(shù)字證書所產(chǎn)生的大量的冗余數(shù)據(jù);在保證安全性的同時(shí),簡(jiǎn)化了多次登錄用戶的登錄過程,提高了 SSL VPN服務(wù)器的用戶認(rèn)證效率。
【專利附圖】
【附圖說明】
[0019]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。[0020]圖1為本發(fā)明實(shí)施例一提供的用戶認(rèn)證方法的流程示意圖;
[0021]圖2為本發(fā)明實(shí)施例二提供的用戶認(rèn)證方法的一具體實(shí)現(xiàn)流程示意圖;
[0022]圖3為本發(fā)明實(shí)施例二提供的用戶認(rèn)證方法的另一具體實(shí)現(xiàn)流程示意圖;
[0023]圖4為本本發(fā)明實(shí)施例三提供的用戶認(rèn)證方法的信令示意圖;
[0024]圖5為本發(fā)明實(shí)施例四提供的SSL VPN服務(wù)器的結(jié)構(gòu)示意圖;
[0025]圖6為本發(fā)明實(shí)施例五提供的SSL VPN服務(wù)器的結(jié)構(gòu)示意圖;
[0026]圖7為本發(fā)明實(shí)施例六提供的SSL VPN服務(wù)器的結(jié)構(gòu)示意圖;
[0027]圖8為本發(fā)明實(shí)施例七提供的SSL VPN系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0028]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0029]如圖1所示,本發(fā)明實(shí)施例一提供的用戶認(rèn)證方法的流程示意圖。圖1所示實(shí)施例一的執(zhí)行主體為SSL VPN服務(wù)器。如圖1所示,該方法包括:
[0030]步驟101、接收客戶端設(shè)備發(fā)送的用戶登錄請(qǐng)求,所述用戶登錄請(qǐng)求攜帶有用戶在此次登錄之前使用過的客戶端數(shù)字證書。
[0031]步驟102、驗(yàn)證所述客戶端數(shù)字證書的合法性以及所述用戶是否持有所述客戶端數(shù)字證書的私鑰。
[0032]具體地,SSL VPN服務(wù)器根據(jù)客戶端數(shù)字證書,查找簽發(fā)所述客戶端數(shù)字證書的CA根證書,如果找到匹配的CA根證書,則驗(yàn)證所述客戶端數(shù)字證書合法,否則,所述客戶端數(shù)字證書不合法。
[0033]客戶端設(shè)備使用用戶持有的私鑰進(jìn)行簽名,并將簽名值通過SSL通道發(fā)送至所述SSL VPN服務(wù)器。所述SSL VPN使用所述客戶端數(shù)字證書驗(yàn)證所述簽名值的有效性,若該簽名值有效,則說明該用戶擁有所述客戶端數(shù)字證書的私鑰。
[0034]步驟103、若所述用戶持有所述私鑰,且所述客戶端數(shù)字證書合法,則獲取所述客戶端數(shù)字證書的特征值。
[0035]具體地,所述客戶端數(shù)字證書的特征值可以是證書持有者通用名(commonname)、序列號(hào)、郵箱或客戶端證書的MD5哈希值等。
[0036]步驟104、查詢存儲(chǔ)的用戶綁定的特征值與用戶名的關(guān)聯(lián)關(guān)系中是否有與所述特征值對(duì)應(yīng)的用戶名,若有,認(rèn)證通過,否則,認(rèn)證失敗。
[0037]這里需要補(bǔ)充的是:在實(shí)際應(yīng)用中,SSL VPN服務(wù)器可為不同用戶設(shè)定不同的訪問權(quán)限,即所述SSL VPN服務(wù)器查詢出所述特征值與用戶名的關(guān)聯(lián)關(guān)系中有與所述特征值對(duì)應(yīng)的用戶名,該用戶認(rèn)證通過,所述SSL VPN服務(wù)器向該用戶推送所述用戶名對(duì)應(yīng)訪問權(quán)限的指定資源。
[0038]本實(shí)施例一提供的方法直接復(fù)用用戶在此次登錄前使用過的客戶端數(shù)字證書登錄SSL VPN服務(wù)器,SSL VPN服務(wù)器除驗(yàn)證所述用戶是否持有私鑰以及所述客戶端數(shù)字證書的合法性外,還驗(yàn)證所述客戶端數(shù)字證書的特征值是否有與其對(duì)應(yīng)的用戶名,只有當(dāng)上述驗(yàn)證均通過后,該用戶才算驗(yàn)證通過。本實(shí)施例由于復(fù)用了用戶之前登錄使用過的客戶端數(shù)字證書,且增加了對(duì)客戶端數(shù)字證書特征值的驗(yàn)證;因此,無需占用網(wǎng)絡(luò)資源向SSL VPN服務(wù)器申請(qǐng)、下載和導(dǎo)入客戶端數(shù)字證書,避免了因申請(qǐng)、下載和導(dǎo)入客戶端數(shù)字證書所產(chǎn)生的大量的冗余數(shù)據(jù);在保證安全性的同時(shí),簡(jiǎn)化了多次登錄用戶的登錄過程,提高了 SSLVPN服務(wù)器的用戶認(rèn)證效率。
[0039]如圖2所示,本發(fā)明實(shí)施例二提供的用戶認(rèn)證方法的流程示意圖。圖2所示實(shí)施例二的執(zhí)行主體為SSL VPN服務(wù)器。如圖2所示,本實(shí)施例二基于上述實(shí)施例一,在上述實(shí)施例一所述步驟101之前還包括:
[0040]步驟201、獲取用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書。
[0041]具體地,本步驟的一種可能實(shí)現(xiàn)方式如下:
[0042]首先,SSL VPN服務(wù)器獲取所述客戶端設(shè)備的證書存儲(chǔ)區(qū)中存儲(chǔ)的用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書。
[0043]具體地,SSL VPN服務(wù)器向所述客戶端設(shè)備發(fā)送客戶端數(shù)字證書歷史使用信息獲取請(qǐng)求;接收所述客戶端設(shè)備根據(jù)所述獲取請(qǐng)求,返回的攜帶有所述客戶端設(shè)備的證書存儲(chǔ)區(qū)中存儲(chǔ)的用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書的響應(yīng)信息。
[0044]然后,所述SSL VPN服務(wù)器獲取自身預(yù)植入的至少一個(gè)證書授權(quán)中心CA簽發(fā)的客戶端數(shù)字證書。
[0045]隨后,若所述證書存儲(chǔ)區(qū)中的至少一個(gè)客戶端數(shù)字證書與所述自身預(yù)植入的至少一個(gè)CA簽發(fā)的客戶端數(shù)字證書中具有至少一個(gè)相同的客戶端數(shù)字證書,則所述SSL VPN服務(wù)器獲取所述至少一個(gè)相同的客戶端數(shù)字證書。
[0046]其中,所述SSL VPN服務(wù)器獲取到的相同的客戶端數(shù)字證書即為所述用戶在此次登錄之前使用過的客戶端數(shù)字證書。所述SSL VPN服務(wù)器獲取到的所述至少一個(gè)相同的客戶端數(shù)字證書為所述客戶端設(shè)備的證書存儲(chǔ)區(qū)中存儲(chǔ)的用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書的子集。
[0047]步驟202、向所述客戶端設(shè)備發(fā)送第一提示信息,所述第一提示信息用于提示用戶從所述用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書中選出一個(gè)客戶端數(shù)字證書進(jìn)行此次登錄。
[0048]具體地,當(dāng)所述SSL VPN服務(wù)器獲取到所述客戶端設(shè)備的證書存儲(chǔ)區(qū)中存儲(chǔ)的用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書與自身預(yù)植入的至少一個(gè)證書授權(quán)中心CA簽發(fā)的客戶端數(shù)字證書中具有的至少一個(gè)相同的客戶端數(shù)字證書后,向所述客戶端設(shè)備發(fā)送第一提示信息,所述第一提示信息用于提示用戶從所述至少一個(gè)相同的客戶端數(shù)字證書中選出一個(gè)客戶端數(shù)字證書進(jìn)行此次登錄。
[0049]進(jìn)一步地,如圖3所示,上述實(shí)施例二所述的用戶認(rèn)證方法,步驟202之后,還包括:
[0050]步驟203、確定所述用戶是否為未綁定用戶。
[0051]本步驟的一種可能實(shí)現(xiàn)方式為:SSL VPN服務(wù)器根據(jù)用戶此次登錄時(shí)使用的用戶名,查詢所述SSL VPN服務(wù)器中存儲(chǔ)的特征值與用戶名的對(duì)應(yīng)關(guān)系中,是否存在有所述用戶此次登錄時(shí)使用的用戶名,若有,則所述用戶為已綁定用戶,否則,所述用戶為未綁定用戶?;蛘?,若所述SSL VPN服務(wù)器內(nèi)存儲(chǔ)有綁定用戶列表,則本步驟的另一種可能實(shí)現(xiàn)方式為:所述SSL VPN服務(wù)器直接查詢過所述綁定用戶列表,若所述列表中存在有所述用戶此次登錄時(shí)使用的用戶名,則所述用戶為已綁定用戶,否則,所述用戶為未綁定用戶。
[0052]步驟204、若所述用戶為未綁定用戶,則向所述客戶端設(shè)備發(fā)送第二提示信息,所述第二提示信息用于提示用戶是否將選出的客戶端數(shù)字證書與所述用戶此次登錄時(shí)使用的用戶名綁定。
[0053]步驟205、接收所述客戶端設(shè)備在所述用戶選擇綁定時(shí),發(fā)送的攜帶有客戶端數(shù)字證書的特征值以及所述用戶名的響應(yīng)信息。
[0054]具體地,當(dāng)用戶選擇了綁定后,所述客戶端設(shè)備提取綁定的客戶端數(shù)字證書的特征值,然后將所述特征值與綁定的用戶名發(fā)送至所述SSL VPN服務(wù)器。
[0055]步驟206、將所述特征值和所述用戶名關(guān)聯(lián)并存儲(chǔ)。
[0056]若所述SSL VPN服務(wù)器內(nèi)還存儲(chǔ)有綁定用戶列表,則本步驟206具體為:將所述用戶此次登錄使用的用戶名存儲(chǔ)到綁定用戶列表中,并將所述特征值和所述用戶名關(guān)聯(lián)并存儲(chǔ)。所述SSL VPN服務(wù)器將所述特征值和所述用戶名關(guān)聯(lián)并存儲(chǔ)后,即等待接收所述用戶使用選出的客戶端數(shù)字證書登錄SSL VPN服務(wù)器時(shí),所述客戶端設(shè)備發(fā)送的攜帶有選出的客戶端數(shù)字證書的用戶登錄請(qǐng)求,并根據(jù)所述客戶端數(shù)字證書驗(yàn)證所述用戶,即執(zhí)行步驟101 ?104。
[0057]這里需要補(bǔ)充的是:當(dāng)所述用戶為已綁定用戶,則所述SSL VPN服務(wù)器不執(zhí)行上述步驟204?205以指示用戶進(jìn)行綁定,而直接執(zhí)行步驟101?104,如圖3所示。
[0058]下面結(jié)合一具體應(yīng)用實(shí)例,對(duì)本發(fā)明實(shí)施例提供的用戶認(rèn)證方法作詳細(xì)的說明。如圖4所示,本發(fā)明實(shí)施例三提供的用戶認(rèn)證方法的信令示意圖。如圖4所示,本實(shí)施例三所述的方法包括:
[0059]步驟301、SSL VPN服務(wù)器接收客戶端設(shè)備發(fā)送的攜帶有用戶此次登錄使用的用戶名的第一登錄請(qǐng)求。
[0060]步驟302、SSL VPN服務(wù)器向客戶端設(shè)備發(fā)送獲取請(qǐng)求。所述客戶端設(shè)備根據(jù)所述獲取請(qǐng)求,向所述SSL VPN服務(wù)器返回?cái)y帶有所述客戶端設(shè)備證書存儲(chǔ)區(qū)中的至少一個(gè)客戶端數(shù)字證書的獲取響應(yīng)。
[0061]步驟303、SSL VPN服務(wù)器獲取自身預(yù)植入的至少一個(gè)CA簽發(fā)的客戶端數(shù)字證書,并比較所述客戶端設(shè)備證書存儲(chǔ)區(qū)中的至少一個(gè)客戶端數(shù)字證書與自身預(yù)植入的至少一個(gè)CA簽發(fā)的客戶端數(shù)字證書中是否有相同的客戶端數(shù)字證書,若有,則獲取相同客戶端數(shù)字證書。
[0062]步驟304、SSL VPN服務(wù)器向所述客戶端設(shè)備發(fā)送第一提示信息,該第一提示信息用于提示用戶從所述至少一個(gè)相同的客戶端數(shù)字證書中選出一個(gè)客戶端數(shù)字證書登錄SSL VPN服務(wù)器。
[0063]步驟305、SSL VPN服務(wù)器根據(jù)所述用戶此次登錄使用的用戶名,確定所述用戶是否為未綁定用戶,若是,則向所述客戶端設(shè)備發(fā)送第二提示信息,所述第二提示信息用于提示用戶是否將選出的客戶端數(shù)字證書與所述用戶此次登錄時(shí)使用的用戶名綁定。否則,直接進(jìn)入步驟307。
[0064]步驟306、若用戶選擇綁定,則客戶端設(shè)備提取與所述用戶名綁定的客戶端數(shù)字證書的特征值,并將所述特征值和所述用戶名發(fā)送到SSL VPN服務(wù)器,以使所述SSL VPN服務(wù)器將所述特征值與用戶名關(guān)聯(lián)并存儲(chǔ)。
[0065]步驟307、SSL VPN服務(wù)器接收客戶端設(shè)備發(fā)送的攜帶有用戶選出的客戶端數(shù)字證書的第二登錄請(qǐng)求后,SSL VPN服務(wù)器驗(yàn)證所述用戶是否持有私鑰以及所述選出的客戶端數(shù)字證書的合法性。
[0066]步驟308、若所述用戶持有所述私鑰且所述選出的客戶端數(shù)字證書合法,則所述SSL VPN服務(wù)器獲取所述選出的客戶端數(shù)字證書的特征值,并308查詢存儲(chǔ)的用戶綁定的特征值與用戶名的關(guān)聯(lián)關(guān)系中是否有與所述特征值對(duì)應(yīng)的用戶名,若有,認(rèn)證通過,并推送所述用戶名對(duì)應(yīng)的資源,否則,認(rèn)證失敗。
[0067]需要說明的是:對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
[0068]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0069]如圖5所示,本發(fā)明實(shí)施例四提供的SSL VPN服務(wù)器的結(jié)構(gòu)示意圖。如圖5所示,本實(shí)施例四包括:第一接收模塊1、驗(yàn)證模塊2、第一獲取模塊3和查詢認(rèn)證模塊4。其中,所述第一接收模塊I用于接收客戶端設(shè)備發(fā)送的用戶登錄請(qǐng)求,所述用戶登錄請(qǐng)求攜帶有用戶在此次登錄之前使用過的客戶端數(shù)字證書。所述驗(yàn)證模塊2用于驗(yàn)證所述客戶端數(shù)字證書的合法性以及所述用戶是否持有所述客戶端數(shù)字證書的私鑰。所述第一獲取模塊3用于當(dāng)所述用戶持有所述私鑰,且所述客戶端數(shù)字證書合法時(shí),獲取所述客戶端數(shù)字證書的特征值。所述查詢認(rèn)證模塊4用于查詢存儲(chǔ)的用戶綁定的特征值與用戶名的關(guān)聯(lián)關(guān)系中是否有與所述特征值對(duì)應(yīng)的用戶名,若有,認(rèn)證通過,否則,認(rèn)證失敗。
[0070]本實(shí)施例SSL VPN服務(wù)器接受用戶復(fù)用在此次登錄前使用過的客戶端數(shù)字證書的登錄,SSL VPN服務(wù)器除驗(yàn)證所述用戶是否持有私鑰以及所述客戶端數(shù)字證書的合法性夕卜,還驗(yàn)證所述客戶端數(shù)字證書的特征值是否有與其對(duì)應(yīng)的用戶名,只有當(dāng)上述驗(yàn)證均通過后,該用戶才算驗(yàn)證通過。本實(shí)施例由于復(fù)用了用戶之前登錄使用過的客戶端數(shù)字證書,且增加了對(duì)客戶端數(shù)字證書特征值的驗(yàn)證;因此,無需占用網(wǎng)絡(luò)資源向SSL VPN服務(wù)器申請(qǐng)、下載和導(dǎo)入客戶端數(shù)字證書,避免了因申請(qǐng)、下載和導(dǎo)入客戶端數(shù)字證書所產(chǎn)生的大量的冗余數(shù)據(jù);在保證安全性的同時(shí),簡(jiǎn)化了多次登錄用戶的登錄過程,提高了 SSL VPN服務(wù)器的用戶認(rèn)證效率。
[0071]進(jìn)一步地,如圖6所示,本發(fā)明實(shí)施例五提供的SSL VPN服務(wù)器的結(jié)構(gòu)示意圖。如圖6所示,本實(shí)施例五基于上述實(shí)施例四,在實(shí)施例四的基礎(chǔ)上,還包括:第二獲取模塊5和第一發(fā)送模塊6。其中,所述第二獲取模塊5用于獲取用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書。所述第一發(fā)送模塊6用于向客戶端設(shè)備發(fā)送第一提示信息,所述第一提示信息用于提示用戶從所述用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書中選出一個(gè)客戶端數(shù)字證書進(jìn)行此次登錄。[0072]其中,所述第二獲取模塊,包括:第一獲取單元、第二獲取單元和第三獲取單元。其中,所述第一獲取單元用于獲取所述客戶端設(shè)備的證書存儲(chǔ)區(qū)中存儲(chǔ)的用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書。所述第二獲取單元用于獲取自身預(yù)植入的至少一個(gè)證書授權(quán)中心CA簽發(fā)的客戶端數(shù)字證書。所述第三獲取單元用于當(dāng)所述證書存儲(chǔ)區(qū)中的至少一個(gè)客戶端數(shù)字證書與所述自身預(yù)植入的至少一個(gè)CA簽發(fā)的客戶端數(shù)字證書中具有至少一個(gè)相同的客戶端數(shù)字證書時(shí),獲取所述至少一個(gè)相同的客戶端數(shù)字證書。其中,所述相同的客戶端數(shù)字證書即為所述用戶再次登錄之前使用過的客戶端數(shù)字證書。相應(yīng)地,本實(shí)施例中,所述的第一發(fā)送模塊具體用于向客戶端設(shè)備發(fā)送第一提示信息,所述第一提示信息用于提示用戶從所述第三獲取單元獲取到的所述至少一個(gè)相同的客戶端數(shù)字證書中選出一個(gè)客戶端數(shù)字證書進(jìn)行此次登錄。
[0073]具體地,所述第一獲取單元包括:發(fā)送子單元和接收子單元。所述發(fā)送子單元用于向所述客戶端設(shè)備發(fā)送客戶端數(shù)字證書歷史使用信息獲取請(qǐng)求。所述接收子單元用于接收所述客戶端設(shè)備根據(jù)所述獲取請(qǐng)求,返回的攜帶有所述客戶端設(shè)備的證書存儲(chǔ)區(qū)中存儲(chǔ)的用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書的響應(yīng)信息。
[0074]再進(jìn)一步地,如圖7所示,本發(fā)明實(shí)施例六提供的SSL VPN服務(wù)器的結(jié)構(gòu)示意圖。如圖7所示,本實(shí)施例六基于上述實(shí)施例五,在實(shí)施例五的基礎(chǔ)上,還包括:確定模塊7、第二發(fā)送模塊8、第二接收模塊9和存儲(chǔ)模塊10。其中,所述確定模塊7用于確定所述用戶是否為已綁定用戶。所述第二發(fā)送模塊8用于當(dāng)所述用戶不為已綁定用戶時(shí),向所述客戶端設(shè)備發(fā)送第二提示信息,所述第二提示信息用于提示用戶是否將選出的客戶端數(shù)字證書與所述用戶此次登錄時(shí)使用的用戶名綁定。所述第二接收模塊9用于接收所述客戶端設(shè)備在所述用戶選擇綁定時(shí),發(fā)送的攜帶有客戶端數(shù)字證書的特征值以及所述用戶名的響應(yīng)信息。所述存儲(chǔ)模塊10用于將所述特征值和所述用戶名關(guān)聯(lián)并存儲(chǔ)。
[0075]如圖8所示,本發(fā)明實(shí)施例七提供的SSL VPN系統(tǒng)的結(jié)構(gòu)示意圖。如圖7所示,本實(shí)施例七包括:客戶端設(shè)備20和SSL VPN服務(wù)器30。其中,所述SSL VPN服務(wù)器30用于接收客戶端設(shè)備20發(fā)送的用戶登錄請(qǐng)求,所述用戶登錄請(qǐng)求攜帶有用戶在此次登錄之前使用過的客戶端數(shù)字證書;驗(yàn)證所述客戶端數(shù)字證書的合法性以及所述用戶是否持有所述客戶端數(shù)字證書的私鑰;若所述用戶持有所述私鑰,且所述客戶端數(shù)字證書合法,則獲取所述客戶端數(shù)字證書的特征值;查詢存儲(chǔ)的用戶綁定的特征值與用戶名的關(guān)聯(lián)關(guān)系中是否有與所述特征值對(duì)應(yīng)的用戶名,若有,認(rèn)證通過,否則,認(rèn)證失敗。
[0076]本實(shí)施例用戶直接復(fù)用在此次登錄前使用過的客戶端數(shù)字證書登錄SSL VPN服務(wù)器,SSL VPN服務(wù)器除驗(yàn)證所述用戶是否持有私鑰以及所述客戶端數(shù)字證書的合法性外,還驗(yàn)證所述客戶端數(shù)字證書的特征值是否有與其對(duì)應(yīng)的用戶名,只有當(dāng)上述驗(yàn)證均通過后,該用戶才算驗(yàn)證通過。本實(shí)施例由于復(fù)用了用戶之前登錄使用過的客戶端數(shù)字證書,且增加了對(duì)客戶端數(shù)字證書特征值的驗(yàn)證;因此,無需占用網(wǎng)絡(luò)資源向SSL VPN服務(wù)器申請(qǐng)、下載和導(dǎo)入客戶端數(shù)字證書,避免了因申請(qǐng)、下載和導(dǎo)入客戶端數(shù)字證書所產(chǎn)生的大量的冗余數(shù)據(jù);在保證安全性的同時(shí),簡(jiǎn)化了多次登錄用戶的登錄過程,提高了 SSL VPN服務(wù)器的用戶認(rèn)證效率。
[0077]在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。[0078]可以理解的是,上述方法及設(shè)備中的相關(guān)特征可以相互參考。另外,上述實(shí)施例中的“第一”、“第二”等是用于區(qū)分各實(shí)施例,而并不代表各實(shí)施例的優(yōu)劣。
[0079]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
[0080]在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0081]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
[0082]最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種用戶認(rèn)證方法,其特征在于,包括: 接收客戶端設(shè)備發(fā)送的用戶登錄請(qǐng)求,所述用戶登錄請(qǐng)求攜帶有用戶在此次登錄之前使用過的客戶端數(shù)字證書; 驗(yàn)證所述客戶端數(shù)字證書的合法性以及所述用戶是否持有所述客戶端數(shù)字證書的私鑰; 若所述用戶持有所述私鑰,且所述客戶端數(shù)字證書合法,則獲取所述客戶端數(shù)字證書的特征值; 查詢存儲(chǔ)的用戶綁定的特征值與用戶名的關(guān)聯(lián)關(guān)系中是否有與所述特征值對(duì)應(yīng)的用戶名,若有,認(rèn)證通過,否則,認(rèn)證失敗。
2.根據(jù)權(quán)利要求1所述的用戶認(rèn)證方法,其特征在于,所述接收客戶端設(shè)備發(fā)送的用戶登錄請(qǐng)求之前,還包括: 獲取用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書; 向所述客戶端設(shè)備發(fā)送第一提示信息,所述第一提示信息用于提示用戶從所述用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書中選出一個(gè)客戶端數(shù)字證書進(jìn)行此次登錄。
3.根據(jù)權(quán)利要求2所述的用戶認(rèn)證方法,其特征在于,所述獲取用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書,包括:` 獲取所述客戶端設(shè)備的證書存儲(chǔ)區(qū)中存儲(chǔ)的用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書; 獲取自身預(yù)植入的至少一個(gè)證書授權(quán)中心CA簽發(fā)的客戶端數(shù)字證書; 若所述證書存儲(chǔ)區(qū)中的至少一個(gè)客戶端數(shù)字證書與所述自身預(yù)植入的至少一個(gè)CA簽發(fā)的客戶端數(shù)字證書中具有至少一個(gè)相同的客戶端數(shù)字證書,則獲取所述至少一個(gè)相同的客戶端數(shù)字證書; 相應(yīng)地,所述向所述客戶端設(shè)備發(fā)送第一提示信息,所述第一提示信息用于提示用戶從所述用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書中選出一個(gè)客戶端數(shù)字證書進(jìn)行此次登錄,具體為: 向所述客戶端設(shè)備發(fā)送第一提示信息,所述第一提示信息用于提示用戶從獲取到的所述至少一個(gè)相同的客戶端數(shù)字證書中選出一個(gè)客戶端數(shù)字證書進(jìn)行此次登錄。
4.根據(jù)權(quán)利要求3所述的用戶認(rèn)證方法,其特征在于,所述獲取所述客戶端設(shè)備的證書存儲(chǔ)區(qū)中存儲(chǔ)的用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書,包括: 向所述客戶端設(shè)備發(fā)送客戶端數(shù)字證書歷史使用信息獲取請(qǐng)求; 接收所述客戶端設(shè)備根據(jù)所述獲取請(qǐng)求,返回的攜帶有所述客戶端設(shè)備的證書存儲(chǔ)區(qū)中存儲(chǔ)的用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書的響應(yīng)信息。
5.根據(jù)權(quán)利要求2?4中任一所述的用戶認(rèn)證方法,其特征在于,所述向客戶端設(shè)備發(fā)送第一提示信息之后,還包括: 確定所述用戶是否為未綁定用戶; 若所述用戶為未綁定用戶,則向所述客戶端設(shè)備發(fā)送第二提示信息,所述第二提示信息用于提示用戶是否將選出的客戶端數(shù)字證書與所述用戶此次登錄時(shí)使用的用戶名綁定;接收所述客戶端設(shè)備在所述用戶選擇綁定時(shí),發(fā)送的攜帶有客戶端數(shù)字證書的特征值以及所述用戶名的響應(yīng)信息; 將所述特征值和所述用戶名關(guān)聯(lián)并存儲(chǔ)。
6.一種SSL VPN服務(wù)器,其特征在于,包括: 第一接收模塊,用于接收客戶端設(shè)備發(fā)送的用戶登錄請(qǐng)求,所述用戶登錄請(qǐng)求攜帶有用戶在此次登錄之前使用過的客戶端數(shù)字證書; 驗(yàn)證模塊,用于驗(yàn)證所述客戶端數(shù)字證書的合法性以及所述用戶是否持有所述客戶端數(shù)字證書的私鑰; 第一獲取模塊,用于當(dāng)所述用戶持有所述私鑰,且所述客戶端數(shù)字證書合法時(shí),獲取所述客戶端數(shù)字證書的特征值; 查詢認(rèn)證模塊,用于查詢存儲(chǔ)的用戶綁定的特征值與用戶名的關(guān)聯(lián)關(guān)系中是否有與所述特征值對(duì)應(yīng)的用戶名,若有,認(rèn)證通過,否則,認(rèn)證失敗。
7.根據(jù)權(quán)利要求6所述的SSLVPN服務(wù)器,其特征在于,還包括: 第二獲取模塊,用于獲取用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書;第一發(fā)送模塊,用于向客戶端設(shè)備發(fā)送第一提示信息,所述第一提示信息用于提示用戶從所述用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書中選出一個(gè)客戶端數(shù)字證書進(jìn)行此次登錄。
8.根據(jù)權(quán)利要求7所述的SSLVPN服務(wù)器,其特征在于,所述第二獲取模塊,包括: 第一獲取單元,用于獲取所述客戶端設(shè)備的證書存儲(chǔ)區(qū)中存儲(chǔ)的用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù).字證書; 第二獲取單元,用于獲取自身預(yù)植入的至少一個(gè)證書授權(quán)中心CA簽發(fā)的客戶端數(shù)字證書; 第三獲取單元,用于當(dāng)所述證書存儲(chǔ)區(qū)中的至少一個(gè)客戶端數(shù)字證書與所述自身預(yù)植入的至少一個(gè)CA簽發(fā)的客戶端數(shù)字證書中具有至少一個(gè)相同的客戶端數(shù)字證書時(shí),獲取所述至少一個(gè)相同的客戶端數(shù)字證書; 相應(yīng)地,所述第一發(fā)送模塊,具體用于向客戶端設(shè)備發(fā)送第一提示信息,所述第一提示信息用于提示用戶從所述第三獲取單元獲取到的所述至少一個(gè)相同的客戶端數(shù)字證書中選出一個(gè)客戶端數(shù)字證書進(jìn)行此次登錄。
9.根據(jù)權(quán)利要求7所述的SSLVPN服務(wù)器,其特征在于,所述第一獲取單元,包括: 發(fā)送子單元,用于向所述客戶端設(shè)備發(fā)送客戶端數(shù)字證書歷史使用信息獲取請(qǐng)求; 接收子單元,用于接收所述客戶端設(shè)備根據(jù)所述獲取請(qǐng)求,返回的攜帶有所述客戶端設(shè)備的證書存儲(chǔ)區(qū)中存儲(chǔ)的用戶在此次登錄之前使用過的至少一個(gè)客戶端數(shù)字證書的響應(yīng)信息。
10.根據(jù)權(quán)利要求6?9中任一所述的SSLVPN服務(wù)器,其特征在于,還包括: 確定模塊,用于確定所述用戶是否為已綁定用戶; 第二發(fā)送模塊,用于當(dāng)所述用戶不為已綁定用戶時(shí),向所述客戶端設(shè)備發(fā)送第二提示信息,所述第二提示信息用于提示用戶是否將選出的客戶端數(shù)字證書與所述用戶此次登錄時(shí)使用的用戶名綁定; 第二接收模塊,用于接收所述客戶端設(shè)備在所述用戶選擇綁定時(shí),發(fā)送的攜帶有客戶端數(shù)字證書的特征值以及所述用戶名的響應(yīng)信息; 存儲(chǔ)模塊,用于將所述特征值和所述用戶名關(guān)聯(lián)并存儲(chǔ)。
11.一種SSL VPN系統(tǒng),其特征在于,包括:客戶端設(shè)備以及上述權(quán)利要求6?10中任一所述的SSL VPN服務(wù)器。
【文檔編號(hào)】H04L9/32GK103427995SQ201310334684
【公開日】2013年12月4日 申請(qǐng)日期:2013年8月2日 優(yōu)先權(quán)日:2013年8月2日
【發(fā)明者】劉桂源 申請(qǐng)人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司