HTTP系列(第5部分):安全性

你真的需要HTTPS嗎?

您可能會想:“當然並非所有網站都需要受到保護和保護”。如果一個網站沒有提供敏感數據或者沒有任何表格提交,那麼購買證書並減慢網站速度就太大了,只是為了在URL欄上顯示“安全”的綠色標記。

如果你擁有一個網站,你知道它儘可能快地加載是至關重要的,所以你儘量不要用不必要的東西加重它。

HTTPS加密您的消息並解決MITM問題

在HTTP系列的前一部分中,我談到了不同的HTTP身份驗證機制及其安全漏洞。基本和摘要式身份驗證無法解決的問題是中間攻擊的人。中間的人表示在您與您正在與之通信的網站之間插入自己的任何惡意方。它的目標是通過兩種方式攔截原始消息,並通過轉發修改後的消息來隱藏其存在。

HTTP系列(第5部分):安全性

通信的原始參與者可能不知道正在收聽他們的消息。

HTTPS通過加密通信來解決MITM攻擊問題。現在,這並不意味著您的流量無法再被收聽。這意味著任何偵聽和攔截您的消息的人都無法看到其內容。要解密消息,您需要密鑰。我們將在稍後瞭解它的工作原理。

一切都在關注速度

HTTPS是使用HTTP 2.0協議的要求。

如果我們查看網絡選項卡,我們將看到在HTTPS情況下,圖像是通過h2協議加載的。瀑布看起來也很不一樣。

HTTP 2.0是當前流行的HTTP / 1.1的繼承者。

它比HTTP / 1.1有許多優點:

  • 它是二進制的,而不是文本的
  • 它是完全多路複用的,這意味著它可以通過單個TCP連接並行發送多個請求
  • 通過使用HPACK壓縮減少開銷
  • 它使用新的 ALPN 擴展,允許更快加密的連接
  • 它減少了額外的往返時間(RTT),使您的網站加載速度更快
  • 很多其他的

SSL與TLS

術語SSL(安全套接字層)和TLS(傳輸層安全性)可以互換使用,但事實上,今天,當有人提到SSL時,他們可能意味著TLS

SSL最初是由Netscape開發的,但1.0版本從未見過當天的亮點。版本2.0是在1995年引入的,而版本3.0是在1996年引入的,並且它們在此之後被使用了很長時間(至少在IT中被認為很長),儘管它們的繼任者TLS已經開始引起關注。直到2014年。服務器支持從TLS到SSL的回退,這是POODLE攻擊如此成功的主要原因。之後,完全禁用了SSL的回退

TLS握手

在客戶端和服務器之間真正的加密通信開始之前,它們執行所謂的“TLS握手”。

以下是TLS握手的工作原理。

HTTP系列(第5部分):安全性

建立連接後,加密通信開始。

實際的機制比這複雜得多,但是要實現HTTPS,您不需要知道TLS握手實現的所有實際細節。

您需要知道的是客戶端和服務器之間存在初始握手,它們交換密鑰和證書。在握手之後,加密通信就可以開始了。

如果您想確切瞭解TLS Handshake的工作原理,可以在RFC 2246中查找。

在TLS握手圖像中,正在發送證書,因此讓我們看看證書代表什麼以及如何頒發證書。

證書和證書頒發機構(CA)

證書是通過HTTPS進行安全通信的關鍵部分。它們由其中一個受信任的證書頒發機構頒發。

數字證書允許網站用戶在使用網站時以安全的方式進行通信。

證書鏈

那麼為什麼您的瀏覽器會信任服務器發回的證書?任何服務器都可以發送一份數字文檔並聲稱它是您想要的。

這就是根證書的用武之地。通常證書是鏈接的,根證書是您的機器隱含信任的證書。

您的計算機和瀏覽器都有一個受信任的根證書列表,他們依賴這些證書來確保您瀏覽的域名是可信的。如果證書鏈由於某種原因而中斷(發生在我身上,因為我為我的博客啟用了CDN),您的站點將在某些計算機上顯示為不安全。

您可以通過按Windows按鈕+ R並鍵入certmgr.msc來運行證書管理器,以檢查Windows上受信任的根證書列表。然後,您可以在“受信任的根證書頒發機構”部分中找到計算機可信證書。此列表由Windows,IE和Chrome使用。另一方面,Firefox管理自己的列表。

通過交換證書,客戶端和服務器知道他們正在與正確的一方通話並且可以開始加密的消息傳輸。

HTTPS弱點

如果未正確實現站點後端,HTTPS可能會提供錯誤的安全感。提取客戶信息的方式有很多種,即使使用HTTPS,許多網站也會洩露數據。除了MITM之外,還有許多其他機制可以從網站獲取敏感信息。

網站可以擁有HTTP鏈接是另一個潛在問題,即使它們通過HTTPS運行。這可能是MITM攻擊的機會。在將網站遷移到HTTPS時,這可能會被忽視。

這是另一個獎勵:通過不安全頁面訪問的登錄表單即使加載在安全頁面也可能存在風險。因此,最好保持整個網站的安全,以避免這一點。


分享到:


相關文章: