自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從HTTP到HTTPS再到HSTS,你了解多少?

開發(fā) 前端
近些年,隨著域名劫持、信息泄漏等網(wǎng)絡(luò)安全事件的頻繁發(fā)生,網(wǎng)站安全也變得越來越重要,也促成了網(wǎng)絡(luò)傳輸協(xié)議從 HTTP 到 HTTPS 再到 HSTS 的轉(zhuǎn)變。

[[203273]]

近些年,隨著域名劫持、信息泄漏等網(wǎng)絡(luò)安全事件的頻繁發(fā)生,網(wǎng)站安全也變得越來越重要,也促成了網(wǎng)絡(luò)傳輸協(xié)議從 HTTP 到 HTTPS 再到 HSTS 的轉(zhuǎn)變。

HTTP

HTTP(超文本傳輸協(xié)議) 是一種用于分布式、協(xié)作式和超媒體信息系統(tǒng)的應(yīng)用層協(xié)議。HTTP 是互聯(lián)網(wǎng)數(shù)據(jù)通信的基礎(chǔ)。它是由萬維網(wǎng)協(xié)會(huì)(W3C)和互聯(lián)網(wǎng)工程任務(wù)組(IETF)進(jìn)行協(xié)調(diào)制定了 HTTP 的標(biāo)準(zhǔn),最終發(fā)布了一系列的 RFC,并且在1999年6月公布的 RFC 2616,定義了 HTTP 協(xié)議中現(xiàn)今廣泛使用的一個(gè)版本——HTTP 1.1。

HTTP 訪問過程

HTTP 屬于 TCP/IP 模型中的應(yīng)用層協(xié)議,當(dāng)瀏覽器與服務(wù)器進(jìn)行互相通信時(shí),需要先建立TCP 連接,之后服務(wù)器才會(huì)接收瀏覽器的請(qǐng)求信息,當(dāng)接收到信息之后,服務(wù)器返回相應(yīng)的信息。最后瀏覽器接受對(duì)服務(wù)器的信息應(yīng)答后,對(duì)這些數(shù)據(jù)進(jìn)行解釋執(zhí)行。

 

http 1.0 請(qǐng)求模式

HTTP 1.0 時(shí),瀏覽器每次訪問都要單獨(dú)建立連接,這會(huì)造成資源的浪費(fèi)。

后來HTTP 1.1可以在一次連接中處理多個(gè)請(qǐng)求,并且將多個(gè)請(qǐng)求重疊進(jìn)行:

 

http 1.1 請(qǐng)求模式

HTTP 協(xié)議特點(diǎn)

  1. 簡(jiǎn)單、快速、靈活:當(dāng)用戶想服務(wù)器發(fā)送請(qǐng)求時(shí),只需傳送請(qǐng)求方法和路徑即可,HTTP 允許傳輸任意類型的數(shù)據(jù)對(duì)象。并且 HTTP 協(xié)議簡(jiǎn)單易用,HTTP 服務(wù)器規(guī)模小,保證了網(wǎng)絡(luò)通信的速度;
  2. 無連接、無狀態(tài):HTTP協(xié)議限制每次連接只處理單個(gè)請(qǐng)求,當(dāng)服務(wù)器收到用戶請(qǐng)求后就會(huì)斷開連接,保證了傳輸時(shí)間的節(jié)省。同時(shí)HTTP協(xié)議對(duì)事務(wù)處理沒有記憶能力,如果后續(xù)的請(qǐng)求需要使用前面的信息就必須重傳數(shù)據(jù);
  3. 管線化和內(nèi)容編碼:隨著管線化技術(shù)的出現(xiàn),HTTP 請(qǐng)求比持久性連接速度更快,并且當(dāng)某些報(bào)文的內(nèi)容過大時(shí),為了減少傳輸?shù)臅r(shí)間,HTTP 會(huì)采取壓縮文件的方式;
  4. HTTP 支持客戶/服務(wù)器模式

從 HTTP 到 HTTPS

HTTP 協(xié)議由于其簡(jiǎn)單快速、占用資源少,一直被用于網(wǎng)站服務(wù)器和瀏覽器之間進(jìn)行數(shù)據(jù)傳輸。但是在數(shù)據(jù)傳輸?shù)倪^程中也存在很明顯的問題,由于 HTTP 是明文協(xié)議,不會(huì)對(duì)數(shù)據(jù)進(jìn)行任何方式的加密。當(dāng)黑客攻擊竊取了網(wǎng)站服務(wù)器和瀏覽器之間的傳輸報(bào)文的時(shí),可以直接讀取傳輸?shù)男畔?,造成網(wǎng)站、用戶資料的泄密。因此 HTTP 不適用于敏感信息的傳播,這個(gè)時(shí)候需要引入 HTTPS(超文本傳輸安全協(xié)議)。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure )是一種以計(jì)算機(jī)網(wǎng)絡(luò)安全通信為目的的傳輸協(xié)議。在HTTP下加入了SSL層,從而具有了保護(hù)交換數(shù)據(jù)隱私和完整性和提供對(duì)網(wǎng)站服務(wù)器身份認(rèn)證的功能,簡(jiǎn)單來說它就是安全版的 HTTP 。

 

