IP Library Granted Patent US 8,984,268
Granted Patent B2
US 8,984,268 · App. 11/927,371 · Granted Mar 17, 2015

Encrypted record transmission

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,984,268
App. No.
11/927,371
Granted
Mar 17, 2015
Kind
B2
Abstract

The invention provides a method and apparatus for transmitting data securely using an unreliable communication protocol, such as User Datagram Protocol. In one variation, the invention retains compatibility with conventional Secure Sockets Layer (SSL) and SOCKS protocols, such that secure UDP datagrams can be transmitted between a proxy server and a client computer in a manner analogous to conventional SOCKS processing. In contrast to conventional SSL processing, which relies on a guaranteed delivery service such as TCP and encrypts successive data records with reference to a previously-transmitted data record, encryption is performed using a nonce that is embedded in each transmitted data record. This nonce acts both as an initialization vector for encryption/decryption of the record, and as a unique identifier to authenticate the record. Because decryption of any particular record does not rely on receipt of a previously received data record, the scheme will operate over an unreliable communication protocol. The system and method allows secure packet transmission to be provided with a minimum amount of overhead.

Claims (55)

1. A method for generating and transmitting an encrypted record over a network to a computing device for decryption at the computing device, the method comprising:

receiving a plurality of blocks of plaintext at a network interface of a server; and

executing instructions stored in memory of the server, wherein execution of the instructions by a processor of the server:

generates a block of ciphertext based on a block of plaintext from the plurality of blocks of plaintext, wherein generating the block of ciphertext includes encrypting the block of plaintext with an initialization vector and a session key, and wherein the initialization vector is different for each of the plurality of blocks of plaintext,

generates a nonce, wherein the nonce is different for each of the plurality of blocks of plaintext,

generates a message authentication check (MAC) by applying a hashing function to the nonce, the session key, and the block of plaintext,

embeds the block of ciphertext into an encrypted record,

appends a header, the MAC, the nonce, and the unique initialization vector to the encrypted record,

embeds a bit into the header of the encrypted record, wherein the embedded bit indicates to the computing device that the encrypted record is a secure record, and

transmits the encrypted record to the computing device over the network using an unreliable protocol.

2. A non-transitory computer-readable storage medium having embodied thereon a program, the program executable by a computer to perform a method for generating and transmitting an encrypted record for decryption at the computing device, the method comprising:

receiving a plurality of blocks of plaintext at a network interface of a server;

generating a block of ciphertext based on a block of plaintext from the plurality of blocks of plaintext, wherein generating the block of ciphertext includes encrypting the block of plaintext with an initialization vector and a session key, and wherein the initialization vector is different for each of the plurality of blocks of plaintext;

generating a nonce, wherein the nonce is different for each of the plurality of blocks of plaintext;

generating a message authentication check (MAC) by applying a hashing function to the nonce, the session key, and the block of plaintext;

embedding the block of ciphertext into an encrypted record;

appending a header, the MAC, the nonce, and the unique initialization vector to the encrypted record;

embedding a bit into the header of the encrypted record, wherein the embedded bit indicates to the computing device that the encrypted record is a secure record; and

transmitting the encrypted record to the computing device over the network using an unreliable protocol.

3. The method of claim 1 , wherein the nonce appended to the encrypted record indicates to the computing device that the encrypted record was already received in the past.

4. The method of claim 1 , wherein the unreliable protocol is User Datagram Protocol (UDP).

5. The method of claim 1 , wherein detection of the embedded bit by the computing device signals to the client that the encrypted record is to be processed by a modified Socket Secure (SOCKS) processing function rather than a conventional SOCKS processing function.

6. The non-transitory computer-readable storage medium of claim 2 , wherein the nonce appended to the encrypted record indicates to the computing device that the encrypted record was already received in the past.

7. The non-transitory computer-readable storage medium of claim 2 , wherein the unreliable protocol is User Datagram Protocol (UDP).

8. The non-transitory computer-readable storage medium of claim 2 , wherein detection of the embedded bit by the computing device signals to the computing device that the encrypted record is to be processed by a modified Socket Secure (SOCKS) processing function rather than a conventional SOCKS processing function.

9. An encrypted record transmission system, comprising:

a server having a processor, memory storing executable instructions, and a network interface communicatively coupled to a network, wherein the server:

receives a plurality of blocks of plaintext at the network interface, and

executes the instructions stored in the memory of the server, wherein execution of the instructions by the processor:

generates a block of ciphertext based on a block of plaintext from the plurality of blocks of plaintext, wherein generating the block of ciphertext includes encrypting the block of plaintext with an initialization vector and a session key, and wherein the initialization vector is different for each of the plurality of blocks of plaintext,

generates a nonce, wherein the nonce is different for each of the plurality of blocks of plaintext,

generates a message authentication check (MAC) by applying a hashing function to the nonce, the session key, and the block of plaintext,

embeds the block of ciphertext into an encrypted record,

appends a header, the MAC, the nonce, and the unique initialization vector to the encrypted record,

embeds a bit into the header of the encrypted record, wherein the embedded bit indicates to the computing device that the encrypted record is a secure record, and

transmits the encrypted record over the network using an unreliable protocol, and

a computing device having a network interface communicatively coupled to the network, wherein the computing device:

receives the encrypted record over the network, and

decrypts the encrypted record without reliance on a previously received record.

10. The system of claim 9 , wherein the nonce appended to the encrypted record indicates to the computing device that the encrypted record was already received in the past.

11. The system of claim 9 , wherein the unreliable protocol is User

Datagram Protocol (UDP).

12. The system of claim 9 , wherein detection of the embedded bit by the computing device signals to the computing device that the encrypted record is to be processed by a modified Socket Secure (SOCKS) processing function rather than a conventional SOCKS processing function.

13. The method of claim 1 , wherein the header identifies the encrypted record as including encrypted UDP data.

14. The method of claim 1 , wherein further execution of the instructions by the processor transmits the session key over the network to the computing device.

15. The method of claim 1 , wherein further execution of the instructions by the processor transmits the initialization vector associated with the encrypted record over the network to the computing device.

16. The method of claim 1 , wherein further execution of the instructions by the processor transmits the MAC associated with the encrypted record over the network to the computing device.

17. The non-transitory computer-readable storage medium of claim 2 , wherein the header identifies the encrypted record as including encrypted UDP data.

18. The non-transitory computer-readable storage medium of claim 2 , wherein the method further includes transmitting the session key over the network to the computing device.

19. The non-transitory computer-readable storage medium of claim 2 , wherein the method further includes transmitting the initialization vector associated with the encrypted record over the network to the computing device.

20. The non-transitory computer-readable storage medium of claim 2 , wherein the method further includes transmitting the MAC associated with the encrypted record over the network to the computing device.

21. The system of claim 9 , wherein the header identifies the encrypted record as including encrypted UDP data.

22. The system of claim 9 , wherein further execution of the instructions by the processor transmits the session key over the network to the computing device.

23. The system of claim 9 , wherein further execution of the instructions by the processor transmits the initialization vector associated with the encrypted record over the network to the computing device.

24. The encrypted record transmission system of claim 9 , wherein further execution of the instructions by the processor transmits the MAC associated with the encrypted record over the network to the computing device.

Assignments (19)
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS RECORDED AT RF 046321/0393 Recorded Jun 16, 2025
From: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
To: SONICWALL US HOLDINGS INC.
Reel/Frame 071625/0887 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: SONICWALL US HOLDINGS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 046321/0414 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: SONICWALL US HOLDINGS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 046321/0393 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 041072 FRAME: 235. ASSIGNOR(S) HEREBY CONFIRMS THE INTELLECTUAL PROPERTY ASSIGNMENT AGREEMENT. Recorded Apr 5, 2017
From: AVENTAIL LLC
To: SONICWALL US HOLDINGS INC.
Reel/Frame 042245/0523 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 23, 2017
From: AVENTAIL LLC
To: SONICWALL US HOLDINGS, INC.
Reel/Frame 041072/0235 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED ON REEL/FRAME 024823/0280 Recorded May 8, 2012
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; SONICWALL, INC.
Reel/Frame 028177/0126 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED ON REEL/FRAME 024776/0337 Recorded May 8, 2012
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; SONICWALL, INC.
Reel/Frame 028177/0115 →
SECURITY AGREEMENT Recorded Aug 3, 2010
From: AVENTAIL LLC; SONICWALL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 024776/0337 →
PATENT SECURITY AGREEMENT (SECOND LIEN) Recorded Aug 3, 2010
From: AVENTAIL LLC; SONICWALL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 024823/0280 →
MERGER Recorded Feb 4, 2009
From: AVENTAIL CORPORATION
To: AVENTAIL LLC
Reel/Frame 022200/0475 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2009
From: VANHEYNINGEN, MARC D.
To: AVENTAIL CORPORATION
Reel/Frame 022152/0206 →