Par Florent FREMONT, LeadDev MAIF
"Se connecter" (2FA)
Sommaire
Qu'est ce que l'authentification ?
1
Authentification& MFA
Qu'est ce que Time-based One-time Password ?
2
TOTP, what ?
Sur une application Java Spring Boot et un front en reactJs, nous allons mettre en place TOTP.
3
Démo
L'Authentification
Mécanisme impliquant 2 entités :
- Un prouveur qui cherche à prouver son identité.
- Un vérifieur qui doit être capable d'assurer la validité et l'identité.
- robustesse du mot de passe souvent trop légère
- la déduction peut être facile (même login sur plusieurs apps...)
- attaque brute force possible
- exposition du risque globalement élevé par rapport à des services sensibles
- le recours à un coffre-fort décale le problème
Auth. login / mot de passe
Les limites
Authentification multifacteur
Il existe 3 catégories de facteurs :
- connaissance : "ce que je sais"
- possession : "ce que je possède"
- inhérent : "ce que je suis"
"Une authentification multifacteur permet de prouver l'identité d'un utilisateur par vérification de plusieurs éléments, appelés facteurs d'authentification" (ANSSI)
Création
Utilisation
Révocation
Authentification forte ≠ MFA
- ANSSI
cryptographie
L'authentification est un mécanisme fortement dépendant du contexte
– ANSSI
⚠️ pensez à journaliser les échecs
TOTP RFC 6238
Time-Based One-Time Password Algorithm
"This document describes an extension of the One-Time Password (OTP) algorithm, namely the HMAC-based One-Time Password (HOTP) algorithm" (RFC 4226)
- Basé sur une fonction de hashage
- Utilisation du temps Unix
- Exploite Base32 (rfc 4648)
- S'appuie sur HMAC (rfc2104), hachage à clé, dans notre cas exploite SHA
- Besoin d'une clé secrète
Fondements
👋 S'il se base sur le timestamp... ça change toutes les secondes ?
Dans le détail
Dans le détail
Interval 30s (recommandation rfc)
Longeur de clé
Google Authenticator
https://github.com/google/google-authenticator
Démo
http://localhost:8080
se-connecter-2fa
By Florent Fremont
se-connecter-2fa
- 121