1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-03 21:18:17 +00:00
trezor-firmware/core/src/apps/webauthn
matejcik dec89ea59e refactor(core): convert if/elif chains to if-chains
This way AST parsers won't get stack exceeded (because an elif counts as
an else { if {}} to an AST parser apparently?) and so automated tools
will like tokens.py and friends.
2022-01-07 21:41:17 +01:00
..
metadata fix(core): remove tcDisplay from metadata/trezor-ctap2.json 2021-05-19 14:49:54 +02:00
res chore(common/defs/fido): add coinbase u2f 2021-11-08 15:55:01 +01:00
__init__.py refactor(core): move app registrations to a single handler function 2021-05-06 13:14:21 +02:00
add_resident_credential.py refactor(core/ui): move altcoin and webauthn layouts to separate file 2021-08-04 15:03:11 +02:00
common.py core/webauthn: Implement support for Ed25519 signatures in FIDO2. 2020-03-12 15:45:26 +01:00
credential.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00
fido2.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00
knownapps.py refactor(core): convert if/elif chains to if-chains 2022-01-07 21:41:17 +01:00
knownapps.py.mako refactor(core): convert if/elif chains to if-chains 2022-01-07 21:41:17 +01:00
list_resident_credentials.py refactor(core): fix imports and use new protobuf API in apps 2021-06-08 09:55:19 +02:00
README.md docs: fix typos in comments 2021-06-30 15:41:55 +02:00
remove_resident_credential.py refactor(core/ui): move altcoin and webauthn layouts to separate file 2021-08-04 15:03:11 +02:00
resident_credentials.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00

WebAuthn

MAINTAINER = Andrew R. Kozlik andrew.kozlik@satoshilabs.com

AUTHOR = Andrew R. Kozlik andrew.kozlik@satoshilabs.com

REVIEWER = Jan Pochyla jan.pochyla@satoshilabs.com, Ondrej Vejpustek ondrej.vejpustek@satoshilabs.com


This app implements WebAuthn authenticator functionality in accordance with the following specifications:

Supported features and algorithms

This implementation supports client-side credential storage on the device and user verification by PIN entry, making the Trezor T a first-factor roaming authenticator usable for passwordless login.

User verification

The device is capable of verifying the user within itself by direct PIN entry via the touchscreen. Client PIN is not supported, because it is less secure than direct PIN verification. The authenticatorClientPIN command is therefore implemented only to the extent required by the hmac-secret extension. Namely, only the getKeyAgreement subcommand is supported.

Credential selection

Credential selection is supported directly on the device. The authenticatorGetNextAssertion command is therefore not implemented.

Public key credential algorithms

  • COSE algorithm ES256 (-7): ECDSA using the NIST P-256 curve with SHA-256.
  • COSE algorithm EdDSA (-8): Pure EdDSA using the Ed25519 curve.

Extensions

  • hmac-secret extension.

Attestation types

  • Basic attestation for login.microsoft.com.
  • Self attestation for all other sites.

AAGUID

The AAGUID is a 128-bit globally unique identifier indicating the type (e.g. make and model) of the authenticator. The AAGUID for Trezor T is d6d0bdc3-62ee-c4db-de8d-7a656e4a4487.

Certificates for basic attestation