US 12,327,233 B2
Systems and methods for terminal device attestation for contactless payments
Maggie White, South San Francisco, CA (US); Kelly Moriarty, South San Francisco, CA (US); Ross Favero, South San Francisco, CA (US); and Nicole DeBickes, South San Francisco, CA (US)
Assigned to STRIPE, INC., South San Francisco, CA (US)
Filed by Stripe, Inc., South San Francisco, CA (US)
Filed on Oct. 28, 2022, as Appl. No. 17/976,432.
Prior Publication US 2024/0144232 A1, May 2, 2024
Int. Cl. G06Q 20/32 (2012.01); G06Q 20/38 (2012.01); G06Q 20/40 (2012.01); H04L 9/08 (2006.01); H04L 9/32 (2006.01)
CPC G06Q 20/327 (2013.01) [G06Q 20/326 (2020.05); G06Q 20/3823 (2013.01); G06Q 20/389 (2013.01); G06Q 20/401 (2013.01); H04L 9/0825 (2013.01); H04L 9/3247 (2013.01); G06Q 2220/00 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for a commerce platform system validating integrity of an environment of a terminal device in which an application is installed and running on the terminal device remote to the commerce platform system, the method comprising:
receiving, at the commerce platform system from the terminal device, a device provisioning request that comprises data indicative of an instance of an application installed on the terminal device, a first public key, a second public key, and a hardware attestation key, the first public key, the second public key, and the hardware attestation key generated within a trusted execution environment of the terminal device, and the first public key and the second public key having a corresponding first private key and second private key stored within the trusted execution environment;
verifying, by the commerce platform system, the first public key and the second public key as being generated by the trusted execution environment of the terminal device using the hardware attestation key, the hardware attestation key generated at least in part using the first public key, the second public key, and the data indicative of the instance of the application;
when the first public key and the second public key are successfully verified, storing the first public key, the second public key, and the data indicative of the instance of the application in a data store with one or more identifiers that map each of the first public key and the second public key to the data indicative of the instance of the application;
receiving, by the commerce platform system from the terminal device, a device attestation request that comprises purported data indicative of the instance of an application, the device attestation request comprising a signature purported to be generated by the trusted execution environment of the terminal device using the first private key;
in response to validating the signature using the first public key stored in the data store, comparing the purported data indicative of the instance of the application with the data indicative of an instance of an application stored in the data store; and
when the purported data indicative of the instance of the application matches the data indicative of the instance of the application stored in the data store, validating integrity of the environment of the terminal device in which the instance of the application is installed and running on the terminal device.