Site icon A DevOps journey

L’authentification dans les applications

L’authentification, la gestion d’identité, et le contrôle d’accès en général : ça a l’air si simple ! Une adresse email, un mot de passe, et ça marche !
Oui … mais non. Quand on commence à gérer ce genre de problématique, on voit rapidement qu’il y a beaucoup de choses à prendre en compte. Comment stocke-t-on les mots de passe correctement ? L’intègre au système du client est-elle possible ? Comment gérer les droits des utilisateurs ?

Afin de répondre à toutes ces questions, je vous propose de faire un petit tour d’horizon au travers d’une petite série d’articles, afin de voir ces différents aspects le mieux possible, et faire quelques démonstrations. Mais d’abord, une revue rapide des concepts fondamentaux de l’authentification !

Qu’est-ce que la gestion d’identité ?

La gestion d’identité, c’est gérer les différents individus qui vont utiliser un système, et savoir quels vont être leurs droits. C’est un concept central en termes de sécurité. La gestion d’identité concerne, par exemple :

La gestion d’identité est aussi intimement liée au contrôle d’accès.

Voici quelques exemples parlants de contrôle d’accès :

La gestion d’identité, c’est un sujet vaste, mais qui a pour point principal la vérification de l’identité d’une personne afin de lui attribuer des autorisations. Et on retrouve cela dans le concept du AAA.

Le concept du AAA

En anglais, l’acronyme AAA (ne pas confondre avec AAAAA …) permet de bien entrevoir la base de la gestion d’identité :

Et du coup, ça sert à quoi?

La gestion d’identité donc, c’est en partie répondre à ces questions :

On va d’abord se concentrer sur la première étape : l’authentification et ses concepts. Par la suite, nous aborderons des exemples concrets d’application sur l’authentification. Vous pouvez aussi retrouver des exemples d’utilisation dans la liste de mes sources, rappelées en fin d’article.

Les différentes formes d’authentification

Nous avons vu que l’authentification, c’est ce qui permet de confirmer la phase d’identification, de prouver l’identité qu’on a donnée à la base. Pour cela, il existe évidemment plusieurs moyens que l’on peut demander à la personne afin de confirmer son identité.

Du coup, quelle méthode d’authentification utiliser?

C’est la grande question : quelle est la meilleure? Chaque méthode a ses faiblesses qui peuvent être gênantes :

Le gestionnaire de mot de passe

C’est un peu l’outil de base lorsqu’on parle de sécurité de l’authentification. C’est pratique, très efficace, pas cher (souvent, l’offre « personnel » est gratuite, et seul le partage de mot de passes en famille ou entreprise devient payant). Les acteurs connus sont par exemple Lastpass ou Nordpass, bien que beaucoup d’autres éditeurs mettent en avant leurs solutions.

Les points positifs :

Exemple de score de sécurité sur vos mots de passe, par Lastpass. Il permet aussi de surveiller si vos adresses email sont potentiellement compromises. Source

Les contres :

Qu’est-ce que le passwordless?

Le passwordless est un terme que l’on entend de plus en plus, et pour cause : les méthodes d’authentification basées sur ce que l’on possède et/ou ce que l’on est se démocratisent ! Ainsi, il est de plus en plus facile de demander ce type d’authentification, plutôt qu’un mot de passe. On reprend l’exemple de Windows Hello pour les machines, mais il est aussi possible de parler de FIDO2 et WebAuthn pour les applications web par exemple. Avec le passwordless, il est possible de se connecter à votre site préféré en branchant simplement une clé accrochée à votre porte-clé, sans enregistrer le mot de passe et/ou la session sur la machine. La sécurité est souvent bien plus forte, et plus simple, notamment avec des utilisateurs qui ont tendance à privilégier un mot de passe simple et commun à l’ensemble des sites.

Graphique montrant les avantages / inconvénient de l’utilisation de clé de sécurité et des différentes utilisations. Source : microsoft.com

L’authentification biométrique

L’authentification biométrique est devenue très présente ces dernières années, notamment sur les téléphones portables. Un index suffit souvent à déverrouiller nos appareils !

