WebAuthn / FIDO2 : Apple 익명 증명 확인

이것은 사전 게시물이며 FIDO2 증명에 대한 사전 이해가 필요합니다. (여기에서 자세한 내용을 확인할 수 있습니다.)

사과는 Packed에서 멀지 않습니다… TPM…

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

속담이 설명하는대로 모두 거의 정확히 다음과 같습니다. 증명 인증서에 nonce가 포함 된 패킹 된 증명… TPM처럼… 더 이상 고민하지 않고 확인해 볼까요?

attStmt “x5c”를 포함하며 전체 증명입니다. FULL은 기본적으로 제조업체에 연결된 증명임을 의미합니다. 배치 인증서에있는 공개 키인 배치 개인 키에 의해 서명되며 애플 증명 루트 인증서에 연결됩니다. 일반적으로 인증서에는 루트를 찾는 데 도움이되는 authorityInfoAccess 확장명이 있지만 Apple은 그렇게하지 않기로 결정했습니다. 그럼에도 불구하고 빠른 인터넷 검색은 필요한 루트 인증서를 제공했습니다.

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

증명 확인

  1. authData 를 clientDataHash 를 사용하여 nonceBase
  2. 를 만듭니다.

  3. nonceBase 를 SHA-256으로 해시하여 expectedNonce
  4. “x5c”에서 리프 (첫 번째) 인증서를 attCert 및 디코딩
  5. attCert 가 버전 3 (ASN1 INT 2)인지 확인합니다.
  6. CA에 대한 attCert 기본 제약 조건이 FALSE로 설정되어 있는지 확인합니다.
  7. 인증서에

AppleAnonymousAttestation OID 1.2.840.113635.100.8.2 확장 프로그램

  • AppleAnonymousAttestation 확장 프로그램을 디코딩하고 nonce expectedNonce
  • Apple은 아직 확장에 대한 스키마를 게시하지 않았습니다 (2021 년 1 월 기준). 예, 인간이 어떻게 든 살아 남았습니다.) 대신 여기에 게시합니다.

    공식 APPLE 스키마가 아닙니다.
    디코딩 된 확장 프로그램

    8. authData 를 디코딩하고 공개 키를 추출한 다음 attCert .

    9. “Apple WebAuthn Root CA”인증서를 x5c 에 추가하고 인증서 경로를 확인합니다

    10. 다시 마시고 먹습니다. 1 월 1 일입니다. 새해는 아직 끝나지 않았습니다.

    참고 :

    • 2021 년 5 월 1 일 현재 Apple은 0x00 {16}의 잘못된 AAGUID를 반환합니다. 이것은 최신 패치에서 수정되었지만 iOS 빌드에 전파되지 않았습니다. 새로운 AAGUID는 f24a8e70d0d3f82c293732523cc4de5a입니다.

    스 니펫

    새로운 저장소 https://github.com에서 모든 스 니펫을 찾습니다. / WebAuthnWorks / webauthn-snippets

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

    라이선스

    이 기사는 Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) 에 따라 사용이 허가되었습니다. 따라서 자유롭게 읽고 공유 할 수 있습니다.이 기사의 상업적 사용에 관심이 있거나 다른 언어로 번역하려면 yuriy (at) webauthn (dot) works

    에 문의하십시오. 코드 샘플은 MIT 라이선스 .