專利名稱:用于先進的https數(shù)據(jù)處理的基于瀏覽器插件程序的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及利用瀏覽器插件程序的新方法,該方法提供了用于攔 截和進一步處理經(jīng)由HTTPS協(xié)議發(fā)送的數(shù)據(jù)的技術(shù)。HTTP協(xié)議被定 義為基于加密套接字層(SSL, Secure Socket Layer)的HTTP、或者基 于傳輸層安全(TLS, Transport Layer Security)的HTTP。參見A. Freier, R Karlton and P. Kocher, "Internet-Draft: The SSL Protocol Version 3.0," 7><m ; oW丄fl,r 6"ec鵬'(y GVow/ , November 1996, for a discussion of SSL and T. Dierks and C. Alien, "Request for Comments: 2246-The TLS Protocol," A^nvorA:Grawp, January 1999。本主題方法的潛在應(yīng) 用可以是應(yīng)用專用的數(shù)據(jù)壓縮方法,用于減少HTTPS載荷數(shù)據(jù)的數(shù) 據(jù)通信的量以及還可能用于減少數(shù)據(jù)傳輸時間。應(yīng)該注意的是,在這 種情況下,除了標(biāo)準(zhǔn)的內(nèi)置的HTTPS壓縮和編碼手段(例如"內(nèi)容 編碼"方法gzip、壓縮、縮小)之外,在論文"Request for Comments: 2616, Hypertext Transfer Protocol - HTTP/1.1," Network Working Group: June 1999, by R.Fielding, J, Mogul, H Frystyk, L. Masinter, P. Leach, and T. Bemers-Lee的3.5節(jié)中描述的應(yīng)用專用的數(shù)據(jù)處理的選項是可用 的。
背景技術(shù):
當(dāng)前,服務(wù)器計算機通過因特網(wǎng)向客戶端計算設(shè)備(例如桌上型 計算機、便攜式計算機和使用稱為"超文本傳輸協(xié)議(HTTP)"的通 信協(xié)議的各種手持?jǐn)?shù)字設(shè)備)傳遞大量的數(shù)據(jù)。HTTP協(xié)議嚴(yán)格地定 義了發(fā)送對數(shù)據(jù)的請求的客戶端設(shè)備與提供數(shù)據(jù)的服務(wù)器之間的交 互。在向服務(wù)器發(fā)送對數(shù)據(jù)的請求之后,客戶端等待服務(wù)器的響應(yīng), 然后通??蛻舳艘唤邮盏綌?shù)據(jù)就將數(shù)據(jù)傳遞給終端用戶。在許多情況下,通過稱為"網(wǎng)頁瀏覽器"的軟件組件來實現(xiàn)客戶端。通常通過稱 為"網(wǎng)頁服務(wù)器"的軟件組件來實現(xiàn)服務(wù)器。
商業(yè)、銀行業(yè)和直接消費者購物對因特網(wǎng)的使用的快速擴張導(dǎo)致
了對用于在HTTP客戶端和服務(wù)器之間發(fā)送加密的HTTP數(shù)據(jù)的標(biāo)準(zhǔn) 手段的定義。Netscape首先將該手段(也稱為HTTPS)實現(xiàn)為基于加 密套接字層(SSL) TCP/IP連接的HTTP。 HTTPS協(xié)議允許終端用戶 和企業(yè)通過因特網(wǎng)安全地發(fā)送信用卡和其它敏感信息。更具體地, HTTPS協(xié)議防止對客戶端/服務(wù)器應(yīng)用之間發(fā)送的HTTP數(shù)據(jù)的竊聽、 信息偽造和篡改。HTTPS的首次實施利用40比特的加密,而最新的 標(biāo)準(zhǔn)(在E. Rescorla的文章"Request for Comments: 2818, HTTP over TLS," A^AwA ffoA/wg Oow; , May 2000,中描述的基于TLS的HTTP) 便于使用強大的128比特的加密。
在A. Freier等人的論文和T. Dierks等人的論文中分別描述了 SSL 和TLS的基本的實現(xiàn)。盡管機制不同,SSL和TLS本質(zhì)上都引入了 數(shù)個共同的階段
1) 網(wǎng)絡(luò)瀏覽器和網(wǎng)絡(luò)服務(wù)器之間的協(xié)議版本指示;
2) 向網(wǎng)絡(luò)瀏覽器傳輸網(wǎng)絡(luò)服務(wù)器的公鑰(已簽名的公鑰也稱為 證書);
3) 網(wǎng)絡(luò)瀏覽器通過與信任的實體通信(稱為根證書授權(quán))來檢 驗該證書。這確保了網(wǎng)絡(luò)瀏覽器與期望的網(wǎng)絡(luò)服務(wù)器通信;
4) 在網(wǎng)絡(luò)瀏覽器與網(wǎng)絡(luò)服務(wù)器之間協(xié)商和交換"對稱加密密鑰";
5) 然后使用對稱加密密鑰以建立網(wǎng)絡(luò)瀏覽器與網(wǎng)絡(luò)服務(wù)器之間 的SSL或TLS信道;
6) 基于該SSL/TLS信道對網(wǎng)絡(luò)瀏覽器與網(wǎng)絡(luò)服務(wù)器之間的所有 HTTP載荷數(shù)據(jù)進行加密。
必須由網(wǎng)絡(luò)瀏覽器來實現(xiàn)SSL和TLS功能,以便從網(wǎng)絡(luò)瀏覽器 直接建立SSL/TLS "信道"。這保證了對從網(wǎng)絡(luò)瀏覽器產(chǎn)生和從網(wǎng)絡(luò) 服務(wù)器接收的所有HTTP數(shù)據(jù)的加密及其安全性。參考描述了上述場 景的圖1。
現(xiàn)在考慮對HTTPS數(shù)據(jù)(基于SSL或TLS信道發(fā)送的HTTP載
荷數(shù)據(jù))的壓縮,以減少數(shù)據(jù)傳輸量。在HTTP標(biāo)準(zhǔn)(R. Fielding等 人的論文的第3.5節(jié))中原本存在的內(nèi)容編碼方法可以用于減少在 HTTPS事務(wù)處理中發(fā)送的數(shù)據(jù)量。這些方法包括在網(wǎng)絡(luò)瀏覽器和網(wǎng)絡(luò) 服務(wù)器中可以支持的一類無損壓縮算法,例如gzip、壓縮和縮小。
遺憾地是,HTTPS不能支持自定義的手段(例如私有數(shù)據(jù)壓縮) 或任何其它私有的或自定義的數(shù)據(jù)處理。HTTPS不提供便于自定義的 數(shù)據(jù)壓縮的標(biāo)準(zhǔn)接口或機制。更具體地,對HTTP數(shù)據(jù)的壓縮實際上 隨機化了原始的源HTTP數(shù)據(jù)。在信息理論中,加密數(shù)據(jù)的熵大大高 于原始的源數(shù)據(jù)。對源數(shù)據(jù)的大大隨機化限制了數(shù)據(jù)壓縮的有效性。 加密的數(shù)據(jù)還使得難以進行諸多其它類型的期望的數(shù)據(jù)處理操作,例 如數(shù)據(jù)記錄、數(shù)據(jù)監(jiān)測或數(shù)據(jù)更改。由于SSL和TLS被設(shè)計用于避免 數(shù)據(jù)篡改或者"中間人"査看,提取原始的源HTTP數(shù)據(jù)是極為困難 的。
發(fā)明內(nèi)容
存在實現(xiàn)用于本主題發(fā)明的先進HTTPS數(shù)據(jù)處理的瀏覽器插件程 序方法(BPAHDP, Browwer-Plugin Method for Advanced HTTPS Data Processing)的兩種不同的方法。在兩種情況下,BPAHDP提供了進行 包括HTTP標(biāo)準(zhǔn)所支持的數(shù)據(jù)壓縮、數(shù)據(jù)加密或其它類型的數(shù)據(jù)處理操 作的自定義數(shù)據(jù)處理操作的選項。此外,兩種BPAHDP方法確保了網(wǎng) 絡(luò)瀏覽器仍然實現(xiàn)和執(zhí)行基本的SSL/TLS信道建立和加密操作。在 BRAHDP的兩種實施例中,最關(guān)鍵的功能是修改HTTP請求/響應(yīng)報頭 和基于TLS/SSL信道發(fā)送的數(shù)據(jù)的能力。在通常的HTTP (基于TCP的 HTTP)情況下,將報頭和數(shù)據(jù)作為純文本(也即作為未加密的數(shù)據(jù)) 發(fā)送。因此,HTTP代理(代表HTTP客戶端組取得HTTP數(shù)據(jù)的媒介軟 件實體)組件可以按照其選擇來解釋和修改報頭/數(shù)據(jù)一一允許實現(xiàn)自 定義的數(shù)據(jù)處理操作(包括自定義的壓縮操作)。在文獻(xiàn):Request for Comment 3135, Network Working Group, June 2001 , 作者J. Border, M. Kojo, J. Griner, G. Montenegro, and Z. Shelby,標(biāo)題為"Performance Enhancing Proxies Intended to Mitigate Link-RelatedDegradations",其中討論了性能增強代理的主題。對于HTTPS業(yè)務(wù),對離開網(wǎng)絡(luò)瀏覽器的 數(shù)據(jù)進行加密。因此,代理不可以修改加密的數(shù)據(jù),因此說明BPAHDP 方法是新的。兩種BRAHDP方法需要特定的實施方法。具體地, BRAHDP的兩種實施例需要特定的技術(shù)以便于使用微軟因特網(wǎng)瀏覽器 作為具有BRAHDP能力的網(wǎng)絡(luò)瀏覽器。利用微軟的COM (組件對象模 型,Component Object Model)接口和IE的可插入?yún)f(xié)議能力以滿足兩種 BRAHDP實施例的所有需求。
圖1是描述網(wǎng)絡(luò)瀏覽器和網(wǎng)絡(luò)服務(wù)器之間的SSL/TLS信道的圖
示;
圖2是描述用于實現(xiàn)本文獻(xiàn)中描述的方法"1"的程序塊級體系 結(jié)構(gòu)的圖示;
圖3是描述用于實現(xiàn)本文獻(xiàn)中描述的方法"2"的程序塊級體系 結(jié)構(gòu)的圖示。
具體實施例方式
BPAHDP方法"1"的實施例
定義WSA為具有BPAHDP能力的網(wǎng)絡(luò)服務(wù)器(實現(xiàn)了對HTTP
載荷數(shù)據(jù)的"先進處理"或自定義數(shù)據(jù)處理的網(wǎng)絡(luò)服務(wù)器),該網(wǎng)絡(luò)服 務(wù)器能夠接受來自標(biāo)準(zhǔn)網(wǎng)絡(luò)瀏覽器的HTTPS連接。此外,定義WBA 為實現(xiàn)了 BPAHDP所需要的以下功能并因此具有BPAHDP能力的網(wǎng) 絡(luò)瀏覽器。
1)在基于SSL/TLS信道發(fā)送的所有輸出的HTTP請求上添加自 定義的報頭的能力。例如 將
GET h11p : //www. s 1 ipstream, com HTTP/1. 0\r\n
Connection: CloseW
\r\n
修改為-.GET http- //www, slipstream, com HTTP/1 .Q\r\n Connection- Close\r\n X-BPAHDP: <control—info>\r\n \r\n —
2) 存在將WBA標(biāo)識為具有BRAHDP能力的X-BPAHDP報頭。 利用"control—info"域以標(biāo)識BRAHDP版本(標(biāo)識在網(wǎng)絡(luò)瀏覽器中存 在的所支持的數(shù)據(jù)處理操作)以及在自定義的數(shù)據(jù)處理操作期間所需 要的任何其它相關(guān)的控制信息。
3) 讀取和修改WSA基于TLS/SSL信道返回的HTTP響應(yīng)報頭
的能力。例如
可以將
HTTP/1.0 200〇K\r\n
Content—Type: text/xml\r\n Content—Length: 300\r\n X-BPAHDP: <contr〇l—info>\r\n \r\n —
修改為
HTTP/1.0 200〇K\r\n Content-Type: text/html\r\n Content-Length: 200\r\n \r\n
由于BPAHDP便于數(shù)據(jù)變換和過濾,可能需要對某些HTTP報頭 (內(nèi)容類型和內(nèi)容長度)的修改。此外,BPAHDP過濾方法可能需要 解析和存儲某些響應(yīng)報頭(在上文的示例中,在解壓縮或一些其它數(shù) 據(jù)處理操作期間可以使用〈contro 1—info> )。
4) 讀取和修改WSA基于SSL/TLS信道返回的HTTP載荷數(shù)據(jù) 的能力。例如
可以將
HTTP/1.0 200〇K\r\n Content-Type: text/plain\ir\n Content-:Length - 16\r\n X-BPAHDP: <control—info>\r\n \r\n — 、、This is a test"
修改為
HTTP/1.0 200 OK\r\n Content-Type: text/plain \r\n Content-Length: 20\r\n \r\n
、、This is not a test"
5)具有BRAHDP能力的網(wǎng)絡(luò)瀏覽器必須能夠針對HTTP和 HTTPS數(shù)據(jù)與其它不具有BRAHDP能力的網(wǎng)絡(luò)服務(wù)器通信。 方法"1"的系統(tǒng)架構(gòu)和操作
本小節(jié)描述了用于基于先前在方法"1"中描述的能力執(zhí)行針對 HTTPS數(shù)據(jù)的自定義數(shù)據(jù)處理的程序塊級體系結(jié)構(gòu)和操作方法。本小 節(jié)中的詞語WBA和WSA與方法"1"中給出的定義相同。在本小節(jié) 中所描述的方法中,WBA與WSA之間的基于HTTP的數(shù)據(jù)交換基于 SSL/TLS信道發(fā)生。在圖2中給出描述該操作的程序塊級體系結(jié)構(gòu)圖
不o
1) 具有BRAHDP能力的網(wǎng)絡(luò)瀏覽器(WBA)用于修改輸出的 HTTP請求報頭,以向具有BRAHDP能力的網(wǎng)絡(luò)服務(wù)器(WSA)指示 請求的WBA能夠執(zhí)行某些自定義的數(shù)據(jù)處理(例如對使用被稱為"X"
的某種數(shù)據(jù)壓縮算法壓縮的數(shù)據(jù)進行解壓縮的能力)。
2) 如果WSA從WBA接收了關(guān)于具有BRAHDP能力和其相關(guān) 能力的指示,WSA以僅能被擁有所指示的能力的WBA處理的形式向 WBA發(fā)送HTTP響應(yīng)數(shù)據(jù)。例如,如果WBA指示其能夠?qū)κ褂帽环Q 為"X"的某種數(shù)據(jù)壓縮算法壓縮的數(shù)據(jù)進行解壓縮,則WSA使用該 算法"X"對WSA的HTTP載荷數(shù)據(jù)進行壓縮。如果WSA未接收到 任何這種指示,或者如果WSA不具有BRAHDP能力,則WSA以針對常規(guī)網(wǎng)絡(luò)瀏覽器的通常的方式在不使用算法"X"的情況下發(fā)送
WSA的HTTP響應(yīng)。
3) WBA使用WBA的修改HTTP響應(yīng)報頭和載荷的能力,以解 釋HTTP響應(yīng)報頭和數(shù)據(jù),并應(yīng)用自定義的數(shù)據(jù)處理操作,將其以常 規(guī)的網(wǎng)絡(luò)瀏覽器能夠接受的格式呈現(xiàn)給網(wǎng)絡(luò)瀏覽器。
方法"2"的實施例
定義WSA為具有BRAHDP能力的網(wǎng)絡(luò)服務(wù)器(實現(xiàn)了對HTTP 載荷數(shù)據(jù)的"先進數(shù)據(jù)處理"或自定義數(shù)據(jù)處理的網(wǎng)絡(luò)服務(wù)器)并且 能夠從標(biāo)準(zhǔn)網(wǎng)絡(luò)瀏覽器接受HTTPS連接。還定義CS為向WSA提供 HTTP連接的標(biāo)準(zhǔn)HTTP/HTTPS網(wǎng)絡(luò)服務(wù)器。
具有BRAHDP能力的網(wǎng)絡(luò)服務(wù)器(WSA)滿足以下需求
1 )經(jīng)由HTTP或HTTPS與CS通信的能力;
2) 執(zhí)行針對HTTP載荷數(shù)據(jù)的壓縮或過濾操作;
3) 可以接收和接受來自WBA或來自不具有BRAHDP能力的網(wǎng) 絡(luò)瀏覽器的HTTPS請求。
此外,定義WBA為實現(xiàn)了 BRAHDP所需要的以下功能的網(wǎng)絡(luò)瀏 覽器-.
1) 在基于SSL/TLS信道發(fā)送的所有輸出的HTTP請求上添加自 定義報頭的能力。例如
將
GET http:〃www-slipstream-com HTTP/1.0\r\n
Connection: Close\r\n
\r\n
修改為
GET http: / /www . slipstream, com HTTP/1. 0\r\n
Connection: Close\r\n
X-BPAKDP: <control—info>\r\n
\r\n
2) 存在將WBA標(biāo)識為具有BRAHDP能力的X-BRAHDP報頭。 利用〈control一info〉域以標(biāo)識BRAHDP版本(表示網(wǎng)絡(luò)瀏覽器中存在
的所支持的自定義數(shù)據(jù)處理操作)以及在數(shù)據(jù)處理操作期間使用的任 何其它相關(guān)的控制信息。
3) 讀取和修改WSA基于TLS/SSL信道返回的HTTP響應(yīng)報頭 的能力。例如
可以將
HTTP/1.0 200〇K\r\n
Content-Type: text/xml\r\n
Content-Length300\r\n
X-BPAHDP: <control—info>\r\n
\r\n
修改為
HTTP/1.0 200〇K\r\n Content-Type: text/html\;r\n Content-Length: 200\r\n \r\n
由于BRAHDP便于數(shù)據(jù)變換和過濾,可能需要對某些HTTP報 頭(內(nèi)容類型和內(nèi)容長度)的修改。此外,BRAHDP過濾方法可能需 要對某些響應(yīng)報頭進行解析和存儲(在上文的例子中,在解壓縮或過 濾操作期間可以使用<control—info> )。
4) 讀取和修改WSA基于SSL/TLS信道返回的HTTP載荷數(shù)據(jù) 的能力。例如
可以將
HTTP/1.0 200〇K\r\n Content-Type: text/plain\r\n Content-Length: 16\r\n X-BPACH: <control—info>\r\n \r\n — 、、This is a test〃
修改為.-
HTTP/1.0 200〇K\r\n
Content-Type: text/plain \r\ri
Ccmtent-:Length: 20\r\n
\r\n
、、This is not a test、、
5) 修改原始目的地為CS的對象的HTTP URL(統(tǒng)一資源定位符) 的能力。例如,為了將所有HTTP請求路由至WSA:
將
GET http: / /www, slipstrearuCS , com HTTP/1 .0\r\n
Connection: Close\r\n
\r\n
修改為
GET http: / /www. slipstreamWSA.com HTTP/1.0\r\n Connection'. Close\r\n X-BPAHDP: <control—info>\r\n \r\n —
6) 具有BRAHDP能力的網(wǎng)絡(luò)瀏覽器必須能夠針對HTTP和 HTTPS數(shù)據(jù)與其它不具有BRAHDP能力的網(wǎng)絡(luò)服務(wù)器通信。
方法"2"的系統(tǒng)架構(gòu)和操作-
在某些情況下,不可能使能目標(biāo)內(nèi)容服務(wù)器(CS)具有針對 BRAHDP所需要的自定義的數(shù)據(jù)處理能力。在這種情況下,可以將原 始目的是CS的HTTPS請求重定向至能夠進行具有BRAHDP能力的 網(wǎng)絡(luò)瀏覽器(WBA)所期望的自定義的數(shù)據(jù)處理的另一服務(wù)器 (WSA)。本小節(jié)描述了用于基于先前在方法"2"中描述的能力來針 對HTTPS數(shù)據(jù)執(zhí)行自定義的數(shù)據(jù)處理的系統(tǒng)架構(gòu)和操作方法。本小 節(jié)中的詞語CS、 WBA和WSA與方法"2"中給出的定義相同。在本 小節(jié)中所描述的方法中,WBA和WSA之間的基于HTTP的數(shù)據(jù)交換 基于SSL/TLS信道發(fā)生。對于WSA與CS之間的基于HTTP的數(shù)據(jù) 交換,對SSL/TLS信道的使用是可選的。在圖3中給出了描述該方法 的操作的系統(tǒng)架構(gòu)。
1) WBA使用方法"2"中的修改輸出的URL的能力,以將基于 SSL/TLS信道的原始目的為內(nèi)容服務(wù)器CS的HTTP請求轉(zhuǎn)向能夠具 有被方法"2"中的具有BRAHDP能力的網(wǎng)絡(luò)瀏覽器所期望的數(shù)據(jù)處 理能力的另一網(wǎng)絡(luò)服務(wù)器WSA。
2) 具有BRAHDP能力的網(wǎng)絡(luò)瀏覽器修改基于SSL/TLS信道的 輸出的HTTP請求報頭,以向WSA指示請求的WBA能夠執(zhí)行某些自 定義數(shù)據(jù)處理(例如對使用被稱為X的算法所壓縮的數(shù)據(jù)進行解壓縮 的能力),WBA還在內(nèi)容服務(wù)器CS處指定所請求的數(shù)據(jù)的URL。
3) WSA基于SSL/TLS信道從WBA接收請求,使用HTTP或 HTTPS向內(nèi)容服務(wù)器CS請求WBA所需要的響應(yīng)數(shù)據(jù),并從內(nèi)容服 務(wù)器CS接收該響應(yīng)數(shù)據(jù)。
4) 基于來自請求的WBA的關(guān)于其能力的指示,WSA基于 SSL/TLS信道以僅能被擁有所指示的能力的WBA處理的形式向WBA 發(fā)送HTTP響應(yīng)數(shù)據(jù)。例如,如果WBA指示其能夠?qū)κ褂帽环Q為"X" 的數(shù)據(jù)壓縮算法壓縮的數(shù)據(jù)進行解壓縮,則WSA使用該算法"X"對 將被基于SSL/TLS信道發(fā)送的HTTP載荷數(shù)據(jù)進行壓縮。如果WSA 未接收到任何這種指示,則WSA基于SSL/TLS信道針對可以不具有 BRAHDP能力的常規(guī)網(wǎng)絡(luò)瀏覽器發(fā)送其HTTP響應(yīng)。
5) WBA使用WBA的修改基于SSL/TLS信道的HTTP響應(yīng)報頭 和載荷的能力,以解釋HTTP響應(yīng)報頭和數(shù)據(jù)和應(yīng)用自定義的數(shù)據(jù)處 理操作,并將其以常規(guī)的網(wǎng)絡(luò)瀏覽器能接受的格式呈現(xiàn)給網(wǎng)絡(luò)瀏覽器。 使用BRAHDP方法對自定義的數(shù)據(jù)處理的實施
可以以兩種方式在服務(wù)器側(cè)完成對BRAHDP能力的實施以實現(xiàn) 方法1或方法2所需要的WSA: (l)對實現(xiàn)了特定能力的自定義的網(wǎng) 絡(luò)服務(wù)器的實施,(2)經(jīng)由數(shù)個網(wǎng)絡(luò)服務(wù)器所支持的服務(wù)器側(cè)插件程 序的實施。
在客戶端側(cè),用于實現(xiàn)方法1和方法"2"的準(zhǔn)確的策略取決于 用于實施的網(wǎng)絡(luò)瀏覽器產(chǎn)品的應(yīng)用編程接口 (API)。針對該取決于情 況的實施,有兩種不同的策略
(a)在網(wǎng)絡(luò)瀏覽器的源代碼可用的情況下,可應(yīng)用該策略。在這種情況下,對輸出的HTTP請求、輸入的HTTP響應(yīng)報頭、HTTP 載荷數(shù)據(jù)的解釋是簡單的編程任務(wù)。解釋和修改發(fā)生在瀏覽器己經(jīng)準(zhǔn) 備了HTTPS GET請求之后而在對請求數(shù)據(jù)進行加密之前。在解釋之 后,根據(jù)具體情況而定,可以應(yīng)用方法"1"或方法"2"所需要的修 改。
(b),對于某些網(wǎng)絡(luò)瀏覽器,對源代碼的訪問是不可用的。在這 種情況下,將使用可用的應(yīng)用編程接口 (API)。以下的小節(jié)描述了可 以用于實現(xiàn)方法"1"和方法"2"的針對微軟的因特網(wǎng)瀏覽器版本4.0 和直到至今為止發(fā)布的版本的API。
微軟因特網(wǎng)瀏覽器(IE)中的BRAHDP方法的實施例
定義COM為微軟組件對象模型一一微軟的經(jīng)由遠(yuǎn)程過程調(diào)用
(RPC, Remote Procedure Calls)、函數(shù)參數(shù)編組和自動化的互聯(lián)軟件 對象的實施。定義正為微軟因特網(wǎng)瀏覽器版本4.0和以上。定義可插 入的程序為可以不考慮IE對特定網(wǎng)頁模式的處理的COM對象。例如, http:/V可插入?yún)f(xié)議可以不考慮IE正常執(zhí)行的完整的http:〃事務(wù)處理。
可以在IE中通過對因特網(wǎng)瀏覽器(正)所暴露的COM接口的新 穎的使用來滿足BRAHDP的上述需求。對這些接口的使用便于對 HTTP請求報頭的修改、對HTTP響應(yīng)報頭的修改、對HTTP響應(yīng)數(shù) 據(jù)以及URL鏈接翻譯的修改。定義BRAHDP-PP為包含在動態(tài)鏈接庫
(DLL)中的COM對象。將BRAHDP-PP注冊為"https"可插入?yún)f(xié) 議并實現(xiàn)所有的核心BRAHDP功能(報頭修改、數(shù)據(jù)處理、URL翻 譯)。
隨后執(zhí)行以下步驟以在微軟因特網(wǎng)瀏覽器(IE)中實現(xiàn)BRAHDP
功能
1 ) 產(chǎn)生實王見了 IInternetProtocol 、 IInternetProtocolRoot禾口 IHttpNegotiate接口的COM對象。該COM對象是BRAHDP-PP。
2)將該COM對象注冊為用于"https"協(xié)議的可插入?yún)f(xié)議。這是 通過將BRAHDP-PP的統(tǒng)一標(biāo)識符(GUID)放置在微軟視窗注冊鍵 -HKEY—CLASSES—ROOT\ PROTOCOLS\Name-Space Handler\https中 來實現(xiàn)的。
3) 在BRAHDP-PP中,利用IInternetProtocolRoot::Start方法以實 現(xiàn)BRAHDP的URL鏈接翻譯需求。例如,在BRAHDP的方法2中, 可以將IE網(wǎng)絡(luò)瀏覽器請求的URL從www.slipstreamCS.com修改為 www.slipstreamWSA.com。將將要取得的原始的URL作為函數(shù)參數(shù)傳 遞至IInternetProtocolRoot::Start。因此,BRAHDP-PP可以對所取得的 實際URL進行修改,這提供了 IInternetProtocolRoot::Start的函數(shù)實現(xiàn)。
4) 在BRAHDP-PP中,利用IHttpNegotiate::BeginningTransaction 方法以對基于SSL/TLS信道發(fā)送的輸出的HTTP請求進行修改。應(yīng)當(dāng) 修改HTTP請求報頭,以使得將IE網(wǎng)絡(luò)瀏覽器標(biāo)識為具有BRAHDP 能力。例如,可以將
GET http :〃www. slipstreamWS A com HTTP/1.0\r\n
Connection: Close\r\n
\r\n
修改為
GET http:Vwww.slipstreamWSA.com HTTP/1.0\r\n Cornisction: Closs\r\n X-BRAHDP: <control—info〉\r\n \r\n
通過BPAHDP-PP對IHttpNegotiate::BeginningTransaction中的 "pszAdditionalHeaders"函數(shù)參數(shù)進行修改,以包含將要在輸出的HTTP 請求中添加的任何自定義的HTTP報頭。
5) 在BPAHDP-PP中,利用IHttpNegotiate::OnResponse方法以 對基于SSL/TLS信道接收的輸入的HTTP響應(yīng)報頭進行修改。可以對 該響應(yīng)報頭進行修改,以反映所實現(xiàn)的特定數(shù)據(jù)過濾操作。該操作可 以改變數(shù)據(jù)的MIME類型(內(nèi)容類型)以及總內(nèi)容長度。此外,該響 應(yīng)報頭可以包含用于在BPAHDP-PP中實現(xiàn)的過濾操作的特定控制信 息。例如,
可以將
HTTP/1.0 200 OK\r\n Content-Type: text/plain\r\n
Content-Length: 16\r\n X-BPACH: <control - info>\r\n \r\n
"This is a test"
修改為
HTTP/1.0 200 OK\r\n Content-Type: text/plain \r\n Content-Length: 20\r\n \r\n
"This is not a test"
IHttpNegociate::OnResponse中的"szResponseHeaders"函數(shù)參數(shù) 包含具有BPAHDP能力的網(wǎng)絡(luò)服務(wù)器所返回的整個HTTP響應(yīng)報頭。 BPAHDP-PP還可以完全重寫 "szResponseHeaders"參數(shù),以包含新 的HTTP響應(yīng)報頭。
6)當(dāng)IE網(wǎng)絡(luò)瀏覽器請求BPAHDP-PP返回未過濾的(或未解碼 的)數(shù)據(jù)時,調(diào)用IIntemetProtocol::Read方法。將數(shù)據(jù)寫入名為"pv" 的固定長度的緩存器函數(shù)參數(shù),并將未過濾的數(shù)據(jù)的長度寫回到參考 參數(shù)"pcbRead"中。
應(yīng)該理解的是,這里所描述的和在附圖中示出的實施例僅旨在示 例,而不應(yīng)被作為對本發(fā)明的范圍的限定。本領(lǐng)域的技術(shù)人員將理解, 可以在不背離本發(fā)明的精神的情況下,在布局和細(xì)節(jié)上對所示例的實 施例的元素進行修改。因此,這里描述的本發(fā)明意在在所附的權(quán)利要 求或其等價物的范圍內(nèi)的所有這些實施例以及修改的實施例。
權(quán)利要求
1、一種用于以自定義方式處理HTTPS數(shù)據(jù)的方法,包括以下步驟a)產(chǎn)生自定義請求報頭,所述自定義請求報頭表示網(wǎng)絡(luò)瀏覽器支持預(yù)先選擇的自定義的處理操作;b)通過安全的通信信道,將所述自定義請求報頭隨HTTP請求發(fā)送至網(wǎng)絡(luò)服務(wù)器;c)通過所述安全的通信信道,從網(wǎng)絡(luò)服務(wù)器接收處理過的載荷數(shù)據(jù)和與所述處理的載荷數(shù)據(jù)相關(guān)的HTTP響應(yīng)報頭,其中,通過基于所述網(wǎng)絡(luò)瀏覽器所支持的一個或多個所述自定義的處理操作處理原始載荷數(shù)據(jù),來產(chǎn)生所述處理過的載荷數(shù)據(jù);d)修改響應(yīng)報頭以產(chǎn)生修改的響應(yīng)報頭;e)利用一個或多個所述自定義的處理操作修改所述處理過的載荷數(shù)據(jù),以產(chǎn)生表示原始載荷數(shù)據(jù)的修改的載荷數(shù)據(jù);以及f)向網(wǎng)絡(luò)瀏覽器呈現(xiàn)修改的報頭和修改的載荷數(shù)據(jù)。
2、 根據(jù)權(quán)利要求l所述的方法,還包括修改所述網(wǎng)絡(luò)瀏覽器將 通過所述安全的通信信道取得的對象的URL的步驟。
3、 根據(jù)權(quán)利要求2所述的方法,其中所述對象是內(nèi)容服務(wù)器的 網(wǎng)絡(luò)站點地址。
4、 根據(jù)權(quán)利要求l所述的方法,其中所述安全的通信信道是加 密套接字層(SSL)連接或傳輸層安全(TLC)連接。
5、 根據(jù)權(quán)利要求l所述的方法,其中所述網(wǎng)絡(luò)瀏覽器是標(biāo)準(zhǔn)的 網(wǎng)絡(luò)瀏覽器。
6、 根據(jù)權(quán)利要求l所述的方法,其中所述自定義的處理操作包 括或選自一組操作,所述一組操作包括壓縮操作、解壓縮操作、加密 操作和解密操作。
7、 一種用于以自定義方式處理HTTPS數(shù)據(jù)的方法,包括以下 步驟 a) 通過安全的通信信道將自定義請求報頭隨HTTP請求發(fā)送至 網(wǎng)絡(luò),其中所述自定義請求報頭表示網(wǎng)絡(luò)瀏覽器支持自定義的處理操 作;b) 通過所述安全的通信信道從所述網(wǎng)絡(luò)服務(wù)器接收處理過的載 荷數(shù)據(jù)和與所述處理過的載荷數(shù)據(jù)相關(guān)的HTTP響應(yīng)報頭,其中,通 過基于所述網(wǎng)絡(luò)瀏覽器所支持的一個或多個所述自定義的處理操作處 理原始載荷數(shù)據(jù),來產(chǎn)生所述處理過的載荷數(shù)據(jù);以及c) 利用一個或多個所述自定義的處理操作修改所述處理過的載 荷數(shù)據(jù),以產(chǎn)生表示原始載荷數(shù)據(jù)的修改的載荷數(shù)據(jù)。
8、 根據(jù)權(quán)利要求7所述的方法,還包括修改所述網(wǎng)絡(luò)瀏覽器將 通過所述安全的通信信道取得的對象的URL的步驟。
9、 根據(jù)權(quán)利要求7所述的方法,其中所述安全的通信信道是加 密套接字層(SSL)連接或傳輸層安全(TLC)連接。
10、 根據(jù)權(quán)利要求7所述的方法,其中所述自定義的處理操作 包括或選自一組操作,所述一組操作包括壓縮操作、解壓縮操作、加 密操作和解密操作。
11、 一種具有以自定義方式處理HTTPS數(shù)據(jù)的能力的網(wǎng)絡(luò)瀏覽 器,包括用于執(zhí)行以下步驟的裝置a) 產(chǎn)生自定義請求報頭,所述自定義請求報頭表示網(wǎng)絡(luò)瀏覽器 支持預(yù)先選擇的自定義的處理操作;b) 通過安全的通信信道,將所述自定義請求報頭隨HTTP請求 發(fā)送至網(wǎng)絡(luò)服務(wù)器;c) 通過所述安全的通信信道,從網(wǎng)絡(luò)服務(wù)器接收處理過的載荷 數(shù)據(jù)和與所述處理過的載荷數(shù)據(jù)相關(guān)的HTTP響應(yīng)報頭,其中,通過 基于所述網(wǎng)絡(luò)瀏覽器所支持的一個或多個所述自定義的處理操作處理 原始載荷數(shù)據(jù),來產(chǎn)生所述處理過的載荷數(shù)據(jù);以及d) 利用一個或多個所述自定義的處理操作修改所述處理過的載 荷數(shù)據(jù),以產(chǎn)生表示原始載荷數(shù)據(jù)的修改的載荷數(shù)據(jù)。
12、 根據(jù)權(quán)利要求11所述的網(wǎng)絡(luò)瀏覽器,還包括用于修改所述 網(wǎng)絡(luò)瀏覽器將通過所述安全的通信信道取得的對象的URL的裝置。
13、 根據(jù)權(quán)利要求ll所述的網(wǎng)絡(luò)瀏覽器,其中所述安全的通信 信道是加密套接字層(SSL)連接或傳輸層安全(TLC)連接。
14、 根據(jù)權(quán)利要求11所述的網(wǎng)絡(luò)瀏覽器,其中所述自定義的處 理操作包括或選自一組操作,所述一組操作包括壓縮操作、解壓縮操 作、加密操作和解密操作。
15、 一種用于使能網(wǎng)絡(luò)瀏覽器從事對HTTPS數(shù)據(jù)以自定義方式 處理的網(wǎng)絡(luò)瀏覽器插件程序,包括用于修改網(wǎng)絡(luò)瀏覽器以執(zhí)行以下步 驟的裝置a) 修改輸出的請求報頭,以產(chǎn)生表示網(wǎng)絡(luò)瀏覽器支持預(yù)先選擇 的自定義的處理操作的自定義請求報頭;b) 通過安全的通信信道,將所述自定義請求報頭隨HTTP請求 發(fā)送至網(wǎng)絡(luò)服務(wù)器;c) 通過所述安全的通信信道,從網(wǎng)絡(luò)服務(wù)器接收處理過的載荷 數(shù)據(jù)和與所述處理過的載荷數(shù)據(jù)相關(guān)的HTTP響應(yīng)報頭,其中通過基 于所述網(wǎng)絡(luò)瀏覽器所支持的一個或多個所述自定義的處理操作處理原 始載荷數(shù)據(jù),來產(chǎn)生所述處理過的載荷數(shù)據(jù);d) 修改響應(yīng)報頭以產(chǎn)生修改的響應(yīng)報頭;e) 利用一個或多個所述自定義的處理操作修改所述處理過的載 荷數(shù)據(jù),以產(chǎn)生表示原始載荷數(shù)據(jù)的修改的載荷數(shù)據(jù);以及f) 向網(wǎng)絡(luò)瀏覽器呈現(xiàn)修改的報頭和修改的載荷數(shù)據(jù)。
16、 根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)瀏覽器插件程序,其中所述安 全的通信信道是加密套接字層(SSL)連接或傳輸層安全(TLC)連 接。
17、 根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)瀏覽器插件程序,其中所述網(wǎng)絡(luò)瀏覽器是因特網(wǎng)瀏覽器。
18、 根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)瀏覽器插件程序,其中所述自定義的處理操作包括或選自一組操作,所述一組操作包括壓縮操作、 解壓縮操作、加密操作和解密操作。
19、 一種使用計算機系統(tǒng)用于對HTTPS數(shù)據(jù)以自定義方式處理 的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括 一種記錄,用于記錄指示所述計算機系統(tǒng)執(zhí)行以下步驟的手段a) 產(chǎn)生自定義請求報頭,所述自定義請求報頭表示網(wǎng)絡(luò)瀏覽器 支持預(yù)先選擇的自定義的處理操作;b) 通過安全的通信信道,將所述自定義請求報頭隨HTTP請求 發(fā)送至網(wǎng)絡(luò)服務(wù)器;c) 通過所述安全的通信信道,從網(wǎng)絡(luò)服務(wù)器接收處理過的載荷 數(shù)據(jù)和與所述處理過的載荷數(shù)據(jù)相關(guān)的HTTP響應(yīng)報頭,其中通過基 于所述網(wǎng)絡(luò)瀏覽器所支持的一個或多個所述自定義的處理操作處理原 始載荷數(shù)據(jù),來產(chǎn)生所述處理過的載荷數(shù)據(jù);d) 修改響應(yīng)報頭以產(chǎn)生修改的響應(yīng)報頭;e) 利用一個或多個所述自定義的處理操作修改所述處理過的載 荷數(shù)據(jù),以產(chǎn)生表示原始載荷數(shù)據(jù)的修改的載荷數(shù)據(jù);以及f) 向網(wǎng)絡(luò)瀏覽器呈現(xiàn)修改的報頭和修改的載荷數(shù)據(jù)。
20、根據(jù)權(quán)利要求19所述的計算機程序產(chǎn)品,其中所述計算機 程序產(chǎn)品是網(wǎng)絡(luò)瀏覽器插件程序。
全文摘要
本發(fā)明涉及實現(xiàn)針對HTTPS的基于瀏覽器插件程序的自定義數(shù)據(jù)處理方法。自定義數(shù)據(jù)處理可以包括數(shù)據(jù)壓縮、自定義數(shù)據(jù)加密、數(shù)據(jù)監(jiān)測、數(shù)據(jù)修改。有兩種方法可以實現(xiàn)用于本主題發(fā)明的先進HTTPS數(shù)據(jù)處理的瀏覽器插件程序方法(BRAHDP)。在兩種情況下,BPAHDP提供了進行與HTTP標(biāo)準(zhǔn)所支持的數(shù)據(jù)壓縮、數(shù)據(jù)加密或其它類型的數(shù)據(jù)處理操作并存的自定義數(shù)據(jù)處理的選項。此外,兩種BPAHDP方法確保了網(wǎng)絡(luò)瀏覽器仍然實現(xiàn)和執(zhí)行基本的SSL/TLS信道建立和加密操作。在BRAHDP的兩種實施例中,最關(guān)鍵的功能是修改HTTP請求/響應(yīng)報頭和基于TLS/SSL信道發(fā)送的數(shù)據(jù)的能力。在通常的HTTP(基于TCP的HTTP)情況下,將報頭和數(shù)據(jù)作為純文本(也即作為未加密的數(shù)據(jù))發(fā)送。因此,任何HTTP代理組件可以按照其選擇來解釋和修改報頭/數(shù)據(jù)——允許實現(xiàn)自定義的數(shù)據(jù)處理操作(包括自定義的壓縮操作)。對于HTTPS業(yè)務(wù),對離開網(wǎng)絡(luò)瀏覽器的數(shù)據(jù)進行加密。因此,代理不可以修改加密的數(shù)據(jù),因此BPAHDP方法是新穎的。兩種BRAHDP方法需要所描述的特定的實施方法。具體地,BRAHDP的兩種實施例需要特定的技術(shù)以便于使用微軟因特網(wǎng)瀏覽器作為具有BRAHDP能力的網(wǎng)絡(luò)瀏覽器。利用微軟COM(組件對象模型)接口和IE的可插入?yún)f(xié)議能力以滿足兩種BRAHDP實施例的所有需求。
文檔編號H04L29/06GK101199181SQ200680019832
公開日2008年6月11日 申請日期2006年3月23日 優(yōu)先權(quán)日2006年3月23日
發(fā)明者大衛(wèi)·茲, 薩爾曼·阿赫邁德, 阿克斯黑·南杜爾, 阿吉特·塞恩 申請人:噴流數(shù)據(jù)有限公司