FIDO2 Attestation Object Structure (CBOR map)
attestationObject = {
"fmt": "packed" | "tpm" | "android-key" | "android-safetynet" | "apple" | "u2f" | "none",
"attStmt": { ... }, // format-specific
"authData": bytes // CBOR byte string
}
authData Structure (binary)
0-31: RP ID Hash (SHA-256, 32 bytes)
32 : Flags (1 byte)
Bit 0 (0x01): UP — User Present
Bit 1 (0x02): (reserved)
Bit 2 (0x04): UV — User Verified
Bit 3 (0x08): (reserved)
Bit 4 (0x10): (reserved)
Bit 5 (0x20): (reserved)
Bit 6 (0x40): AT — Attested Credential Data included
Bit 7 (0x80): ED — Extension Data included
33-36: Signature Counter (4 bytes, big-endian uint32)
If AT flag set:
37-52: AAGUID (16 bytes)
53-54: Credential ID Length (2 bytes, big-endian uint16)
55+: Credential ID (variable)
: COSE_Key (CBOR-encoded public key)
If ED flag set:
: Extension Data (CBOR map)
Attestation Statement Formats
packed
attStmt = {
"alg": COSE AlgorithmIdentifier (int, e.g. -7=ES256, -257=RS256),
"sig": signature bytes,
"x5c": [cert1, cert2, ...] (optional, X.509 cert chain)
}
tpm
attStmt = {
"ver": "2.0",
"alg": COSE AlgorithmIdentifier,
"x5c": [AIK cert, ...],
"sig": TPMT_SIGNATURE,
"certInfo": TPMS_ATTEST (CBOR)
}
u2f
attStmt = {
"x5c": [attestation cert],
"sig": ECDSA signature (ASN.1 DER)
}
Common AAGUIDs
| AAGUID | Authenticator |
| adce0002-35bc-c60a-648b-0b25f1f05503 | Chrome Password Manager |
| 08987058-cadc-4b81-b6e1-30de50dcbe96 | Windows Hello TPM |
| 9ddd1817-af5a-4672-a2b9-3e3dd95000a9 | Windows Hello Software |
| 6028b017-b1d4-4c02-b4b3-afcdafc96bb2 | Windows Hello VBS |
| dd4ec289-e01d-41c9-bb89-70fa845d4bf2 | iCloud Keychain (Apple) |
| ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4 | Google Password Manager (Android) |
| f8a011f3-8c0a-4d15-8006-17111f9edc7d | YubiKey 5 Series FIDO2 |
| 73bb0cd4-e502-49b8-9c6f-b59445bf720b | YubiKey 5 FIDO2 (NFC) |
| 2fc0579f-8113-47ea-b116-bb5a8db9202a | YubiKey 5Ci FIDO2 |
| ee882879-721c-4913-9775-1dfcce97072a | Feitian BioPass FIDO2 |
| fa2b99dc-9e39-4257-8f92-4a30d23c4118 | Feitian ePass FIDO2 NFC |
| 6e969bde-0c86-4ac5-95fc-856074fb9ac1 | SoloKeys Solo |
| 8876631b-d4a0-427f-5773-0ec71c9e0279 | SoloKeys Solo 2 |
COSE Key Types & Algorithms
| COSE kty | Key Type | COSE alg | Algorithm |
| 1 (OKP) | Octet Key Pair | -7 | ES256 (ECDSA SHA-256, P-256) |
| 2 (EC2) | Elliptic Curve | -8 | EdDSA (Ed25519) |
| 3 (RSA) | RSA | -35 | ES384 (ECDSA SHA-384) |
| | -36 | ES512 (ECDSA SHA-512) |
| | -257 | RS256 (RSASSA-PKCS1-v1_5 SHA-256) |
| | -65535 | RS1 (RSASSA-PKCS1-v1_5 SHA-1) |