網路安全

HTTPS(超文字傳輸安全協定)

/ spelled out: H-T-T-P-S /

HTTP 是瀏覽器與網頁伺服器交換頁面時說的語言——但純 HTTP 把一切都以明文送出,像在房間裡大聲喊出你的訊息。HTTPS 不過就是把 HTTP 說在那根密封、已驗證的 TLS 管子裡。那個「s」代表安全(secure),它就是網址列上鎖頭圖示與「不安全」警告之間的差別。網頁請求本身沒有任何改變;它們只是改成加密且經鑑別地傳送,而不再是暴露的。

機制上,HTTPS 是把 HTTP 疊在 TLS 之上,而 TLS 又跑在 TCP 之上(通常用 TCP port 443,相對於純 HTTP 的 80)。當你連線時,TLS 先做它的交握——驗證伺服器的憑證、協商出一把連線金鑰——然後你的瀏覽器才透過那條加密通道送出普通的 HTTP 請求(那個 GET、那些標頭、那些表單資料)。伺服器的 HTTP 回應也以同樣方式回來。對 HTTP 那一層來說一切如常;底下的 TLS 安靜地處理機密性、完整性與伺服器鑑別。

為什麼重要,以及它誠實的限制:HTTPS 保護你不被竊聽者讀取流量、不被中間人改動頁面或竊取登入,如今它幾乎是整個網路的預設。但要清楚那個鎖頭代表什麼、又不代表什麼。它代表你連到那個具名網站的連線是加密的、而且你真的在跟控制那個網域的人說話。它「不」代表這個網站誠實、安全或有信譽——詐騙與惡意軟體網站照樣天天用 HTTPS。它也不會藏住你造訪了哪個網站(網域名稱與你的流量模式仍可被觀察)。HTTPS 保護的是旅程,它不替你審查目的地。

你在 https://mail.example 上打了一個密碼。因為它是 HTTPS,密碼在離開你的裝置前就已在 TLS 裡加密;Wi-Fi 上的嗅探器只看到密文。在純 http://mail.example 上,同樣的密碼會以可讀的文字滑過——這就是為什麼瀏覽器現在會把 HTTP 登入表單標為「不安全」。

同樣的 HTTP 請求,現在裝在加密的 TLS 管子裡。

鎖頭不是信任徽章。HTTPS 證明你連到某具名網域的通道是加密且經鑑別的——不是說這網站合法。釣魚與惡意軟體網站也用 HTTPS;把它當成「私密」,而不是「安全」。

又稱
HTTP over TLSHTTP Secure安全 HTTPHTTP over TLS