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 強制轉導等。