一、SSL\\TLS協(xié)議是什么?
SSL英文全稱為Secure Sockets Layer,譯為安全套接層。
TLS英文全稱為(Transport Layer Security,譯為傳輸層安全,是SSL的繼承者。
SSL\\TLS協(xié)議用來實(shí)現(xiàn)安全通信。
1990年,網(wǎng)景(Netscape)公司開發(fā)SSL v1版本;
1994年,開發(fā)SSL v2版本;
1995年,開發(fā)SSL v3版本;
1999年,開發(fā)TLS v1版本,SSL協(xié)議棄用;
2006年,開發(fā)TLS v2版本;
2018年,開發(fā)TLS v3版本。
雖然SSL已經(jīng)被TLS取代,但習(xí)慣上仍稱為SSL,如HTTP over SSL,MQTT over SSL。
SSL\\TLS協(xié)議在TCP\\IP協(xié)議棧的位置是怎樣的呢?《圖解HTTP》中一圖很好地說明這個問題:
二、SSL\\TLS協(xié)議是如何工作的?
SSL\\TLS協(xié)議的工作流程同樣在《圖解HTTP》有精彩描述,網(wǎng)絡(luò)上也有通俗解釋,可見參考資料部分。這里不再描述,主要關(guān)注如下問題:
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
# 采用自認(rèn)證方式,生成服務(wù)端證書
openssl x509 -req -days 3650 -in cert.csr -signkey private.key -out server.crt
說明:server.crt中包含網(wǎng)站域名、公司等信息
(2)證書如何放置?
private.key和server.crt放置在服務(wù)端Web應(yīng)用相應(yīng)的目錄中,服務(wù)端會通過Handshake:Certificate消息將server.crt證書相關(guān)信息發(fā)送給客戶端。
- 密鑰是如何生成的?又是如何加解密的?
從理論上來說,SSL\\TLS協(xié)議是先使用“非對稱加密”實(shí)現(xiàn)“對稱加密”的密鑰交換,再使用“對稱加密”進(jìn)行安全通信。
(1)“對稱加密”的密鑰是如何生成的?
A. 客戶端產(chǎn)生隨機(jī)數(shù)C,并通過Client Hello發(fā)給服務(wù)端;
B. 服務(wù)端產(chǎn)生隨機(jī)數(shù)S,并通過Server Hello發(fā)給客戶端;
C. 客戶端生成預(yù)主密鑰(Pre-master secret),通過Client Key Exchange發(fā)給服務(wù)端;
D. 客戶端和服務(wù)端通過隨機(jī)數(shù)C、隨機(jī)數(shù)S和Pre-master secret,按照某種算法生成master secret(主密鑰),并推導(dǎo)出hash secret和session secret。
(2)進(jìn)一步,如何對應(yīng)用層(以HTTP為例)報(bào)文進(jìn)行加解密呢?
A. 客戶端使用協(xié)商好的對稱加密算法加密HTTP報(bào)文,密鑰為hash secret,生成報(bào)文摘要C(Message Authentication Code),然后再使用密鑰session-secret加密HTTP報(bào)文和報(bào)文摘要C。
B. 服務(wù)端先使用session-secret解密,得到HTTP報(bào)文和報(bào)文摘要C,使用hash secret得到報(bào)文摘要
-
SSL
+關(guān)注
關(guān)注
0文章
125瀏覽量
25739 -
安全通信
+關(guān)注
關(guān)注
0文章
21瀏覽量
8497 -
TLS
+關(guān)注
關(guān)注
0文章
44瀏覽量
4249
發(fā)布評論請先 登錄
相關(guān)推薦
評論