Evidence record verifier
Runs the verification procedure of section 6 on an evidence record and reports the result of each step.
Verification runs in this browser. Nothing entered on this page is sent anywhere.
Step 1 and the router signature in step 6 are not checked here: they need Apple's and Google's root certificates and the router's published keys. A relying party performs every step on its own server.
Results
Loaded case: Valid record, signed. The example record signed with the published test key. Every step that can be checked passes, including the signature.
9 passed, 0 failed, 2 not checked.
Section 4Structure
PassThe record conforms to section 4.
The payload is a JSON object with every required member of section 4, each of its stated type and with an allowed value. Members this version does not define are ignored.
Step 1Platform attestation
Not checkedThis page does not hold Apple's and Google's root certificates. The relying party's server performs this step.
Verifies
device.attestation.statementto Apple's or Google's root certificate and the attested app identifier.Step 2Signature and key identifier
PassThe signature verifies with the public key entered, and
device.keyIdis that key's thumbprint.Verifies the ES256 signature with the public key the attestation binds and compares
device.keyIdwith that key's JWK Thumbprint. This page uses the public key entered above in place of the attested key.Step 3Audience
Passaudienceequals the expected audience.Compares
audiencewith the relying party's own registered identifier.Step 4Nonce
Passnonceequals the issued nonce.Compares
noncewith the nonce the relying party issued. The relying party also confirms that no earlier record carried it; this page holds no list of earlier records.Step 5Freshness
PassissuedAtfalls within the freshness window.Checks that
issuedAtis no more than 300 seconds before the time of verification and no more than 60 seconds after it.Step 6Registry response binding
PassEvery registry response carries its check's
proofandoutcomeand the record'snonceandaudience.Decodes each
registryResponseand compares itsproofandoutcomewith the check's, and itsnonceandaudwith the record'snonceandaudience.Step 6Registry response signature
Not checkedThis page does not hold the router's published keys. The relying party's server performs this step.
Verifies each
registryResponseagainst the router key itskidheader names.Step 7Attributes
PassEvery attribute is verified by a passing check that can verify it.
Checks that each proof in an attribute's
verifiedBycan verify that attribute and has a check in the record that passed.Step 8Required checks
PassEvery check in the IAL2 steps the record claims passed.
Rejects the record when a check the relying party's policy requires is absent or did not pass. Without that policy, this page applies the steps the record claims: when
assurance.metistrueforIAL2, every check in an IAL2 step must pass.Step 9Assurance
Passassurance.metagrees with the IAL2 step coverage of the checks that passed.Recomputes IAL2 step coverage from the checks that passed and compares it with
assurance.met. The acceptance decision remains the relying party's.