主要思想
HTTPS的主要思想是在不安全的網路上創建一安全信道,並可在使用適當的加密包和
伺服器證書可被驗證且可被信任時,對
竊聽和
中間人攻擊提供合理的防護。
統計
截至2018年6月,Alexa排名前100萬的網站中有34.6%使用HTTPS作為默認值,網際網路141387個最受歡迎網站的43.1%具有安全實施的HTTPS,以及45%的頁面載入(透過Firefox紀錄)使用HTTPS。2017年3月,中國註冊域名總數的0.11%使用HTTPS。
瀏覽器實現
當連線到一個提供無效證書的網站時,較舊的瀏覽器會使用一對話框詢問用戶是否繼續,而較新的瀏覽器會在整個視窗中顯示警告;較新的瀏覽器也會在
地址欄中凸顯網站的安全信息(如,擴展驗證證書在
Firefox里會使地址欄出現綠鎖標誌)。
技術細節
與HTTP的差異
與
HTTP的
URL由“http://”起始且默認使用
連線埠80不同,HTTPS的URL由“https://”起始且默認使用
連線埠443。
HTTP是不安全的,且攻擊者通過
監聽和
中間人攻擊等手段,可以獲取網站帳戶和敏感信息等。HTTPS被設計為可防止前述攻擊,並在正確配置時被認為是安全的。
協定層
HTTP協定和安全協定同屬於套用層(
OSI模型的最高層),具體來講,安全協定工作在HTTP之下,運輸層之上:安全協定向運行HTTP的進程提供一個類似於TCP的套接字,供進程向其中注入報文,安全協定將報文加密並注入運輸層套接字;或是從運輸層獲取加密報文,解密後交給對應的進程。嚴格地講,HTTPS並不是一個單獨的協定,而是對工作在一加密連線(
TLS或SSL)上的常規HTTP協定的稱呼。
HTTPS報文中的任何東西都被加密,包括所有報頭和荷載。除了可能的
選擇密文攻擊(參見
限制小節)之外,一個攻擊者所能知道的只有在兩者之間有一連線這一事實。
伺服器設定
要使一網路伺服器準備好接受HTTPS連線,管理員必須創建一
數字證書,並交由證書頒發機構簽名以使瀏覽器接受。證書頒發機構會驗證數字證書持有人和其聲明的為同一人。瀏覽器通常都預裝了證書頒發機構的證書,所以他們可以驗證該簽名。
由證書頒發機構簽發的證書有免費的,也有每年收費數美元到數千美元不等的。一個組織也可能有自己的證書頒發機構,尤其是當設定瀏覽器來訪問他們自己的網站時(如,運行在公司或學校
區域網路內的網站)。他們可以容易地將自己的證書加入瀏覽器中。
HTTPS也可被用作客戶端
認證手段來將一些信息限制給合法的用戶。要做到這樣,管理員通常會給每個用戶創建證書(通常包含了用戶的名字和電子郵件地址)。這個證書會被放置在瀏覽器中,並在每次連線到伺服器時由伺服器檢查。
局限
TLS有兩種策略:簡單策略和互動策略。互動策略更為安全,但需要用戶在他們的瀏覽器中安裝個人的
證書來進行
認證。
不管使用了哪種策略,協定所能提供的保護總強烈地依賴於瀏覽器的實現和伺服器軟體所支持的
加密算法。
HTTPS並不能防止站點被
網路蜘蛛抓取。在某些情形中,被加密資源的
URL可僅通過截獲請求和回響的大小推得,這就可使攻擊者同時知道明文(公開的靜態內容)和密文(被加密過的明文),從而使
選擇密文攻擊成為可能。
因為HTTPS連線所用的
公鑰以明文傳輸,因此中國大陸的防火長城可以對特定網站按照匹配的黑名單證書,通過偽裝成對方向連線兩端的計算機傳送RST包干擾兩台計算機間正常的
TCP通訊,以打斷與特定IP位址之間的443連線埠握手,或者直接使握手的數據包丟棄,導致握手失敗,從而導致TLS連線失敗。這也是一種網際網路信息審查和禁止的技術手段。
如果
Mac OS X中的家長控制被啟用,那么HTTPS站點必須顯式地在“總是允許”列表中列出。
歷史
網景在1994年創建了HTTPS,並套用在
網景導航者瀏覽器中。最初,HTTPS是與
SSL一起使用的;在SSL逐漸演變到
TLS時,最新的HTTPS也在2000年五月公布下來。