IP Library Granted Patent US 8,996,855
Granted Patent B2
US 8,996,855 · App. 13/676,730 · Granted Mar 31, 2015

HTTP layer countermeasures against blockwise chosen boundary attack

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,996,855
App. No.
13/676,730
Granted
Mar 31, 2015
Kind
B2
Abstract

A client application, when executed by a processor, is operative to create a HyperText Transfer Protocol (HTTP) request containing a target header that includes a confidential value. The HTTP request is to be sent over a Secure Sockets Layer (SSL) 3.0 connection or a Transport Layer Security (TLS) 1.0 connection to a web server. The client application implements at its HTTP layer a countermeasure to a blockwise chosen-boundary attack. The client application generates an additional header having a header name that is not recognizable by the web server and inserts the additional header into the HTTP request ahead of the target header, thus creating a modified HTTP request. The modified HTTP request is to be sent, instead of the unmodified HTTP request, over the SSL 3.0 connection or the TLS 1.0 connection to the web server.

Claims (36)

1. A method of modifying a HyperText Transfer Protocol (HTTP) request to be sent over a Secure Sockets Layer (SSL) 3.0 connection or a Transport Layer Security (TLS) 1.0 connection to a web server, the HTTP request containing a target header that includes a confidential value, the method comprising:

generating an additional header having a header name that is not recognizable by the web server; and

inserting the additional header into the HTTP request ahead of the target header, thus creating a modified HTTP request to be sent, instead of the unmodified HTTP request, over the SSL 3.0 connection or the TLS 1.0 connection to the web server, wherein the modified HTTP request is of longer length than the unmodified HTTP request.

2. The method as recited in claim 1 , wherein generating the additional header comprises calculating the length of the additional header such that a length, in bytes, of the modified HTTP request up to and not including a first byte of the confidential value is an integer multiple of a fixed byte-length of a block cipher used in cipher-block chaining (CBC) mode encryption for the SSL 3.0 connection or for the TLS 1.0 connection.

3. The method as recited in claim 1 , wherein generating the additional header comprises calculating the length of the additional header such that a length, in bytes, of the modified HTTP request up to and not including a second byte of the confidential value is an integer multiple of a fixed byte-length of a block cipher used in cipher-block chaining (CBC) mode encryption for the SSL 3.0 connection or for the TLS 1.0 connection.

4. The method as recited in claim 1 , wherein generating the additional header comprises selecting the length of the additional header from a predefined set in a random or unpredictable manner.

5. The method as recited in claim 1 , wherein the additional header is inserted into the HTTP request immediately ahead of the target header.

6. The method as recited in claim 1 , wherein generating the additional header comprises:

generating unpredictable or random values; and

using the generated unpredictable or random values as the final values in a header value of the additional header.

7. The method as recited in claim 1 , further comprising serializing the modified HTTP request.

8. The method as recited in claim 1 , wherein the HTTP request is serialized prior to having the additional header inserted therein.

9. A client computer comprising:

a processor;

a network interface coupled to the processor, through which the client computer is operative to communicate with a server computer having installed thereon a web server that is compatible with Secure Sockets Layer (SSL) 3.0 or with Transport Layer Security (TLS) 1.0; and

a memory coupled to the processor, the memory storing a client application that is compatible with SSL 3.0 or with TLS 1.0, the client application operative, when executed by the processor, to create an HTTP request containing a target header that includes a confidential value, to generate an additional header having a header name that is not recognizable by the web server, and to insert the additional header into the HTTP request ahead of the target header, thus creating a modified HTTP request to be sent, instead of the unmodified HTTP request, over an SSL 3.0 connection or a TLS 1.0 connection to the web server, wherein the modified HTTP request is of longer length than the unmodified HTTP request.

10. The client computer as recited in claim 9 , wherein the client application, when executed by the processor, is operative to calculate the length of the additional header such that a length, in bytes, of the modified HTTP request up to and not including a first byte of the confidential value is an integer multiple of a fixed byte-length of a block cipher used in cipher-block chaining (CBC) mode encryption for the SSL 3.0 connection or for the TLS 1.0 connection.

