一、SSL\\TLS協議是什么?
SSL英文全稱為Secure Sockets Layer,譯為安全套接層。
TLS英文全稱為(Transport Layer Security,譯為傳輸層安全,是SSL的繼承者。
SSL\\TLS協議用來實現安全通信。
1990年,網景(Netscape)公司開發SSL v1版本;
1994年,開發SSL v2版本;
1995年,開發SSL v3版本;
1999年,開發TLS v1版本,SSL協議棄用;
2006年,開發TLS v2版本;
2018年,開發TLS v3版本。
雖然SSL已經被TLS取代,但習慣上仍稱為SSL,如HTTP over SSL,MQTT over SSL。
SSL\\TLS協議在TCP\\IP協議棧的位置是怎樣的呢?《圖解HTTP》中一圖很好地說明這個問題:
二、SSL\\TLS協議是如何工作的?
SSL\\TLS協議的工作流程同樣在《圖解HTTP》有精彩描述,網絡上也有通俗解釋,可見參考資料部分。這里不再描述,主要關注如下問題:
1.Web通信的證書是如何生成的?如何放置?
(1)使用openssl genrsa和openssl req命令生成
# 生成私鑰*.key
openssl genrsa -des3 -out private.key 2048
# 生成請求證書*.csr
openssl req -new -key private.key -out cert.csr
# 采用自認證方式,生成服務端證書
openssl x509 -req -days 3650 -in cert.csr -signkey private.key -out server.crt
說明:server.crt中包含網站域名、公司等信息
(2)證書如何放置?
private.key和server.crt放置在服務端Web應用相應的目錄中,服務端會通過Handshake:Certificate消息將server.crt證書相關信息發送給客戶端。
- 密鑰是如何生成的?又是如何加解密的?
從理論上來說,SSL\\TLS協議是先使用“非對稱加密”實現“對稱加密”的密鑰交換,再使用“對稱加密”進行安全通信。
(1)“對稱加密”的密鑰是如何生成的?
A. 客戶端產生隨機數C,并通過Client Hello發給服務端;
B. 服務端產生隨機數S,并通過Server Hello發給客戶端;
C. 客戶端生成預主密鑰(Pre-master secret),通過Client Key Exchange發給服務端;
D. 客戶端和服務端通過隨機數C、隨機數S和Pre-master secret,按照某種算法生成master secret(主密鑰),并推導出hash secret和session secret。
(2)進一步,如何對應用層(以HTTP為例)報文進行加解密呢?
A. 客戶端使用協商好的對稱加密算法加密HTTP報文,密鑰為hash secret,生成報文摘要C(Message Authentication Code),然后再使用密鑰session-secret加密HTTP報文和報文摘要C。
B. 服務端先使用session-secret解密,得到HTTP報文和報文摘要C,使用hash secret得到報文摘要
-
SSL
+關注
關注
0文章
126瀏覽量
25780 -
安全通信
+關注
關注
0文章
21瀏覽量
8536 -
TLS
+關注
關注
0文章
44瀏覽量
4278
發布評論請先 登錄
相關推薦
mbedTLS軟件包是怎樣進行工作的呢
關于HTTPS 的 9 大經典問題 你都了解嗎
基于C4.5決策樹的HTTPS協議加密流量分類
HTTPS協議是什么?為什么安全?
HTTP和HTTPS的區別 HTTP協議請求類型
SSL網關是什么?SSL網關的功能作用
SSL 、IPSec、MPLS和SD-WAN的對比分析
https 的本質、證書驗證過程以及數據加密
![https 的本質、證書驗證過程以及數據加密](https://file1.elecfans.com/web2/M00/EB/95/wKgZomZevfiAZTUiAAAYyNC3ogI340.png)
阿里云SSL證書優惠精選,WoSign SSL輕量化助力網站安全合規
![阿里云<b class='flag-5'>SSL</b>證書優惠精選,WoSign <b class='flag-5'>SSL</b>輕量化助力網站安全合規](https://file1.elecfans.com/web1/M00/F5/AE/wKgaoWdAOuyALGf2AAHk6KTr1Rw919.png)
評論