分層服務提供者
此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
此條目需要補充更多來源。 (2017年2月12日) |
分層服務提供者(英語:Layered Service Provider,縮寫LSP)是一項已被棄用的Microsoft Windows中Winsock 2服務提供者介面(SPI)的特性,它也被稱為分層服務提供商或分層服務提供程式。分層服務提供者為使用Winsock API插入本身到TCP/IP協定棧的DLL。在進入協定棧後,分層服務提供者可以攔截和修改入站和出站的網際網路流量。它可以處理所有訪問網際網路的應用程式(例如網頁瀏覽器、電子郵件客戶端等)連接網際網路的TCP/IP流量。但是,它也可能被惡意軟體用以重新導向網路訪問到惡意網站,或阻止訪問Windows Update等網站。不過,電腦安全程式也可以用它掃描網路流量以檢測病毒和其他威脅。Winsock服務提供者介面(SPI)API提供了一種將提供者彼此分層的機制。Winsock LSP可用於一系列功能目的,包括家長監護和Web內容過濾。Windows Vista中的家長監護Web過濾器就是一個LSP。所有提供者的分層順序儲存在Winsock目錄中。
細節
編輯不同於被許多書籍、文件和範例覆蓋而眾所周知的Winsock 2 API,Winsock 2 SPI相對不那麼被人所知。Winsock 2 SPI由網路傳輸服務提供者和命名空間解析服務提供者實現。Winsock 2 SPI可以用來擴充現有的傳輸服務提供者,從而實現一個分層的服務提供者。例如,Windows 98和Windows 2000上的服務品質(QoS)在TCP/IP協定棧上實現為一個LSP。LSP的另一種用法是開發專門的URL過濾軟體,阻止網頁瀏覽器訪問特定網站,而不必關心所用的網頁瀏覽器款型。Winsock 2 SPI允許軟體開發人員建立兩種類型的服務提供者——傳輸與命名空間。傳輸提供者(通常稱為協定棧)為提供連接建立、資料傳輸、流量控制、錯誤控制等功能的服務。命名空間提供者則是將網路協定的定址內容與一個或多個人類友好名稱相關聯,並實現與協定無關的名稱解析。SPI還允許開發兩種類型的傳輸服務提供者——基本與分層服務提供者。
基本服務提供者實現傳輸協定的實際細節:建立連接、傳輸資料,以及執行流控制和錯誤控制。分層服務提供者僅在更高層級實現客製化的通訊功能,並依靠現有的底層基本提供者與遠端端點進行實際的資料交換。
Winsock 2 LSP被實現為有單個匯出入口點函式「WSPStartup」的WindowsDLL 。其他傳輸SPI函式可通過LSP的排程表訪問ws2_32.dll或上層鏈的分層提供者。LSP和基本攔截者串聯在一起而形成協定鏈。LSP DLL必須使用特殊的LSP註冊人指示Winsock 2註冊,LSP的載入順序(可以安裝多個LSP)和要攔截的協定。
LSP通過在ws2_32.dll處理前攔截Winsock 2命令來工作;因此它可以修改命令、刪除命令,或者僅記錄資料。因此它成為了惡意軟體、網路過濾器、網路截取和基於資料流的嗅探器的有力幫手。通過LSP嗅探網路流量有時很麻煩,因為防病毒廠商經常將此種活動標為惡意行為——因此網路封包剖析器是捕捉網路流量的更好方法。
LSP的功能和Winsock代理嗅探允許某個應用程式的流量被捕捉並使其轉向localhost(127.0.0.1),從而在Windows上捕捉。[1]
LSP有兩種:IFS與非IFS。市場上現有的大多數LSP均是非IFS。兩種LSP的區別是:非IFS的LSP修改socket控制代碼為一個非有效的Windows IFS控制代碼,從而LSP必須實現所有的Winsock 2方法。IFS LSP則是保留通訊端控制代碼,使LSP能夠只實現想要攔截的函式。
棄用和繞過LSP
編輯LSP從Windows Server 2012起已被棄用。[2]包含LSP的系統將不能通過Windows認證產品的商標檢查。[3]Windows 8中使用網路的「Metro」式套用將自動繞過所有LSP。Windows過濾平台提供了類似的功能,並且相容Windows 8的「Metro」式和常規的桌面應用程式。
損壞問題
編輯LSP的主要問題是任何LSP中的缺陷均可能導致應用程式故障。例如,一個LSP可能通過介面返回錯誤的位元組數,導致應用程式進入等待網路堆疊指示資料已傳送的無限迴圈。
LSP的另一個重要的常見問題是,如果它被不正確的移除或登出,或者如果LSP有錯誤,則會導致登錄檔中Winsock目錄的錯誤,整個TCP/IP堆疊將中斷,電腦將無法訪問網路。
LSP技術經常被間諜軟體和廣告軟體所利用,用來攔截網際網路通訊。例如,惡意軟體可能將自身插入為網路堆疊中的一個LSP並轉發使用者的所有流量到未經授權的外部站點,從而進行非授權的資料探勘或其他非法活動。如果惡意軟體的LSP被非正確的移除,Windows可能將無法正常訪問網路。
防止所有網路連接潛在損壞的功能在Windows XP Service Pack 2、Windows Server 2003 Service Pack 1及之後所有的Windows作業系統中已存在,其中的Winsock有能力在使用者移除LSP等操作後自愈。[4]
已安裝的LSP可以使用XP/Vista中Windows Defender的軟體資源瀏覽器或第三方工具檢視。