HTTP、HTTPS 差異

HTTPS 訪問過程

HTTPS 在進(jìn)行數(shù)據(jù)傳輸之前會(huì)與網(wǎng)站服務(wù)器和Web瀏覽器進(jìn)行一次握手,在握手時(shí)確定雙方的加密密碼信息。

具體過程如下:

  1. Web 瀏覽器將支持的加密信息發(fā)送給網(wǎng)站服務(wù)器;
  2. 網(wǎng)站服務(wù)器會(huì)選擇出一套加密算法和哈希算法,將驗(yàn)證身份的信息以證書(證書發(fā)布 CA 機(jī)構(gòu)、證書有效期、公鑰、證書所有者、簽名等)的形式發(fā)送給Web瀏覽器;
  3. 當(dāng) Web 瀏覽器收到證書之后首先需要驗(yàn)證證書的合法性,如果證書受到瀏覽器信任則在瀏覽器地址欄會(huì)有標(biāo)志顯示,否則就會(huì)顯示不受信的標(biāo)識(shí)。當(dāng)證書受信之后,Web 瀏覽器會(huì)隨機(jī)生成一串密碼,并使用證書中的公鑰加密。之后就是使用約定好的哈希算法握手消息,并生成隨機(jī)數(shù)對(duì)消息進(jìn)行加密,再將之前生成的信息發(fā)送給網(wǎng)站;

 

     4.  當(dāng)網(wǎng)站服務(wù)器接收到瀏覽器發(fā)送過來的數(shù)據(jù)后,會(huì)使用網(wǎng)站本身的私鑰將信息解密確定密碼,然后通過密碼解密Web瀏覽器發(fā)送過來的握手信息,并驗(yàn)證哈希是否與 Web 瀏覽器一致。然后服務(wù)器會(huì)使用密碼加密新的握手信息,發(fā)送給瀏覽器;

     5.  最后瀏覽器解密并計(jì)算經(jīng)過哈希算法加密的握手消息,如果與服務(wù)發(fā)送過來的哈希一致,則此握手過程結(jié)束后,服務(wù)器與瀏覽器會(huì)使用之前瀏覽器生成的隨機(jī)密碼和對(duì)稱加密算法進(jìn)行加密交換數(shù)據(jù)。

 

HTTPS 握手過程

HTTPS 加密算法

為了保護(hù)數(shù)據(jù)的安全,HTTPS 運(yùn)用了諸多加密算法:

     1.  對(duì)稱加密:有流式、分組兩種,加密和解密都是使用的同一個(gè)密鑰。

         例如:DES、AES-GCM、ChaCha20-Poly1305 等。

     2.  非對(duì)稱加密:加密使用的密鑰和解密使用的密鑰是不相同的,分別稱為:公鑰、私鑰,公鑰和算法都是公開的,私鑰是保密的。非對(duì)稱加密算法性能較低,但是安全性超強(qiáng),由于其加密特性,非對(duì)稱加密算法能加密的數(shù)據(jù)長(zhǎng)度也是有限的。

         例如:RSA、DSA、ECDSA、 DH、ECDHE 等。

     3.  哈希算法:將任意長(zhǎng)度的信息轉(zhuǎn)換為較短的固定長(zhǎng)度的值,通常其長(zhǎng)度要比信息小得多,且算法不可逆。

         例如:MD5、SHA-1、SHA-2、SHA-256 等。

     4.  數(shù)字簽名:簽名就是在信息的后面再加上一段內(nèi)容(信息經(jīng)過 hash 后的值),可以證明信息沒有被修改過。hash 值一般都會(huì)加密后(也就是簽名)再和信息一起發(fā)送,以保證這個(gè) hash 值不被修改。

從 HTTPS 到 HSTS

但是當(dāng)網(wǎng)站傳輸協(xié)議從 HTTP 到 HTTPS 之后,數(shù)據(jù)傳輸真的安全了嗎?

由于用戶習(xí)慣,通常準(zhǔn)備訪問某個(gè)網(wǎng)站時(shí),在瀏覽器中只會(huì)輸入一個(gè)域名,而不會(huì)在域名前面加上 http:// 或者 https://,而是由瀏覽器自動(dòng)填充,當(dāng)前所有瀏覽器默認(rèn)填充的都是http://。一般情況網(wǎng)站管理員會(huì)采用了 301/302 跳轉(zhuǎn)的方式由 HTTP 跳轉(zhuǎn)到 HTTPS,但是這個(gè)過程總使用到 HTTP 因此容易發(fā)生劫持,受到第三方的攻擊。

