Sécurité
TOTP : Time-based One-Time Password. « Mot de passe à usage unique basé sur le temps », par analogie avec le code du parking qui change toutes les trente secondes et dont seuls le gardien et l'abonné connaissent la recette.
Principe : Le serveur et l'application partagent un secret. Chacun découpe l'heure courante en tranches, souvent de trente secondes, calcule un HMAC du numéro de tranche avec ce secret et le réduit à quelques chiffres. Si les deux résultats coïncident, l'utilisateur possède bien le secret.
Horloge : Tout repose sur des horloges à peu près d'accord, synchronisées par NTP. Le serveur tolère en général une tranche d'écart de part et d'autre ; au-delà, le code est refusé et l'utilisateur jure qu'il l'a pourtant tapé à l'heure.
Enrôlement : Le secret est transmis une seule fois, le plus souvent par un code QR (Quick Response) scanné par l'application. Ce secret est aussi précieux qu'un mot de passe, et doit être stocké côté serveur avec le même soin.
Limites : Le code se vole comme un mot de passe : un faux site qui le relaie aussitôt au vrai l'emploie dans sa fenêtre de validité. Le TOTP arrête donc le bourrage d'identifiants, pas l'hameçonnage en temps réel, ce que la plaquette commerciale omet avec une constance admirable.
Ce qui arrive si on s'en passe
Sans second facteur, un mot de passe volé, deviné ou réutilisé depuis une autre fuite suffit à ouvrir le compte. Les attaques qui essaient en masse des couples identifiant et mot de passe issus de bases compromises réussissent alors dès qu'un utilisateur a recyclé son secret. Un code temporel exige en plus la possession du secret d'enrôlement, qui ne circule pas lors de la connexion. Il ne protège pas contre un faux site qui relaie le code en direct, et il perd son intérêt si les secrets d'enrôlement sont stockés en clair côté serveur ou si le code est accepté sans limite de tentatives.
Explication de la marmotte
Pour se connecter à un compte important, un mot de passe ne suffit plus toujours. On installe alors sur son téléphone une application qui affiche un code à six chiffres, remplacé par un nouveau toutes les trente secondes environ. Le site et le téléphone ont reçu au départ le même secret, et chacun fabrique le code à partir de ce secret et de l'heure. Si les deux codes sont identiques, le site sait que c'est bien le propriétaire du téléphone. Un voleur qui ne connaît que le mot de passe reste à la porte.
Où ce terme est utilisé
- Authentifier les personnes et les services (6 occurrences)
- Sécuriser NTP contre le spoofing et la dérive d’horloge (1 occurrence)
