"A Browser Plugin Based Method For Advanced Https Data Processing"


Updated about 2 years ago

Abstract

The invention described here deals with implementing custom data processing of HTTPS based on a Browser-Plugin Method. Such custom data processing may include, but is not limited to, custom data compression, custom data encryption, data monitoring, data modification. There are two distinct methods to implement the Browser-Plugin Method for Advanced HTTPS Data Processing of the subject invention (BPAHDP). In both cases, BPAHDP provides the option of conducting custom data processing that coexists with data compression, data encryption, or other types of data processing operations supported by the HTTP standard. Additionally, both BPAHDP methods ensure that the web-browser still implements and executes the underlying SSL/TLS channel setup and encryption operations. In both embodiments of BPAHDP, the most critical functionality is the ability to modify HTTP request/response headers and data sent over a TLS/SSL channel. In the regular HTTP case (HTTP over TCP) headers and data are sent as clear-text (i.e., as unencrypted data). Therefore, any HTTP proxy component can intercept and modify header/data as it chooses - allowing custom data processing operations (including a custom compression operation) to be implemented. For HTTPS traffic, the data leaving a web-browser is encrypted. Therefore, a proxy cannot modify encrypted data, hence the novelty of the BPAHDP methodology. Both methods require specific implementation methods that are described. In particular, both embodiments of BPAHDP require specific techniques to facilitate the use of Microsoft Internet Explorer as a BPAHDP enabled web-browser. Microsoft COM (Component Object Model) interfaces and lE's Pluggable Protocol capabilities are utilized to meet all requirements of both BPAHDP embodiments.

Information

Application ID 8804/DELNP/2007
Invention Field COMPUTER SCIENCE
Date of Application 2007-11-15
Publication Number 26/2008

Applicants

Name Address Country Nationality
SLIPSTREAM DATA INC. ONTARIO, CANADA,C/O RIM 295 PHILLIP, STREET, WATERLOO, ONTARIO N2L 3W8 CANADA Canada Canada

Inventors

Name Address Country Nationality
NANDURI AKSHAY 502-55 WILLIAM STREET EAST, WATERLOO, ONTARIO N2J 4Z1 CANADA Canada Canada
SINGH AJIT 577 SANDBURY LANE, MISSISSAGUA, ONTARIO N2T 1Z5 CANADA Canada Canada
AHMED SALMAAN 949 BLIZZARD ROAD, MISSISSAUGA, ONTARIO L5V 1T1 CANADA Canada Canada
SZE DAVID 712-205 VICTORIA STREET SOUTH, KITCHENER, ONTARIO N2G 4Z6 CANADA Canada Canada

Specification

