智慧財產權與網際網路/代理伺服器

在 計算機網路 中,代理伺服器 是一個 伺服器(計算機系統或應用程式),充當 客戶端 的中介,這些客戶端從其他伺服器請求資源。客戶端連線到代理伺服器,請求某些服務,例如檔案、連線、網頁或其他可從不同伺服器獲得的資源。代理伺服器根據其過濾規則評估請求。例如,它可以根據 IP 地址 或 協議 過濾流量。如果請求透過過濾器驗證,代理將透過連線到相關伺服器並代表客戶端請求服務來提供資源。代理伺服器可以選擇性地更改客戶端的請求或伺服器的響應,有時它可能會在不聯絡指定伺服器的情況下提供請求。在這種情況下,它會 '快取' 來自遠端伺服器的響應,並直接返回後續對相同內容的請求。
代理的概念誕生於分散式系統的早期[1],作為簡化和控制其複雜性的方法。如今,大多數代理都是網頁代理,允許訪問 全球資訊網 上的內容。
代理伺服器有各種潛在用途,包括
- 使它後面的機器匿名,主要是為了 安全。[2]
- 加快對資源的訪問速度(使用快取)。網頁代理通常用於 快取 來自 Web 伺服器的網頁。[3]
- 將訪問策略應用於網路服務或內容,例如阻止不需要的網站。
- 訪問您的 ISP 或機構禁止或過濾的網站。
- 記錄/稽核使用情況,例如提供公司員工的網際網路使用情況報告。
- 繞過安全/家長控制。
- 繞過政府阻止的網際網路過濾,訪問其他內容。[4]
- 在交付之前掃描傳輸的內容以查詢惡意軟體。
- 掃描出站內容,例如為了資料丟失預防。
- 允許網站向外部託管的資源(例如影像、音樂檔案等)發出 Web 請求,當跨域限制禁止網站直接連結到外部域時。
通常,無修改地傳遞請求和響應的代理伺服器被稱為 閘道器,有時也稱為隧道代理。
代理伺服器可以放置在使用者的本地計算機中,也可以放置在使用者和網際網路上的目標伺服器之間的各個點。
反向代理 通常是面向網際網路的代理,用作私有網路上伺服器的前端,以控制和保護對該伺服器的訪問,通常還會執行諸如負載平衡、身份驗證、解密或快取之類的任務。

正向代理是客戶端伺服器命名要連線的目標伺服器的代理。[5] 正向代理能夠從各種來源檢索(在大多數情況下,可以從網際網路上的任何地方檢索)。
"正向代理" 和 "轉發代理" 這些術語是對行為(轉發流量)的一般描述,因此存在歧義。除了反向代理之外,本文中描述的代理型別是通用正向代理概念的更專業的子型別。

開放代理是可以被任何網際網路使用者訪問的轉發代理伺服器。 Gordon Lyon 估計網際網路上有 “數十萬” 個開放代理。[6] 匿名開放代理 允許使用者在瀏覽網頁或使用其他網際網路服務時隱藏自己的 IP 地址。但是,匿名程度各不相同,並且存在多種方法可以 “欺騙” 客戶端使其無論使用什麼代理都洩露自身資訊。

