SSL單向認證和雙向認證說明

SSL單向認證和雙向認證說明

一.SSL雙向認證具體過程

瀏覽器發送一個鏈接請求給安全服務器。
服務器將本身的證書,以及同證書相關的信息發送給客戶瀏覽器。
客戶瀏覽器檢查服務器送過來的證書是不是由本身信賴的CA中心所簽發的。若是是,就繼續執行協議; 若是不是,客戶瀏覽器就給客戶一個警告消息:警告客戶這個證書不是能夠信賴的,詢問客戶是否須要繼續。
接着客戶瀏覽器比較證書裏的消息,例如域名和公鑰,與服務器剛剛發送的相關消息是否一致,若是是一致的,客戶瀏覽器承認這個服務器的合法身份。
服務器要求客戶發送客戶本身的證書。收到後,服務器驗證客戶的證書,若是沒有經過驗證,拒絕鏈接;若是經過驗證,服務器得到用戶的公鑰。
客戶瀏覽器告訴服務器本身所可以支持的通信對稱密碼方案。
服務器從客戶發送過來的密碼方案中,選擇一種加密程度最高的密碼方案,用客戶的公鑰加過密後通知瀏覽器。
瀏覽器針對這個密碼方案,選擇一個通話密鑰,接着用服務器的公鑰加過密後發送給服務器。
服務器接收到瀏覽器送過來的消息,用本身的私鑰解密,得到通話密鑰。
服務器、瀏覽器接下來的通信都是用對稱密碼方案,對稱密鑰是加過密的。
雙向認證則是須要服務端與客戶端提供身份認證,只能是服務端容許的客戶能去訪問,安全性相對較高一些。

二.SSL單向認證具體過程

客戶端的瀏覽器向服務器傳送客戶端SSL協議的版本號,加密算法的種類,產生的隨機數,以及其餘服務器和客戶端之間通信所須要的各類信息。
服務器向客戶端傳送SSL協議的版本號,加密算法的種類,隨機數以及其餘相關信息,同時服務器還將向客戶端傳送本身的證書。
客戶利用服務器傳過來的信息驗證服務器的合法性,服務器的合法性包括:證書是否過時,發行服務器證書的CA是否可靠,發行者證書的公鑰可否正確解開服務器證書的"發行者的數字簽名,服務器證書的域名是否和服務器的實際域名相匹配。若是合法性驗證沒有經過,通信將斷開;若是合法性驗證經過,將繼續進行第四步。
用戶端隨機產生一個用於後面通信的"對稱密碼",而後用服務器的公鑰(服務器的公鑰從第二步中的服務器的證書中得到)對其加密,而後將加密後的"預主密碼"傳給服務器。
若是服務器要求客戶的身份認證(在握手過程當中爲可選),用戶能夠創建一個隨機數而後對其進行數據簽名,將這個含有簽名的隨機數和客戶本身的證書以及加密過的"預主密碼"一塊兒傳給服務器。
若是服務器要求客戶的身份認證,服務器必須檢驗客戶證書和簽名隨機數的合法性,具體的合法性驗證過程包括:客戶的證書使用日期是否有效,爲客戶提 供證書的CA是否可靠,發行CA的公鑰可否正確解開客戶證書的發行CA的數字簽名,檢查客戶的證書是否在證書廢止列表(CRL)中。檢驗若是沒有經過,通信馬上中斷;若是驗證經過,服務 器將用本身的私鑰解開加密的"預主密碼 ",而後執行一系列步驟來產生主通信密碼(客戶端也將經過一樣的方法產生相同的主通信密碼)。
服務器和客戶端用相同的主密碼即"通話密碼",一個對稱密鑰用於SSL協議的安全數據通信的加解密通信。同時在SSL通信過程當中還要完成數據通信的完整性,防止數據通信中的任何變化。
客戶端向服務器端發出信息,指明後面的數據通信將使用的上一步中的主密碼爲對稱密鑰,同時通知服務器客戶端的握手過程結束。
服務器向客戶端發出信息,指明後面的數據通信將使用的上一步中的主密碼爲對稱密鑰,同時通知客戶端服務器端的握手過程結束。
SSL的握手部分結束,SSL安全通道的數據通信開始,客戶和服務器開始使用相同的對稱密鑰進行數據通信,同時進行通信完整性的檢驗。
SSL 單向認證只要求站點部署了 SSL 證書就行,任何用戶均可以去訪問(IP被限制除外等),只是服務端提供了身份認證。

SSL雙向認證和SSL單向認證的區別

雙向認證 SSL 協議要求服務器和用戶雙方都有證書。單向認證 SSL 協議不須要客戶擁有 CA 證書。算法

單向認證的具體過程相對應於上面的步驟,只需將服務器端驗證客戶證書的過程去掉,以及在協商對稱密碼方案,對稱通話密鑰時,服務器發送給客戶的是沒有加過密的(這並不影響 SSL 過程的安全性)密碼方案。這樣,雙方具體的通信內容,就是加過密的數據,若是有第三方攻擊,得到的只是加密的數據,第三方要得到有用的信息,就須要對加密數據進行解密,這時候的安全就依賴於密碼方案的安全。目前所用的密碼方案,只要通信密鑰長度足夠的長,就足夠安全。這也是咱們使用128位加密通信的緣由。瀏覽器

通常 Web 應用配置 SSL 單向認證便可。但部分金融行業用戶的應用對接,可能會要求對客戶端作身份驗證。這時就須要作 SSL 雙向認證。安全

相關文章
相關標籤/搜索