Title: A Browser-Plugin Based Method For Advanced HTTPS Data
Processing
Field of the invention
[0001] The present invention relates to a novel method of utilizing a
browser plugin that provides a technique for interception and further processing of data sent via the HTTPS protocol. The HTTPS protocol is defined as HTTP over a Secure Socket Layer (SSL), or HTTP over a Transport Layer Security (TLS). See A. Freier, P. Karlton and P. Kocher, "Internet-Draft: The SSL Protocol Version 3.0," Transport Layer Security Group, November 1996, for a discussion of SSL, and T. Dierks and C. Allen, "Request for Comments: 2246 - The TLS Protocol," Network Working Group, January 1999 for a discussion of TLS. A potential application of the subject method can be to apply proprietary data compression methods to reduce the volume of data communication of HTTPS payload data and also to possibly reduce the data transmission time. It should be noted that the option of applying proprietary data processing in this case is available in addition to standard built-in HTTPS compression and encoding approaches such as 'Content-Encoding' methods: gzip, compress, deflate, described in section 3.5 of the article entitled "Request for Comments: 2616, Hypertext Transfer Protocol - HTTP/1.1," Network Working Group, June 1999, by R. Fielding, J. Gettys, J. Mogul, H Frystyk, L. Masinter, P. Leach, and T. Berners-Lee.
Background of the invention
[0002] Presently, large volumes of data are delivered over the Internet by
server computers to client computing devices such as desktop computers, laptops and various handheld digital devices using a communication protocol called 'Hyper Text Transfer Protocol' (HTTP). The HTTP protocol strictly defines the interaction between a client device that sends requests for data, and a server that supplies the data. A client, after sending the request for data to the server, waits for the server's response, and then normally, upon receipt of data, delivers the data to the end user. In many cases, the client is implemented by a software component called a 'web-browser'. The server is usually implemented by a software component called a 'web-server'.
[0003] Rapid expansion in Internet usage by businesses, banking and
direct consumer shopping ted to the definition of a standard approach for sending encrypted HTTP data between HTTP .clients and servers. This approach (also known as HTTPS) was first implemented by Netscape as HTTP over a Secure-Socket Layer (SSL) TCP/IP connection. The HTTPS protocol allowed end-users and corporations to safely send credit-card and other sensitive information over the internet. More specifically, it prevents eavesdropping, message forgery and tampering of HTTP data sent between client/server applications. The first implementations of HTTPS utilized 40-bit encryption while the latest standard (HTTP over TLS described in an article by E. Rescorla entitled "Request for Comments: 2818, HTTP over TLS," Network Working Group, May 2000), facilitates the use of powerful 128-bit encryption.
[0004] The underlying implementations of SSL and TLS are described in
the article by A. Freier et al. and in the article by T. Dierks et al. respectively. Although the mechanisms are different, both SSL and TLS essentially involve several common stages:
1) Protocol version identification between web-browser and web-server.
2) Transmission of web-server's public key to the web-browser (the
signed public key is also known as a Certificate).
3) Web-browser verifies the Certificate by communicating with a trusted
entity (known as a Root Certificate Authority). This ensures that the
web-browser is communicating with the intended web-server.
4) Negotiation and exchange of 'symmetric encryption-key' between web-
browser and web-server.
5) The symmetric encryption-key is then used to establish an SSL or TLS
'channel' between the web-browser and web-server.
6) 6) Encryption of all HTTP payload data between web-browser and webserver over the SSL/TLS channel.
[0005] It is imperative for SSL and TLS functionality to be implemented by
the web-browser so that the SSL/TLS 'channel' is established directly from the web-browser. This guarantees the encryption and security of all HTTP data originating from the web-browser and received from the web-server. Reference is made to Figure 1 which depicts the aforementioned scenario.
[0006] Now consider the compression of HTTPS data (HTTP payload data
sent over an SSL or TLS channel) in order to reduce the volume of data transmission. Content-encoding methods inherently present in the HTTP standard (section 3.5 of the article by R. Fielding et al.) can be used to reduce the volume of data sent in HTTPS transactions. These methods consist of a class of lossless compression algorithms such as gzip, compress and deflate which can be supported within web-browsers and web-servers.
[0007] Unfortunately, custom approaches (e.g., proprietary data-
compression) or any other proprietary or custom data processing cannot be supported by HTTPS. HTTPS does not provide for a standard interface or mechanism to facilitate custom data transformation. More specifically, the encryption of HTTP data actually randomizes the original source HTTP data. In an information-theoretic sense, the entropy of the encrypted data is significantly higher than the original source data. Significant randomization of source data limits the effectiveness of data-compression. The encrypted data also makes it difficult to do many other types of desirable data processing operations such as data recording, data monitoring, or data alteration. Since SSL and TLS are designed to prevent data-tampering or "man in the middle" viewing, retrieving the original source HTTP data is extremely difficult.
Summary of the invention
[0008] There are two distinct methods to implement the Browser-Plugin
Method for Advanced HTTPS Data Processing of the subject invention
(BPAHDP). In both cases, BPAHDP provides the option of conducting custom data processing operations including data compression, data encryption, or other types of data processing operations supported by the HTTP standard. Additionally, both BPAHDP methods ensure that the web-browser still implements and executes the underlying SSL/TLS channel setup and encryption operations. In both embodiments of BPAHDP, the most critical functionality is the ability to modify HTTP request/response headers and data sent over a TLS/SSL channel. In the regular HTTP case (HTTP over TCP) headers and data are sent as clear-text (i.e., as unencrypted data). Therefore, an HTTP proxy (an intermediary software entity that fetches HTTP data on behalf of a group of HTTP clients) component can intercept and modify header/data as it chooses -allowing custom data processing operations (including a custom compression operation) to be implemented. The subject of Performance Enhancing Proxies is discussed in a document (Request for Comments 3135, Network Working Group, June 2001) by J. Border, M. Kojo, J. Griner, G. Montenegro, and Z. Shelby, entitled, "Performance Enhancing Proxies Intended to Mitigate Link-Related (Degradations". For HTTPS traffic, the data leaving a web-browser is encrypted. Therefore, a proxy cannot modify encrypted data, hence the novelty of the BPAHDP methodology. Both BPAHDP methods require specific implementation methods. In particular, both embodiments of BPAHDP require specific techniques to facilitate the use of Microsoft Internet Explorer as a BPAHDP enabled web-browser. Microsoft COM (Component Object Model) interfaces and lE's Pluggable Protocol capabilities are utilized to meet all requirements of both BPAHDP embodiments.
Brief description of the drawings
[0009] Figure 1 is a diagram depicting a SSL/TLS channel between a web-
browser and a web-server.
[0010] Figure 2 is a diagram depicting the block level architecture for
implementing Method '1' described in this document.
[0011] Figure 3 is a diagram depicting the block level architecture for
implementing Method '2' described in this document.
Detailed description of the invention
Embodiment of BPAHDP Method '1'
[0012] Define WSA as a BPAHDP enabled web-server (a web-server that
has implemented 'Advanced Processing' or custom data processing of HTTP payload data) that is able to accept HTTPS connections from standard web-browsers. In addition, define WBA as a web-browser that has implemented the following functionality required by BPAHDP, and is thus BPAHDP enabled:
[0013] 1) The ability to add custom headers on all outgoing HTTP requests
sent over an SSL/TLS channel. For example:
GET http : //'www. s;i ipstrearn. con; HTTP/1 . 0 \r\n
Connection: Close\r\n \r\n
is modified to:
GET h t: t p : / / www . s 1 i p stream, c om HTTP/1. 0\r\n
Connection: Close\r\n X-BPAHDP: \r\n \r\n
[0014] 2) The presence of the X-BPAHDP header identifies WBA as being
BPAHDP enabled. The 'controljnfo' field is utilized to identify the BPAHDP version (identifying the supported data processing operations present in the web-browser) and any other relevant control information required during the custom data processing operation.
[0015] 3) The ability to read and modify the HTTP response header returned by WSA over the TLS/SSL channel. For example:
HTTP/1.0 200 OK\r\n
Content-Type: text/xml\r\n Content-Length: 300\r\n X-BPAHDP: \r\n \r\n
might be modified to:
HTTP/1.0 200 OK\r\n Content-Type: text/html\r\n Content-Length: 200\r\n \r\n
[0016] Since BPAHDP facilitates data transformation and filtering, the
modification of certain HTTP headers (Content-Type and Content-Length) may be required. Additionally, certain response headers may need to be parsed and stored by the BPAHDP filtering method (in the above example may be used during the decompression or some ther data processing operation).
[0017] 4) The ability to read and modify the HTTP payload data returned
by WSA over an SSL/TLS channel. For example:
HTTP/1.0 200 OK\r\n
Content-Type: text/plain\r\n
Content-Length: 16\r\n
X-BPAHDP: \r\n
\r\n
"This is a test"
may be modified to
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"
[0018] 5) The BPAHDP enabled web-browser must be able to
communicate with other non-BPAHDP enabled web-servers for both HTTP and HTTPS data.
[0019] System Architecture and Operation of the Method '1'
This subsection describes the block level architecture and operational method for carrying out custom data processing on HTTPS data based on the capabilities described earlier in Method T. The terms WBA and WSA in this subsection have the same definition as given in Method '1'. In the method described in this subsection, the HTTP based data exchange between WBA and WSA takes place over a SSL/TLS channel. Block level architectural diagram depicting the operation is given in Figure 2.
1) The BPAHDP enabled web-browser (WBA) is used to modify the
outgoing HTTP request headers to indicate to the BPAHDP enabled
web-server (WSA) that the requesting WBA is capable of carrying out
certain custom data processing (e.g. ability to decompress data that is
compressed using a certain data compression algorithm called 'X')
2) If the WSA receives the indication from a WBA about being BPAHDP
enabled and its associated capabilities, the WSA sends the HTTP
response data to WBA in a form that can only be processed by a WBA
that possesses the indicated capabilities. For example, if the WBA
indicated that it is capable of decompressing data that has been
compressed using a certain data compression algorithm called 'X',
then WSA compresses its HTTP payload data using the algorithm 'X'.
If the WSA does not receive any such indication or if the WSA is not
BPAHDP enabled then WSA sends its HTTP response in the usual
manner intended for a normal web-browser and without using the
algorithm 'X'.
3) The ability of WBA to modify HTTP response headers and payload is used by the WBA to intercept the HTTP response headers and data and apply the custom data processing operation and present it to the web-browser in a format that is acceptable to a normal web-browser,
Embodiment of BPAHDP Method '2'
[0020] Define WSA as a BPAHDP enabled web-server (a web-server that
has implemented 'Advanced Data Processing' or custom data processing of HTTP payload data) and is able to accept HTTPS connections from standard web-browsers. Also define CS as a standard HTTP/HTTPS web-server that provides the HTTP content to WSA.
[0021] The BPAHDP enabled web-server (WSA) meets the following
requirements:
1) Ability to communicate with the CS via HTTP or HTTPS.
2) Executes the compression or filtering operation on HTTP
payload data.
3) Can receive and accept HTTPS requests from WBA or from
non-BPAHDP enabled web-browsers.
[0022] In addition, define WBA as a web-browser that has implemented
the following functionality required by BPAHDP:
[0023] 1) The ability to add custom headers on all outgoing HTTP requests
sent over an SSL/TLS channel. For example:
GET htt:p:X/www. slipstream, com HTTP/1. 0\r\n
Connection: Close\r\n
\r\n
is modified to:
GET h 11 P : / / wvi w . s 11 p s t ream, c om HTTP/1. 0\r\n Connection: Close\r\n X-BPAHDP: \r\n \r\n
[0024] 2) The presence of the X-BPAHDP header identifies WBA as being
BPAHDP enabled. The field is utilized to identify the BPAHDP version (identifying the supported custom data processing operations present in the web-browser) and any other relevant control information used during the data processing operations.
[0025] 3) The ability to read and modify the HTTP response header
returned by WSA over the TLS/SSL channel. For example:
HTTP/1.0 200 OK\r\n Content-Type: text/xml\r\n Content-Length: 300\r\n X-BPAHDP: \r\n \r\n
may be modified to:
HTTP/1.0 200 OK\r\n Content-Type: text/html\r\n
Content-Length: 200\r\n \r\n
[0026] Since BPAHDP facilitates data transformation and filtering, the
modification of certain HTTP headers (Content-Type and Content-Length) may be required. Additionally, certain response headers may need to be parsed and stored by the BPADPH filtering method (in the above example may be used during the decompression or filtering operation).
[0027] 4) The ability to read and modify the HTTP payload data returned
by WSA over an SSL/TLS channel. For example:
HTTP/1.0 200 OK\r\n
Content-Type: text/plain\r\n
Content-Length: 16\r\n
X-BPACH: \r\n
\r\n
"This is a test"
may be modified to
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"
[0028] 5) The ability to modify the HTTP URL (Uniform Resource Locator)
of objects originally destined for the CS. For example, in order to route all HTTP requests to WSA :
GET http://www.glipstreamCS.coiR HTTP/1. 0\r\n
Connection: Close\r\n
\r\n
is modified to:
GET http://www.slipsl-re5mWSA.com HTTP/1. 0\r\n Connection: Close\r\n X-BPAHDP: \r\n \r\n
[0029] 6) The BPAHDP enabled web-browser must be able to
communicate with other non-BPAHDP enabled web-servers for both HTTP and HTTPS data.
System Architecture and Operation of the Method '2':
[0030] In certain situations, it may not be possible to enable the target
content server (CS) with the custom data processing capability required for
BPAHDP. In that case, the HTTPS request originally intended for CS can be redirected to another server (WSA) that is enabled with custom data processing expected by a BPAHDP-enabled web-browser (WBA). This subsection describes the system architecture and operational method for carrying out custom data processing on HTTPS data based on the capabilities described earlier in Method '2'. The terms CS, WBA and WSA in this subsection have the same definition as given in Method '2'. In the method described in this subsection, the HTTP based data exchange between WBA and WSA takes place over a SSL/TLS channel. The use of SSL/TLS channel for the HTTP based data exchange between WSA and CS is optional. System architecture depicting the operation of the method is given in Figure 3.
1) The ability to modify the outgoing URL in Method '2' is used by WBA to
divert a HTTP request over SSL/TLS channel originally directed to a
content-server CS to another web-server WSA that is enabled with the
data processing capabilities expected by a BPAHDP enabled web
browser in Method '2'.
2) The BPAHDP enabled web-browser modifies the outgoing HTTP
request headers over SSL/TLS channel to indicate to the WSA that the
requesting WBA is capable of carrying out certain custom data
processing (e.g. ability to decompress data that is compressed using
an algorithm called X) WBA also specifies the URL of the requested
data at content server CS.WSA receives the request from the WBA over SSL/TLS channel and
makes a request to the content server CS for the response data
required by WBA using HTTP or HTTPS and receives the response
data from the content server CS.
3) Based on the indication from the requesting WBA about its capabilities,
the WSA sends the HTTP response data over SSL/TLS channel to the
4) WBA in a form that can only be processed by a WBA that possesses the indicated capabilities. For example, if the WBA indicated that it is capable of decompressing data that has been compressed using a data compression algorithm called 'X', then WSA compresses is HTTP payload data to be sent over SSL/TLS channel using the algorithm 'X'. If the WSA does not receive any such indication then WSA sends its HTTP response over SSL/TLS channel for a normal web-browser that may not be BPAHDP enabled.
5) The ability of WBA to modify HTTP response headers and payload over SSL/TLS channel is used by the WBA to intercept the HTTP response headers and data and apply the custom data processing operation and present it to the web-browser in a format that is acceptable to a normal web-browser.
Implementation of Custom Data Processing Using BPAHDP Method
[0031] Implementation of BPAHDP capabilities on the server side to
realize a WSA, required for Method 1 or Method 2, can be done in two ways: (1) Implementation of a custom web server that implements the specified capabilities, (2) Via implementation of server-side plug-in supported by several web-servers.
[0032] On the client side, the exact strategy used for implementing Method
1 and Method '2', is dependent on the Application Programmers' Interface (API) of the web browser product that is used for implementation. There are two distinct strategies for the implementation depending on the situation:
(a) This strategy is applicable in the case where the source code of the web-browser is available. In this case, intercepting outgoing HTTP requests, incoming HTTP response headers, HTTP payload data, is a straightforward programming task. The
interception and modification takes place after the browser has prepared the HTTPS GET request but before the request data has been encrypted. After interception, the modifications required by Method '1' or Method '2', as the case may be, can be applied.
(b) For some web browsers, access to the source code may not be available. In such cases, the available Application Programmers' Interfaces (APIs) are to be used. The following subsection describes the APIs for Microsoft's Internet Explorer versions 4.0 and up-to the versions released to-date that can be used for implementing Method '1' and Method '2':
Embodiment of BPAHDP Methods in Microsoft Internet Explorer
[0033] Define COM as Microsoft Component Object Model - Microsoft's
implementation of interconnecting software objects via Remote Procedure Calls (RPC), function parameter marshalling and automation. Define IE as Microsoft Internet Explorer versions 4.0 and above. Define a Pluggable Protocol as a COM object that can override lE's handling of specific web schema. For example, an "http://" Pluggable Protocol can override a complete "http://" transaction that is normally carried out by IE.
[0034] The aforementioned requirements of BPAHDP can be met in IE by
novel use of the COM interfaces exposed by Internet Explorer (IE). Use of these interfaces facilitate the modification of HTTP request headers, modification of HTTP response headers, modification of HTTP response data as well as URL link translation. Define the BPAHDP-PP as a COM object contained in a dynamic-linked library (DLL). The BPAHDP-PP is registered as an "https" Pluggable Protocol and implements all of core BPAHDP functionality (header modification, data processing, URL translation).
[0035] The following steps are followed to implement BPAHDP
functionality in Microsoft Internet Explorer (IE):
1) Create a COM object that implements the llnternetProtocol,
HnternetProtocolRoot and IHttpNegotiate interfaces. This COM
object is the BPAHDP-PP.
2) Register the COM object as a Pluggable Protocol for the "https"
protocol. This is accomplished by placing the unique identifier
GUID) of the BPAHDP-PP in the Microsoft Windows registry
key - HKEY_CLASSES_ROOT\ PROTOCOLS\Name-Space
Handler\https.
3) In the BPAHDP-PP, utilize the NnternetProtocolRoot::Start
method to implement the URL link translation requirement of
BPAHDP. For example, in Method-2 of BPAHDP, the URL
requested by the IE web-browser may be modified from
www.slipstreamCS.com to www.slipstreamWSA.com. The
original URL to fetch is passed as a function parameter to
NnternetProtocolRoot::Start. Hence, the actual URL fetched can
be modified by the BPAHDP-PP, which provides the function
implementation of HnternetProtocolRoot::Start.
4) In the BPAHDP-PP, utilize the IHttpNegotiate::
BeginningTransaction method to modify the outgoing HTTP
request header sent over the SSL/TLS channel. The HTTP
request header should be modified such that the IE web-
browser is identified as being BPAHDP enabled. For example,
GET h t tp : // www. s'l ips t r eamWSA . com HTTP/1. 0\r\n
Connection: Close\r\n
\r\n
is modified to:
GET http: //www. slipatreamWSA. coin HTTP/1. 0\r\n Connection: Close\r\n X-BPAHDP: \r\n \r\n
The 'pszAdditionalHeaders' function parameter (a reference parameter) in IHttpNegotiate::BeginningTransaction is modified by the BPAHDP-PP to contain any custom HTTP headers to add in the outbound HTTP request.
5) In the BPAHDP-PP, utilize the IHttpNegotiate::OnResponse method to modify the incoming HTTP response header received over the SSL/TLS channel. The response header may be modified to reflect the specific data filtering operation that is implemented. The operation may change the MIME-type (content-type) of the data, as well as the aggregate content length. Moreover, the response header may contain specific control information for the filtering operation implemented in BPAHDP-PP. For example,
HTTP/1.0 200 OK\r\n
Content-Type: text/plain\r\n
Content-Length: 16\r\n
X-BPACH: \r\n
\r\n
"This is a test"
may be modified to:
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"
The 'szReponseHeaders1 function parameter in IHttpNegotiate::OnResponse contains the entire HTTP response header returned by the BPAHDP enabled web-server. The 'szReponseHeaders1 parameter can also be completely rewritten by the BPAHDP-PP to contain a new HTTP response header.
6) The NnternetProtocol::Read method is called when the IE web-browser requests unfiltered (or decoded) data to be returned by the BPAHDP-PP. Data is written to a fixed-length buffer function parameter named 'pv', and the length of the unfiltered data is written passed back in the reference parameter 'pcbRead'.
[0036] It should be recognized that the embodiments described herein and
shown in the drawing figures are meant to be illustrative only and should not be taken as limiting the scope of invention. Those skilled in the art will recognize that the elements of the illustrated embodiments can be modified in arrangement and detail without departing from the spirit of the invention. Therefore, the invention as described herein contemplates all such embodiments and modified embodiments as may come within the scope of the following claims or equivalents thereof.

