HTTPS
1爵卒、超文本傳輸安全協(xié)議 secure
2、https默認(rèn)端口號(hào)是 443 http默認(rèn)是80端口
SSL/TLS
1撵彻、https是在http基礎(chǔ)上使用了SSL/TLS來(lái)加密保溫钓株,對(duì)竊聽和中間人提供合理的防護(hù)
2、SSL/TLS也可以使用在其他協(xié)議上
3陌僵、SSL[Secure Sokets Layer 安全套接層]和TLS【Tsnsport Layer Security 傳輸層安全協(xié)議】
4轴合、工作在哪一層?【應(yīng)用層和傳輸層中間握手層碗短、記錄層受葛,不是傳輸層】
OpenSSL
1、是SSL/TLS協(xié)議的開源實(shí)現(xiàn)偎谁,支持不同平臺(tái)Windows总滩、Mac、Linux
2搭盾、常用名稱
生成私鑰:openssl genrsa -out mj.key
生成公鑰:openssl rsa -in mj.key -pubout -out mj.pem
3、可以使用OpenSSL構(gòu)建一套屬于自己的CA,自己給自己頒發(fā)證書婉支,稱為:自簽名證書
HTTPS的成本
1鸯隅、證書的費(fèi)用
2、加解密計(jì)算
3、降低了訪問速度
4蝌以、包含敏感數(shù)據(jù)的請(qǐng)求使用HTTPS,其他的保持使用HTTP
HTTPS的通信過程
- TCP的三次握手
- TLS的三次連接
- HTTP請(qǐng)求和響應(yīng)
TLS 1.2的連接
1炕舵、Client Hello
- TLS的版本號(hào)
- 支持的加密套件列表【加密算法及秘鑰長(zhǎng)度】
- 一個(gè)隨機(jī)數(shù)
2、Server Hello
- 服務(wù)器選擇一種加密條件
3跟畅、Certificate
- 服務(wù)器的公鑰證書
4咽筋、Server Key Exchange
- 用以實(shí)現(xiàn)ECDHE算法中的一個(gè)參數(shù)
- ECDHE秘鑰交換算法
- 為了防止偽造,也需要服務(wù)器進(jìn)行簽名
5徊件、Server Hello Done
- Hello過程結(jié)束奸攻,告知客戶端:協(xié)商部分結(jié)束
- 客戶端和服務(wù)端之間通過明文共享了
Client Random/Server Random/Server Params - 客戶端拿到了服務(wù)器的公鑰證書、接下來(lái)虱痕,客戶端會(huì)驗(yàn)證證書真實(shí)有效性
6睹耐、Client Key Exchange
- 用以實(shí)現(xiàn)ECDHE算法的另一個(gè)參數(shù)(Client Prams)
- 客戶端、服務(wù)器都擁有了2個(gè)參數(shù):Server Params部翘、Client Params
- 客戶端硝训、服務(wù)器都可以使用ECDHE算法
生成隨機(jī)秘鑰串
結(jié)合Client Random、Server Random新思、Pre-master Secret生成用以加密回話的會(huì)話秘鑰
7窖梁、Change Cipher Spec
- 告知服務(wù)器,之后的童話使用會(huì)話秘鑰進(jìn)行加密
8夹囚、Finished
- 包含連接至今全部報(bào)文的整體校驗(yàn)值【摘要指】纵刘,加密之后發(fā)送給服務(wù)器
- 這次握手協(xié)商是否成功,要以服務(wù)器是否能夠正確解密該報(bào)文作為判定標(biāo)準(zhǔn)
9崔兴、Change Cipher Sepc
10彰导、Finished
- 到此為止,客戶端敲茄、服務(wù)器都驗(yàn)證加密解密沒問題位谋,開始通信