IP Library › Granted Patent US 12,058,241
Granted Patent B2
US 12,058,241 · App. 17/341,122 · Granted Aug 6, 2024

Securely and reliably transmitting messages between network devices

Inventors: Deepak Goel (San Jose, CA); Kambiz Rahimi (Kirkland, WA)
Assignee: Microsoft Technology Licensing, LLC
H04L9/08H04L63/08
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 12,058,241
App. No.
17/341,122
Granted
Aug 6, 2024
Kind
B2
Abstract

The present disclosure relates to systems for generating network packets that facilitate reliable and secure transmission of data between computing devices. For example, systems described herein involve generating a network packet in which a transport layer and security layer are implemented within an authentication header of the network packet. Information from the authentication header may be evaluated by a receiving device using a security key to compute an integrity check vector and an initialization vector to determine that a network packet has been provided in a correct order as well as check against a variety of security threats.

Claims (53)

1. A method, comprising:

receiving, at a first device, a first security key associated with encrypting and decrypting data to be communicated between the first device and a second device;

receiving, at the first device, a second security key associated with encrypting and decrypting data to be communicating between the first device and the second device, the second security key being designated as inactive, the first device and the second device being included within a security grouping of computing devices that each receive the first security key and the second security key, the security grouping of computing devices including the first device, the second device, and one or more additional devices that share a common security key enabling each device from the security grouping of computing devices to encrypt and decrypt data to be communicated between respective devices of the security grouping of computing devices;

receiving an indication that the second security key has been activated;

generating a network packet for transmitting encrypted content from the first device to the second device, wherein the network packet includes:

a first authentication header including authentication information for the network packet, wherein the authentication information includes a data sequence number and a packet counter value;

a payload including encrypted content of a message to be communicated to the second device, the encrypted content being encrypted using the second security key based on the second security key being activated; and

a security tag computed over the first authentication header and the payload; and

transmitting the network packet from the first device to the second device, wherein transmitting the network packet enables determining that the network packet has been transmitted successfully and securely via a communication channel.

2. The method of claim 1 , wherein transmitting the network packet from the first device to the second device causes the second device to authenticate the network packet based on authentication information from the first authentication header, wherein authenticating the network packet includes determining that the network packet has been transmitted both successfully and securely via the communication channel based on the first authentication header.

3. The method of claim 2 , wherein authenticating the network packet includes causing the second device to determine that the network packet has been transmitted in a correct order relative to one or more additional network packets originating from the first device based on identifying a sequence of the data sequence number relative to the one or more additional network packets.

4. The method of claim 3 , wherein authenticating the network packet further includes verifying that the network packet is not a repeat packet based on a comparison of a computed data sequence number to the data sequence number from the network packet.

5. The method of claim 3 , wherein authenticating the network packet further includes:

calculating an integrity check vector (ICV) based on the first authentication header and the payload; and

determining that the network packet has not been modified based on the ICV matching the security tag included within the network packet.

6. The method of claim 1 , wherein a copy of the first security key and the second security key are issued to the second device, and wherein an initialization vector is calculated using the copy of the second security key based at least in part on the packet counter value from the first authentication header and based on the second device receiving the indication that the second security key has been activated.

7. The method of claim 6 , wherein the initialization vector includes a source address associated with the first device and the packet counter value.

8. The method of claim 1 , wherein copies of both the first security key and the second security key are provided to each of the one or more additional devices from the security grouping of computing devices to enable the one or more additional devices to authenticate communications from the first device over multiple communication channels.

9. The method of claim 1 , further comprising:

activating the second security key based on an activation signal provided to each of the first device, the second device, and one or more additional devices within the security grouping of computing devices; and

causing the second security key to be used in encrypting content for one or more subsequent network packets generated by the first device to be communicated to one of the second device or the one or more additional devices.

10. The method of claim 9 , further comprising maintaining an active status of the first security key for a period of time until network packets generated using the first security key have expired.

11. The method of claim 1 , wherein the communication channel is an unsecure Ethernet wire that is part of a backend interface between the first device and the second device.

12. A system, comprising:

one or more processors;

memory in electronic communication with the one or more processors; and