這個(gè)時(shí)候就需要用到 HSTS(HTTP 嚴(yán)格安全傳輸)。 

 

HTTP 請(qǐng)求劫持

HSTS

HSTS是國(guó)際互聯(lián)網(wǎng)工程組織 IETF 正在推行一種新的 Web 安全協(xié)議,網(wǎng)站采用 HSTS 后,用戶訪問時(shí)無需手動(dòng)在地址欄中輸入 HTTPS,瀏覽器會(huì)自動(dòng)采用 HTTPS 訪問網(wǎng)站地址,從而保證用戶始終訪問到網(wǎng)站的加密鏈接,保護(hù)數(shù)據(jù)傳輸安全。

HSTS 原理

HSTS 主要是通過服務(wù)器發(fā)送響應(yīng)頭的方式來控制瀏覽器操作:

     1.  首先在服務(wù)器響應(yīng)頭中添加 HSTS 響應(yīng)頭:Strict-Transport-Security: max-age=expireTime [; includeSubDomains] [; preload]

         此響應(yīng)頭只有在 https 訪問返回時(shí)才生效,其中[ ]中的參數(shù)表示可選;

     2.  設(shè)置 max-age 參數(shù),時(shí)間設(shè)置不宜過長(zhǎng),建議設(shè)置時(shí)間為 6 個(gè)月;

     3.  當(dāng)用戶下次使用 HTTP 訪問,客戶端就會(huì)進(jìn)行內(nèi)部跳轉(zhuǎn),并且能夠看到 307 Redirect Internel 的響應(yīng)碼;

     4.  網(wǎng)站服務(wù)器變成了 HTTPS 訪問源服務(wù)器。

開啟 HSTS 后網(wǎng)站可以有效防范中間人的攻擊,同時(shí)也會(huì)省去網(wǎng)站 301/302 跳轉(zhuǎn)花費(fèi)的時(shí)間,大大提升安全系數(shù)和用戶體驗(yàn)。

開啟 HSTS 后網(wǎng)站安全系數(shù)檢測(cè)測(cè)評(píng)

開啟 HSTS 以后,可以到 ssllabs 進(jìn)行測(cè)試,網(wǎng)站的安全等級(jí)會(huì)進(jìn)一步提升。

開啟前等級(jí)為:A

 

開啟后等級(jí)變?yōu)椋篈+

 

總結(jié)

從 HTTP 到 HTTPS 再到 HSTS,網(wǎng)站的安全系數(shù)一直在上升,防止 DNS 劫持、數(shù)據(jù)泄密的力度也再加大。國(guó)內(nèi)公有云服務(wù)商比如又拍云提供了完整的 HTTPS和HSTS的解決方案,不僅支持 SSL 證書快速申請(qǐng),HTTPS 一鍵部署,還支持一鍵開啟 HSTS,感興趣的同學(xué)可以前往又拍云官網(wǎng)了解。

參考資料來源:

 

責(zé)任編輯:龐桂玉 來源: Linux中國(guó)
相關(guān)推薦

2020-11-27 10:34:01

HTTPHTTPS模型

2016-11-28 16:23:23

戴爾

2023-12-20 14:44:33

軟件開發(fā)DevOpsNoOps

2011-05-25 14:59:35

if elseswitch case

2020-05-17 13:59:37

物聯(lián)網(wǎng)工業(yè)物聯(lián)網(wǎng)工業(yè)4.0

2020-02-27 10:49:26

HTTPS網(wǎng)絡(luò)協(xié)議TCP

2020-03-25 08:47:22

智能邊緣邊緣計(jì)算網(wǎng)絡(luò)

2012-12-27 10:58:24

KVMKVM概念

2023-10-25 08:17:06

Lite模式代理類

2023-10-29 08:35:47

AndroidAOP編程

2021-06-06 18:22:04

PprofGopher邏輯

2013-04-08 17:13:14

2020-08-13 17:18:20

Kubernetes邊緣容器

2019-04-11 15:45:08

ReactMixin前端

2022-06-21 10:10:14

HTTP協(xié)議TCP

2021-03-28 09:26:30

HttpHttp協(xié)議網(wǎng)絡(luò)協(xié)議

2021-08-12 18:48:31

響應(yīng)式編程Bio

2022-06-07 07:37:40

線程進(jìn)程開發(fā)

2011-08-23 11:03:35

ATM

2025-01-16 10:41:40

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)