Secure time service
AssigneeAmazon Technologies, Inc.
InventorsThomas Charles Stickle, Eric Jason Brandwine
Life of this patent
Estimating the term…
Abstract
Methods and apparatus for a secure time service are disclosed. A time server including a time source, a cryptographic key and a cryptographic engine is instantiated within a provider network. A time service endpoint receives a timestamp request from a client. The endpoint transmits a representation of the request to the time server, and receives, from the time server, an encryption of at least a timestamp generated using the time source. A response comprising the encryption of at least the timestamp is transmitted to the requesting client.
Claims24
A system, comprising one or more computing devices of a provider network configured to:
- instantiate, as resources of a network-accessible multi-tenant time service, (a) one or more time servers, wherein each time server of the one or more time servers comprises a cryptographic engine, a time source, and a cryptographic key inaccessible outside a cryptographic boundary within which the cryptographic engine and the time source are located, and (b) one or more time service endpoints, wherein at least one time service endpoint of the one or more time service endpoints is configured to respond to requests formatted according to one or more application programming interfaces (APIs) supported by the service;
- receive, at a particular time service endpoint of the one or more time service endpoints, a request for a secure timestamp from a client of the service;
- transmit, from the particular time service endpoint to a particular time server of the one or more time servers, a representation of at least a portion of the request;
- receive, at the particular time service endpoint from the particular time server, an encryption, generated by the cryptographic engine using the cryptographic key of the particular time server, of a combination of (a) a data object indicated in the request and (b) a timestamp value generated at least in part using output from the time source;
- transmit a response comprising the encryption from the particular time service endpoint to the client;
- and
- launch, in response to receiving at the particular time service endpoint a request from the client to configure a new time service endpoint, the new time service endpoint.
A method, comprising:
- instantiating (a) one or more time servers, wherein each time server of the one or more time servers comprises a cryptographic engine, a time source, and a cryptographic key, and (b) one or more time service endpoints, wherein at least one time service endpoint of the one or more time service endpoints is configured to respond to requests formatted according to one or more application programming interfaces (APIs) supported by a network-accessible multi-tenant time service;
- receiving, at a particular time service endpoint of the one or more time service endpoints, a request for a timestamp from a client of the service;
- transmitting, from the particular time service endpoint to a particular time server of the one or more time servers, a representation of at least a portion of the request;
- receiving, at the particular time service endpoint from the particular time server, an encryption, generated by the cryptographic engine using the cryptographic key of the particular time server, of a combination of (a) a data object indicated in the request and (b) a timestamp value generated at least in part using output from the time source;
- transmitting a response comprising the encryption from the particular time service endpoint to the client;
- and
- launch, in response to receiving at the particular time service endpoint a request from the client to configure a new time service endpoint, the new time service endpoint.
A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors implement an endpoint of a time service implemented using resources of a provider network, wherein the endpoint is configured to:
- implement one or more programming interfaces defined by the time service;
- receive, via a particular programmatic interface of the one or more programmatic interface, a request for a timestamp from a client of the service;
- transmit, to a particular time server of one or more time servers of the time service, a representation of at least a portion of the request, wherein the particular time server comprises a cryptographic engine, a time source, and a cryptographic key;
- receive a response to the request from the particular time server, wherein the response comprises an encryption, generated by the cryptographic engine using the cryptographic key of the particular time server, of a combination of (a) a data object indicated in the request and (b) a timestamp value generated at least in part using output from the time source;
- transmit the response to the client;
- and
- launch, in response to receiving at the endpoint a request from the client to configure a new endpoint of the time service, the new endpoint.
A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors of a time server:
- receive, from an endpoint of a time service implemented using resources of a provider network, a representation of a client request for a timestamp;
- obtain a timestamp from a time source of the time server;
- generate an encryption of a combination of (a) a data object indicated in the request and (b) the timestamp, using a unique cryptographic key assigned to the time server and inaccessible outside a cryptographic boundary in which the time server is instantiated;
- provide the encryption to the endpoint;
- and
- launch, in response to receiving at the endpoint a request from a client to configure a new time server, the new time server.
Dependencies are inferred from the claim text.