J’ai déjà beaucoup insisté sur l’importance d’utiliser un bon mot de passe, en expliquant notamment que les mots de passe longs, peu prévisibles et composés de caractères différents devaient être privilégiés, car il était difficile de les retrouver en utilisant des attaques classiques[1].

Puis, je vous ai conseillé d’utiliser un gestionnaire de mots de passe[2] parce qu’il est bien trop compliqué, voire impossible, pour nous simples humains, de mémoriser de longues séries de caractères aléatoires.

Enfin, nous avons vu que les éditeurs avaient aussi leur rôle à jouer, notamment en stockant les mots de passe des internautes de façon sécurisée[3] et éviter ainsi que les mots de passe se retrouvent dans la nature et utilisés à notre insu.

Tout cela est très bien et permet de mettre toutes les chances de notre côté pour sécuriser nos comptes au mieux. Malheureusement, même avec un mot de passe très robuste, le mécanisme a ses limites, car tout repose sur un élément à connaître, et quiconque connaîtrait le sésame pourrait entrer.

On peut difficilement améliorer le fonctionnement des mots de passe, mais on peut très bien imaginer ajouter un deuxième mécanisme que l’on utiliserait en plus des mots de passe pour améliorer davantage la sécurité. On appelle cela un deuxième facteur d’authentification, ou 2FA.

Les applications d’authentification comme deuxième facteur d’authentification

Plusieurs mécanismes existent pour sécuriser davantage un accès comme les empreintes digitales et la détection faciale qui sont beaucoup utilisées ces derniers temps depuis que nos téléphones portables en sont équipés, ou les codes à usage unique envoyés par SMS.

Il existe aussi un mécanisme utilisant des applications d’authentification qui permettent à l’utilisateur, une fois l’application synchronisée, de générer soi-même un code à usage unique à saisir en supplément du mot de passe.

La technologie sur laquelle reposent les applications d’authentification est robuste et a fait ses preuves. Elle a aussi l’avantage d’être gratuite pour la société, qui n’a pas de frais de transaction à s’acquitter comme c’est le cas pour les SMS[4], et pour l’utilisateur qui peut utiliser l’appareil qu’il possède déjà.

Pour utiliser ce système d’authentification, l’utilisateur doit préalablement installer une application d’authentification sur l’un de ses appareils (téléphone, tablette, ordinateur). Il en existe des gratuits et des payants. Je conseille personnellement d’utiliser l’application gratuite FreeOTP Authenticator[5] si vous êtes un utilisateur de la marque à la pomme ou si vous utilisez un appareil Android, car elle a l’avantage d’être open-source, c’est-à-dire que le code source de l’application est consultable sur Internet[6]. On peut donc avoir la certitude qu’elle n’inclut pas d’éléments fâcheux à l’intérieur.

Logo de l’application FreeOTP
Application FreeOTP sur Android

Une fois installée, l’internaute peut synchroniser l’application avec les comptes qu’il souhaite sécuriser. Beaucoup de produits et services proposent déjà cette méthode d’authentification notamment Gmail[7], Facebook[8], Twitter[9], Amazon[10], Firefox[11], Apple[12], etc. et espérons que beaucoup d’autres feront la même chose pour le bien de leurs utilisateurs.

Pour synchroniser l’application avec l’un de ses comptes, il suffit de scanner le code barre affiché dans les paramètres du compte à sécuriser.

QR Code composé de carrés noirs et blancs
Exemple d’un code barre à scanner dans l’application d’authentification.

Le compte est alors ajouté à l’application.

Le compte de l’auteur est ajouté à l’application FreeOTP
Exemple d’un compte paramétré dans l’application d’authentification.

Puis, au moment de se connecter, le code généré par l’application peut être saisit en plus de son mot de passe.

Le code d’authentification « 392827 » est généré par l’application FreeOTP
Exemple d’un code généré par l’application d’authentification.

Simple et efficace. Attention tout de même, si l’appareil qui contient votre application d’authentification est cassé ou perdu, vous perdez votre capacité à vous connecter. Les services proposent généralement des solutions de secours dans le cas où cela arrive. Le plus souvent, il s’agit d’une série de codes à usage unique à conserver et à utiliser pour débloquer le compte lorsque l’application est inutilisable.

Fonctionnement des applications d’authentification

Les applications d’authentification fonctionnent grâce à un algorithme appelé TOTP[13]. Derrière ces initiales barbares se cache des fonctions cryptographiques avancées qui permettent de générer un code à partir de la date et l’heure de la demande, et d’un mot secret.

Le mot secret est généré aléatoirement par le fournisseur et doit être transmis à l’utilisateur de façon sécurisée. Dans les explications précédentes, ce secret est inclut dans le code barre que l’utilisateur scanne, non pas pour le cacher, mais pour lui permettre de l’enregistrer facilement sans la saisir. L’heure actuelle, elle, n’est par définition pas secrète et peut être connue facilement par les deux parties sans qu’il n’y ait besoin de s’échanger d’informations.

Une fois le mot secret connu par les parties, le fournisseur et l’utilisateur peuvent donc générer chacun le code de leur côté, l’utilisateur pour prouver son identité et le fournisseur pour effectuer les vérifications.

Sécurité renforcée

L’utilisation d’une application d’authentification n’est généralement pas obligatoire mais fortement recommandée pour améliorer la sécurité d’un compte et ne plus se baser uniquement sur la connaissance d’un mot de passe.

En utilisant un tel mécanisme, on combine deux éléments : un élément que l’on sait avec un élément que l’on possède. L’accès au compte exige donc de connaître le mot de passe et de posséder physiquement le terminal sur lequel est installée l’application. Et si une personne malintentionnée voulait frauduleusement accéder au compte, il faudrait non seulement subtiliser le mot de passe, mais également posséder physiquement l’appareil.

Notes et références

  1. La sécurité des mots de passe a été évoquée dans les articles : « Tous les mots de passe ne se valent pas » et « Les techniques des hackers pour trouver les mots de passe et les façons de s’en protéger ».
  2. Les gestionnaires de mots de passe ont été évoqués dans l’article « Laissez vos utilisateurs utiliser leur gestionnaire de mots de passe ».
  3. La sécurité de la conservation des mots de passe a été évoquée dans l’article « Ne stockez pas les mots de passe de vos utilisateurs en clair » ».
  4. L’envoi d’un SMS pour les professionnels coûte entre 1 à 5 centimes d’euro selon les fournisseurs et les volumes choisis.
  5. L’application d’authentification FreeOTP est développée par la société Red Hat, propriétée de Oracle, et est téléchargeable gratuitement sur l’AppStore (Apple iOS) et sur le PlayStore (Google Android).
  6. Le code source de l’application Android FreeOTP est consultable sur la plateforme GitHub (source : github.com/freeotp).
  7. Gmail permet à ses utilisateurs d’activer l’authentification à deux facteurs (source : google.com).
  8. Facebook permet à ses utilisateurs d’activer l’authentification à deux facteurs (source : facebook.com).
  9. Twitter permet à ses utilisateurs d’activer l’authentification à deux facteurs (source : twitter.com).
  10. Amazon permet à ses utilisateurs d’activer l’authentification à deux facteurs (source : amazon.fr).
  11. Firefox permet à ses utilisateurs d’activer l’authentification à deux facteurs (source : mozilla.org).
  12. Apple permet à ses utilisateurs d’iCloud d’activer l’authentification à deux facteurs (source : apple.com).
  13. TOTP : Time-based One-time Password algorithm.