IP Library Granted Patent US 11,743,240
Granted Patent B2
US 11,743,240 · App. 16/445,019 · Granted Aug 29, 2023

Secure stream protocol for serial interconnect

Inventors: Vedvyas Shanbhogue (Austin, TX); Siddhartha Chhabra (Portland, OR); David J. Harriman (Portland, OR); Raghunandan Makaram (Northborough, MA); Ioannis T. Schoinas (Portland, OR)
Assignee: Intel Corporation
H04L63/0457G06F13/4282G06F21/606G06F21/64G06F2213/0026H04L9/3242H04L63/0464
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 11,743,240
App. No.
16/445,019
Granted
Aug 29, 2023
Kind
B2
Abstract

Methods, systems, and apparatuses associated with a secure stream protocol for a serial interconnect are disclosed. An apparatus comprises a first device comprising circuitry to, using an end-to-end protocol, secure a transaction in a first secure stream based at least in part on a transaction type of the transaction, where the first secure stream is separate from a second secure stream. The first device is further to send the transaction secured in the first secure stream to a second device over a link established between the first device and the second device, where the transaction is to traverse one or more intermediate devices from the first device to the second device. In more specific embodiments, the first secure stream is based on one of a posted transaction type, a non-posted transaction type, or completion transaction type.

Claims (68)

1. An apparatus, comprising:

a first device comprising circuitry, the first device to:

using an end-to-end protocol, secure a transaction in a first secure stream based at least in part on a first transaction type of a plurality of transaction types, wherein the first transaction type is one of a posted transaction type, a non-posted transaction type, or completion transaction type, wherein the first secure stream is separate from a second secure stream;

prior to the transaction being sent to a second device by the first device, encrypt a data portion of the transaction using an encryption key that is associated with the first transaction type and that is assigned to the first secure stream;

compute an integrity code value over at least the encrypted data portion and a header that includes routing information for the transaction;

add the integrity code value to the transaction; and

send the transaction secured in the first secure stream to the second device over a link established between the first device and the second device, wherein the transaction is to traverse one or more intermediate devices from the first device to the second device.

2. The apparatus of claim 1 , wherein the second secure stream is based on one of a posted transaction type, a non-posted transaction type, or a completion transaction type.

3. The apparatus of claim 1 , wherein the transaction is one of two or more transactions associated with the first transaction type and secured in the first secure stream based at least in part on the first transaction type, and wherein the two or more transactions are to be received by the second device in a same order that the first device is to send the two or more transactions.

4. The apparatus of claim 3 , wherein the second secure stream is based, at least in part, on a second transaction type, wherein two or more other transactions are associated with the second transaction type and are secured in the second secure stream based at least in part on the second transaction type, wherein the two or more other transactions are to be received by the second device in a same order that the first device is to send the two or more other transactions.

5. The apparatus of claim 1 , the transaction comprises:

secure stream information including an indication of whether the transaction originated from a trusted entity at the first device, wherein the integrity code value is to be computed over the secure stream information along with the encrypted data portion and the header.

6. The apparatus of claim 5 ,

wherein the integrity code value is to be computed based, at least in part, on a first encryption counter assigned to the first secure stream.

7. The apparatus of claim 5 , wherein the first device is further to:

insert the header and the secure stream information in the transaction in an unencrypted form.

8. The apparatus of claim 5 , wherein the first device is to store the secure stream information in a prefix of a transaction layer packet of the transaction, one of one or more headers of the transaction layer packet, a payload of the transaction layer packet, or a security layer added to the transaction layer packet.

9. The apparatus of claim 5 , wherein the secure stream information comprises:

a trusted bit indicating whether the transaction originated from the trusted entity at the first device; and

a counter bit indicating whether the transaction includes a counter value representing a number of posted transactions sent by the first device to the second device since a last non-posted transaction or a last completion transaction was sent by the first device to the second device.

10. The apparatus of claim 1 , wherein, based on the first transaction type of the transaction being a non-posted transaction type or a completion transaction type, the first device is further to:

obtain a value of a first counter; and

insert the value of the first counter in the transaction, wherein the value of the first counter represents a number of posted transactions sent by the first device to the second device since a last non-posted transaction or a last completion transaction was sent by the first device to the second device.

11. The apparatus of claim 1 , wherein, based on the first transaction type of the transaction being a posted transaction type, the first device is further to:

increment a first counter that represents a number of posted transactions sent by the first device to the second device since a last non-posted transaction or a last completion transaction was sent by the first device to the second device.

12. The apparatus of claim 1 , wherein the transaction is to include an indication of whether the end-to-end protocol is operating in a restricted ordering mode or an explicit counter mode.

