ssl協議即用到了對稱加密也用到了非對稱加密(公鑰加密),在建立傳輸鏈路時,ssl首先對對稱加密的金鑰使用非對稱加密,鏈路建立好之後,ssl對傳輸內容使用對稱加密。
對稱加密:速度高,可加密內容較大,用來加密會話過程中的訊息
公鑰加密:加密速度較慢,但能提供更好的身份認證技術,用來加密對稱加密的金鑰
1、客戶端向服務端傳送ssl協議版本號、加密演算法種類、隨機數等資訊
2、服務端給客戶端返回ssl協議版本號、加密演算法種類、隨機數等資訊,同時也返回伺服器端的證書,即公鑰證書
3、客戶端使用服務端返回的資訊驗證伺服器的合法性,驗證通過後,則繼續進行通訊,否則終止通訊,驗證內容包括:
a、證書是否過期
b、發行伺服器證書的ca是否可靠
c、返回的公鑰是否能正確解開返回證書中的數字簽名
d、伺服器證書上的網域名稱是否和伺服器的實際網域名稱相匹配
4、客戶端向伺服器傳送自己所能支援的對稱加密方案,供伺服器進行選擇
5、伺服器在客戶端提供的加密方案中選擇加密程度最高的加密方式
6、伺服器將選擇好的加密方式通過明文方式返回給客戶端
7、客戶端接收到伺服器返回的加密方案後,使用該加密方案生成產生隨機碼,用作通訊過程中對稱加密的金鑰,使用服務端返回的公鑰進行加密,將加密後的隨機碼傳送至伺服器
8、伺服器收到客戶端返回的加密資訊後 ,使用自己的私鑰進行解密,獲取對稱加密金鑰。在接下來的會話中,伺服器和客戶端將會使用該密碼進行對稱加密,保證通訊過程中的資訊保安。
1、客戶端向伺服器傳送連線請求(ssl協議版本號、加密演算法種類、隨機數等資訊)
2、伺服器給客戶端返回伺服器端的證書,即公鑰證書,同時也返回證書相關資訊(ssl協議版本號、加密演算法種類、隨機數等資訊)
3、客戶端使用服務端返回的資訊驗證伺服器的合法性(首先檢查伺服器傳送過來的證書是否是由自己信賴的ca中心所簽發的,再比較證書裡的訊息,例如網域名稱和公鑰,與伺服器剛剛傳送的相關訊息是否一致,如果是一致的,客戶端認可這個服務端的合法身份),驗證通過後,則繼續進行通訊,否則終止通訊,具體驗證內容包括:
a、證書是否過期
b、發行伺服器證書的ca是否可靠
c、返回的公鑰是否能正確解開返回證書中的數字簽名
d、伺服器證書上的網域名稱是否和伺服器的實際網域名稱相匹配
4、服務端要求客戶端傳送客戶端的證書,客戶端會將自己的證書傳送至服務端
5、驗證客戶端的證書,通過驗證後,會獲得客戶端的公鑰
6、客戶端向伺服器傳送自己所能支援的對稱加密方案,供伺服器端進行選擇
7、伺服器端在客戶端提供的加密方案中選擇加密程度最高的加密方式
8、將加密方式通過使用之前獲取到的公鑰(客戶的公鑰)進行加密,返回給客戶端
9、客戶端收到服務端返回的加密方案密文後,使用自己的私鑰進行解密,獲取具體加密方式,而後獲取該加密方式的隨機碼,用作加密過程中的金鑰,使用之前從服務端證書中獲取到的公鑰進行加密後,傳送給服務端
10、服務端收到客戶端傳送的訊息後,使用自己的私鑰進行解密,獲取對稱加密的金鑰,在接下來的會話中,伺服器和客戶端將會使用該密碼進行對稱加密,保證通訊過程中資訊的安全
ssl單向認證只要求站點部署了ssl證書就行,任何使用者都可以去訪問(ip被限制除外等),只是伺服器提供了身份認證。ssl雙向認證則是需要服務端與客戶端提供身份認證,只能是服務端允許的客戶去訪問,安全性相對高一些。
雙向認證ssl協議要求伺服器和使用者雙方都有證書。單向認證ssl協議不需要客戶擁有ca證書,只需將伺服器驗證客戶證書的過程去掉,以及在協商對稱密碼方案、對稱通話金鑰時,伺服器傳送給客戶的是沒有加過密的(這並不影響ssl過程的安全性)密碼方案。這樣,雙方具體的通訊內容,就是加過密的資料,如果有第三方攻擊,獲得的只是加密的資料,第三方要獲得有用的資訊,就需要對加密的資料進行解密,這時候的安全就依賴於密碼方案的安全。而幸運的是,目前所用的密碼方案,只要通訊金鑰長度足夠的長,就足夠安全,這也是強調使用128位加密通訊的原因。
一般web應用都是採用ssl單向認證的,原因很簡單,使用者數目廣泛,且無需在通訊層對使用者身份進行驗證,一般都在應用邏輯層來保證使用者的合法登入。但如果是企業應用對接,情況就不一樣,可能會要求對客戶端(相對而言)做身份驗證,這時就需要做ssl雙向認證。
SSL單向 雙向認證
引用 http cbwdkpl.blog.163.com blog static 453293822009814111320789 單向認證 客戶端向伺服器傳送訊息,伺服器接到訊息後,用伺服器端的金鑰庫中的私鑰對資料進行加密,然後把加密後的資料和伺服器端的公鑰一起傳送到客戶端,客戶端用伺服器傳送來的...
SSL雙向認證和單向認證原理
一 公鑰私鑰 1,公鑰和私鑰成對出現 2,公開的金鑰叫公鑰,只有自己知道的叫私鑰 3,用公鑰加密的資料只有對應的私鑰可以解密 4,用私鑰加密的資料只有對應的公鑰可以解密 5,如果可以用公鑰解密,則必然是對應的私鑰加的密 6,如果可以用私鑰解密,則必然是對應的公鑰加的密 2,用私鑰加密資料 數字簽名 ...
SSL的單向認證和雙向認證
客戶端向伺服器傳送clienthello訊息,說明它支援的最高tls協議版本,隨機數 密碼演算法列表及壓縮方法。伺服器回覆serverhello訊息,包含基於客戶端clienthello訊息所選擇的tls協議版本,隨機數 密碼演算法列表及壓縮方法。伺服器選擇的協議版本為客戶端和伺服器都支援的最高版本...