CLAIMS:
1. A method for custom processing HTTPS data, comprising the steps of:
a) creating a custom request header indicating that a web browser
supports preselected customized processing operations;
b) sending the custom request header with a HTTP request over a
secure communication channel to a web server;
c) receiving from the web server over the secure communication
channel processed payload data and a HTTP response header
correctable therewith, wherein the processed payload data is
created by processing original payioad data based upon one or
more of the customized processing operations supported by the
web browser;
d) modifying the response header to create a modified response
header;
e) modifying the processed payload data utilizing one or more of the
customized processing operations to create modified payload data
indicative of the original payload data; and
f) presenting the modified header and the modified payload data to
the web browser.

2. The method of claim 1, also comprising the step of modifying a URL of an
object to be fetched by the web browser over the secure communication channel.
3. The method of claim 2, wherein the object is a web site address for a
content server.
4. The method of claim 1, wherein the secure communication channel is a
Secure Socket Layer (SSC) connection or Transport Layer Security (TLC)
connection.
5. The method of claim 1, wherein the web browser is a standard web
browser
6. The method of claim 1, wherein the customized processing operations
comprise, or are selected from the group comprising: a compression operation, a
decompression operation, an encryption operation, and a decryption operation.
7. A method for customized processing of HTTPS data, comprising the steps
of:

a) sending a custom request header with a HTTP request over a
secure communication channel to a web wherein the custom
request header indicates that the web browser supports customized
processing operations;
b) receiving from the web server over the secure communication
channel processed payload data and a HTTP response header
correctable therewith, wherein the processed payload data is
created by processing original payload data based upon one or
more of the customized processing operations supported by the
web browser; and
c) modifying the processed payload data utilizing one or more of the
customized processing operations to create modified payload data
indicative of the original payload data.
8. The method of claim 7, also comprising the step of modifying a URL of an
object to be fetched by the web browser over the secure communication channel.
9. The method of claim 7, wherein the secure communication channel is a
Secure Socket Layer (SSL) connection or a Transport Layer Security (TLS)
connection.
10. The method of claim 7, wherein the customized processing operations
comprise, or are selected from the group comprising: a compression operation, a
decompression operation, an encryption operation, and a decryption operation.
11. A web browser enabled for customized processing of HTTPS data,
comprising means for performing the steps of:

a) creating a custom request header indicating that the web browser
supports preselected customized processing operations;
b) sending the custom request header with a HTTP request over a
secure communication channel to a web server;
c) receiving from the web server over the secure communication
channel processed payload data and a HTTP response header
correctable therewith, wherein the processed payload data is
created by processing original payload data based upon one or
more of the customized processing operations supported by the
web browser; and
d) modifying the processed payload data utilizing one or more of the
customized processing operations to create modified payload data
indicative of the original payload data.
12. The method of claim 11, also comprising means for modifying a URL of an
object to be fetched by the web browser over the secure communication channel.-
13. The web browser of claim 11, wherein the secure communication channel
is a Secure Socket Layer (SSL) connection or a Transport Layer Security (TLS)
connection.
14. The web browser of claim 11, wherein customized processing operations
comprise, or are selected from the group comprising: a compression operation, a
decompression operation, an encryption operation, and a decryption operation.
15. A web browser plug-in for enabling a web browser to undertake the
customized processing of HTTPS data, comprising means for modifying the web
browser to perform the steps of:

a) modifying an outgoing request header to create a custom request
header indicating that the web browser supports preselected
customized processing operations;
b) sending the custom request header with a HTTP request over a
secure communication channel to a web server;
c) receiving from the web server over the secure communication
channel processed payload data and a HTTP response header
correlatabie therewith, wherein the processed payload data is
created by processing original payload data utilizing one or more of
the customized processing operations supported by the web
browser;
d) modifying the response header to create a modified response
header;
e) modifying the processed payload data utilizing one or more of the
customized processing operations to create modified payload data
indicative of the original payload data; and
f) presenting the modified header and the modified payload data to
the web browser.
16. The web browser plug-in of claim 15, wherein the secure communication
channel is a Secure Socket Layer (SSL) connection or a Transport Layer
Security (TLS) connection.
17. The web browser plug-in of claim 15, wherein the web browser is Internet
Explorer.
18. The web browser plug-in of claim 15, wherein the customized processing
operations comprise, or are selected from the group comprising: a compression
operation, a decompression operation, an encryption operation, and a decryption
operation.
19. A computer program product for use on a computer system for customized
processing of HTTPS data, the computer program product comprising:
a recording medium for recording means for instructing the computer system to perform the steps of:
a) creating a custom request header indicating that a web browser
supports preselected customized processing operations;
b) sending the custom request header with a HTTP request over a
secure communication channel to a web server;
c) receiving from the web server over the secure communication
channel processed payload data and a HTTP response header
correctable therewith, wherein the processed payload data is
created by processing original payload data based upon one or
more of the customized processing operations supported by the
web browser;
d) modifying the response header to create a modified response
header;