反向代理(或代理)是一種對客戶端來說像是普通伺服器的代理伺服器。請求被轉發到一個或多個源伺服器,這些伺服器處理請求。響應被返回,就像直接來自代理伺服器一樣。[5]
反向代理安裝在一個或多個 Web 伺服器附近。來自網際網路並以這些伺服器之一為目標的所有流量都必須經過代理伺服器。“反向” 的使用源於其對應詞 “正向代理”,因為反向代理更靠近 Web 伺服器,只服務於一組受限的網站。
安裝反向代理伺服器有很多原因:
- 加密/SSL 加速:建立安全網站時,SSL 加密通常不是由 Web 伺服器本身完成的,而是由配備了 SSL 加速硬體的反向代理完成的。參見 安全套接字層。此外,主機可以提供單個 “SSL 代理” 為任意數量的主機提供 SSL 加密;這樣就無需為每個主機單獨使用 SSL 伺服器證書,缺點是反向代理後面的所有主機都必須共享 SSL 連線的公共 DNS 名稱或 IP 地址。這個問題可以透過使用 X.509 證書的SubjectAltName 功能來部分解決。
- 負載均衡: 反向代理可以將負載分配到多個 Web 伺服器,每個 Web 伺服器服務於自己的應用程式區域。在這種情況下,反向代理可能需要重寫每個網頁中的 URL(將外部已知 URL 轉換為內部位置)。
- 服務/快取靜態內容:反向代理可以透過快取靜態內容(如圖片和其他靜態圖形內容)來解除安裝 Web 伺服器。
- 壓縮:代理伺服器可以最佳化和壓縮內容以加快載入時間。
- 慢慢餵食:透過快取 Web 伺服器傳送的內容並緩慢地“慢慢餵食”給客戶端,從而減少慢速客戶端在 Web 伺服器上造成的資源使用。這對動態生成的頁面特別有利。
- 安全性:代理伺服器是額外的防禦層,可以防止某些作業系統和 Web 伺服器特有的攻擊。但是,它不提供任何針對 Web 應用程式或服務本身的攻擊的保護,這通常被認為是更大的威脅。
- 外部網釋出:面向網際網路的反向代理伺服器可用於與組織內部的防火牆伺服器通訊,為某些功能提供外部網訪問,同時將防火牆後的伺服器保留在內部。如果以這種方式使用,應考慮安全措施以保護您的其他基礎設施,以防此伺服器被入侵,因為其 Web 應用程式容易受到來自網際網路的攻擊。
旨在緩解特定連結相關問題或降級的代理。PEP(效能增強代理)通常用於在存在高往返時間 (RTT) 和無線鏈路具有高丟包率的情況下提高 TCP 效能。它們也經常用於具有非常不同的上傳和下載速率的高度非同步連結。
一個內容過濾 Web 代理伺服器提供對可能透過代理中繼的內容的管理控制。它通常用於商業和非商業組織(尤其是學校),以確保網際網路使用符合可接受使用政策。在某些情況下,使用者可以繞過代理,因為有一些服務旨在透過非過濾網站代理來自過濾網站的資訊,以允許其透過使用者的代理。[7]
內容過濾代理通常會支援使用者身份驗證,以控制 Web 訪問。它通常還會生成日誌,要麼提供有關特定使用者訪問的 URL 的詳細資訊,要麼監控頻寬使用統計資訊。它還可以與守護程序
許多工作場所、學校和學院限制了在其建築物中提供的網站和線上服務。這是透過專門的代理(稱為內容過濾器,有商業和免費產品可用)或透過使用快取擴充套件協議(如ICAP)來完成的,該協議允許將外掛擴充套件到開放式快取架構中。
用於內容過濾的一些常見方法包括:URL 或DNS 黑名單,URL 正則表示式過濾,MIME 過濾或內容關鍵字過濾。已知某些產品採用內容分析技術來查詢某些型別的內容提供商通常使用的特徵。
對開放網際網路的請求必須首先通過出站代理過濾器。Web 過濾公司提供一個 URL 模式(正則表示式)資料庫,並具有關聯的內容屬性。該資料庫每週透過站點範圍訂閱更新,就像病毒過濾器訂閱一樣。管理員指示 Web 過濾器禁止廣泛類別的內容(如體育、色情內容、線上購物、賭博或社交網路)。與被禁止的 URL 模式匹配的請求將立即被拒絕。
假設請求的 URL 可接受,則代理將獲取該內容。此時,可以在返回路徑上應用動態過濾器。例如,可以根據膚色匹配阻止JPEG 檔案,或者語言過濾器可以動態檢測不需要的語言。如果內容被拒絕,則返回 HTTP 獲取錯誤,並且不會快取任何內容。
外部網釋出:面向網際網路的反向代理伺服器可用於與組織內部的防火牆伺服器通訊,為某些功能提供外部網訪問,同時將防火牆後的伺服器保留在內部。如果以這種方式使用,應考慮安全措施以保護您的其他基礎設施,以防此伺服器被入侵,因為其 Web 應用程式容易受到來自網際網路的攻擊
大多數 Web 過濾公司使用網際網路範圍內的爬蟲機器人來評估內容是特定型別的可能性。然後,根據投訴或內容匹配演算法中已知的缺陷,透過人工勞動來校正結果資料庫。
Web 過濾代理無法檢視安全的套接字 HTTP 事務內部,假設 SSL/TLS 的信任鏈沒有被篡改。因此,想要繞過 Web 過濾的使用者通常會在網際網路上搜索開放式匿名 HTTPS 透明代理。然後,他們會將瀏覽器程式設計為透過 Web 過濾器將所有請求代理到此匿名代理。這些請求將使用 https 加密。Web 過濾器無法區分這些事務與例如對金融網站的合法訪問。因此,內容過濾器僅對缺乏經驗的使用者有效。
如上所述,SSL/TLS 信任鏈確實依賴於受信任的根證書頒發機構;在客戶端由組織管理的工作場所環境中,信任可能會授予其私鑰為代理所知的根證書。具體來說,由代理生成的根證書由 IT 人員安裝到瀏覽器的 CA 列表中。在這種情況下,代理對 SSL/TLS 事務內容的分析成為可能。代理實際上正在執行中間人攻擊,因為客戶端信任代理擁有的根證書。
Web 代理的一個特例是“CGI 代理”。這些是允許使用者透過它們訪問網站的網站。他們通常使用PHP 或CGI 來實現代理功能。這些型別的代理經常用於訪問被公司或學校代理阻止的網站。由於它們也隱藏了使用者自己的IP 地址,因此它們有時也用於獲得一定程度的匿名性,稱為“代理避免”。
一個快取代理伺服器透過檢索從同一個客戶端或其他客戶端之前請求中儲存的內容來加速服務請求。快取代理保留經常請求的資源的本地副本,允許大型組織顯著減少其上游頻寬使用量和成本,同時顯著提高效能。大多數 ISP 和大型企業都有快取代理。快取代理是第一種代理伺服器。
一些實施不當的快取代理具有負面影響(例如,無法使用使用者身份驗證)。RFC 3143(已知的 HTTP 代理/快取問題)中描述了一些問題。
代理伺服器的另一個重要用途是降低硬體成本。一個組織可能在同一個網路上或在單個伺服器的控制下擁有許多系統,禁止每個系統單獨連線到網際網路。在這種情況下,單個系統可以連線到一個代理伺服器,並且代理伺服器連線到主伺服器。軟體快取代理的示例是Squid。
DNS 代理伺服器接收來自(通常是本地)網路的 DNS 查詢,並將它們轉發到 Internet 域名伺服器。它還可以快取 DNS 記錄。
如果目標伺服器根據請求的來源過濾內容,使用代理可以繞過此過濾器。例如,使用基於IP的地理定位來將服務限制在特定國家/地區的伺服器可以透過使用位於該國家/地區的代理來訪問該服務。
同樣,配置不當的代理可以提供對原本與 Internet 隔離的網路的訪問。[6]
可以安裝代理以竊聽客戶端機器和網路之間的資料流。所有傳送或訪問的內容 - 包括提交的密碼和使用的Cookie - 都可以被代理操作員捕獲和分析。因此,線上服務(如 webmail 和銀行)的密碼應始終透過加密安全連線(如 SSL)交換。
透過連結不透露原始請求者資訊的代理,可以從使用者的目的地眼中隱藏活動。但是,將在中間跳躍點留下更多痕跡,這些痕跡可用於跟蹤使用者的活動或提供給使用者以跟蹤使用者的活動。如果這些其他代理的策略和管理員未知,使用者可能會錯誤地認為自己很安全,僅僅因為這些細節不在視線內和腦海中。
更像是不便而不是風險的是,代理使用者可能會發現自己被某些網站阻止,因為許多論壇和網站阻止來自代理的 IP 地址,這些代理被認為已傳送垃圾郵件或惡意攻擊該網站。代理跳躍可用於維護您的隱私。
代理伺服器可以在連結兩個網路方面執行類似於網路交換機的作用。
匿名代理伺服器(有時稱為網路代理)通常試圖匿名化網路衝浪。有不同型別的匿名器。目標伺服器(最終滿足網路請求的伺服器)從匿名代理伺服器接收請求,因此不會收到有關終端使用者地址的資訊。但是,請求對於匿名代理伺服器來說不是匿名的,因此代理伺服器和使用者之間存在一定程度的信任。它們中的許多透過向用戶提供持續的廣告連結來獲得資金。
訪問控制:一些代理伺服器實施登入要求。在大型組織中,授權使用者必須登入才能訪問網路。組織因此可以跟蹤個人使用情況。
一些匿名代理伺服器可能會轉發包含 HTTP_VIA、HTTP_X_FORWARDED_FOR 或 HTTP_FORWARDED 等標題行的資料包,這些標題行可能會透露客戶端的 IP 地址。其他匿名代理伺服器,稱為精英或高匿名代理,只包含包含代理伺服器 IP 地址的 REMOTE_ADDR 標題,使其看起來像代理伺服器是客戶端。如果客戶端傳送包含來自未使用高匿名代理伺服器的先前訪問的 Cookie 的資料包,網站仍然會懷疑正在使用代理。清除 Cookie 以及可能清除快取可以解決此問題。
網路代理像任何其他代理伺服器一樣傳遞http 協議請求。但是,網路代理接受使用者瀏覽器視窗內的目標 URL,處理請求,然後立即將請求的 URL 的內容顯示回用戶瀏覽器。這通常與企業內部網代理有很大不同,有些人錯誤地將企業內部網代理稱為網路代理。
字尾代理允許使用者透過將代理伺服器的名稱附加到請求內容的 URL 來訪問網路內容(例如,“en.wikipedia.org.SuffixProxy.com”)。字尾代理伺服器比普通代理伺服器更易於使用。但不能提供匿名,主要用途是繞過網路過濾器;但是,由於更先進的網路過濾器,這很少使用。
透明代理也稱為攔截代理或強制代理,它可以在不需任何特殊客戶端配置的情況下攔截正常通訊。客戶端不必知道代理的存在。透明代理通常位於客戶端和 Internet 之間,代理執行閘道器或路由器的部分功能。[8]
RFC 2616(超文字傳輸協議 - HTTP/1.1)提供標準定義
- “'透明代理'是一種代理,除了代理身份驗證和識別所需的之外,它不會修改請求或響應”。
- “'非透明代理'是一種代理,它會修改請求或響應,以便為使用者代理提供一些附加服務,例如組註釋服務、媒體型別轉換、協議縮減或匿名過濾”。
2009 年,Robert Auger 釋出了透明代理操作方式中存在的安全漏洞,[9]計算機應急響應小組釋出了一份諮詢公告,其中列出了數十個受影響的透明代理和攔截代理伺服器。[10]
攔截代理通常用於企業中,以防止規避可接受使用策略,並減輕管理負擔,因為不需要任何客戶端瀏覽器配置。但是,由於 Active Directory 組策略或 DHCP 和自動代理檢測等功能,第二個原因得到了緩解。
攔截代理還被一些國家/地區的 ISP 廣泛使用,以透過快取節省上游頻寬並提高客戶響應時間。這在頻寬有限(例如島國)或需要付費的國家/地區更為常見。
TCP 連線的轉向/攔截會產生幾個問題。首先,必須以某種方式將原始目標 IP 和埠傳達給代理。這並不總是可行的(例如,當閘道器和代理位於不同的主機上時)。有一類跨站點攻擊依賴於不檢查或無法訪問有關原始(被攔截)目標的資訊的攔截代理的某些行為。這個問題可以透過使用整合的包級別和應用程式級別裝置或軟體來解決,然後這些裝置或軟體能夠在包處理程式和代理之間傳遞此資訊。
攔截還會為HTTP 身份驗證(特別是連線型身份驗證,如NTLM)造成問題,因為客戶端瀏覽器認為它正在與伺服器通訊而不是代理。這會導致問題,因為攔截代理需要身份驗證,然後使用者連線到也需要身份驗證的網站。
最後,攔截連線會導致 HTTP 快取出現問題,因為某些請求和響應變得無法被共享快取快取。
因此,一般不鼓勵攔截連線。但是,由於部署此類系統的簡單性,它們被廣泛使用。
可以使用 Cisco 的WCCP(Web 快取控制協議)執行攔截。此專有協議駐留在路由器上,並從快取進行配置,允許快取確定哪些埠和流量透過路由器的透明重定向傳送到它。此重定向可以透過以下兩種方式之一進行:GRE 隧道 (OSI 第 3 層) 或 MAC 重寫 (OSI 第 2 層)。
一旦流量到達代理機器本身,攔截通常使用 NAT(網路地址轉換)執行。此類設定對客戶端瀏覽器不可見,但使代理對 Web 伺服器和代理網路側的其他裝置可見。最近的 Linux 和一些 BSD 版本提供了 TPROXY(透明代理),它執行 IP 級別的 (OSI 第 3 層) 透明攔截和出站流量欺騙,隱藏代理 IP 地址免受其他網路裝置的檢測。
有幾種方法通常可以用於檢測攔截代理伺服器的存在。
- 透過比較客戶端的外部 IP 地址和外部 Web 伺服器看到的地址,或者有時透過檢查伺服器接收到的 HTTP 標頭。為了解決這個問題,已經建立了一些網站,透過在網頁上向用戶報告網站看到的使用者的 IP 地址來向用戶報告。 [1]
- 透過比較諸如traceroute之類的工具為代理協議(例如 http(埠 80))報告的網路躍點序列與非代理協議(例如 SMTP(埠 25))的網路躍點序列。 [2],[3]
- 透過嘗試連線到已知不存在伺服器的 IP 地址。代理將接受連線,然後嘗試代理它。當代理找不到伺服器來接受連線時,它可能會返回錯誤訊息或簡單地關閉與客戶端的連線。這種行為差異很容易檢測到。例如,大多數 Web 瀏覽器會在無法連線到 HTTP 伺服器的情況下生成瀏覽器建立的錯誤頁面,但在接受連線後又關閉連線的情況下會返回不同的錯誤。[11]
- 透過向終端使用者提供專門程式設計的 Flash 檔案,這些檔案會向其伺服器傳送 HTTP 呼叫。

