Tout sur la double authentification
La double authentification renforce l'authentification en ajoutant une étape supplémentaire. Mais, plus en détail, c'est quoi ?
Le principe
L’idée avec la double authentification est de faire en sorte que l’utilisateur s’identifie en utilisant deux techniques qui ont très peu de risque d’être piratées en même temps.
La maxime à retenir est :
« Quelque chose qu’on sait, quelque chose qu’on a. »
Concrètement, cela passe souvent par un mot de passe (« quelque chose qu’on sait ») et un élément impliquant un appareil physique (un message sur un smartphone par exemple, « quelque chose qu’on a »).
La double authentification est une méthode parmi un ensemble de méthodes plus large, l’authentification multiple.
Authentification multiple
Quand vous regardez un film d’espionnage avec une base secrète vous avez parfois le héros ou l’ennemi qui passe son œil devant un iris, tape un message sur un clavier, pose sa main sur une tablette, crache de la sal… avant d’ouvrir la porte de la base. C’est ça l’authentification multiple.
Vous pouvez faire, ou avoir affaire à, une chaîne d’authentification, c’est à dire que plusieurs étapes d’authentification sont nécessaires et, quand l’une d’entre elle est refusée, l’authentification est arrêtée.
Dans certains cas réels particuliers où la sécurité est renforcée, on dépasse deux étapes. Mais la plupart du temps, on se contente de deux étapes.
Les façons de faire (ou pas)
SMS
La double authentification la plus fréquente est faite par SMS.
C’est la plus mauvaise méthode car elle est facilement piratable. Si le hackeur a un peu de moyens il peut pénétrer le SS7.
Le SS7 est la couche réseau qui gère l’acheminement des SMS. Cette couche a été conçue dans les années 70 et est donc obsolète depuis longtemps, les standards de sécurité ayant considérablement évolué et des attaques ont eu déjà lieu (voir l’article de NextImpact).
Cette méthode est aussi contraignante quand vous êtes en zone blanche, sans couverture téléphonique.
PUSH
Une autre méthode mise en place par certains services est un push. Cette méthode consiste à faire apparaître sur votre smartphone un message demandant votre validation. Ce message est envoyé (poussé d’où « push » en anglais) par le service sur votre smartphone.
Cette technique nécessite que le smartphone soit connecté sur Internet ce qui peut fragiliser le système car cela offre des capacités d’interception aux hackeurs.
HOTP/TOTP
La deuxième méthode la plus répandue (et utilisée chez Limawi) est la méthode HOTP/TOTP (HMAC based One Time Password, Time based One Time Password).
HOTP, en français « mot de passe unique basé sur un HMAC », est une méthode qui consiste à générer un mot de passe unique basé sur un HMAC (c’est un élément cryptographique qu’on expliquera dans un futur article) qui dispose d’un compteur.
L’utilisateur installe une application sur son smartphone qui génère un message (un token) de 6 caractères à la demande. Ces caractères sont générés grâce à une graine présente sur le compte de l’utilisateur dans le service web et dans l’application elle-même et un compteur qui s’incrémente (qui augmente) de la même façon sur le service web et dans l’application.
Quand l’utilisateur saisit le token issu du calcul généré par l’application dans le service web, ce dernier compare avec le token qu’il a lui-même généré, de son côté, avec le même calcul, et si les tokens sont semblables, cette authentification est bonne. Le service web sait que c’est l’application sur le smartphone de l’utilisateur car c’est le seul appareil qui dispose de la graine de l’utilisateur.
Cette graine est transférée du service web à l’utilisateur, généralement, grâce à un QRCode.
TOTP, en français « mot de passe unique basé sur le temps », est une extension de HOTP où le HMAC est généré à partir de la graine et du temps (un intervalle de temps de plus ou moins 30 secondes). Cette méthode est beaucoup plus utilisée que HOTP.
Je vous conseille l’application FreeOTP pour générer vos tokens sur un smartphone ou d’autres appareils :
- Sur Android et F-droid
- Sur IOS
- Le code source
Ces techniques ne nécessitent pas que votre appareil soit connecté sur Internet ni au réseau SMS téléphone. Les hackeurs ne peuvent pas intercepter de message, parce qu’il n’y a pas de message.
Matériel
Enfin, la méthode la plus sûre d’authentification est d’avoir un matériel dédié. À l’étape d’installation, le matériel est lié à votre compte sur un service web. Grâce à une reconnaissance cryptographique (le matériel contient une clé asymétrique dont on parlera dans un futur article), le service web l’accepte comme « quelque chose que vous avez » dans cette étape d’authentification.
L’inconvénient c’est que cela vous fait un objet en plus à ne pas perdre !
Certaines banques distribuent aussi un matériel à lier avec votre carte bancaire mais le fonctionnement est basé sur TOTP.
Codes de récupération
Cette méthode n’est pas, à proprement parler, « Quelque chose que vous avez ». C’est la meilleure méthode de secours si vous avez perdu, ou vous êtes fait volé, votre matériel ou votre smartphone. C’est une liste de tokens à usage unique que vous pouvez utiliser à la place de votre matériel.
Cachez cette liste dans un endroit sûr, ultra sûr, et ne vous en servez qu’en extrême nécessité.
À l’attaque !!!
Bien sûr, ces solutions ne sont pas parfaites et peuvent être attaquées.
Ingénierie sociale
Dans le cas des SMS, des attaques d’ingénierie sociale ont déjà été mises en œuvre. Par exemple, le cas de DeRay McKesson.
Dans la double authentification par SMS, les hackeurs se font passer pour le possesseur du smartphone auprès de l’opérateur téléphonique et demandent un changement de carte SIM. Leur carte SIM est activée, à la place de celle de la victime, et ils reçoivent tous ses SMS.
Proxy
L’interception par proxy est possible aussi. Celle de l’interception du SMS en créant un faux réseau téléphonique à proximité de la victime (voir l’article de NextImpact), ou plus simplement, un faux site qui se fait passer pour un vrai et qui intercepte toutes les informations envoyées par l’utilisateur (dont le token d’authentification). C’est une attaque homographique sur les noms de domaines internationalisés, ou plus simplement du typosquatting.
Cette méthode peut être contrée avec l’authentification matérielle ou en vérifiant bien le nom de domaine du site web.
Par exemple :
Si vous voulez aller sur « douce-framboise.com », vérifiez que ce n’est pas « douce-framb0ise.com ».
Méthodes de connexions oubliées
Parfois, et cela s’adresse aux mainteneurs de service web, on oublie que la page de connexion n’est pas la seule méthode pour accéder à son compte.
Par exemple, certains services web ne mettent pas de double authentification lors de la récupération d’un mot de passe via un email avec un lien unique.
Un autre exemple, quand vous enregistrez un service externe via une API (comme l’authentification Google ou Facebook par exemple), vous passez par le protocole Oauth2 et parfois la double authentification n’est pas demandée.
Pensez à toutes les méthodes d’accès aux données de vos utilisateurs et optez pour la double authentification, partout.