標籤:瀏覽器 強制 window 開啟 win 點擊 rom 使用者 rac
HSTS(HTTP Strict Transport Security)國際互連網工程組織IETE正在推行一種新的Web安全性通訊協定
HSTS的作用是強制用戶端(如瀏覽器)使用HTTPS與伺服器建立串連。其實HSTS的最大作用是防止302 HTTP劫持(中間人)。HSTS的缺點是瀏覽器支援率不高,另外配置HSTS後HTTPS很難即時降級成HTTP。
採用HSTS協議的網站將保證瀏覽器始終串連到該網站的HTTPS加密版本,不需要使用者手動在URL地址欄中輸入加密地址。該協議將協助網站採用全域加密,使用者看到的就是該網站的安全版本。
HSTS的作用是強制用戶端(如瀏覽器)使用HTTPS與伺服器建立串連。伺服器開啟HSTS的方法是,當用戶端通過HTTPS發出請求時,在伺服器返回的超文字傳輸通訊協定 (HTTP)回應標頭中包含Strict-Transport-Security欄位。非加密傳輸時設定的HSTS欄位無效。
比如,https://xxx 的回應標頭含有Strict-Transport-Security: max-age=31536000; includeSubDomains。這意味著兩點:
在接下來的一年(即31536000秒)中,瀏覽器只要向xxx或其子網域名稱發送HTTP請求時,必須採用HTTPS來發起串連。比如,使用者點擊超連結或在地址欄輸入 http://xxx/ ,瀏覽器應當自動將 http 轉寫成 https,然後直接向 https://xxx/ 發送請求。
在接下來的一年中,如果 xxx 伺服器發送的TLS認證無效,使用者不能忽略瀏覽器警告繼續訪問網站。
作用
HSTS可以用來抵禦SSL剝離攻擊。SSL剝離攻擊是中間人攻擊的一種,由Moxie Marlinspike於2009年發明。他在當年的黑帽大會上發表的題為“New Tricks For Defeating SSL In Practice”的演講中將這種攻擊方式公開。SSL剝離的實施方法是阻止瀏覽器與伺服器建立HTTPS串連。它的前提是使用者很少直接在地址欄輸入https://,使用者總是通過點選連結或3xx重新導向,從HTTP頁面進入HTTPS頁面。所以攻擊者可以在使用者訪問HTTP頁面時替換所有https://開頭的連結為http://,達到阻止HTTPS的目的。
HSTS可以很大程度上解決SSL剝離攻擊,因為只要瀏覽器曾經與伺服器建立過一次安全連線,之後瀏覽器會強制使用HTTPS,即使連結被換成了HTTP。
另外,如果中間人使用自己的自我簽署憑證來進行攻擊,瀏覽器會給出警告,但是許多使用者會忽略警告。HSTS解決了這一問題,一旦伺服器發送了HSTS欄位,使用者將不再允許忽略警告。
不足
使用者首次訪問某網站是不受HSTS保護的。這是因為首次訪問時,瀏覽器還未收到HSTS,所以仍有可能通過明文HTTP來訪問。解決這個不足目前有兩種方案,一是瀏覽器預置HSTS網域名稱列表,Google Chrome、Firefox、Internet Explorer和Spartan實現了這一方案。二是將HSTS資訊加入到網域名稱系統記錄中。但這需要保證DNS的安全性,也就是需要部署網域名稱系統安全擴充。截至2014年這一方案沒有大規模部署。
由於HSTS會在一定時間後失效(有效期間由max-age指定),所以瀏覽器是否強制HSTS策略取決於當前系統時間。部分作業系統經常通過網路時間協議更新系統時間,如Ubuntu每次串連網路時,OS X Lion每隔9分鐘會自動連接時間伺服器。攻擊者可以通過偽造NTP資訊,設定錯誤時間來繞過HSTS。解決方案是認證NTP資訊,或者禁止NTP大幅度增減時間。比如Windows 8每7天更新一次時間,並且要求每次NTP設定的時間與目前時間不得超過15小時。
HTTPS-HSTS協議(強制用戶端使用HTTPS與伺服器建立串連)