全站 HTTPS 就一定安全了吗?
隨著網(wǎng)絡(luò)技術(shù)手段不斷地更新迭代,互聯(lián)網(wǎng)安全對于企業(yè)和個人的重要性都越來越高。因此越來越多的服務(wù)商都開始偏向為用戶提供更安全的在線內(nèi)容訪問。
中間人攻擊
為了保障網(wǎng)站內(nèi)容安全,誕生了不少加密方式。目前應(yīng)用最為廣泛的加密方式是 TLS(安全傳輸層協(xié)議),它脫胎自廣為人知的 SSL(安全套接字協(xié)議),并和 SSL 一起組成了 SSL/TLS 加密,可以讓 HTTP 變身為 HTTPS,為用戶和網(wǎng)站提供安全的數(shù)據(jù)傳輸。
正常來講,使用 HTTPS 和可靠的 SSL/TLS 證書訪問網(wǎng)站時,加密的傳輸是安全的。但是因為早期認(rèn)證機構(gòu)容易被黑客攻擊,進而導(dǎo)致證書安全性漏洞,同時一些常規(guī)使用習(xí)慣也可能造成安全漏洞,比如我們在輸入網(wǎng)址時,并不會輸入包含加密協(xié)議 https:// 的完整 URL,而是只輸入網(wǎng)站網(wǎng)址,而瀏覽器的自動訪問則會訪問不安全的 http://。這些存在的漏洞為中間人攻擊提供了便利。
中間人攻擊表面上看是系統(tǒng) A 與系統(tǒng) B 建立加密連接,但是實際上數(shù)據(jù)流會被第三方重定向,讓加密連接從系統(tǒng) A 運行到系統(tǒng) C,然后才重定向到系統(tǒng) B。這讓系統(tǒng) C 的控制者(通常是攻擊者)可以完整地查看、記錄以及操縱數(shù)據(jù)流量。攻擊者還通過這種方式將系統(tǒng) C 作為網(wǎng)絡(luò)服務(wù)器呈現(xiàn)給系統(tǒng) A,并給用戶端呈現(xiàn)錯誤的瀏覽頁面。這種攻擊在銀行或者電商行業(yè)會直接影響用戶在線交易,給用戶造成嚴(yán)重?fù)p失。
除去證書本身的問題,一些粗心大意的使用習(xí)慣也很容易造成安全漏洞。比如現(xiàn)在很多公共場合都會提供公共 WLAN,我們已經(jīng)習(xí)慣鏈接并使用,不會去檢查這個 Internet 是誰提供的。黑客可以將自己的計算機設(shè)置為熱點,并輕易獲得鏈接這個熱點的用戶的全部數(shù)據(jù)流,如果正好有人用這個網(wǎng)絡(luò)鏈接過銀行等業(yè)務(wù),那黑客很容易通過這個獲取用戶網(wǎng)銀密碼,造成財務(wù)損失。。
因此,互聯(lián)網(wǎng)工程任務(wù)組(IETF)在 2012 年提出了針對該安全性問題的一種解決方案:在 RFC 6797 中指定了 HTTPS 擴展的 HTTP 嚴(yán)格傳輸安全協(xié)議(HSTS)。
什么是 HSTS
HSTS(HTTP Strict Transport Security,HTTP 嚴(yán)格傳輸安全協(xié)議)是一種安全機制,旨在保護 HTTPS 連接免受中間人攻擊和會話劫持。它讓網(wǎng)站管理員在 HTTPS 的基礎(chǔ)上,通過 HTTP 頭信息向瀏覽器發(fā)送信號,在一個時間段內(nèi)以 SSL / TLS 加密的形式檢索網(wǎng)站。
這個 HTTP 頭信息在服務(wù)端顯示為:Strict-Transport-Security,它包含強制性的信息 max-age,也包含了可選參數(shù) includeSubDomains 和 preload 方便配置:
-
max-age: 指 HSTS 功能生效的時間,以秒為單位。例如 31536000 秒代表一年。
-
includeSubDomains: 如果指定,則表示域名(例如:upyun.com)對應(yīng)的每個子域名(例如:www.upyun.com 或 123.example.upyun.com),瀏覽器在訪問時也都會強制采用 HTTPS 進行訪問。
-
preload: 如果指定,則表示此域名同意申請加入由 Google 發(fā)起的 Preload List,申請地址[https://hstspreload.org/]。
在服務(wù)端配置完成頭信息后,當(dāng)互聯(lián)網(wǎng)用戶首次訪問網(wǎng)站時,瀏覽器將從 Strict-Transport-Security 頭信息中獲取以下指令:
-
指向相應(yīng)網(wǎng)站的所有未加密鏈接都必須被加密鏈接覆蓋(http:// 到 https://)。
-
如果不能保證連接的安全性(例如:證書無效),則必須終止該連接。同時向用戶顯示錯誤消息。
如何開啟 HSTS
如果是對安全性要求較高的網(wǎng)站,一般都會選擇開啟 HSTS 。
但是 HSTS 并不是隨意開啟的,它需要支持它的瀏覽器。目前市場上支持 HSTS 的瀏覽器如下:(對于那些不支持的瀏覽器,會忽略此響應(yīng)頭,對用戶的訪問無影響,可以不用擔(dān)心)
而具體開啟 HSTS 則可以登陸又拍云控制臺,依次進入:服務(wù) > 功能配置 > HTTPS > HSTS,點擊管理進行配置開啟。
又拍云自 17 年起就已經(jīng)支持配置 HSTS,配置步驟簡單,操作方便。但是這里需要特別提醒的是,如果有參數(shù)設(shè)置不當(dāng)可能會導(dǎo)致網(wǎng)站無法訪問,大家如果遇到問題可以直接聯(lián)系我們的客服小姐姐哦~
HTTPS 網(wǎng)站的預(yù)加載列表
當(dāng)然光靠 HSTS 并不是萬無一失的,因為 HSTS 的響應(yīng)頭是由服務(wù)器返回的,需要用戶先發(fā)起訪問才能獲取到這個響應(yīng)頭。獲取響應(yīng)頭后才會進行強制 HTTPS 訪問操作。這也就意味著每次訪問還是容易受到攻擊風(fēng)險。
為盡可能的減小這種風(fēng)險,目前市面上所有的瀏覽器都加入了 Google 提供的 HSTS Preload List。只要加入到這個列表中,所有的通過瀏覽器訪問請求都會強制走 HTTPS,在很大程度上可以杜絕“第一次”訪問的劫持,最大限度地提高 HTTPS 訪問的安全性。
如果你需要將自己的網(wǎng)站加入 HSTS Preload ,那必須確保符合如下基本要求:
-
所有網(wǎng)站頁面都必須使用有效的 SSL 證書
-
HTTP URL 必須定向到同一主機的 HTTPS URL
-
所有子域(包括 www 子域)必須支持 HTTPS 且可用
-
必須通過具有以下參數(shù)的域名來傳遞 HSTS 頭信息:
- 網(wǎng)站需要始終滿足上訴要求,否則會被自動刪除
在信息安全越來越重要的今天,及時更新網(wǎng)站的安全手段,維護網(wǎng)站和用戶的安全,避免因一時的疏忽造成損失才是最好的選擇。
總結(jié)
以上是生活随笔為你收集整理的全站 HTTPS 就一定安全了吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不一样的图片加载方式
- 下一篇: 短视频时代不可忽视的幕后功臣竟然是它!