Loading AI tools
安全的超文本傳輸協議通信協議 来自维基百科,自由的百科全书
超文本傳輸安全協定(英語:HyperText Transfer Protocol Secure,縮寫:HTTPS;常稱為HTTP over TLS、HTTP over SSL或HTTP Secure)是一種透過計算機網路進行安全通訊的傳輸協議。HTTPS經由HTTP進行通訊,但利用SSL/TLS來加密封包。HTTPS開發的主要目的,是提供對網站伺服器的身份認證,保護交換資料的隱私與完整性。這個協議由網景公司(Netscape)在1994年首次提出,隨後擴展到網際網路上。
歷史上,HTTPS連接經常用於萬維網上的交易支付和企業信息系統中敏感信息的傳輸。在2000年代末至2010年代初,HTTPS開始廣泛使用,以確保各類型的網頁真實,保護帳戶和保持用戶通信,身份和網絡瀏覽的私密性。
另外,還有一種安全超文本傳輸協議(S-HTTP)的HTTP安全傳輸實現,但是HTTPS的廣泛應用而成為事實上的HTTP安全傳輸實現,S-HTTP並沒有得到廣泛支持。
HTTPS的主要作用是在不安全的網絡上創建一個安全信道,並可在使用適當的加密套件和服務器證書可被驗證且可被信任時,對竊聽和中間人攻擊提供合理的防護。
HTTPS的信任基於預先安裝在操作系統中的證書頒發機構(CA)。因此,與一個網站之間的HTTPS連線僅在這些情況下可被信任:
截至2018年6月,Alexa排名前100萬的網站中有34.6%使用HTTPS作為預設值[1],互聯網141387個最受歡迎網站的43.1%具有安全實施的HTTPS[2],以及45%的頁面載入(透過Firefox紀錄)使用HTTPS[3]。2017年3月,中國註冊域名總數的0.11%使用HTTPS。[4]
當連接到一個提供無效證書的網站時,較舊的瀏覽器會使用一個對話框詢問用戶是否繼續,而較新的瀏覽器會在整個窗口中顯示警告。
Google Chrome、Internet Explorer和Firefox等瀏覽器在網站含有由加密和未加密內容組成的混合內容時,會發出警告。
自2018年起,Firefox及Chromium(以及Google Chrome、Microsoft Edge)調整了其顯示網站域名及其安全程度的方式,包括不再突出顯示HTTPS協議下的網頁及將非HTTPS協議下的網頁標註為不安全。電子前哨基金會曾經建議「在理想的世界中,任何網絡請求都能默認為HTTPS的。」該基金會也曾製作了Firefox擴展組件來推廣這一建議。[7][8]在Chrome瀏覽器上也有類似的擴充功能。[9]
HTTP的URL是由「http://
」起始與默認使用端口80,而HTTPS的URL則是由「https://
」起始與默認使用端口443。
HTTP不是安全的,而且攻擊者可以通過監聽和中間人攻擊等手段,獲取網站帳戶和敏感信息等。HTTPS的設計可以防止前述攻擊,在正確配置時是安全的。
HTTP協議和安全協議同屬於應用層(OSI模型的最高層),具體來講,安全協議工作在HTTP之下,傳輸層之上:安全協議向運行HTTP的進程提供一個類似於TCP的套接字,供進程向其中注入報文,安全協議將報文加密並注入運輸層套接字;或是從運輸層獲取加密報文,解密後交給對應的進程。嚴格地講,HTTPS並不是一個單獨的協議,而是對工作在一加密連接(TLS或SSL)上的常規HTTP協議的稱呼。
HTTPS報文中的任何東西都被加密,包括所有報頭和荷載。除了可能的選擇密文攻擊(參見局限小節)之外,一個攻擊者所能知道的只有在兩者之間有一連接這一事實。
要使一網絡服務器準備好接受HTTPS連接,管理員必須創建一數字證書,並交由證書頒發機構簽名以使瀏覽器接受。證書頒發機構會驗證數字證書持有人和其聲明的為同一人。瀏覽器通常都預裝了證書頒發機構的證書,所以他們可以驗證該簽名。
由證書頒發機構簽發的證書有免費的[10][11],也有每年收費數美元到數千美元不等的。
一個組織也可能有自己的證書頒發機構,尤其是當設置瀏覽器來訪問他們自己的網站時(如,運行在公司或學校局域網內的網站)。他們可以容易地將自己的證書加入瀏覽器中。
HTTPS也可被用作客戶端認證手段來將一些信息限制給合法的用戶。要做到這樣,管理員通常會給每個用戶創建證書(通常包含了用戶的名字和電子郵件地址)。這個證書會被放置在瀏覽器中,並在每次連接到服務器時由服務器檢查。
證書可在其過期前被吊銷,通常情況是該證書的私鑰已經失密。較新的瀏覽器如Google Chrome、Firefox[12]、Opera[13]和運行在Windows Vista上的Internet Explorer[14]都實現了在線證書狀態協議(OCSP)以排除這種情形:瀏覽器將網站提供的證書的序列號通過OCSP發送給證書頒發機構,後者會告訴瀏覽器證書是否還是有效的。[15]
TLS有兩種策略:簡單策略和交互策略。交互策略更為安全,但需要用戶在他們的瀏覽器中安裝個人的證書來進行認證。
不管使用了哪種策略,協議所能提供的保護總強烈地依賴於瀏覽器的實現和服務器軟件所支持的加密算法。
HTTPS並不能防止站點被網絡蜘蛛抓取。在某些情形中,被加密資源的URL可僅通過截獲請求和響應的大小推得,[16]這就可使攻擊者同時知道明文(公開的靜態內容)和密文(被加密過的明文),從而使選擇密文攻擊成為可能。
因為TLS在HTTP之下工作,對上層協議一無所知,所以TLS服務器只能為一個IP地址/端口組合提供一個證書。[17]這就意味着在大部分情況下,使用HTTPS的同時支持基於名字的虛擬主機是不很現實的。一種叫服務器名稱指示(SNI)的方案通過在加密連接創建前向服務器發送主機名解決了這一問題。Firefox 2、Opera 8和運行在Windows Vista的Internet Explorer 7都加入了對SNI的支持。[18][19][20]
在TLS版本1.2中,服務端發送的證書以明文傳輸,因此中國大陸的防火長城可以對特定網站按照匹配的黑名單證書,檢測到特定證書即執行TCP重置攻擊,從而導致TLS連接無法建立。[21]這也是一種互聯網信息審查和屏蔽的技術手段。TLS版本1.3中服務端證書被加密[22],然而服務器名稱指示仍未被加密,並成為防火長城檢測的新手段。
網景在1994年創建了HTTPS,並應用在網景導航者瀏覽器中。[24] 最初,HTTPS是與SSL一起使用的;在SSL逐漸演變到TLS時,HTTPS也由在2000年五月公布的RFC 2818正式確定下來。[25]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.