instructions stored in the memory, the instructions being executable by the one or more processors to:

receive, at a first device, a first security key associated with encrypting and decrypting data to be communicated between the first device and a second device;

receive, at the first device, a second security key associated with encrypting and decrypting data to be communicating between the first device and the second device, the second security key being designated as inactive, the first device and the second device being included within a security grouping of computing devices that each receive the first security key and the second security key, the security grouping of computing devices including the first device, the second device, and one or more additional devices that share a common security key enabling each device from the security grouping of computing devices to encrypt and decrypt data to be communicated between respective devices of the security grouping of computing devices;

receive an indication that the second security key has been activated;

generate a network packet for transmitting encrypted content from the first device to the second device, wherein the network packet includes:

a first authentication header including authentication information for the network packet, wherein the authentication information includes a data sequence number and a packet counter value;

a payload including encrypted content of a message to be communicated to the second device, the encrypted content being encrypted using the second security key based on the second security key being activated; and

a security tag computed over the first authentication header and the payload; and

transmit the network packet from the first device to the second device, wherein transmitting the network packet enables determining that the network packet has been transmitted successfully and securely via a communication channel.

13. The system of claim 12 , wherein transmitting the network packet from the first device to the second device causes the second device to authenticate the network packet based on authentication information from the first authentication header, wherein authenticating the network packet includes determining that the network packet has been transmitted both successfully and securely via the communication channel based on the first authentication header.

14. The system of claim 13 , wherein authenticating the network packet includes causing the second device to determine that the network packet has been transmitted in a correct order relative to one or more additional network packets originating from the first device based on identifying a sequence of the data sequence number relative to the one or more additional network packets.

15. The system of claim 14 , wherein authenticating the network packet further includes verifying that the network packet is not a repeat packet based on a comparison of a computed data sequence number to the data sequence number from the network packet.

16. The system of claim 14 , wherein authenticating the network packet further includes:

calculating an integrity check vector (ICV) based on the first authentication header and the payload; and

determining that the network packet has not been modified based on the ICV matching the security tag included within the network packet.

17. A non-transitory computer readable medium storing instructions thereon that, when executed by one or more processors, causes one or more computing devices to:

receive, at a first device, a first security key associated with encrypting and decrypting data to be communicated between the first device and a second device;

receive, at the first device, a second security key associated with encrypting and decrypting data to be communicating between the first device and the second device, the second security key being designated as inactive, the first device and the second device being included within a security grouping of computing devices that each receive the first security key and the second security key, the security grouping of computing devices including the first device, the second device, and one or more additional devices that share a common security key enabling each device from the security grouping of computing devices to encrypt and decrypt data to be communicated between respective devices of the security grouping of computing devices;

receive an indication that the second security key has been activated;

generate a network packet for transmitting encrypted content from the first device to the second device, wherein the network packet includes:

a first authentication header including authentication information for the network packet, wherein the authentication information includes a data sequence number and a packet counter value;

a payload including encrypted content of a message to be communicated to the second device, the encrypted content being encrypted using the second security key based on the second security key being activated; and

a security tag computed over the first authentication header and the payload; and

transmit the network packet from the first device to the second device, wherein transmitting the network packet enables determining that the network packet has been transmitted successfully and securely via a communication channel.

18. The non-transitory computer readable medium of claim 17 , wherein transmitting the network packet from the first device to the second device causes the second device to authenticate the network packet based on authentication information from the first authentication header, wherein authenticating the network packet includes determining that the network packet has been transmitted both successfully and securely via the communication channel based on the first authentication header.

19. The non-transitory computer readable medium of claim 17 , wherein authenticating the network packet includes causing the second device to determine that the network packet has been transmitted in a correct order relative to one or more additional network packets originating from the first device based on identifying a sequence of the data sequence number relative to the one or more additional network packets.

20. The non-transitory computer readable medium of claim 19 , wherein authenticating the network packet further includes verifying that the network packet is not a repeat packet based on a comparison of a computed data sequence number to the data sequence number from the network packet.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2021
From: GOEL, DEEPAK; RAHIMI, KAMBIZ
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 056548/0817 →
Continuity (1)
Related Publication 20220393856A1 · Dec 8, 2022