IP Library Granted Patent US 12,652,228
Granted Patent B2
US 12,652,228 · App. 17/705,157 · Granted Jun 9, 2026

Trusted or attested packet timestamping

Inventors: Alan Michael Judge (Dublin, IE); Said Bshara (Tira, IL); Julien Ridoux (Seattle, WA); Joshua Benjamin Levinson (Seattle, WA); David James Goodell (Seattle, WA); Erez Izenberg (Tel Aviv-Jaffa, IL); Anthony Nicholas Liguori (Bainbridge Island, WA)
Assignee: Amazon Technologies, Inc.
H04L43/106H04L43/0852H04L2212/00
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,652,228
App. No.
17/705,157
Granted
Jun 9, 2026
Kind
B2
Abstract

Various embodiments of apparatuses and methods for trusted and/or attested packet timestamping are described. In some embodiments, the disclosed system and methods include a reference timekeeper providing a reference clock to host computing devices. The host computing devices host compute instances using a first set of computing resources, and also contain isolated timing hardware utilizing a different set of computing resources. The isolated timing hardware sets a hardware clock based on a signal corresponding to the reference clock from the reference timekeeper. The isolated timing hardware then receives a packet from a particular compute instance, creates a timestamp for the packet based at least in part on the hardware clock, where the timestamp is outside the control of the compute instances, and sends the packet and the timestamp through a data network to transmit to a packet destination.

Claims (73)

1 . A system, comprising:

a reference timekeeper providing a reference clock synchronized to a Global Navigation Satellite System (GNSS); and

a plurality of host computing devices, wherein individual host computing devices comprise computing hardware resources to host one or more compute instances, and further comprise a separate isolated timing hardware; and

wherein the separate isolated timing hardware of a particular host computing device of the plurality of host computing devices is configured to:

set a hardware clock of the separate isolated timing hardware based on a signal corresponding to the reference clock obtained from the reference timekeeper via a dedicated time network inaccessible to the one or more compute instances hosted by the particular host computing device;

receive a packet from a particular compute instance of the one or more compute instances hosted by the particular host computing device, wherein the packet comprises a packet destination;

create a timestamp for the packet based on the hardware clock of the separate isolated timing hardware, wherein the timestamp is outside the control of the one or more compute instances, including the particular compute instance; and

provide the packet and the timestamp to a data network distinct from the dedicated time network to transmit to the packet destination.

2 . The system of claim 1 , wherein the one or more compute instances comprise at least one of a virtual compute instance or a bare metal instance.

3 . The system of claim 1 , wherein the separate isolated timing hardware of the particular host computing device is further configured to:

receive a second packet that was sent from a second host computing device of the plurality of host computing devices, wherein the second packet comprises a sent timestamp, and wherein the destination of the second packet is a destination compute instance of the one or more compute instances hosted by the particular host computing device;

cryptographically certify that the sent timestamp was created by a second separate isolated timing hardware of the second host computing device; and

provide the second packet and information regarding the certification to the destination compute instance.

4 . The system of claim 1 , wherein the separate isolated timing hardware of the particular host computing device is further configured to:

encapsulate the packet into an encapsulated packet according to a tunneling protocol, wherein the encapsulated packet comprises the timestamp; and

wherein to provide the packet and the timestamp to the data network to transmit to the packet destination further comprises:

provide the encapsulated packet comprising the packet and the timestamp to the data network to transmit to the packet destination.

5 . A method, comprising:

receiving, at a networking hardware computing resource, wherein the networking hardware computing resource is coupled to a host computing device comprising separate computing hardware resources that host one or more compute instances, a packet from a particular compute instance of the one or more compute instances, wherein the packet comprises a packet destination;

creating, at the networking hardware computing resource, a timestamp for the packet based on a hardware clock of the networking hardware computing resource, wherein the timestamp is outside the control of the particular compute instance; and

providing the packet and the timestamp to a data network for transmission to the packet destination.

6 . The method as recited in claim 5 , wherein the networking hardware computing resource comprises a network interface card in the host computing device.

7 . The method as recited in claim 5 , further comprising:

setting the hardware clock of the networking hardware computing resource based on a signal corresponding to a reference clock obtained from a reference timekeeper via a dedicated time network inaccessible to the one or more compute instances;

