SSL的單向認證和雙向認證

2022-03-11 03:52:56 字數 1511 閱讀 6540

客戶端向伺服器傳送clienthello訊息,說明它支援的最高tls協議版本,隨機數、密碼演算法列表及壓縮方法。

伺服器回覆serverhello訊息,包含基於客戶端clienthello訊息所選擇的tls協議版本,隨機數、密碼演算法列表及壓縮方法。伺服器選擇的協議版本為客戶端和伺服器都支援的最高版本。

當雙方知道了連線引數,伺服器向客戶端傳送證書。

客戶端驗證伺服器證書的合法性,包括:伺服器證書是否過期、發行伺服器證書的ca是否可靠、發行ca的公鑰能否正確解開伺服器證書的發行ca的數字簽名、伺服器證書上的網域名稱是否和伺服器的實際網域名稱相匹配。如果合法性驗證沒有通過,通訊將斷開;如果合法性驗證通過,將繼續進行第5步。

客戶端隨機產生乙個用於後面通訊的「對稱密碼」,然後用伺服器的公鑰(伺服器的公鑰從步驟3中的伺服器證書中獲得)對其加密,然後將加密後的「預主密碼」傳給伺服器。

如果伺服器要求客戶端的身份認證(在握手過程中為可選),客戶端可以建立乙個隨機數然後對其進行資料簽名,將這個含有簽名的隨機數和客戶端自己的證書以及加密過的「預主密碼」一起傳給伺服器。

如果伺服器要求客戶端的身份認證,伺服器必須檢驗客戶端證書和簽名隨機數的合法性,具體的合法性驗證包括:客戶端證書是否過期,發行客戶端證書的ca是否可靠,發行ca的公鑰能否正確解開客戶端證書的發行ca的數字簽名,檢查客戶端證書是否在證書廢止列表(crl)中。如果合法性驗證沒有通過,通訊立刻中斷;如果合法性驗證通過,伺服器將用自己的私鑰解開加密的「預主密碼」,然後執行一系列步驟來產生主通訊密碼(客戶端也將通過同樣的方法產生相同的主通訊密碼)。

伺服器和客戶端用相同的主密碼即「通話密碼」,乙個對稱金鑰用於ssl協議的安全資料通訊的加解密通訊。同時在ssl通訊過程中還要完成資料通訊的完整性,防止資料通訊中的任何變化。

客戶端向伺服器發出資訊,指明後面的資料通訊將使用的步驟8中的主密碼為對稱金鑰,同時通知伺服器客戶端的握手過程結束。

伺服器向客戶端發出資訊,指明後面的資料通訊將使用的步驟8中的主密碼為對稱金鑰,同時通知客戶端伺服器的握手過程結束。

ssl的握手部分結束,ssl安全通道的資料通訊開始,客戶端和伺服器開始使用相同的對稱金鑰進行資料通訊,同時進行通訊完整性的檢驗。

上面所述的是雙向認證ssl協議的具體通訊過程,這種情況要求伺服器和客戶端雙方都有證書。單向認證ssl協議不需要客戶端擁有ca證書,具體的流程相對於上面的步驟,只需將伺服器驗證客戶端證書的步驟去掉,以及在協商對稱密碼方案,對稱通話金鑰時,伺服器傳送給客戶端的是沒有加過密的(這並不影響ssl過程的安全性)密碼方案。這樣,雙方具體的通訊內容,就是加密過的資料。如果有第三方攻擊,獲得的只是加密的資料,第三方要獲得有用的資訊,就需要對加密的資料進行解密,這時候的安全就依賴於密碼方案的安全。而幸運的是,目前所用的密碼方案,只要通訊金鑰長度足夠的長,就足夠的安全。這也是我們強調要求使用128位加密通訊的原因。

一般web應用都是採用單向認證的,原因很簡單,使用者數目廣泛,且無需做在通訊層做使用者身份驗證,一般都在應用邏輯層來保證使用者的合法登入。但如果是企業應用對接,情況就不一樣,可能會要求對客戶端(相對而言)做身份驗證。這時就需要做雙向認證。

SSL雙向認證和單向認證原理

一 公鑰私鑰 1,公鑰和私鑰成對出現 2,公開的金鑰叫公鑰,只有自己知道的叫私鑰 3,用公鑰加密的資料只有對應的私鑰可以解密 4,用私鑰加密的資料只有對應的公鑰可以解密 5,如果可以用公鑰解密,則必然是對應的私鑰加的密 6,如果可以用私鑰解密,則必然是對應的公鑰加的密 2,用私鑰加密資料 數字簽名 ...

SSL認證 單向認證與雙向認證

ssl協議即用到了對稱加密也用到了非對稱加密 公鑰加密 在建立傳輸鏈路時,ssl首先對對稱加密的金鑰使用非對稱加密,鏈路建立好之後,ssl對傳輸內容使用對稱加密。對稱加密 速度高,可加密內容較大,用來加密會話過程中的訊息 公鑰加密 加密速度較慢,但能提供更好的身份認證技術,用來加密對稱加密的金鑰 1...

SSL單向 雙向認證

引用 http cbwdkpl.blog.163.com blog static 453293822009814111320789 單向認證 客戶端向伺服器傳送訊息,伺服器接到訊息後,用伺服器端的金鑰庫中的私鑰對資料進行加密,然後把加密後的資料和伺服器端的公鑰一起傳送到客戶端,客戶端用伺服器傳送來的...