當前位置: 首頁>>技術問答>>正文


HTTPS URL是否被加密?

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

如果TLS/SSL提供了全麵的URL加密,那麽就不用操心隱藏來自URL的機密信息了。

https

最佳解決思路

是的,HTTPS對URL加密了。SSL連接建立在TCP層和HTTP層之間。客戶端和服務器首先建立一個安全的加密的TCP連接(通過SSL/TLS協議),然後客戶端將通過該加密的TCP連接發送HTTP請求(GET,POST,DELETE …)。

次佳解決思路

帖子other answers已經指出,https “URLs”確實是加密的。但是,解析域名時,DNS請求/響應可能不是,另外,如果使用的是瀏覽器,訪問的URL也可能會被記錄下來。

第三種解決思路

這裏提供一個抓包截圖。服務器名稱(URL的域名部分)以明文顯示在ClientHello數據包中。

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

這個帖子可以查看有關TLS版本字段的更多信息(其中有3個 – 不是版本,每個字段都包含一個版本號!)

http,post,ssl,https,httprequest

簡而言之:

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

  • 由於請求URL是一個HTTP事物(OSI第7層),因此URL的其餘部分(/path/?some=parameters&go=here)在ClientHello中看不到,因此它永遠不會在TLS握手(第4層或第5層)中顯示。

匯總

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

參考文獻

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/3689.html,未經允許,請勿轉載。