HTTP和HTPPS的協(xié)議結(jié)構(gòu)對(duì)比
HTTPS 超文本傳輸安全協(xié)議,是以安全為目標(biāo)的HTTP通道喘帚,簡(jiǎn)單講是HTTP的安全版。
即HTTP下加入SSL咒钟,HTTPS的安全基礎(chǔ)是SSL吹由,因此加密的詳細(xì)內(nèi)容就需要SSL。
SSL/TLS(Security Sockets Layer,安全套接層;Transport Layer Security傳輸安全套接層)
- 為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議
- 是操作系統(tǒng)對(duì)外的API朱嘴,
SSL3.0后更名為TLS
- 采用
身份驗(yàn)證
和數(shù)據(jù)加密
保證網(wǎng)絡(luò)通信的安全和數(shù)據(jù)的完整性
加密的方式
- 對(duì)稱加密:加密和解密都使用同一個(gè)密鑰
- 非對(duì)稱加密:加密使用的密鑰和解密使用的密鑰是不相同的(性能低,安全性強(qiáng))
- 哈希算法:將任意長(zhǎng)度的信息轉(zhuǎn)換為固定長(zhǎng)度的值倾鲫,算法不可逆
- 數(shù)字簽名:證明某個(gè)- -消息或者文件是某人發(fā)出/認(rèn)同的
簽名即在數(shù)字后面加上一段內(nèi)容,這類內(nèi)容是經(jīng)過哈希后的值可以證明信息沒有被修改過,哈希值一般是簽名以后一起傳輸以保證其不被修改.
HTTPS數(shù)據(jù)傳輸流程
- 瀏覽器將支持的加密算法信息發(fā)送給服務(wù)器
-
服務(wù)器
選擇一套瀏覽器支持的加密算法,以證書的形式
回發(fā)瀏覽器 - 瀏覽器驗(yàn)證證書合法性,并結(jié)合證書公鑰加密信息發(fā)送給服務(wù)器
- 服務(wù)器使用私鑰解密信息乌昔,驗(yàn)證哈希隙疚,加密響應(yīng)消息回發(fā)瀏覽器
- 瀏覽器解密響應(yīng)消息,并對(duì)消息進(jìn)行驗(yàn)真磕道,
之后進(jìn)行加密交互數(shù)據(jù)
HTTP和HTTPS的區(qū)別
- HTTPS需要到CA申請(qǐng)證書甚淡,HTTP不需要
-
HTTPS密文傳輸
,HTTP明文傳輸
-
連接方式
不同捅厂,HTTPS默認(rèn)使用443端口
,HTTP使用80端口
- HTTPS=HTTP+加密+認(rèn)證+完整性保護(hù)资柔,加密使HTTPS有狀態(tài),較HTTP安全
HTTPS真的安全嗎?
也不一定
- 瀏覽器
默認(rèn)填充http://
焙贷,請(qǐng)求需要進(jìn)行再次跳轉(zhuǎn)HTTPS,因此最初還是用了HTTP,有被劫持的風(fēng)險(xiǎn)
- 可以使用
HSTS
(HTTP Strict Transport Security)優(yōu)化
HSTS的作用是強(qiáng)制客戶端(如瀏覽器)使用HTTPS與服務(wù)器創(chuàng)建連接贿堰。詳解