HTST 強制安全傳輸技術介紹
HTTPS 超文本傳輸安全協定(HyperText Transfer Protocol Secure)是一種讓HTTP傳輸過程可透過 SSL/TLS 來對封包進行加密的安全傳輸協定,預設使用的是 443 port。
也就是在不安全的傳輸,額外建立安全機制。
在敏感及機密性的網路傳輸,都必須使用 HTTPS 避免身份及隱私被劫持。
HTST 強制安全傳輸技術 (HTTP Strict Transport Security) 則是針對 HTTPS 加強安全的一套策略,可自行選擇是否使用。
HTST 可以強制 Client 端的瀏覽器使用 HTTPS 進行連線,其中使用的原理,說明如下:
HTST 原理
-
Client 發起 HTTPS 連線後,主機接收到連線
-
主機新增 Strict-Transport-Security 字串,其中包括 max-age 來表示有效期間(例如 31536000 表示一年),includeSubDomains 指定所有子網域都套用
-
回傳給 Client 的 HEAD 就會包含 Strict-Transport-Security
-
接下來,在有效期間內,Client 的瀏覽器訪問該網站,都會自動轉導 HTTP 到 HTTPS
用途
HTST 由於可以強制將 HTTP 轉導 HTTPS ,可以用來防止 SSL 剝離攻擊(隸屬於 MITM 中間人攻擊)
SSL 剝離攻擊簡介:
這種攻擊主要透過 阻擋 Client 瀏覽器與 Server 建立 HTTPS 連線
例如,用戶很少會留意自己點擊的按鈕導向的是 HTTP 或 HTTPS
若誘導 Client 用戶點擊 HTTP 連結,再透過不安全的 wifi 即可攔截到敏感資訊。
因此,透過 HTST 可以減少被攻擊的可能性。
備註
HTST 雖然可以強制將 HTTP 轉導向 HTTPS
但是這原則是建立在:Client必須訪問過一次 HTTPS 位置,並且取得 Strict-Transport-Security 訊息
如果有用戶尚未訪問過網站,並且點擊了HTTP連結,還是能正常訪問HTTP網站。
因此,在使用 HTST 機制時,還必須要再增加其他的強制導向機制,例如在 server 強制轉導等。