Si ce type d’authentification est simple d’utilisation, et très efficace, elle peut aussi être sujette à des problèmes de faux positifs ou de faux négatifs en fonction de la qualité du capteur. Aussi, on a souvent une méthode d’authentification de « backup », qui elle, peut être facilement faillible. Il faut donc particulièrement vigilant sur l’ensemble des méthodes d’authentifications utilisées, et notamment quels sont les moyens de « contournement » lorsque la méthode d’authentification privilégiée est indisponible (oublie, perte, vol…).

OTP (one time password) VS clé FIDO

Le One Time Password (ou OTP) est quelque chose de très fréquent de nos jours, notamment depuis le paiement en ligne avec 3d secure. Il permet de renforcer la sécurité par la vérification de la présence de l’utilisateur à côté de son appareil. Mais c’est souvent une solution couteuse à implémenter, car elle demande l’envoi d’un SMS à chaque fois.

Suite à cela, une nouvelle méthode par OTP est apparue : l’OTP par application. Plusieurs solutions existent, notamment chez Google ou Microsoft. Elle permet d’enregistrer pour chacun des services désirés un certificat de sécurité, qui permettra de générer un code d’authentification unique toutes les 30 secondes. Ce code sera utilisé pour s’authentifier, et garantit donc que l’utilisateur cherchant à se connecter à bien son téléphone à porté de main (tout du moins, s’il n’a pas transmis le QRCode ou les codes de récupérations du certificat de sécurité ..).

Exemple d’OTP avec Microsoft Authenticator

Le problème de ce type de solution, c’est qu’on a un certificat différent, et donc un code différent, pour chaque couple compte / service enregistré sur le téléphone. Aussi, quand on est vigilant à la sécurité et qu’on active l’OTP sur chaque site, on arrive rapidement à une liste importante à gérer …

Aussi, la troisième solution est la clé de sécurité, déjà présentée dans l’article sur le protocole de sécurité FIDO. L’avantage de ce type d’appareil, c’est qu’il gère en interne l’ensemble des certificats, et est capable de restituer le bon automatiquement. Lorsqu’on commence à multiplier les services, c’est un excellent avantage. Le principal problème est qu’à l’heure actuelle, encore très peu de service propose l’utilisation de ce protocole. Mais l’adoption de WebAuthN comme standard, et la prise en compte de plus en plus importante de l’importance de la sécurité font que le protocole connait un fort essor.

L’authentification multi-facteurs (MFA)

Après tout ce qu’on a dit, on serait tenté de dire que la meilleure solution, ça reste le biométrique. Ce n’est pas faux, mais ce n’est pas toujours évident. Et surtout, c’est insuffisant.

Dans la mesure du possible, vous devez combiner les méthodes d’authentification. C’est le principe du MFA (Multi-Factor Authentication). Cela consiste à demander à l’utilisateur d’utiliser au moins 2 méthodes pour d’authentifier (on parle alors de 2FA).

Attention : il est crucial que les méthodes soient différentes afin de ne pas présenter les mêmes risques d’être compromises !

Le schéma ci-dessous est un modèle de maturité proposée sur la sécurité de l’authentification des utilisateurs, en fonction des moyens mis en place. Comme on l’a vu dans cet article, un des points important et facile à mettre en place est l’adoption d’un gestionnaire de mot de passe, notamment car le mot de passe reste tout de même une base importante. Une des raisons est que beaucoup de solutions ne proposent pas encore le MFA, ou en tout cas, pas tous les types de MFA souhaité.

Une fois la solution mise en place, c’est l’adoption de MFA par clé de sécurité, ou à minima OTP, qui doit être privilégiée.

Graphique représentant la maturité d’implémentation de l’authentification pour un utilisateur. La maturité idéale décrite dans ce graphique vient d’un token physique (type clé FIDO) associé au gestionnaire de mot de passe. Source

Attention 2 : L’utilisation de la 2FA basés sur une app ou un SMS protège plutôt bien d’un certain nombre d’attaques, mais gardez en tête qu’un des risques est de se faire voler son token de session comme dans l’explication de cette attaque par Microsoft. La mise en place d’une authentification forte ne doit pas abaisser notre vigilance !

Pour aller plus loin …

Voir la liste de mes sources.

Quitter la version mobile