e) modifying the processed payload data utilizing one or more of the
customized processing operations to create modified payload data
indicative of the original payload data;
f) presenting the modified header and the modified payload data to
the web browser.
20. The computer program product of claim 19, wherein the computer Drogram product is a web browser plug-in.

Documents

Name Date
8804-delnp-2007-Form-3-(22-12-2009).pdf 2009-12-22
8804-delnp-2007-Correspondence-Others-(22-12-2009).pdf 2009-12-22
8804-delnp-2007-pct-210.pdf 2011-08-20
8804-delnp-2007-form-5.pdf 2011-08-20
8804-delnp-2007-pct-237.pdf 2011-08-20
8804-delnp-2007-form-3.pdf 2011-08-20
8804-delnp-2007-form-2.pdf 2011-08-20
8804-delnp-2007-form-18.pdf 2011-08-20
8804-delnp-2007-form-1.pdf 2011-08-20
8804-delnp-2007-drawings.pdf 2011-08-20
8804-delnp-2007-correspondence-others.pdf 2011-08-20
8804-delnp-2007-description (complete).pdf 2011-08-20
8804-delnp-2007-correspondence-others 1.pdf 2011-08-20
8804-delnp-2007-abstract.pdf 2011-08-20
8804-delnp-2007-claims.pdf 2011-08-20
8804-delnp-2007-Form-3-(19-03-2012).pdf 2012-03-19
8804-delnp-2007-Correspondence Others-(19-03-2012).pdf 2012-03-19
8804-delnp-2007-Form-3-(21-11-2012).pdf 2012-11-21
8804-delnp-2007-Correspondence-others-(21-11-2012).pdf 2012-11-21
8804-delnp-2007-Correspondence-Others-(27-08-2013).pdf 2013-08-27
8804-delnp-2007-Form-2-(17-09-2013).pdf 2013-09-17
8804-delnp-2007-Correspondence Others-(17-09-2013).pdf 2013-09-17
8804-delnp-2007-Form-1-(17-09-2013).pdf 2013-09-17
8804-delnp-2007-Petition-137-(30-09-2013).pdf 2013-09-30
8804-delnp-2007-Form-13-(30-09-2013).pdf 2013-09-30
8804-delnp-2007-GPA-(30-09-2013).pdf 2013-09-30
8804-delnp-2007-Drawings-(30-09-2013).pdf 2013-09-30
8804-delnp-2007-Correspondence Others-(30-09-2013).pdf 2013-09-30
8804-delnp-2007-Claims-(30-09-2013).pdf 2013-09-30
8804-DELNP-2007-Abstract(30-09-2013).pdf 2013-09-30
8804-DELNP-2007_EXAMREPORT.pdf 2016-06-30
8804-DELNP-2007-HearingNoticeLetter.pdf 2018-11-16
8804-DELNP-2007-Correspondence to notify the Controller (Mandatory) [26-12-2018(online)].pdf 2018-12-26
8804-DELNP-2007-Power of Attorney-040119.pdf 2019-01-08
8804-DELNP-2007-Correspondence-040119.pdf 2019-01-08
8804-DELNP-2007-FORM-26 [26-12-2018(online)].pdf 2018-12-26
8804-delnp-2007-ExtendedHearingNoticeLetter_29Jan2019.pdf 2019-01-14
8804-DELNP-2007-FORM-26 [28-01-2019(online)].pdf 2019-01-28
8804-DELNP-2007-Correspondence to notify the Controller (Mandatory) [28-01-2019(online)].pdf 2019-01-28
8804-DELNP-2007-Correspondence-300119.pdf 2019-02-01
8804-DELNP-2007-Power of Attorney-300119.pdf 2019-02-01
8804-DELNP-2007-Correspondence-210219.pdf 2019-02-22
8804-DELNP-2007-Power of Attorney-210219.pdf 2019-02-22
8804-DELNP-2007-PatentCertificate27-09-2019.pdf 2019-09-27
8804-DELNP-2007-IntimationOfGrant27-09-2019.pdf 2019-09-27
8804-DELNP-2007-POWER OF AUTHORITY [16-11-2021(online)].pdf 2021-11-16
8804-DELNP-2007-Written submissions and relevant documents (MANDATORY) [11-02-2019(online)].pdf 2019-02-11
8804-DELNP-2007-FORM-16 [16-11-2021(online)].pdf 2021-11-16
8804-DELNP-2007-RELEVANT DOCUMENTS [30-09-2021(online)].pdf 2021-09-30
8804-DELNP-2007-ASSIGNMENT WITH VERIFIED COPY [16-11-2021(online)].pdf 2021-11-16
8804-delnp-2007-Correspondence-Others-(22-12-2009).pdf 2009-12-22
8804-delnp-2007-form-3.pdf 2011-08-20
8804-delnp-2007-form-2.pdf 2011-08-20
8804-delnp-2007-form-1.pdf 2011-08-20
8804-delnp-2007-pct-210.pdf 2011-08-20
8804-delnp-2007-description (complete).pdf 2011-08-20
8804-delnp-2007-form-5.pdf 2011-08-20
8804-delnp-2007-pct-237.pdf 2011-08-20
8804-delnp-2007-claims.pdf 2011-08-20
8804-delnp-2007-Form-3-(21-11-2012).pdf 2012-11-21
8804-delnp-2007-drawings.pdf 2011-08-20
8804-delnp-2007-correspondence-others.pdf 2011-08-20
8804-delnp-2007-correspondence-others 1.pdf 2011-08-20
8804-delnp-2007-form-18.pdf 2011-08-20
8804-delnp-2007-Correspondence-Others-(27-08-2013).pdf 2013-08-27
8804-delnp-2007-Correspondence Others-(19-03-2012).pdf 2012-03-19
8804-delnp-2007-Form-3-(19-03-2012).pdf 2012-03-19
8804-delnp-2007-Form-3-(22-12-2009).pdf 2009-12-22
8804-delnp-2007-Correspondence Others-(17-09-2013).pdf 2013-09-17
8804-delnp-2007-abstract.pdf 2011-08-20
8804-delnp-2007-GPA-(30-09-2013).pdf 2013-09-30
8804-delnp-2007-Correspondence-others-(21-11-2012).pdf 2012-11-21
8804-delnp-2007-Form-2-(17-09-2013).pdf 2013-09-17
8804-DELNP-2007_EXAMREPORT.pdf 2016-06-30
8804-DELNP-2007-Abstract(30-09-2013).pdf 2013-09-30
8804-delnp-2007-Form-1-(17-09-2013).pdf 2013-09-17
8804-DELNP-2007-Power of Attorney-040119.pdf 2019-01-08
8804-delnp-2007-Petition-137-(30-09-2013).pdf 2013-09-30
8804-DELNP-2007-HearingNoticeLetter.pdf 2018-11-16
8804-delnp-2007-Claims-(30-09-2013).pdf 2013-09-30
8804-DELNP-2007-Correspondence to notify the Controller (Mandatory) [26-12-2018(online)].pdf 2018-12-26
8804-delnp-2007-Drawings-(30-09-2013).pdf 2013-09-30
8804-delnp-2007-Form-13-(30-09-2013).pdf 2013-09-30
8804-delnp-2007-Correspondence Others-(30-09-2013).pdf 2013-09-30
8804-DELNP-2007-Correspondence to notify the Controller (Mandatory) [28-01-2019(online)].pdf 2019-01-28
8804-DELNP-2007-FORM-26 [28-01-2019(online)].pdf 2019-01-28
8804-DELNP-2007-Correspondence-040119.pdf 2019-01-08
8804-DELNP-2007-Power of Attorney-210219.pdf 2019-02-22
8804-DELNP-2007-IntimationOfGrant27-09-2019.pdf 2019-09-27
8804-delnp-2007-ExtendedHearingNoticeLetter_29Jan2019.pdf 2019-01-14
8804-DELNP-2007-Power of Attorney-300119.pdf 2019-02-01
8804-DELNP-2007-Correspondence-300119.pdf 2019-02-01
8804-DELNP-2007-ASSIGNMENT WITH VERIFIED COPY [16-11-2021(online)].pdf 2021-11-16
8804-DELNP-2007-RELEVANT DOCUMENTS [04-09-2022(online)].pdf 2022-09-04
8804-DELNP-2007-Written submissions and relevant documents (MANDATORY) [11-02-2019(online)].pdf 2019-02-11
8804-DELNP-2007-Correspondence-210219.pdf 2019-02-22
8804-DELNP-2007-FORM-16 [16-11-2021(online)].pdf 2021-11-16
8804-DELNP-2007-POWER OF AUTHORITY [16-11-2021(online)].pdf 2021-11-16
8804-DELNP-2007-RELEVANT DOCUMENTS [30-09-2021(online)].pdf 2021-09-30
8804-DELNP-2007-PatentCertificate27-09-2019.pdf 2019-09-27
8804-DELNP-2007-FORM-26 [26-12-2018(online)].pdf 2018-12-26

Orders

Applicant Section Controller Decision Date URL