US 12,411,938 B1
Systems and methods for utilizing cryptographic co-dependency across multiple roots of trust
Krutarth Mukesh Gathani, Redmond, WA (US); Sathwik Nunna, Lynnwood, WA (US); and Eric Crahen, Seattle, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Feb. 14, 2023, as Appl. No. 18/168,818.
Int. Cl. H04L 9/32 (2006.01); G06F 21/32 (2013.01); G06F 21/34 (2013.01); G06F 21/53 (2013.01)
CPC G06F 21/53 (2013.01) [G06F 21/32 (2013.01); G06F 21/34 (2013.01); H04L 9/3263 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A computer-implemented method, comprising:
determining, by a trusted execution environment (TEE) running on one or more application processors of a biometric device, a first digital signature using a first device private key resident to the TEE;
determining, by a cryptographic processor of a cryptographic subsystem of the biometric device, a second digital signature using a second device private key resident to the cryptographic subsystem;
providing, by the application processors of the biometric device, a first message to a server that is remote from the biometric device, the first message comprising the first digital signature and the second digital signature;
determining, by second one or more processors of the server, a device identifier associated with the biometric device;
obtaining, by the second one or more processors of the server and from a database storing device public keys of devices provisioned to communicate with the server, a list of public keys associated with the device identifier, the list of device public keys comprising:
a first device public key corresponding to the TEE; and
a second device public key corresponding to the cryptographic subsystem;
validating, by the second one or more processors of the server, the first digital signature using the first device public key;
validating, by the second one or more processors of the server, the second digital signature using the second device public key;
determining, by the second one or more processors of the server, a server public key and a server private key;
providing, by the second one or more processors of the server, the server public key to the biometric device;
deriving, by the TEE of the biometric device, a session key based at least in part on the first device private key and the server public key;
obtaining, by the TEE of the biometric device, a biometric input from a user;
determining, by the TEE of the biometric device, digital biometric data for the user;
determining, by the TEE of the biometric device, device-attested biometric data, comprising encrypting the digital biometric data using the session key;
providing, by the TEE of the biometric device, the device-attested biometric data to the server;
deriving, by the second one or more processors of the server, the session key based at least in part on the server private key and the first device public key;
establishing a cryptographically protected communications session between the biometric device and the server, using the session key:
determining, by the second one or more processors of the server, the digital biometric data, comprising decrypting the device-attested biometric data using the session key; and
performing, by the second one or more processors of the server, a sensitive operation based at least in part on the digital biometric data.