ssl的加密過程
A. ssl會話建立的過程(原理)是什麼
ssl會話建立過程主要就是加密和解密的過程。主要是利用了非對稱加密來保證密碼的安全,利用簽名來保證證書和信息沒有被修改。
首先是客戶端和伺服器端加密技術的溝通,統一後面通信適用的加密技術。
第二步是伺服器將自己的身份以證書的方式發送給客戶端。同時非對稱加密的公鑰則是附帶在證書的信息中。證書本身也附帶一個證書電子簽名,這個簽名用來驗證證書的完整性和真實性,可以防止證書被串改。另外,證書還有個有效期。
第三部客戶端發送自己的證書給伺服器端。
到這里雙方完成了非對稱加密的key交換。
第四部是證書的驗證工作,雙方對對方的證書完成驗證的工作。同時客戶端會使用之前協商好的加密套件和session secret加密一段Finish的數據傳送給服務端,此數據是為了在正式傳輸應用數據之前對剛剛握手建立起來的加解密通道進行驗證。
第五部是最後一步,服務端在接收到客戶端傳過來的PreMaster加密數據之後,使用私鑰對這段加密數據進行解密,並對數據進行驗證,也會使用跟客戶端同樣的方式生成session secret,一切准備好之後,會給客戶端發送一個ChangeCipherSpec,告知客戶端已經切換到協商過的加密套件狀態,准備使用加密套件和session secret加密數據了。之後,服務端也會使用session secret加密後一段Finish消息發送給客戶端,以驗證之前通過握手建立起來的加解密通道是否成功。
B. HTTPS 加密演算法過程
1、HTTP 協議(HyperText Transfer Protocol,超文本傳輸協議):是客戶端瀏覽器或其他程序與Web伺服器之間的應用層通信協議 。
2、HTTPS 協議(HyperText Transfer Protocol over Secure Socket Layer):可以理解為HTTP+SSL/TLS, 即 HTTP 下加入 SSL 層,HTTPS 的安全基礎是 SSL,因此加密的詳細內容就需要 SSL,用於安全的 HTTP 數據傳輸。
3、SSL(Secure Socket Layer,安全套接字層):1994年為 Netscape 所研發,SSL 協議位於 TCP/IP 協議與各種應用層協議之間,為數據通訊提供安全支持。
4、TLS(Transport Layer Security,傳輸層安全):其前身是 SSL,它最初的幾個版本(SSL 1.0、SSL 2.0、SSL 3.0)。
如上圖所示 HTTPS 相比 HTTP 多了一層 SSL/TLS。
1、對稱加密
有流式、分組兩種,加密和解密都是使用的同一個密鑰。
例如:DES、AES-GCM、ChaCha20-Poly1305等
2、非對稱加密
加密使用的密鑰和解密使用的密鑰是不相同的,分別稱為:公鑰、私鑰,公鑰和演算法都是公開的,私鑰是保密的。非對稱加密演算法性能較低,但是安全性超強,由於其加密特性,非對稱加密演算法能加密的數據長度也是有限的。
例如:RSA、DSA、ECDSA、 DH、ECDHE
3、哈希演算法
將任意長度的信息轉換為較短的固定長度的值,通常其長度要比信息小得多,且演算法不可逆。
例如:MD5、SHA-1、SHA-2、SHA-256 等
4、數字簽名
簽名就是在信息的後面再加上一段內容(信息經過hash後的值),可以證明信息沒有被修改過。hash值一般都會加密後(也就是簽名)再和信息一起發送,以保證這個hash值不被修改。
C++音視頻開發學習資料 :點擊 音視頻開發(資料文檔+視頻教程+面試題)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)
HTTP協議在瀏覽器/伺服器間進行數據的傳輸是明文的,不做任何的加密,通俗來說,就是「裸奔」,這樣會產生什麼樣的問題那,我們來舉一個例子:
在這里插入圖片描述
上述我們通過兩個人物模仿了伺服器和客戶端的交互,我們可以看出,小明和小花之間進行數據通信的時候採用的是明文傳輸的、那麼此時很有可能被中間人獲取信息、並進行數據篡改,這種行為就叫 中間人攻擊。
所以 HTTP 傳輸面臨的風險有:
(1) 竊聽風險:黑客可以獲知通信內容。
(2) 篡改風險:黑客可以修改通信內容。
(3) 冒充風險:黑客可以冒充他人身份參與通信。
哈哈、此時你是不是不能很愉快的上網沖浪了呀,別擔心,我們此時可以對明文進行加密:
這樣是不是比原來安全多了呀!但是這樣就足夠安全了嗎?顯然不是的,如果小明和小花在第一次聊天的時候,信息被中間人截取到了,那麼中間人是不是也就有密鑰了,同樣可以對數據進行加解密和修改了那
這可怎麼辦那? 加密的數據還是不安全的啊? 別急,上面我們採用的是對稱加密(換句話說就是我們發送的密鑰技能加密、也能解密,那麼中間人只要拿到密鑰消息對他而言就是透明的了),我們還可以採用非對稱加密方式進行加密數據(非對稱加密一般都會有一個私鑰和公鑰組成。可以通過公鑰加密,私鑰解密,也可以通過私鑰加密,公鑰解密兩種方式) ,對密鑰的傳送在格外加一層保護,當小明和小花在建立通信的時候,小花會把公鑰KEY發送給小明,當小明拿到公鑰KEY 後,會自己生成一個 密鑰 KEY2 , 並用 KEY 對KEY2 進行加密(此時小明用的是公鑰加密)
在通信過程中,即使中間人一開始就獲取到了公鑰KEY ,但是他不知道私鑰,就對數據無法進行解密,仍舊是沒辦法獲取KEY2。這樣加密後,數據是不是就安全多了呀。這種情況下就可以和妹子愉快的進行聊天了嗎?別急、所謂道高一尺魔高一丈,常言道:流氓不可怕,就怕流氓有文化。這種狀態下我們的數據,相當來說是比較安全的,但是如果此時中間人獲取公鑰後,發送給小明一個偽公鑰,又會產生什麼問題那?
好吧,說到這里,大家是不是快恨死這個中間人了啊,哈哈~~~還有據俗話別忘記了,魔高一尺道高一丈,對於這種情況。我們可以藉助與第三方證書平台,證書平台具備產生證書的功能,伺服器(小花)可以去證書機構申請證書,證書機構通過小花提供的信息(網址、機構、法人等、公鑰),生成公鑰和私鑰(證書機構的),通過私鑰進行數據的非對稱加密生成證書、將證書頒發給小花。那麼此時小花就可以在進行數據交互的時候,傳遞證書了。
小明只需要知道證書的發證機構、就可以很方便的獲取到證書的公鑰、從而對證書進行校驗並獲取公鑰、然後進行後續的操作。
那麼此時小夥伴是不是又有疑問了,如果 中間人 獲取到證書、並偽造證書給小明、怎麼破???
不錯不錯、如果大家有這個想法的話,說明大家都在認真思考了。那麼我們假設中間人獲取到了證書、中間人也可以在證書機構獲取公鑰,並通過證書機構公鑰獲取 伺服器發送的公鑰,中間人此時也可以自己生成公鑰,並向證書機構申請證書、並發送偽證書給小明,但是因為證書是經過簽名認證的,包含(網址、機構、法人等、公鑰)等信息,小明在拿到偽證書後,通過證書公鑰很容易就發現證書是不合法的(網址、法人的信息可定不符,否則申請不到證書的)。
上述我們分享的內容就是HTTPS的主體思想,HTTPS增加了SSL安全層,上述介紹的所有認證流程都是在SSL安全層完成驗證的。今天我就分享HTTPS的實現原理就說這么多了。 ﹏
HTTPS 缺點:
(1)SSL 證書費用很高,以及其在伺服器上的部署、更新維護非常繁瑣。
(2)HTTPS 降低用戶訪問速度(多次握手)。
(3)網站改用HTTPS 以後,由HTTP 跳轉到 HTTPS 的方式增加了用戶訪問耗時(多數網站採用302跳轉)。
(4)HTTPS 涉及到的安全演算法會消耗 CPU 資源,需要增加大量機器(https訪問過程需要加解密)。
C. 域名用https加密的具體操作急用啊!!!
域名進行https加密需要申請並安裝SSL證書。SSL證書申請流程如下:
第一步,生成並提交CSR(證書簽署請求)文件
CSR文件一般都可以通過在線生成(或伺服器上生成),申請人在製作的同時系統會產生兩個秘鑰,公鑰CSR和密鑰KEY。選擇了SSL證書申請之後,提交訂單並將製作生成的CSR文件一起提交到證書所在的CA頒發機構。
第二步,CA機構進行驗證
CA機構對提交的SSL證書申請有兩種驗證方式:
第一種是域名認證。系統自動會發送驗證郵件到域名的管理員郵箱(這個郵箱是通過WHOIS信息查詢到的域名聯系人郵箱)。管理員在收到郵件之後,確認無誤後點擊我確認完成郵件驗證。所有型號的SSL證書都必須進行域名認證。
第二種是企業相關信息認證。對於SSL證書申請的是OV SSL證書或者EV SSL證書的企業來說,除了域名認證,還得進行人工核實企業相關資料和信息,確保企業的真實性。
第三步,CA機構頒發證書
由於SSL證書申請的型號不同,所驗證的材料和方式有些區別,所以頒發時間也是不同的。
如果申請的是DV SSL證書最快10分鍾左右就能頒發。如果申請的是OV SSL證書或者EV SSL證書,一般3-7個工作日就能頒發。
D. SSL工作原理,SSL加密原理,SSL證書怎麼加密
TLS/SSL的功能實現主要依賴於三類基本演算法:散列函數 Hash、對稱加密和非對稱加密,其利用非對稱加密實現身份認證和密鑰協商,對稱加密演算法採用協商的密鑰對數據加密,基於散列函數驗證信息的完整性。
E. SSL工作原理,SSL加密原理,SSL證書怎麼加密
SSL是用於驗證和加密網路通信的加密協議的原始名稱。正式地,SSL在前一段時間被稱為TLS的更新協議所取代。
當您收到SSL證書時,您將其安裝在您的伺服器上。您可以安裝一個中間證書,通過將它鏈接到CA的根證書來建立您的SSL證書的可信度。
根證書是自簽名的,構成了基於X.509的公鑰基礎設施(PKI)的基礎。支持用於安全Web瀏覽和電子簽名方案的HTTPS的PKI依賴於根證書。在X.509證書的其他應用程序中,證書的層次結構證明了證書的頒發有效性。該層次結構稱為證書「信任鏈」。
F. HTTPS加密(握手)過程
第一步散弊純:客戶端會發起一個hello client請求,請求中會攜帶TLS版本信息、加密套件候選列表、壓縮演算法候選列表以及一個隨機數。
第二步:服務端收到請求以後也會給客戶端發一個server hello請求,請求中會告訴客戶端它選擇的協議版本、加密套件、壓縮演算法以及一個隨機數。
第三步:服務端會給客戶端發一個server certificate請求,裡麵包含服務端的數字證書,用於客戶端進行校驗。
第四步:服務端會給客戶端發一個server hello done告訴客戶端信息已發送完畢。
第五步:客戶端收到證書以後進行校驗獲取到服務端的公鑰。
第六步:客戶端會將自己的數字證書發給服務端用於校驗。
第七步:客戶端計算出一個隨機數pre-master,然後用公鑰進行加密發送給伺服器端。
第八步:服務端和客卜模戶端都根據自己的隨機數+對端的隨機數+pre-master算出對稱密沖咐鑰,然後再根據對稱密鑰進行通信。
G. SSL工作原理,SSL加密原理,SSL證書怎麼加密
安全套接字層(SSL)是一種用於保護Internet通信的協議。它為企業提供了一種在將數據發送給用戶之前對其進行加密的方法,以防止第三方在傳輸過程中讀取數據。