HTTPS URL是否被加密?


4 Answers

由於沒有人提供線捕捉,這裡是一個。
服務器名稱 (URL的域部分)以明文形式顯示在ClientHello數據包中。

以下顯示瀏覽器請求:
https://i.stack.imgur.com/path/?some=parameters&go=here

有關 TLS版本字段的更多信息, 請參閱此答案 (其中有3個版本 - 不是版本,每個字段都包含版本號)!

https://www.ietf.org/rfc/rfc3546.txt

3.1。 服務器名稱指示

[TLS]沒有為客戶端提供一種機制來告訴服務器與其聯繫的服務器的名稱。 客戶可能希望提供這些信息,以便於在單個底層網絡地址上連接到託管多個“虛擬”服務器的服務器。

為了提供服務器名稱,客戶端可以在(擴展)客戶端hello中包含“server_name”類型的擴展名。


簡而言之:

  • 如果使用SNI擴展名,則FQDN(URL的域部分) 可以 清楚地ClientHello數據包內傳輸

  • 由於請求URL是一個HTTP事物(OSI第7層),URL的其餘部分( /path/?some=parameters&go=here )在ClientHello內沒有業務,因此它永遠不會出現在TLS握手中(第4層或5)。 稍後會在GET /path/?some=parameters&go=here HTTP/1.1 HTTP請求後,安全 TLS通道建立之後。


執行摘要

域名可以明文傳輸(如果在TLS握手中使用SNI擴展),但URL(路徑和參數)始終是加密的。

Question

使用TLS / SSL(HTTPS)加密時,所有的URL都被加密了嗎? 我想知道,因為我希望在使用TLS / SSL(HTTPS)時隱藏所有URL數據。

如果TLS / SSL為您提供總體URL加密,那麼我不必擔心隱藏URL中的機密信息。




除了Marc Novakowski提供的有用答案之外 - 該URL存儲在服務器的日誌中(例如,在/ etc / httpd / logs / ssl_access_log中),因此如果您不希望服務器維護更長的信息不要把它放在URL中。




整個請求和響應都是加密的,包括URL。

請注意,當您使用HTTP代理服務器時,它知道目標服務器的地址(域),但不知道此服務器上請求的路徑(即請求和響應始終加密)。




你不能總是依靠整個URL的隱私。 例如,企業網絡中的情況就是如此,您公司PC等提供的設備配置有額外的“可信”根證書,以便您的瀏覽器可以安靜地信任https流量的代理(中間人)檢測。 這意味著完整的URL將被公開以供檢查。 這通常保存到日誌中。

此外,您的密碼也被暴露並可能被記錄下來,這是使用一次性密碼或頻繁更改密碼的另一個原因。

最後,如果不加密,請求和響應內容也會暴露。

檢查點在這裡描述檢查設置的一個例子。 使用提供的PC的老式“網吧”也可以這樣設置。




正在監控流量的第三方也可以通過檢查您的流量並與其他用戶訪問該流量時的流量進行比較來確定訪問的頁面。 例如,如果網站上只有兩個頁面,一個比另一個大得多,那麼比較數據傳輸的大小就可以知道您訪問了哪個頁面。 有些方法可能會被第三方隱藏,但它們不是普通的服務器或瀏覽器行為。 例如參見SciRate的這篇論文, https://scirate.com/arxiv/1403.0297 //scirate.com/arxiv/1403.0297。

一般來說,其他答案是正確的,實際上,儘管本文表明訪問過的頁面(即URL)可以很有效地確定。




Related