# US 2020/0287901 A1 · Out-of-band authentication based on secure channel to trusted execution environment on client device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2020/0287901 A1
- Document ID: US20200287901A1
- Status: Published application
- Kind: A1
- Application number: 16/783,028
- Filed: 2020-02-05
- Published: 2020-09-10
- Earliest claimed: 2018-08-21
- Assignees: HYPR Corp.
- Applicants: HYPR Corp.
- Inventors: George Avetisov; Bojan Simic; Roman Kadinsky
- Web page: https://patentgrep.com/patent/US20200287901A1

## CPC

- H04L 9/3247: {involving digital signatures}
- H04L 63/0884: {by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity}
- G06F 21/42: using separate channels for security data
- G06F 21/45: Structures or tools for the administration of authentication
- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- H04L 9/0838: {Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these (network architectures or network communication protocols for key exchange in a packet data network H04L63/061)}
- H04L 9/088: {Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms (network architectures or network communication protocols for using time-dependent keys in a packet data network H04L63/068)}
- H04L 9/3234: {involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token (network architectures or network communication protocols for supporting authentication of entities using an additional device in a packet data network H04L63/0853)}
- H04L 63/0823: {using certificates (cryptographic mechanisms or cryptographic arrangements for entity authentication involving certificates H04L9/3263)}
- H04L 63/18: {using different networks or channels, e.g. using out of band channels (cryptographic mechanisms or cryptographic arrangements for key distribution involving distinctive intermediate devices or communication paths H04L9/0827; cryptographic mechanisms or cryptographic arrangements for authentication using a plurality of channels H04L9/3215)}
- H04W 12/069: using certificates or pre-shared keys
- G06F 21/71: to assure secure computing or processing of information
- H04L 63/0876: {based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Provided is a process that affords out-of-band authentication based on a secure channel to a trusted execution environment on a client device. The authentication process includes one or more authentication steps in addition to verifying any credentials provided by a client device. A notification may be transmitted by a server to a device other than the client device attempting to access the asset. That device may be a mobile device with a trusted execution environment storing user credential information, and the server may store representations of those credentials. The mobile device collects user input credentials and transmits representations for matching the previously stored representations and signed data for verification by the server that received data originated from the mobile device. The access attempt by the client is granted based in part on the result of authenticating the data received from the mobile device in a response to the notification.

## Claims

### Claim 1

A tangible, non-transitory, machine readable medium storing instructions that when executed by a computing device effectuate operations comprising:
obtaining an authentication application within a memory of a computing device; and
executing, by the computing device, the authentication application within a client execution environment of the computing device, the authentication application when executed being configured to perform operations comprising:
establishing one or more secure sessions with a trusted execution environment of the computing device, the trusted execution environment comprising a secure memory not accessible from the client execution environment;
requesting, by one or more requests over one or more secure sessions,
establishment of a set of credentials corresponding to a user of the computing device within the secure memory by a co-processor of the trusted execution environment, the co-processor being a different processor from a central processing unit of the computing device;
requesting, by one or more requests over one or more secure sessions, first data comprising a representation of each credential in the set of credentials, first signed data, and a signature key of the trusted execution environment;
determining the co-processor of the trusted execution environment generated the representations, the determination being responsive to the signature key;
in response to the determination, sending, via a network, the first data and first signed data to a server system;
accessing, within the memory other than the secure memory on the computing device, information from a notification requesting authentication of the user of the computing device;
in response to the notification, requesting, by one or more requests over one or more secure sessions, second data comprising a representation of a credential in the set of credentials and second signed data, wherein the second data and the second signed data are received dependent upon authentication of the user based on the credential stored within the secure memory by the co-processor; and
sending the second data and the second signed data to the server system.

### Claim 2 (depends on 1)

The medium of claim 1, wherein:
the one or more secure sessions by which credentials are established are a single secure session tied to an identifier generated by the authentication application, wherein:
the authentication application is configured to provide the identifier to the trusted execution environment in association with a request for establishing the secure session, and
the identifier distinguishes the single secured session from other secured sessions; or
each of at least a plurality of the one or more secure sessions by which credentials are established is a different secure session.

### Claim 3 (depends on 1)

The medium of claim 1, the operations further comprising:
generating, by the authentication application, an identifier;
transmitting, by the authentication application in a request associated with establishing at least some of the one or more secure sessions, the identifier;
receiving, by the authentication application from the trusted execution environment, a value in a response to a first one of the requests over the at least some of the one or more secure sessions;
incrementing or decrementing, by the authentication application, the value; and
including, in association with a next request over the at least some of the one or more secure sessions after the first one of the requests, the incremented or decremented value.

### Claim 4 (depends on 3)

The medium of claim 3, wherein:
the value is a counter value; and
the operations further comprise:
receiving, by the authentication application from the trusted execution environment, an instruction to establish a new secure session, wherein the instruction is received based on an incremented or decremented value provided in a request over the first secure session exceeding a threshold;
generating, by the authentication application, a new identifier different from the first identifier;
transmitting, by the authentication application in a request associated with establishing the new secure session, the new identifier;
receiving, by the authentication application from the trusted execution environment, a new counter value in a response to a first one of the requests over the new secure session; and
including, in association with a next request over the new secure session after the first one of the requests, an incremented or decremented counter value of the new counter value.

### Claim 5 (depends on 4)

The medium of claim 4, wherein the first secure session is tied to the first identifier by a first shared encryption key and the new secure session is tied to the second identifier by a second shared encryption key different from the first shared encryption key, the trusted execution environment being non-responsive to requests using the first shared encryption key of the first secure session.

### Claim 6 (depends on 1)

The medium of claim 1, wherein each credential in the set of credentials corresponds to a different credential and at least some of the different credentials are obtained from different corresponding components of the computing device, the authentication application being configured to cause the trusted execution environment to obtain, in the secure memory, credential values for respective credentials from respective components.

### Claim 7 (depends on 1)

The medium of claim 1, wherein a representation of a credential in the set of credentials is an output of a function that takes credential values and some other value as input to generate the representation.

### Claim 8 (depends on 7)

The medium of claim 7, wherein the other value is altered for a same credential value used for different sets of credentials, the different sets of credentials corresponding to different parties relying on the server to authenticate the user.

### Claim 9 (depends on 1)

The medium of claim 1, wherein the notification includes information identifying a relying party for which the authentication application requested establishment of the set of credentials within the secure memory, at least one request in response to the notification specifying a set of credentials from which to receive the representation in the second data.

### Claim 10 (depends on 1)

The medium of claim 1, wherein the notification includes identifying information, the method further comprising:
including, by the authentication application, in at least one request in response to the notification, the identifying information,
wherein the second signed data is based at least in part on the identifying information, and
wherein the second signed data is verified by the server based in part on the same identifying information.

### Claim 11 (depends on 1)

The medium of claim 1, wherein the signed data is an output of a signature function, the signature function generating the signed data based on one or more of:
the representation of the credential included in the second data;
identifying information for the notification; or
a private signature key corresponding to the signature key of the trusted execution environment, wherein the private signature key is held within the secure memory and is not held outside the secure memory.

### Claim 12 (depends on 1)

The medium of claim 1, further comprising:
receiving, by the authentication application from the server system, an instruction to reestablish the set of credentials;
requesting, by one or more requests over a secure session, reestablishment of the set of credentials within the secure memory of the trusted execution environment; and
requesting, by one or more requests over a secure session, third data comprising a new representation of each credential in the set of credentials and third signed data.

### Claim 13 (depends on 12)

The medium of claim 12, wherein the reestablishment of the set of credentials comprises a determination of a new value by the trusted execution environment for generating the new representations without altering values of credentials within the set of credentials.

### Claim 14 (depends on 1)

The medium of claim 1, wherein the server is configured to determine an authentication result for the user of the computing device based on the second data and the second signed data, the notification corresponding to an access attempt of a secure asset by a client device different from the computing device, the access attempt determined by the server to be associated with the user of the computing device and granted or denied based on the result of the authentication.

### Claim 15 (depends on 1)

The medium of claim 1, wherein transmitting the first data and first signed data to the server further comprises transmitting the signature key of the trusted execution environment to the server, an authentication result for the notification determined by the server based on the representation of the credential in the second data matching a corresponding representation of the credential received in the first data and verification of the second data as being generated by the trusted execution environment based on the second data, the second signed data, and the signature key.

### Claim 16 (depends on 1)

The medium of claim 1, the operations comprising:
steps for establishing a secure session.

### Claim 17 (depends on 1)

The medium of claim 1, wherein the computing device comprises means for providing a trusted execution environment.

### Claim 18

A computer-implemented method executed by one or more processors of a computing device that supports a client-side role in out-of-band authentication, the method comprising:
obtaining an authentication application within a memory of a computing device; and
executing, by the computing device, the authentication application within a client execution environment of the computing device, the authentication application when executed being configured to perform operations comprising:
establishing one or more secure sessions with a trusted execution environment of the computing device, the trusted execution environment comprising a secure memory not accessible from the client execution environment;
requesting, by one or more requests over one or more secure sessions,
establishment of a set of credentials corresponding to a user of the computing device within the secure memory by a co-processor of the trusted execution environment, the co-processor being a different processor from a central processing unit of the computing device;
requesting, by one or more requests over one or more secure sessions, first data comprising a representation of each credential in the set of credentials, first signed data, and a signature key of the trusted execution environment;
determining the co-processor of the trusted execution environment generated the representations, the determination being responsive to the signature key;
in response to the determination, sending, via a network, the first data and first signed data to a server system;
accessing, within the memory other than the secure memory on the computing device, information from a notification requesting authentication of the user of the computing device;
in response to the notification, requesting, by one or more requests over one or more secure sessions, second data comprising a representation of a credential in the set of credentials and second signed data, wherein the second data and the second signed data are received dependent upon authentication of the user based on the credential stored within the secure memory by the co-processor; and
sending the second data and the second signed data to the server system.

### Claim 19

A computer-implemented method, executed by a server-side computing system that supports a client-side role in out-of-band authentication based on a secure channel to a trusted execution environment on a first device different from a second device requesting access to a secure asset, the method comprising:
registering the first device having a trusted execution environment, the registering comprising:
establishing a user record associated with a user permitted to access the secure asset, the user record comprising a user identifier associated with the user; and
establishing, in association with the user record, a device record for the first device in response to receiving, from the first device, a set of representations corresponding to a set of credentials stored within the trusted execution environment on the first device, device information including a device identifier of the first device, and a signature key corresponding to the trusted execution environment;
receiving information corresponding to attempt to access the secure asset from the second device, the information comprising the user identifier and device information for the second device;
accessing the user record based on the user identifier;
selecting the device record for the first device associated with the user record based on the first device having a trusted execution environment;
transmitting a notification to the first device based on the device identifier stored within the device record for the first device;
receiving, from the first device, a response to the notification, the response including data comprising a representation of a credential in the set of representations corresponding to the set of credentials stored within the trusted execution environment on the first device and signed data;
verifying the representation of the credential received in response to the notification matches the stored representation in the device record of the first device and the data was generated by the trusted execution environment based on the data, the signed data, and the signature key corresponding to the trusted execution environment; and
transmitting, based on the verifying, an authentication result to grant the access attempt by the second device.

### Claim 20 (depends on 19)

The computer-implemented method of claim 19, wherein multiple user records are associated with the user, the method further comprising:
registering the first device for a plurality of different relying parties associated with different secure assets;
establishing different user records for different relying parties, each different user record for the user storing a different set of representations specific to the corresponding relying party, wherein at least some of the representations in the different sets across the different user records correspond to same credential values input by the user on the first device and the at least some of the representations each have different values; and
generating the notification prior to transmission, the generated notification including identifying information configured to cause the first device to select representations of credentials associated with the user record associated with the relying party associated with the secure asset.
