分層服務提供者
此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
此條目需要補充更多來源。 (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的軟件資源瀏覽器或第三方工具檢視。
參考資料
- Unraveling the Mysteries of Writing a Winsock 2 Layered Service Provider - Microsoft Systems Journal (頁面存檔備份,存於互聯網檔案館)
- Categorizing LSPs and Applications (頁面存檔備份,存於互聯網檔案館)