HTTP隧道
編輯HTTP 加密用于在網絡連接受限(包括防火墻、NAT 和 ACL 以及其他限制)的條件下在兩臺計算機之間創建網絡鏈接。 隧道由稱為代理服務器的中介創建,通常位于 DMZ 中。
隧道還可以允許使用受限網絡通常不支持的協議進行通信。
HTTP 連接方法
編輯最常見的 HTTP 傳輸形式是標準化的 HTTP CONNECT 方法。 在這種機制中,客戶端請求 HTTP 代理服務器將 TCP 連接轉發到所需的目的地。 然后服務器繼續代表客戶端建立連接。 服務器建立連接后,代理服務器將繼續代理 TCP 流與客戶端之間的往來。 只有初始連接請求是 HTTP - 之后,服務器只是代理已建立的 TCP 連接。
這種機制是 HTTP 代理后面的客戶端如何使用 SSL 或 TLS(即 HTTPS)訪問網站。 代理服務器還可以通過僅允許連接到默認 HTTPS 端口 443、將主機列入白名單或阻止似乎不是 SSL 的流量來限制連接。
談判示例
客戶端連接到代理服務器并通過指定要連接的端口和主機來請求隧道。 該端口用于指示所請求的協議。
如果允許連接并且代理已連接到指定的主機,則代理將返回 2XX 成功響應。
HTTP/1.1 200 正常
客戶端現在被代理到遠程主機。 發送到代理服務器的任何數據現在都未經修改地轉發到遠程主機,客戶端可以使用遠程主機接受的任何協議進行通信。在下面的示例中,客戶端正在啟動 SSH 通信,如端口號所示 在最初的 CONNECT 請求中。
不使用 CONNECT 的 HTTP 屏蔽
編輯還可以僅使用常用的 HTTP 方法(如 POST、GET、PUT 和 DELETE)來實現 HTTP 隧道。 這類似于同步 HTTP 雙向流 (BOSH) 中使用的方法。
在這個概念驗證程序中,一個特殊的 HTTP 服務器在受保護網絡之外運行,而客戶端程序在受保護網絡內部的計算機上運行。 每當從客戶端傳遞任何網絡流量時,客戶端都會將流量數據重新打包為 HTTP 請求,并將數據中繼到外部服務器,該服務器為客戶端提取并執行原始網絡請求。 發送到服務器的對請求的響應隨后被重新打包為 HTTP 響應并中繼回客戶端。 由于所有流量都封裝在正常的 GET 和 POST 請求和響應中,因此這種方法可以通過大多數代理和防火墻。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/198065/