wherein the dedicated time network is distinct from the data network.

8 . The method as recited in claim 7 , wherein the reference clock provided by the reference timekeeper is synchronized to a Global Navigation Satellite System (GNSS), and wherein the hardware clock of the networking hardware computing resource is embedded within a network interface card (NIC) of the networking hardware computing resource.

9 . The method as recited in claim 5 , further comprising:

appending the timestamp to either the header or the body of the packet to create a modified packet larger in size than the packet; and

wherein the providing the packet and the timestamp to the data network to transmit to the packet destination further comprises:

providing the modified packet to the data network to transmit to the packet destination.

10 . The method as recited in claim 5 , further comprising:

writing the timestamp to bits of the packet to create a modified packet, wherein the modified packet is the same size as the packet; and

wherein the providing the packet and the timestamp to the data network to transmit to the packet destination further comprises:

providing the modified packet to the data network to transmit to the packet destination.

11 . The method as recited in claim 5 , further comprising:

creating a separate packet comprising the timestamp, the same packet destination as the packet, and information linking the created separate packet to the packet; and

wherein the providing the packet and the timestamp to the data network to transmit to the packet destination further comprises:

providing the packet and the created separate packet to the data network to transmit to the packet destination.

12 . The method as recited in claim 5 , further comprising:

encapsulating the packet into an encapsulated packet according to a tunneling protocol, wherein the encapsulated packet comprises the timestamp; and

wherein the providing the packet and the timestamp to the data network to transmit to the packet destination further comprises:

providing the encapsulated packet comprising the packet and the timestamp to the data network to transmit to the packet destination.

13 . The method as recited in claim 5 , further comprising:

receiving, at the networking hardware computing resource, a second packet from a source other than the host computing device, wherein the second packet comprises a sent timestamp, and wherein the destination of the second packet is a destination compute instance of the one or more compute instances of the host computing device;

determining that the sent timestamp was created outside the control of a sending compute instance; and

providing the second packet and information regarding the determination that the sent timestamp was created outside the control of the sending compute instance to the destination compute instance.

14 . One or more non-transitory computer-readable storage media storing program instructions, that when executed on or across one or more processors of a networking hardware computing resource, cause the one or more processors to:

receive at the networking hardware computing resource, wherein the networking hardware computing resource is coupled to a host computing device comprising separate computing hardware resources that host one or more compute instances, a packet that has left the control of a particular compute instance of the one or more compute instances, wherein the packet comprises a packet destination;

create, at the networking hardware computing resource, a timestamp for the packet based on a hardware clock of the networking hardware computing resource, wherein the timestamp is outside the control of the particular compute instance; and

provide the packet and the timestamp to a data network for transmission to the packet destination.

15 . The one or more non-transitory computer-readable storage media of claim 14 , wherein the program instructions further cause the one or more processors of the networking hardware computing resource to:

set the hardware clock of the networking hardware computing resource based on a signal corresponding to a reference clock obtained from a reference timekeeper via a dedicated time network inaccessible to the one or more compute instances;

wherein the dedicated time network is distinct from the data network.

16 . The one or more non-transitory computer-readable storage media of claim 14 , wherein the program instructions further cause the one or more processors of the networking hardware computing resource to:

append the timestamp to either the header or the body of the packet to create a modified packet larger in size than the packet; and

wherein the providing the packet and the timestamp to the data network to transmit to the packet destination further comprises:

provide the modified packet to the data network to transmit to the packet destination.

17 . The one or more non-transitory computer-readable storage media of claim 14 , wherein the program instructions further cause the one or more processors of the networking hardware computing resource to:

write the timestamp to bits of the packet to create a modified packet, wherein the modified packet is the same size as the packet; and

wherein the providing the packet and the timestamp to the data network to transmit to the packet destination further comprises:

provide the modified packet to the data network to transmit to the packet destination.

18 . The one or more non-transitory computer-readable storage media of claim 14 , wherein the program instructions further cause the one or more processors of the networking hardware computing resource to:

create a separate packet comprising the timestamp, the same packet destination as the packet, and information linking the created separate packet to the packet; and

wherein the providing the packet and the timestamp to the data network to transmit to the packet destination further comprises:

provide the packet and the created separate packet to the data network to transmit to the packet destination.