Tor(The Onion Router 的縮寫)是一個旨在實現線上匿名的系統。[12] Tor 客戶端軟體透過全球志願者伺服器網路路由網際網路流量,以隱藏使用者的地理位置或使用情況,使其免受進行網路監控或流量分析的人員的監控。[12] 使用 Tor 使追蹤網際網路活動(包括“訪問網站、線上帖子、即時訊息和其他通訊形式”)變得更加困難,追蹤到使用者。[12] 它的目的是透過阻止使用者的網際網路活動受到監控來保護使用者的個人自由、隱私和進行機密業務的能力。
“洋蔥路由”指的是加密服務的層層疊疊的性質:原始資料被多次加密和重新加密,然後透過連續的 Tor 中繼傳送,每個中繼都會解密一層加密,然後將資料傳遞到下一個中繼,最終傳遞到目標。這降低了在傳輸過程中對原始資料進行解密或理解的可能性。[13]
Tor 客戶端是自由軟體,使用該網路無需支付任何額外費用。
The I2P 匿名網路 ('I2P') 是一個旨在實現線上匿名的代理網路。它實現了大蒜路由,它是Tor 的洋蔥路由的增強版。I2P 是完全分散式的,透過在各種位置由志願者執行的路由器網路加密各種層面的所有通訊並將它們中繼來工作。透過隱藏資訊來源,I2P 提供了抗審查能力。I2P 的目標是保護使用者的個人自由、隱私和進行機密業務的能力。
每個 I2P 使用者都在其計算機(節點)上執行一個 I2P 路由器。I2P 路由器負責查詢其他對等節點並透過它們建立匿名隧道。I2P 為所有協議(HTTP、irc、SOCKS 等)提供代理。
該軟體是免費開源的,並且使用該網路是免費的。
- ↑ Shapiro, Marc (1986). "分散式系統中的結構和封裝:代理原理" (PDF). 國際分散式計算系統會議: 198–204. Retrieved 4 September 2011.
{{cite journal}}: Unknown parameter|month=ignored (help) - ↑ "防火牆和代理伺服器 HOWTO". tldp.org. Retrieved 4 September 2011.
代理伺服器首先是安全裝置。
- ↑ Thomas, Keir (2006). Beginning Ubuntu Linux: From Novice to Professional. Apress. ISBN 9781590596272.
代理伺服器透過儲存經常訪問的頁面來幫助加速網際網路訪問。
- ↑ "2010 繞過工具使用報告" (PDF). 哈佛大學伯克曼網際網路與社會研究中心。2010 年 10 月。
- ↑ a b "正向代理和反向代理". httpd mod_proxy. Apache. Retrieved 20 December 2010.
- ↑ a b Lyon, Gordon (2008). Nmap 網路掃描. 美國:Insecure. 第 270 頁。 ISBN 9780979958717.
- ↑ "使用 Ninjaproxy 穿越過濾代理". 高階過濾機制. TSNP. Retrieved 17 September 2011.
- ↑ "什麼是攔截代理?". uCertify. 2010 年 2 月 28 日. Retrieved 4 September 2011.
- ↑ "支援套接字的瀏覽器外掛會導致透明代理濫用". 安全實踐。2009 年 3 月 9 日. Retrieved 14 August 2010.
- ↑ "漏洞說明 VU#435052". 美國網路安全與應急響應小組. 2009 年 2 月 23 日. Retrieved 14 August 2010.
- ↑ Wessels, Duane (2004). Squid:權威指南. O'Reilly. 第 130 頁。 ISBN 9780596001629.
- ↑ a b Glater, Jonathan (2006 年 1 月 25 日). "不露肚臍的隱私". 紐約時報. http://www.nytimes.com/2006/01/25/technology/techspecial2/25privacy.html?_r=1. Retrieved 4 August 2011.
- ↑ 洋蔥路由專案. "Tor:匿名線上". Retrieved 9 January 2011.