2019·biometric
Cutting edge

WebAuthn / FIDO2

Криптография на устройстве, привязка к origin → unphishable.

Плюсы
  • +Anti-phishing
  • +Без shared secret
Минусы
  • Управление credentials
  • Recovery flow
WebAuthn — Register + Authenticate
BrowserAuthenticatorRPPOST /register/beginPublicKeyCredentialCreationOptionsnavigator.credentials.create(opts)gen ECDSA P-256 keypaircredentialId + publicKey + attestationPOST /register/finish (pub)POST /authenticate/beginchallenge + allowCredentialsnavigator.credentials.get(opts)sign(authData ‖ clientDataHash)assertion (signature)POST /authenticate/finishverify ECDSA с сохранённым публичным ключом200 OK
  1. 1.Browser RPPOST /register/begin
  2. 2.RP BrowserPublicKeyCredentialCreationOptions
  3. 3.Browser Authenticatornavigator.credentials.create(opts)
  4. 4.Authenticator Authenticatorgen ECDSA P-256 keypair
  5. 5.Authenticator BrowsercredentialId + publicKey + attestation
  6. 6.Browser RPPOST /register/finish (pub)
  7. 7.Browser RPPOST /authenticate/begin
  8. 8.RP Browserchallenge + allowCredentials
  9. 9.Browser Authenticatornavigator.credentials.get(opts)
  10. 10.Authenticator Authenticatorsign(authData ‖ clientDataHash)
  11. 11.Authenticator Browserassertion (signature)
  12. 12.Browser RPPOST /authenticate/finish
  13. 13.RP RPverify ECDSA с сохранённым публичным ключом
  14. 14.RP Browser200 OK
WebAuthn (ECDSA P-256, демо)

Аутентификатор симулируется в браузере через WebCrypto. Сервер хранит publicKey и сверяет наличие challenge в подписи.

Network · DevTools
Запусти демо — сюда упадут все запросы.
Выбери запрос слева, чтобы посмотреть детали.