一種按需轉換ssl認證方式以實現(xiàn)資源訪問控制的方法
【專利摘要】本發(fā)明一種按需轉換SSL認證方式以實現(xiàn)資源訪問控制的方法,是在客戶端通過互聯(lián)網(wǎng)連接SSL服務器構成的系統(tǒng)上對SSL服務器進行常規(guī)的SSL功能設置、在其中導入用于客戶端證書認證的根證書、并對其上的被訪問資源設置訪問控制規(guī)則、以客戶端請求與訪問控制規(guī)則匹配與否確定其與SSL服務器連接的認證方式,從而實現(xiàn)對資源訪問的控制連接。本發(fā)明從全局上看,是單向認證模式,只針對訪問控制規(guī)則要求的資源進行雙向認證,既發(fā)揮了原有的高效率,又同時提供了對關鍵資源的高安全性保證。本發(fā)明可自動切換SSL認證方式,不影響其它連接。
【專利說明】一種按需轉換SSL認證方式以實現(xiàn)資源訪問控制的方法
【技術領域】
[0001]本發(fā)明涉及網(wǎng)絡應用領域,特別涉及一種按需轉換SSL認證方式以實現(xiàn)資源訪問控制的方法。
【背景技術】
[0002]伴隨著網(wǎng)絡技術的發(fā)展,黑客活動也日益增多,尤其是在電子商務、網(wǎng)上銀行等互聯(lián)網(wǎng)業(yè)務領域,信息交互的安全性也因此成為大家關注的焦點。SSL協(xié)議,能夠在通信雙方建立起一條加密通道,使傳輸?shù)臄?shù)據(jù)得到有效控制,目前已經(jīng)得到了廣泛應用。
[0003]SSL (secure sockets layer安全套接字層)協(xié)議位于TCP/IP協(xié)議與各種應用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。SSL協(xié)議可分為兩層:SSL記錄協(xié)議(SSL RecordProtocol):它建立在可靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。SSL握手協(xié)議(SSL Handshake Protocol):它建立在SSL記錄協(xié)議之上,用于在實際的數(shù)據(jù)傳輸開始前,通訊雙方進行身份認證、協(xié)商加密算法、交換加密密鑰
坐寸。
[0004]SSL協(xié)議提供的服務主要有:
[0005]1)對客戶端和服務器的身份進行認證,確保數(shù)據(jù)發(fā)送到正確的客戶端和服務器;
[0006]2)加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊??;
[0007]3)維護數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過程中不被改變。
[0008]SSL協(xié)議的工作流程:
[0009]1)客戶端向服務器發(fā)送一個開始消息“Client Hello”,發(fā)起一個新的會話請求;
[0010]2)客戶端和服務器協(xié)商SSL協(xié)議的版本號,加密算法組件,壓縮算法,是否重用原來的會話ID等信息;
[0011]3)服務器向客戶端發(fā)送數(shù)字證書,供客戶端對其進行身份認證。
[0012]如果服務器也需要對客戶端進行身份認證,則需向客戶端發(fā)送“客戶端證書”請求消息,客戶端收到后,會向服務器發(fā)送其數(shù)字證書。任何一方的身份認證失敗,都會導致該SSL連接關閉,如果認證成功,則繼續(xù)。
[0013]4)客戶端和服務器利用非對稱加密算法,產(chǎn)生并交換預主密鑰。
[0014]5)客戶端和服務器分別計算出主密鑰,并產(chǎn)生出用于數(shù)據(jù)加解密的密鑰。
[0015]6)雙方確認對方已擁有正確的密鑰后,SSL協(xié)議握手完成。
[0016]7)利用在2)中協(xié)商的對稱加密算法及4)中產(chǎn)生的密鑰,對數(shù)據(jù)加密后,傳輸給對方。
[0017]根據(jù)認證方式的不同,SSL協(xié)議分為單向認證和雙向認證兩種。單向認證即服務器需要向客戶端提供數(shù)字證書,客戶端對其進行身份驗證;雙向認證即客戶端和服務器雙方需要分別向對方提供數(shù)字證書,并對對方證書進行身份驗證。很顯然,雙向認證方式能夠提供更為安全的保證,但由于服務器對客戶端證書的驗證,需要花費時間,大大降低了數(shù)據(jù)傳輸?shù)男省0018]目前的技術方案中,一個服務器(唯一的ip地址+端口)對外提供SSL服務,多是使用單一認證方式,要么使用單向認證,要么使用雙向認證。無法最大程度地兼顧效率與安全性。
【發(fā)明內容】
[0019]針對上述已有技術的不足,本發(fā)明的目的是提出一種按需轉換SSL認證方式以實現(xiàn)資源訪問控制的方法。使一個SSL服務器能夠同時使用兩種認證方式,客戶端訪問普通內容時,使用單向認證方式,當訪問關鍵性數(shù)據(jù)、敏感信息或進行保密性要求較高的業(yè)務交易時,自動將單向認證轉換成雙向認證方式。
[0020]為實現(xiàn)上述目的,本發(fā)明提出一種按需轉換SSL認證方式以實現(xiàn)資源訪問控制的方法,該方法的實施是基于客戶端通過互聯(lián)網(wǎng)連接SSL服務器構成的系統(tǒng),所述SSL服務器包括有SSL服務模塊,所述系統(tǒng)包括有多個連接,每個連接包括有客戶端IP地址、客戶端端口、SSL服務器IP地址、SSL服務器端口及TCP協(xié)議的五元組所標識的信息通道,該方法包括以下基本步驟:
[0021]步驟1,對SSL服務器進行常規(guī)的SSL功能設置;
[0022]步驟2,在SSL服務器中導入用于客戶端證書認證的根證書;
[0023]步驟3,對SSL服務器上的被訪問資源設置訪問控制規(guī)則;
[0024]步驟4,判斷客戶端請求與上述訪問控制規(guī)則是否匹配,確定客戶端請求與SSL服務器連接的認證方式,按照其認證方式完成對資源訪問控制的連接。
[0025]進一步地,上述步驟4還包括以下具體步驟:
[0026]步驟5,客戶端請求通過互聯(lián)網(wǎng)訪問上述SSL服務器,首先進行單向認證的SSL協(xié)議握手,然后;
[0027]步驟6,SSL服務器解析客戶端請求,與上述已設置的訪問控制規(guī)則進行匹配,若不相匹配,則進入單向認證流程,若匹配,表示需要進行雙向認證,然后;
[0028]步驟7,在上述相匹配被訪問資源的連接上設置動態(tài)雙向認證標志;
[0029]步驟8,客戶端請求匹配到上述被訪問資源連接上設置的動態(tài)雙向認證標志時,觸發(fā)SSL模塊對所述客戶端請求的連接從單向認證向雙向認證轉換;
[0030]步驟9,SSL服務器請求所述客戶端發(fā)送數(shù)字證書;
[0031]步驟10,SSL服務器驗證客戶端發(fā)來的數(shù)字證書,根據(jù)上述已導入的根證書進行驗證,如果驗證合格,則雙向SSL握手繼續(xù)進行,并在該連接上設置“客戶端認證通過”的標志,若驗證不合格,則此SSL連接失敗;
[0032]步驟11,上述客戶端數(shù)字證書驗證合格且該連接完成雙向SSL握手之后,SSL服務器對客戶端請求再次與訪問控制規(guī)則匹配,若客戶端請求與上述訪問控制規(guī)則不相匹配,則進入單向認證流程;若匹配,需要進一步校驗步驟10中設置的“客戶端認證通過”標志,若該標志存在,然后;
[0033]步驟12,完成上述客戶端請求與SSL服務器中受控制訪問資源的連接。
[0034]本發(fā)明實施方式與現(xiàn)有技術相比,主要區(qū)別及其效果在于:本發(fā)明對于服務器站點而言,從全局上看,是單向認證模式,只對根據(jù)客戶實際需要控制的資源提供雙向認證模式,既發(fā)揮了 SSL單向認證的高效率,又同時提供了對需控制的資源進行雙向認證帶來的高安全性保證,特別地,本發(fā)明對需控制資源的連接可自動切換SSL認證方式,不影響其它連接。
【專利附圖】
【附圖說明】
[0035]圖1是實施本發(fā)明的第一種系統(tǒng)結構示意圖;
[0036]圖2是實施本發(fā)明的第二種系統(tǒng)結構示意圖;
[0037]圖3是本發(fā)明按需轉換SSL認證方式以實現(xiàn)資源訪問控制方法的關鍵步驟示意圖;
[0038]圖4是本發(fā)明按需轉換SSL認證方式以實現(xiàn)資源訪問控制方法其實施系統(tǒng)運行后的流程框圖。
【具體實施方式】
[0039]在以下的敘述中,為了使讀者更好地理解本申請而提出了許多技術細節(jié)。但是,本領域的普通技術人員可以理解,即使沒有這些技術細節(jié)和基于以下各實施方式的種種變化和修改,也可以實現(xiàn)本申請各權利要求所要求控制的技術方案。
[0040]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明的實施方式作進一步地詳細描述。
[0041]如圖1所示,本發(fā)明方法的實施是基于客戶端101通過互聯(lián)網(wǎng)102連接SSL服務器103構成的系統(tǒng),在本發(fā)明中,連接表示一個五元組(客戶端IP地址,客戶端端口,服務器IP地址,服務器端口,TCP協(xié)議)所標識的信息通道,在客戶端與SSL服務器之間可以創(chuàng)建多條連接;SSL服務器特指包括SSL服務模塊的服務器,即在一個特定的IP地址與端口號上運行SSL服務。如圖2,本發(fā)明方法也可實施在由客戶端101通過互聯(lián)網(wǎng)102連接負載均衡服務器104及后臺服務器105構成的系統(tǒng)中,其中負載均衡服務器中包括SSL虛擬服務模塊。如圖1-3所示,本發(fā)明方法包括以下基本步驟:
[0042]步驟1,對SSL服務器進行常規(guī)的SSL功能設置201,例如導入密鑰和證書等操作,同時將此服務器SSL認證方式設置為單向認證201,所述的設置為單向認證是指對該SSL服務器的全局性認證方式設置為單向認證;如圖2所示,若采用包括SSL虛擬服務模塊的負載均衡器實施系統(tǒng),例如Array APV系列設備,在SSL虛擬服務的配置界面中,選擇不需要客戶端認證方式,即為單向認證;
[0043]步驟2,在SSL服務器中導入用于客戶端證書認證的根證書202,當單向認證自動切換成雙向認證時,SSL服務器需要向客戶端提供根證書的內容,并用此根證書對客戶端證書進行證書驗證;
[0044]步驟3,對SSL服務器上的被訪問資源設置訪問控制規(guī)則203,所述訪問控制規(guī)則可以資源訪問控制列表的形式存于SSL服務器內,比如對無需控制的網(wǎng)頁或文件的訪問規(guī)則設置為只進行SSL單向認證,對需控制的網(wǎng)頁或文件設置為SSL雙向認證;在實際應用中,根據(jù)需要,可將少數(shù)關鍵網(wǎng)頁或文件設置成雙向認證,而其它多數(shù)網(wǎng)頁或文件采用單向認證,例如對index, html (網(wǎng)站的默認主頁,Hypertext Markup Language,超文本標記語言)頁面只要求單向認證,而對fund, html則要求使用雙向認證;也可以將需控制的多數(shù)網(wǎng)頁面或文件設置成雙向認證,其它少數(shù)無需控制的網(wǎng)頁或文件采用單向認證;[0045]步驟4,判斷客戶端請求與上述訪問控制規(guī)則是否匹配,確定客戶端請求與SSL服務器連接的認證方式,按照其認證方式完成對資源訪問控制的連接204,例如上述,網(wǎng)頁中包含fund, html的需要進行雙向認證:當客戶端請求訪問上述需控制資源網(wǎng)頁時,只有客戶端證書校驗合格才能成功連接訪問服務器;而不需要進行雙向認證的網(wǎng)頁或文件,單向認證后即可連接訪問服務器。
[0046]進一步地,上述步驟4包括以下具體步驟:
[0047]步驟5,客戶端請求通過互聯(lián)網(wǎng)訪問上述SSL服務器,首先進行單向認證的SSL協(xié)議握手301,然后;
[0048]步驟6,SSL服務器解析客戶端請求,與上述已設置的訪問控制規(guī)則進行匹配302,若不相匹配,則進入單向認證流程,若匹配,表示需要進行雙向認證,例如解析URL(Uniform/Universal Resource Locator,網(wǎng)頁地址),與上述資源訪問控制列表中所配置的規(guī)則進行匹配302,若客戶端請求的網(wǎng)頁與上述資源訪問控制列表中的任何一項均不相匹配,則進入單向認證流程313 ;若匹配,比如包含fund, html則表示需要進行雙向認證,然后;
[0049]步驟7,在上述相匹配被訪問資源的連接上設置動態(tài)雙向認證標志303,此處的設置是動態(tài)設置,并且只針對于該連接,區(qū)別于步驟1中對服務器進行全局性的SSL單向認證設置;
[0050]步驟8,客戶端請求匹配到上述被訪問資源連接上設置的動態(tài)雙向認證標志時,觸發(fā)SSL模塊對所述客戶端請求的連接從單向認證向雙向認證轉換304,此時SSL服務器向客戶端發(fā)送hello request消息,客戶端在收到hellorequest之后,會重新發(fā)起新的SSL握手請求304 ;
[0051]步驟9,SSL服務器請求所述客戶端發(fā)送數(shù)字證書305,SSL服務器在收到客戶端的client hello之后,將會向客戶端發(fā)送certificate request (證書請求),即請求客戶端發(fā)送數(shù)字證書305 ;
[0052]步驟10,SSL服務器驗證客戶端發(fā)來的數(shù)字證書,根據(jù)上述已導入的根證書進行驗證306,若驗證不合格,則此SSL連接失敗312,合格,則雙向SSL協(xié)議握手繼續(xù)進行,并在該連接上設置“客戶端認證通過”的標志307,
[0053]步驟11,上述客戶端數(shù)字證書驗證合格且該連接完成雙向SSL握手之308后,SSL服務器對客戶端請求再次與訪問控制規(guī)則匹配309,即SSL服務器解析上述客戶端請求與資源訪問控制列表中所配置的訪問規(guī)則進行匹配,通常,此時的請求頁面與之前的是相同的,但是理論上講,此次發(fā)送的客戶端請求可以與之前的請求不同,為保險起見,需要再次匹配;若客戶端請求與上述訪問控制規(guī)則不相匹配,則進入單向認證流程313 ;若匹配,比如包含fund, html表示需要進行雙向認證的,需要進一步校驗步驟10中設置的“客戶端認證通過”標志310,若該標志存在,然后;
[0054]步驟12,完成上述客戶端請求與SSL服務器中受控制訪問資源的連接311。
[0055]再如圖2所示,以ArrayNetworks的負載均衡器APV8600為例,給出本發(fā)明的一個實際應用,某單位項目我們按照本發(fā)明方法可以按以下步驟完成:
[0056]a.配置三臺后臺服務器rsl 10.3.1.20,
[0057]rs2 10.3.1.21,[0058]rs3 10.3.1.22 ;
[0059]b.配置服務器負載均衡服務vsl,IP地址為220.57.54.88,端口為443 ;
[0060]c.將 vs 1 與 rsl, rs2, rs3 綁定;
[0061]d.配置 SSL 虛擬服務 www.abcbank.com ;
[0062]e.對SSL虛擬服務進行常規(guī)的SSL功能設置,并設置SSL認證方式為單向認證方式;
[0063]f.導入SSL虛擬服務的密鑰和數(shù)字證書;
[0064]g.導入用于客戶端證書認證的根證書;
[0065]h.將SSL虛擬服務www.abcbank.com與服務器負載均衡服務vsl綁定(二者就共同構成了一個SSL服務器);
[0066]1.啟動SSL虛擬服務;
[0067]j.配置資源訪問控制列表;
[0068]例如設定“www.abcbank.com/fund, html”的訪問方式為雙向認證。
[0069]以上就完成了項目的設置步驟,開機后,如圖4所示,系統(tǒng)將按照圖示流程完成客戶端請求與服務器的連接,其中,凡是客戶端請求WWW.abcbank.com/fund, html網(wǎng)頁的,需要進行SSL雙向認證,實現(xiàn)了在保證系統(tǒng)效率的同時,對關鍵或需保密資源進行了有效的控制。
[0070]雖然通過參照本發(fā)明的某些優(yōu)選實施方式,已經(jīng)對本發(fā)明進行了圖示和描述,但本領域的普通技術人員應該明白,可以在形式上和細節(jié)上對其作各種改變,而不偏離本發(fā)明的精神和范圍。
【權利要求】
1.一種按需轉換SSL認證方式以實現(xiàn)資源訪問控制的方法,該方法基于客戶端通過互聯(lián)網(wǎng)連接SSL服務器構成的系統(tǒng),所述SSL服務器包括有SSL服務模塊,所述系統(tǒng)包括有多個連接,每個連接包括有客戶端IP地址、客戶端端口、SSL服務器IP地址、SSL服務器端口及TCP協(xié)議的五元組所標識的信息通道,其特征是它包括以下基本步驟:步驟1,對SSL服務器進行常規(guī)的SSL功能設置;步驟2,在SSL服務器中導入用于客戶端證書認證的根證書;步驟3,對SSL服務器上的被訪問資源設置訪問控制規(guī)則;步驟4,判斷客戶端請求與上述訪問控制規(guī)則是否匹配,確定客戶端請求與SSL服務器連接的認證方式,按照其認證方式完成對資源訪問控制的連接。
2.根據(jù)權利要求1所述的一種按需轉換SSL認證方式以實現(xiàn)資源訪問控制的方法,其特征是所述步驟4包括以下具體步驟:步驟5,客戶端請求通過互聯(lián)網(wǎng)訪問上述SSL服務器,首先進行單向認證的SSL協(xié)議握手,然后;步驟6,解析客戶端請求,與上述已設置的訪問控制規(guī)則進行匹配,若不相匹配,則進入單向認證流程,若匹配,表示需要進行雙向認證,然后;步驟7,在上述相匹配被訪問資源的連接上設置動態(tài)雙向認證標志;步驟8,客戶端請求匹配到上述被訪問資源連接上設置的動態(tài)雙向認證標志時,觸發(fā)SSL模塊對所述客戶端請求的連接從單向認證向雙向認證轉換;步驟9,SSL服務器請求所述客戶端發(fā)送數(shù)字證書;步驟10,SSL服務器驗證客戶端發(fā)來的數(shù)字證書,根據(jù)上述已導入的根證書進行驗證,如果驗證合格,則雙向SSL握手繼續(xù)進行,并在該連接上設置“客戶端認證通過”的標志,若驗證不合格,則此SSL連接失??;步驟11,上述客戶端數(shù)字證書驗證合格且該連接完成雙向SSL握手之后,SSL服務器對客戶端請求再次與訪問控制規(guī)則匹配,若客戶端請求與上述訪問控制規(guī)則不相匹配,則進入單向認證流程;若匹配,需要進一步校驗步驟10中設置的“客戶端認證通過”標志,若該標志存在,然后;步驟12,完成上述客戶端請求與SSL服務器中受控制訪問資源的連接。
【文檔編號】H04L29/06GK103685187SQ201210343249
【公開日】2014年3月26日 申請日期:2012年9月14日 優(yōu)先權日:2012年9月14日
【發(fā)明者】陳永亮, 周玲麗 申請人:華耀(中國)科技有限公司