13. The apparatus of claim 1 , wherein the link between the first device and the second device is established based on a peripheral component interconnect express (PCIe) protocol and the end-to-end protocol.

14. One or more non-transitory computer-readable media with instructions stored thereon, wherein the instructions are executable to cause a machine to:

receive, at a first device, a transaction from a second device over a link established between the first device and the second device, wherein the transaction is to traverse one or more intermediate devices from the second device to the first device;

determine that the transaction is secured in a first secure stream of a plurality of secure streams according to an end-to-end protocol, wherein the transaction is secured in the first secure stream based, at least in part, on a transaction type of the transaction, wherein the transaction type is one of a posted transaction type, a non-posted transaction type, or a completion transaction type;

use a decryption key to decrypt encrypted data in the transaction, wherein the decryption key is associated with the transaction type of the transaction and is assigned to the first secure stream;

compute a first integrity code value over at least the encrypted data and a header that includes routing information for the transaction; and

verify integrity of the transaction based, at least in part, on the first integrity code value.

15. The one or more non-transitory computer-readable media of claim 14 , wherein the transaction comprises:

the encrypted data;

the header including the routing information for the transaction; and

secure stream information including an indication of whether the transaction originated from a trusted entity at the second device.

16. The one or more non-transitory computer-readable media of claim 15 , wherein

to verify the integrity of the transaction is to include:

computing an integrity code value over at least the secure stream information, the header, and the encrypted data; and

comparing the first integrity code value to another integrity code value received with the transaction, wherein the first integrity code value is to be computed over the secure stream information along with the encrypted data and the header.

17. The one or more non-transitory computer-readable media of claim 14 , wherein, based on the transaction type of the transaction being a non-posted transaction type or a completion transaction type, wherein the instructions are executable to cause the machine further to:

obtain a value of a first counter from the transaction;

decrement a value of a second counter in the first device by the value of the first counter; and

based on determining that the value of the second counter is less than zero, terminate a session associated with the transaction, wherein the value of the first counter represents a number of posted transactions sent by the second device to the first device since a last non-posted transaction or a last completion transaction was sent by the second device to the first device, and the value of the second counter represents a number of posted transactions received by the first device from the second device since a last non-posted transaction or a last completion transaction was received by the first device from the second device.

18. A system, comprising:

a first endpoint including a transmitter; and

a second endpoint including a receiver to receive a transaction from the first endpoint via a link and one or more intermediate devices,

wherein the first endpoint is to:

determine a transaction type of the transaction, wherein the transaction type is one of a posted transaction type, a non-posted transaction type, or a completion transaction type;

insert, in the transaction, secure stream information indicating that the transaction is secured in a first secure stream of a plurality of secure streams, wherein the first secure stream is based at least in part on the transaction type of the transaction; and

prior to the transaction being sent to the second endpoint from the first endpoint, encrypt a data portion of the transaction using an encryption key that is associated with the transaction type and that is assigned to the first secure stream, compute a first integrity code value over at least the secure stream information, the encrypted data portion, and a header that includes routing information for the transaction, and add the first integrity code value to the transaction.

19. The system of claim 18 , wherein the transaction to be sent to the second endpoint comprises

the encrypted data portion, the header, and the secure stream information.

20. The system of claim 19 ,

wherein the second endpoint is to verify integrity of the transaction by:

computing a second integrity code value over at least the secure stream information, the header, and the encrypted data portion in the transaction; and

comparing the second integrity code value to the first integrity code value in the transaction.

21. The system of claim 20 , wherein the first endpoint is further to:

insert the header and the secure stream information in the transaction in an unencrypted form.

22. The system of claim 19 , wherein a first intermediate device of the one or more intermediate devices is to:

receive the transaction; and

based on determining that the transaction is secured in the first secure stream, determine whether to reorder the transaction for transmission based on restricted ordering rules, wherein the restricted ordering rules comprise:

not allowing a posted transaction to pass another posted transaction;

not allowing a non-posted transaction to pass a non-posted transaction;

not allowing a non-posted transaction to pass a posted transaction;

not allowing a completion transaction to pass a posted transaction; and

not allowing a completion transaction to pass a completion transaction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2019
From: SHANBHOGUE, VEDVYAS; CHHABRA, SIDDHARTHA; HARRIMAN, DAVID J.; MAKARAM, RAGHUNANDAN; SCHOINAS, IOANNIS T.
To: INTEL CORPORATION
Reel/Frame 049508/0394 →
Continuity (2)
Provisional Application 62815554 · Mar 8, 2019
Related Publication 20190306134A1 · Oct 3, 2019