Sécurisez votre application avec WebAuthn

Intro

alocquet benefiz
benefiz

Mot de passe ?

FAIL - Top 10

top10

FAIL - Mot de passe en clair

password clair

FAIL - I have been Pwned

Il manque quoi ?

Moyen d’authentification

  • Ce que l’on connaît

  • Ce que l’on possède

  • Ce que l’on est

Autres solutions que le mot de passe ?

Double authentification

  • Mot de passe

  • OTP

OTP : SMS

twitter

TOTP

otp

TLS

  • Cryptographie asymétrique

  • Certificat + clé privée

  • Exemple carte CPS

FIDO

  • Fast IDentity Online

  • Standards

  • FIDO 2

    • Webauthn : standard W3C

    • CTAP : communication avec authentificateur

Authentificateur

  • YubiKey, SoloKey, Android, MBP

  • Hardware

  • Cryptographie

  • USB, NFC, BLE

Webauthn

  • credentials.create()

  • credentials.get()

Can I use ?

caniuse

UseCases

  • Double authentification

  • Authentication sans login / mot de passe

(Rappels crypto)

Chiffrement symétrique

Diagram

Déchiffrement

Diagram

Cryptographie asymétrique

  • clé privée / clé publique

  • chiffrement / signature

Chiffrement / Déchiffrement

Diagram

Signature / Vérification

Diagram

Principe de Webauthn

  • Création d’un challenge

  • Signature du challenge / clé privée

  • Vérification challenge / clé publique

Enregistrement

Enregistrement

Démo

Authentification

Authentification

Démo

Passwordless

Persistence des clés

  • Clé publique stockée par le serveur

  • Clé privée

    • générée à la volée / wrappée

    • stockée sur l’authentificateur

Démo

Intégrations

  • Spring security

  • Keycloak

Merci

Questions ?