WebAuthn / FIDO2: Applen nimettömän todistuksen vahvistaminen

Huomaa, että tämä on ennakkoilmoitus ja vaatii FIDO2-todistusten etukäteen ymmärtämistä. (Voit lukea lisää täältä.)

Omena ei putoa kaukana pakatusta… TPM: stä …

https: // commons.wikimedia.org/wiki/File:Apple\_and\_Orange\_-\_they\_do\_not\_compare.jpg

Sananlaskun mukaan kaikki on melkein sama kuin Pakattu todistus, jossa todistusvarmenteessa on nonce … kuten TPM … Tarkistetaan tarkemmin ilman erillisiä ilmoituksia, eikö niin?

Jos valitset attStmt ja se sisältää ”x5c”, se on TÄYDELLINEN todistus. FULL tarkoittaa periaatteessa, että se on todistus, joka ketjuttaa valmistajaa. Se allekirjoitetaan erän yksityisellä avaimella, jonka julkinen avain on erävarmenteessa, joka on ketjutettu omenatodistuksen juurivarmenteeseen. Sertifikaateilla on yleensä AuthorityInfoAccess -laajennus, joka auttaa löytämään juuren, mutta Apple päätti olla tekemättä sitä. Nopea Googlen hakeminen antoi kuitenkin tarvittavan juurivarmenteen

https://www.apple.com/certificateauthority/Apple\_WebAuthn\_Root\_CA.pem

Todistuksen tarkistaminen

  1. Yhdistä authData clientDataHash luoda nonceBase
  2. Hash nonceBase SHA-256: lla odotettavissaNonce
  3. Pura lehti (ensimmäinen) -sertifikaatti x5c: stä nimellä attCert ja purkaa se
  4. Tarkista, että attCert on version 3 (ASN1 INT 2)
  5. Tarkista, että attCert varmentajan perusrajoituksiksi on asetettu EPÄTOSI
  6. Tarkista, että varmenne sisältää

AppleAnonymousAttestation OID 1.2.840.113635.100.8.2 laajennus

  • dekoodaa AppleAnonymousAttestation-laajennus ja tarkista, että nonce sisältää expectedNonce
  • Apple ei ole vielä julkaissut laajennuksen kaavaa (tammikuusta 2021 alkaen. Kyllä, ihmislaji selviytyi jotenkin), joten tässä minä julkaisen sen:

    EI VIRALLINEN APPLE-OHJELMA
    Dekoodattu laajennus

    8. Dekoodaa authData , pura julkinen avain ja tarkista, että attCert .

    9. Liitä ”Apple WebAuthn Root CA” -sertifikaatti x5c ja vahvista varmenteen polku

    10. Palaa juomiseen ja syömiseen. On ensimmäinen tammikuu. Uusi vuosi ei ole vielä ohi.

    Huomautuksia:

    • Apple palautti 1.1.2021 väärän AAGUID-arvon 0x00 {16}. Tämä on korjattu uusimmassa korjaustiedostossa, mutta se ei ole levinnyt iOS-rakenteisiin. Uusi AAGUID on f24a8e70d0d3f82c293732523cc4de5a

    katkelmat

    Löydä kaikki katkelmat uudesta uudesta arkistostamme https://github.com / WebAuthnWorks / webauthn-snippets

    https://github.com/WebAuthnWorks /webauthn-snippets/blob/main/code-samples/verify.apple.attestation.js

    lisenssi

    Tämä artikkeli on lisensoitu nimellä Creative Commons Attribution-NonCommercial-NoDeratives 4.0 International (CC BY-NC-ND 4.0) . Joten voit vapaasti lukea, jakaa jne. Jos olet kiinnostunut tämän artikkelin kaupallisesta käytöstä tai haluat kääntää sen toiselle kielelle, ota yhteyttä yuriy (at) webauthn (dot) -teoksiin

    Koodinäytteet on lisensoitu MIT-lisenssi .