19 . The one or more non-transitory computer-readable storage media of claim 14 , wherein the program instructions further cause the one or more processors of the networking hardware computing resource to:

encapsulate the packet into an encapsulated packet according to a tunneling protocol, wherein the encapsulated packet comprises the timestamp; and

wherein to provide the packet and the timestamp to the data network to transmit to the packet destination further comprises:

provide the encapsulated packet comprising the packet and the timestamp to the data network to transmit to the packet destination.

20 . The one or more non-transitory computer-readable storage media of claim 14 , wherein the program instructions further cause the one or more processors of the networking hardware computing resource to:

receive, at the networking hardware computing resource, a second packet from a source other than the host computing device, wherein the second packet comprises a sent timestamp, and wherein the destination of the second packet is a destination compute instance of the one or more compute instances of the host computing device,

determine that the sent timestamp was created outside the control of a sending compute instance; and

provide the second packet and information regarding the determination that the sent timestamp was created outside the control of the sending compute instance to the destination compute instance.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2022
From: JUDGE, ALAN MICHAEL; BSHARA, SAID; RIDOUX, JULIEN; LEVINSON, JOSHUA BENJAMIN; GOODELL, DAVID JAMES; IZENBERG, EREZ; LIGUORI, ANTHONY NICHOLAS
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 059412/0791 →
Continuity (1)
Related Publication 20230308378A1 · Sep 28, 2023
References Cited (32)
US 6223286B1 · Hashimoto · 2001 [cited by applicant]
US 8654790B2 · Haver et al. · 2014 [cited by applicant]
US 8701209B2 · Awata · 2014 [cited by applicant]
US 9450846B1 · Huang et al. · 2016 [cited by applicant]
US 9900778B2 · Chen et al. · 2018 [cited by applicant]
US 10263717B1 · Suemitsu · 2019 [cited by applicant]
US 10313041B2 · Butterworth et al. · 2019 [cited by applicant]
US 20040105549A1 · Suzuki · 2004 [cited by applicant]
US 20050036512A1 · Loukianov · 2005 [cited by examiner]
US 20070110074A1 · Bradley et al. · 2007 [cited by applicant]
US 20100008376A1 · Bandholz · 2010 [cited by applicant]
US 20130218549A1 · Sultan et al. · 2013 [cited by applicant]
US 20160112182A1 · Karnes · 2016 [cited by examiner]
US 20180359811A1 · Verzun · 2018 [cited by applicant]
US 20190044637A1 · Gulstone · 2019 [cited by examiner]
US 20190349392A1 · Wetterwald · 2019 [cited by applicant]
US 20210021520A1 · Wetterwald · 2021 [cited by applicant]
US 20210194612A1 · Johnson · 2021 [cited by applicant]
US 20210392064A1 · Suzuki · 2021 [cited by applicant]
US 20230006807A1 · Hubbe · 2023 [cited by examiner]
DE 102017216047A1 · 2019 [cited by examiner]
EP 2592807 · 2014 [cited by applicant]
EP 3654603 · 2020 [cited by applicant]
KR 102476643B1 · 2022 [cited by applicant]
WO 2020151806A1 · 2020 [cited by applicant]
Author: Ajay Ohri Title: “Tunneling Protocol—A Complete Overview” Year: 2021 (Year: 2021). [cited by examiner]
U.S. Appl. No. 17/806,231, filed Jun. 9, 2022, Bshara et al. [cited by applicant]
U.S. Appl. No. 17/643,785, filed Dec. 10, 2021, Julien Ridoux, et al. [cited by applicant]
U.S. Appl. No. 17/643,796, filed Dec. 10, 2021, Julien Ridoux, et al. [cited by applicant]
Adams, Carlisle, et al., Internet X. 509 public key infrastructure time-stamp protocol (TSP), RFC 3161, Aug. 2001, pp. 1-79. [cited by applicant]
International Search Report and Written Opinion mailed Jul. 7, 2023 in PCT/US2023/064210, Amazon Technologies, Inc., pp. 1-15. [cited by applicant]
IIEEE Standards Committee, “IEEE PI588, Draft IEEE 1588-2019, IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control System”, ITU-T Draft; Study Period 2017-2020; Study Group … [cited by applicant]