11. The client computer as recited in claim 9 , wherein the client application, when executed by the processor, is operative to calculate the length of the additional header such that a length, in bytes, of the modified HTTP request up to and not including a second byte of the confidential value is an integer multiple of a fixed byte-length of a block cipher used in cipher-block chaining (CBC) mode encryption for the SSL 3.0 connection or for the TLS 1.0 connection.

12. The client computer as recited in claim 9 , wherein the client application, when executed by the processor, is operative to select the length of the additional header from a predefined set in a random or unpredictable manner.

13. The client computer as recited in claim 9 , wherein the client application, when executed by the processor, is operative to insert the additional header into the HTTP request immediately ahead of the target header.

14. The client computer as recited in claim 9 , wherein the client application, when executed by the processor, is operative to generate unpredictable or random values and to use the generated unpredictable or random values as the final values in a header value of the additional header.

15. The client computer as recited in claim 9 , wherein the client application, when executed by the processor, is operative to serialize the modified HTTP request.

16. The client computer as recited in claim 9 , wherein the client application, when executed by the processor, is operative to serialize the unmodified HTTP request prior to inserting the additional header therein.

17. A memory having stored thereon computer-executable instructions for a HyperText Transfer Protocol (HTTP) client application, wherein the instructions, when executed by a processor of a client computer, result in:

creating an HTTP request containing a target header that includes a confidential value, the HTTP request to be sent over a Secure Sockets Layer (SSL) 3.0 connection or a Transport Layer Security (TLS) 1.0 connection to a web server;

generating an additional header having a header name that is not recognizable by the web server; and

inserting the additional header into the HTTP request ahead of the target header, thus creating a modified HTTP request to be sent instead of the unmodified HTTP request over the SSL 3.0 connection or the TLS 1.0 connection to the web server, wherein the modified HTTP request is of longer length than the unmodified HTTP request.

18. The memory as recited in claim 17 , wherein generating the additional header comprises calculating the length of the additional header such that a length, in bytes, of the modified HTTP request up to and not including a first byte of the confidential value is an integer multiple of a fixed byte-length of a block cipher used in cipher-block chaining (CBC) mode encryption for the SSL 3.0 connection or for the TLS 1.0 connection.

19. The memory as recited in claim 17 , wherein generating the additional header comprises calculating the length of the additional header such that a length, in bytes, of the modified HTTP request up to and not including a second byte of the confidential value is an integer multiple of a fixed byte-length of a block cipher used in cipher-block chaining (CBC) mode encryption for the SSL 3.0 connection or for the TLS 1.0 connection.

20. The memory as recited in claim 17 , wherein generating the additional header comprises selecting the length of the additional header from a predefined set in a random or unpredictable manner.

21. The memory as recited in claim 17 , wherein the additional header is inserted into the HTTP request immediately ahead of the target header.

22. The memory as recited in claim 17 , wherein generating the additional header comprises:

generating unpredictable or random values; and

using the generated unpredictable or random values as the final values in a header value of the additional header.

23. The memory as recited in claim 17 , wherein the instructions, when executed by the processor, further result in serializing the modified HTTP request.

24. The memory as recited in claim 17 , wherein the instructions, when executed by the processor, further result in serializing the unmodified HTTP request prior to having the additional header inserted therein.

Assignments (6)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2019
From: CERTICOM CORP.
To: BLACKBERRY LIMITED
Reel/Frame 050610/0937 →
CHANGE OF NAME Recorded Oct 18, 2013
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 031439/0714 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2013
From: SHERKIN, ALEXANDER; TRUSKOVSKY, ALEXANDER; MATOVSKY, MICHAEL; ARFEEN, OSMAN ZOHAIB
To: RESEARCH IN MOTION LIMITED
Reel/Frame 029786/0198 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2013
From: ZAVERUCHA, GREGORY MARC
To: CERTICOM CORP.
Reel/Frame 029786/0257 →