Caractéristiques d’une authentification forte et présentation des mécanismes d’authentification (première partie)

Catégorie(s) : Actualités, Sécurité - RGPD

La deuxième partie de notre dossier sur l’authentification se concentre sur les caractéristiques d’une authentification forte et le passage en revue des mécanismes d’authentification…

Retrouvez également les autres articles de ce dossier :

Qu’est-ce qu’une authentification forte (robuste) ?

Ici, nous mettons un pied là où le commercial se mêle de la sécurité, car beaucoup sont persuadés, ou affirment avec force (et étonnamment y compris certains textes législatifs, qui feraient sans doute mieux de se contenter de légiférer sur le quoi, et non sur le comment), qu’une authentification forte est obligatoirement une authentification multi-facteurs (détaillée plus loin). Ceci est inexact : la plupart des mécanismes d’authentification, mono et multi-facteurs, peuvent être forts (c’est-à-dire robustes), et plus important : tous les mécanismes peuvent être faibles, y compris les authentifications multi-facteurs. D’ailleurs l’expression « authentification forte » est devenue un terme en vogue, qui est maintenant employé comme argument essentiellement commercial, et ne caractérise plus réellement un haut niveau de sécurité.

Ce qui caractérise la robustesse, terme plus adapté que « force », d’un système d’authentification, c’est un tout :

  • Dès la conception, qui doit savoir adapter les mécanismes aux enjeux et choisir les meilleurs mécanismes (principes privacy & security by design & by default). Par exemple, utiliser un mot de passe, ou un code d’authentification (quelle que soit sa forme), sans en contraindre l’entropie minimale (cf. notre article précédent « Authentification : les mots de passe ont la vie dure, première partie ») est une grave erreur ;
  • Et les normes sur lesquelles il repose (notamment des principes cryptographiques), qui doivent avoir été éprouvées par des chercheurs en sécurité, indépendants. Ceci est toujours le cas des normes publiques, moins fréquent avec les « standards » provenant d’éditeurs commerciaux ;
  • Et son implémentation (et configuration) : en effet, de nombreuses failles proviennent d’implémentations défaillantes, ou de mauvais paramétrages, même lorsque le mécanisme lui-même est sûr. Cela nécessite des compétences spécifiques, ou à défaut des formations préalables, et de réaliser des audits de sécurité du code source ;
  • Et son bon niveau de maintien en condition opérationnelle (disponibilité, correctifs de sécurité, supervision, etc.) ;
  • Et l’assurance que toutes les phases du processus (étapes 1 à 4, décrites dans notre article précédent) sont robustes, correctement sécurisées et régulièrement revues, et pas seulement la partie visible de l’iceberg, celle que « voit » le client (l’étape 1 du processus d’authentification).

Exemple : même avec le meilleur mécanisme d’authentification, apportant toutes les garanties de sécurité, si les canaux d’échanges d’informations (étape 2) ou les ressources (étape 4) ne sont pas elles-mêmes suffisamment protégées, la sécurité de l’ensemble du processus ne pourra être raisonnablement qualifié de robuste (principe du « maillon faible »).

L’ANSSI (Agence Nationale de la Sécurité des Systèmes d’Information) a pertinemment rappelé en 2021 les recommandations relatives à l’authentification multi-facteurs et aux mots de passe (52 pages), dont voici quelques morceaux choisis :

  • « En langue française, l’authentification multi-facteur est souvent confondue avec l’appellation authentification forte (ou robuste), ce qui laisserait entendre qu’une authentification multi-facteur est nécessairement plus robuste qu’une authentification avec un unique facteur. Il convient ainsi de différencier authentification multi-facteur et authentification forte. »
  • « Ne pas utiliser le SMS comme moyen de réception d’un facteur d’authentification » (recommandation R8), c’est pourtant l’un des systèmes multi-facteurs le plus couramment utilisé de nos jours (absit reverentia vero).

Par ailleurs, on peut se demander pourquoi de nombreux mécanismes d’authentification multi-facteurs imposent (pour le second facteur) un numéro de téléphone mobile pour la double authentification ? Ce qui, en passant, est particulièrement agaçant ! Bien que certains organismes ne peuvent sans doute pas être qualifiés d’amateurs en matière de sécurité, une bonne partie des organismes qui utilisent ce mécanisme ne semblent pas avoir effectué une réflexion de fond préalable, ou n’ont pas consulté leur DPO. Il y a sans doute plusieurs motivations sur lesquelles nous pouvons émettre quelques conjectures :

  • Ce second authentifiant est généralement un code envoyé par SMS. Certes le SMS utilise un canal de communication distinct de la première authentification, et la plupart des utilisateurs disposent d’un smartphone. À première vue, cela semble être un bon argument, si l’on exclut le fait que ce canal (SMS) n’est pas sécurisé : non chiffré et très peu de protection sur les smartphones eux-mêmes (par exemple, combien de personnes disposent, sur leur smartphone, d’un pare-feu, d’un antivirus…). Par conséquent, ce second canal n’offre pas de réelle sécurité (cf. ci-dessus).
  • De plus, cela néglige ceux, certes peu nombreux, qui n’ont pas de smartphone, pour des raisons économiques ou par choix, ou ceux, bien plus nombreux, qui ont un smartphone, mais qui peut être en panne, oublié, perdu ou volé au moment d’une authentification, ou simplement qui changent de numéro, par choix ou en changeant d’employeur… Comment feront-ils pour s’authentifier dans ces cas-là ? Il existe des mécanismes de secours, mais il ne faut pas que ceux-ci soient moins sûrs que le mécanisme d’authentification nominal, sinon des pirates pourraient l’utiliser ! Pour éviter cela, le mécanisme de secours devrait être plus contraignant, sécurisé, et à usage très ponctuel, donc particulièrement surveillé.
  • Dans le cadre professionnel, un principe de base de sécurité est de ne jamais mélanger les usages privés et professionnels. Or tous les collaborateurs n’ont pas de smartphone & numéro professionnel, ils doivent alors utiliser leur smartphone & numéro privé pour les comptes professionnels ! Ce qui est une infraction grave aux principes de sécurité des organismes.
  • En tant que donnée personnelle, un numéro de téléphone mobile a plus de valeur et d’intérêt qu’une simple adresse courriel, surtout si le numéro a été vérifié (par exemple, un numéro peut permettre de localiser les personnes, ou les solliciter commercialement, ce qu’une adresse courriel ne permet pas aussi facilement). Ceci peut intéresser particulièrement certains organismes dont le modèle économique repose sur la captation en masse et l’exploitation des données personnelles. Ces organismes font d’ailleurs souvent partie de ceux qui promeuvent avec le plus de ferveur la double-authentification basée sur un numéro de téléphone mobile. On peut légitimement se poser la question des réelles motivations de ces personnes, et au vu de leurs fréquentes fuites d’informations, la « sécurité » parait être plus probablement un prétexte afin de collecter encore plus de données personnelles, et ceci sans justification réelle.

Tour d’horizon des mécanismes d’authentification

Passons à présent en immersion périscopique, par une revue des principales classes de mécanismes d’authentification unitaires (ou mono-facteur), en essayant d’en extraire les bénéfices, désagréments et risques notables, que ce soit pour le confort des utilisateurs, en matière de SSI et de respect de la vie privée.

Cette liste ne pourra évidemment pas être exhaustive. Toutefois, certaines techniques non détaillées dans cet article ne sont que des variantes ou des combinaisons des principales classes présentées ici (certaines sont mêmes des techniques identiques, mais avec des noms différents).

Par exemple, nous n’aborderons pas les solutions telles que OAuth. En effet, OAuth n’est pas à proprement parler un mécanisme d’authentification, c’est un protocole de délégation d’autorisation, qui intervient après l’authentification elle-même.

Aucune authentification

Sérieusement ?! Si, si 😉

Certes, c’est historique, mais à une époque, il n’y avait pas de mot de passe dans les (antiques) systèmes informatiques. Puis, même après leur invention (voir plus bas), dans certains milieux, notamment universitaires, certains hackers(1) prônaient de bannir les mots de passe, et certains s’évertuaient même à les supprimer des systèmes qu’ils géraient, pour des raisons plus ou moins fallacieuses (idéologiques notamment).

Pour leur défense, tout ceci se déroulait à une époque où il y avait peu de systèmes informatiques, peu d’utilisateurs, qui étaient presque tous informaticiens, et même la plupart administrateurs des systèmes, il n’y avait pas encore d’Internet, et bien qu’il existait déjà des interconnexions, elles étaient peu répandues. Il y avait peu de données confidentielles, et quasiment aucun pirate. Une autre époque !

(1) Hackers ne signifie pas systématiquement « pirates » : en fait, les hackers originels étaient des « gentils » hackers, désignés comme white hats – chapeaux blancs – pour les distinguer des pirates (plus récents), ou black hats – chapeaux noirs. Il existe toujours ces deux types de hackers : les premiers avertissent les éditeurs de logiciels/d’applications et fournisseurs de ressources lorsqu’ils découvrent une faille de sécurité, et ne l’exploitent pas. Les seconds ne préviennent pas et exploitent les failles pour voler des informations, corrompre les données, ou faire du chantage (entre autres).

Atouts Faiblesses
  • Aucune difficulté de mémorisation ;o)
  • Simplicité d’emploi
  • Toutes (et surtout aucune sécurité !)

Mots de passe (passwords)

Dès le début des années 60, les mots de passe sont apparus et n’ont cessé de se complexifier et de se répandre, pour parer aux attaques de plus en plus astucieuses et fréquentes. Parallèlement, une variante moins sécurisée est constituée par les codes de passe : les codes PIN (Personal Identification Number) issus du monde bancaire (code secret de carte bancaire) et de la téléphonie mobile (code déverrouillage de carte SIM) qui sont encore souvent entièrement numériques et très (trop) courts : souvent 4 à 8 chiffres en 2023 !

Durant une longue période, l’utilisation des mots (et codes) de passe était peu contraignante, car les contraintes de complexité n’avaient pas besoin d’être importantes et chaque individu disposait de peu de comptes, donc peu de mots/codes de passe à retenir. Avec l’essor de l’économie du web (années 2000), puis des smartphones (années 2010), le nombre de comptes utilisateurs, et donc d’authentifiants, a explosé.

Historiquement, il semble que les mots de passe ont d’abord été utilisés pour authentifier des utilisateurs humains, puis, plus tard, pour identifier des ressources informatiques entre elles. Ces dernières étaient moins exposées aux risques, car le filtrage des accès par adresse IP apportait déjà une certaine sécurité, toute relative à elle seule.

Toutefois, des solutions existent pour simplifier l’utilisation (la génération et le stockage) de mots de passe pour les utilisateurs : ce sont les coffres-forts numériques (Keystore). Même si leur usage tend à se populariser ces dernières années, ce n’est pas encore systématique, notamment sur tous les supports matériels, tels que les smartphones. On peut constater des différences selon le contexte : l’usage de coffres-forts numériques est de plus en plus courant dans le cadre professionnel, encore peu répandu dans le cadre privé.

Il faut cependant rester vigilant avec les coffres-forts en ligne, qui sont certes pratiques (accès au coffre-fort depuis n’importe quel dispositif), mais sont parfois victimes de fuites de données massives car le niveau de sécurité semble très variable d’un éditeur à un autre.

Petite anecdote historique : c’est Fernando CORBATÓ (1926- 2019), prix Turing 1990, qui est considéré comme l’inventeur du mécanisme d’authentification par mot de passe au début des années 60. Plus précisément, il serait le premier à les avoir introduits dans un système informatique, car le terme « mot de passe », qui est un terme militaire, existait depuis des siècles. Cela fait donc environ 60 ans que les mots de passe existent en informatique !

Atouts Faiblesses
  • Simple d’utilisation car une seule étape d’authentification et simple à mettre en place. Cela reste le mécanisme le plus utilisé notamment pour ces raisons.
  • Simple à changer par l’utilisateur en cas de fuite de données côté fournisseur des ressources accédées.
  • N’impose pas de contraintes matérielles supplémentaires lors de l’authentification : nul besoin d’un jeton matériel, ou d’attendre de recevoir un code par SMS.
  • Permet d’avoir un authentifiant différent pour chaque ressource.
  • Aucun impact sur les données personnelles, et n’impose pas de fournir d’autres informations personnelles.
  • Utilisable comme l’un des facteurs dans une authentification multi-facteurs.
  • Authentifiant statique, et lorsqu’il est renouvelé, c’est à une fréquence généralement très faible.
  • Difficile à se rappeler, même si l’utilisation d’un coffre-fort réduit drastiquement ce défaut.
  • Certains services ne vérifient pas la complexité des mots de passe, ou permettent aux utilisateurs de choisir des mots de passe faibles.
  • Il peut être volé s’il n’est pas correctement protégé : aussi bien du côté client que du côté du fournisseur des ressources accédées, si les authentifiants sont stockés « en clair » par exemple.
  • Il peut être « deviné » s’il n’est pas assez robuste.
  • Il peut être prêté ou utilisé par plusieurs personne, et dans ce cas il n’authentifie pas un unique utilisateur.
  • Certains services limitent la complexité : en 2023, on trouve encore des sites qui n’acceptent pas plus de 8 caractères, ou n’acceptent pas tous les caractères…

Phrases de passe (passphrase)

Il s’agit d’une suite de mots, idéalement choisis aléatoirement, bien plus longue qu’un mot de passe, mais a priori plus aisée à retenir. Les phrases de passe (qui ressemblent à une phrase, d’où le nom de cette technique, mais ce ne sont pas réellement des « phrases ») ne sont en fait qu’un dérivatif aux mots de passe, mais elles ne sont pas inintéressantes en matière de simplicité de mémorisation, de sécurité et d’utilisabilité, si elles sont produites en respectant des contraintes strictes.

Exemples : chaton José escalier 1984 trompette bleu après-midi nuage (liste de mots sans rapport entre eux) ou JèmBi1LéCroi100&LeKf (qui correspond à la phrase « J’aime bien les croissants et le café », écrit en phonétique et Leet speak).

Atouts Faiblesses
  • (les mêmes que les mots de passe, voir plus haut).
  • Meilleur ratio complexité/simplicité de mémorisation que les mots de passe.
  • (les mêmes que les mots de passe, voir plus haut).
  • Il est difficile d’estimer leur entropie réelle, il est donc aisé d’en produire qui ne sont pas assez complexes.
  • Elles sont plus longues à saisir, surtout si l’on doit les saisir plusieurs fois par jour, et elles sont plus fréquemment sources d’erreurs de frappe lorsqu’elles sont saisies à la main.
  • Relativement peu de fournisseurs de ressources permettent leur utilisation, notamment parce qu’ils limitent la taille maximale des authentifiants, ce qui est une mauvaise pratique, ou imposent des conditions que les phrases de passe peuvent plus difficilement remplir.

Défi-réponse (Challenge-response)

De manière générale, toute authentification lance un défi, celui de fournir une ou plusieurs preuves de son identité, auquel l’utilisateur, humain ou non, répond en fournissant un ou plusieurs, authentifiants. Cependant, nous souhaitons exposer ici une classe particulière de défis-réponses.

Généralement, les mots de passe et les phrases de passe sont tous deux statiques, c’est-à-dire qu’ils ne changent pas : l’utilisateur répond toujours le même authentifiant, sauf lorsqu’il le renouvelle, ce qui implique que si un pirate réussit à dérober son authentifiant (vol d’authentifiant), il pourra s’authentifier à la place de l’utilisateur, tant que celui-ci ne changera pas son authentifiant.

De même, si le pirate peut copier ce qui a été envoyé par l’utilisateur au moment de son authentification, même si cela a été envoyé dans un canal sécurisé, et le renvoyer à son tour tel quel (sans le décrypter), il pourrait s’authentifier, c’est ce qui s’appelle une attaque par rejeu, du moins si le fournisseur de ressources n’a pas prévu ce cas, car il existe des solutions pour contrer les attaques par rejeu.

Une certaine famille d’algorithmes de défis-réponses, lancent un défi que seul l’utilisateur peut relever, et ce défi change à chaque authentification, on parle aussi de mots de passe à usage unique (ou OTP = One Time Password), dans ce cas l’authentifiant doit avoir une durée de validité finie, temporellement courte, de quelques minutes à quelques heures, et/ou obsolète après sa première utilisation.

Cette famille de défis-réponses peut prendre de nombreuses formes. Vous trouverez ci-dessous quelques exemples simplifiés, qui ont le mérite d’éclairer sur les principes sous-jacents :

  • Algorithme naïf : l’utilisateur et le fournisseur de ressources disposent d’une (longue) table de correspondances (numéros <=> mots de passe) qui est un secret partagé. Le fournisseur de ressources choisit un numéro au hasard, en excluant ceux déjà choisis précédemment, puis le présente comme défi. L’utilisateur doit renvoyer le mot de passe correspondant au numéro, ainsi le mot de passe change à chaque authentification ;
  • L’utilisateur et le fournisseur partagent un algorithme déterministe de génération qui est le secret partagé. Cela se présente comme une formule mathématique, généralement issue de la théorie des nombres et de la cryptologie. Le fournisseur choisit un nombre aléatoire en excluant ceux déjà utilisés précédemment et le présente comme défi, l’utilisateur introduit ce nombre dans sa formule et renvoie le résultat, le fournisseur peut aisément vérifier le résultat de son côté avec sa copie de la formule ;
  • Certains de ces algorithmes peuvent également se baser sur le moment précis de l’authentification (date et heure à la milliseconde, par exemple) en le transformant, afin de produire un authentifiant unique, en utilisant ici aussi une formule mathématique déterministe (on parle plus précisément ici de TOTP : Time-based One Time Password).

On constate qu’avec de tels systèmes, le point d’achoppement principal est qu’il faut préalablement partager un secret, et le protéger : la formule mathématique, ou les paramètres de cette formule, permettant au client de produire la même réponse que côté fournisseur du service. Le second point crucial est d’employer une formule suffisamment résistante ne pouvant être devinée, même si l’on dispose d’un grand nombre de couples défi-réponse issus de cette formule.

Force est de constater la plus ou moins grande complexité technique et logistique pour déployer ce type d’authentification : il faut des défis spécifiques à chaque client, donc échanger de manière parfaitement sûre, et préalablement, un secret partagé différent avec chaque client, et changer régulièrement ce secret partagé (avec chaque client).

Ce système est un peu plus complexe à employer qu’un mot de passe statique pour un utilisateur (humain), c’est pourquoi ce type d’authentification est utilisé plus couramment entre des systèmes (matériels et logiciels) informatiques, par exemple : entre un navigateur web et un serveur web, entre deux logiciels ou systèmes… En effet, ce nombreux protocoles informatiques reposent sur des phases de défis-réponses (TLS = le ‘S’ de HTTPS, SSH = le ‘S’ de SFTP, Kerberos, certificats Let’s Encrypt, etc.), notamment dans leur phase initiale de « handshake » (poignée de main), au tout début de l’établissement d’une connexion sécurisée. Cependant, concevoir et implémenter un tel système parfaitement sûr est très ardu, et même les équipes d’experts qui ont spécifié ces standards, ont parfois laissé passer des failles, sans compter les erreurs liées aux implémentations de ces standards.

Il y a toutefois quelques cas de défi-réponse effectivement mis en place avec des utilisateurs :

  • Certains fournisseurs de ressources proposent ce type de mécanismes d’authentification, par exemple dans les processus de récupération d’authentifiants perdus, afin de vérifier l’identité des utilisateurs. Exemples : les comptes sur Windows 10 et 11 (trois questions et réponses), ou sur certains sites web. Mais chacun propose toujours les mêmes défis prédéfinis, ils ne sont, par conséquent, pas fondamentalement plus sûrs qu’un mot de passe ;
  • Il existe des moyens simplifiant l’usage des défis-réponses par des utilisateurs : les jetons d’authentification matériels ou logiciels (que nous aborderons dans la partie suivante) ;
  • Ou encore pour des usages militaires où la sécurité passe avant toute autre considération telle que l’expérience utilisateur.

Il existe d’autres formes plus élaborées de défis-réponses, généralement issues du monde de la cryptologie : les preuves à divulgation nulle de connaissance (Zero Knowledge Interactive Proof) qui se comportent de manière similaire à des défis-réponses (dans le principe mais pas dans la manière). Ces formes sont également essentiellement utilisées entre systèmes informatiques (un navigateur web et un site web par exemple), rarement entre des utilisateurs (humain) et une ressource, nous ne les détaillerons pas ici.

Atouts Faiblesses
  • Changent à chaque authentification : authentifiant dynamique.
  • Durée de validité de l’authentifiant courte.
  • Simples à utiliser et à saisir, s’il y a un seul défi-réponse par authentification.
  • Les authentifiants (réponses aux défis) n’ont pas besoin d’être stockés, ni côté client, ni côté fournisseurs de ressources accédées : ils ne peuvent donc être volés.
  • L’authentifiant ne peut normalement pas être prêté ou utilisé par plusieurs utilisateurs.
  • L’authentifiant temporaire est souvent peu complexe : longueur faible, ensemble de caractères trop petit (souvent entièrement numérique, au mieux alphanumérique).
  • S’il y a plusieurs défis-réponses, cela rend la phase d’authentification plus longue.
  • Si l’algorithme de production des authentifiants temporaires contient une faille, ce mécanisme n’a plus de sécurité.
  • Déploiement et gestion potentiellement complexes pour le fournisseur de ressources accédées, et parfois également pour le client.

Jetons d’authentification (authentication token)

Les jetons d’authentification matériels (« calculettes », cartes à puces, clefs USB d’authentification telles que les clefs FIDO U2F ou clef de sécurité Titan de Google…) ou logiciels (ces derniers sont malgré tout installés sur un matériel, telle une application pour smartphones ou ordinateurs) sont des dispositifs qui produisent un authentifiant à la demande, et au nom de l’utilisateur : ils sont donc destinés uniquement à des utilisateurs humains.

Ces jetons, basés sur le concept de ce que l’on possède, sont utilisés comme authentifiant unitaire, et couramment dans un processus de double authentification, que nous aborderons dans la troisième partie de ce dossier, où ils peuvent être particulièrement pertinents.

Il ne faut pas confondre les jetons d’authentification avec les jetons de session : ces derniers sont uniquement des fichiers, comme les « cookies de session » avec les applications web ou des tickets SSO, qui stockent des informations temporaires, validant une précédente authentification, quelle qu’elle soit, y compris via un jeton d’authentification, et permettent d’éviter de s’authentifier à nouveau sur d’autres services, durant un certain temps.

Le jeton d’authentification, qu’il soit matériel ou logiciel (ce dernier étant installé sur un matériel), engendre des risques propres :

  • Un jeton matériel peut être oublié, perdu, copié, volé, ou détérioré physiquement, y compris accidentellement. De plus, il est difficile de le mettre à jour : sa partie logicielle peut éventuellement l’être, mais sa partie matérielle nécessite généralement de changer complètement le jeton, ce qui a un coût non négligeable surtout s’il y a des milliers de jetons à renouveler et distribuer. De plus, il faudra que l’utilisateur garde ce matériel avec lui et le protège convenablement, et donc qu’il protège l’accès au dispositif matériel lui-même et restreigne son utilisation, en tout temps et tous lieux, y compris lorsqu’il ne l’utilise pas : en week-end, en congé, etc. ;
  • Avec un jeton logiciel installé sur un ordinateur ou un smartphone par exemple, on retrouve les aléas propres à n’importe quel logiciel : il pourrait être altéré, copié, corrompu ou espionné par un logiciel malveillant (malware). Lors de son installation ou sa mise à jour (si elle est manuelle), il peut être usurpé par une fausse application, qui se fait passer pour l’application légitime. Cependant, sa mise à jour s’avère plus simple et moins coûteuse qu’un jeton matériel.

Les jetons peuvent être utilisés de différentes manières (selon le fournisseur) :

  • Le jeton génère un authentifiant dynamique (OTP, TOTP), différent à chaque usage, c’est-à-dire qu’ils n’utilisent pas un authentifiant fixe, mais un algorithme dépendant de différent facteurs, tels que la date et l’heure et/ou basés sur un mécanisme de défi-réponse (voir précédemment) avec le vérifieur. Dans ce cas, il doit être connecté avec le fournisseur de service, ce qui est plus simple avec une application sur ordinateur ou smartphone, qu’avec un jeton matériel. Cela peut ajouter un risque si le protocole de communication n’est pas sécurisé (SMS ou autres) ;
  • Le jeton matériel contient un authentifiant fixe qu’il protège, il se comporte donc comme un coffre-fort numérique transportable ;
  • De plus, dans ces deux cas ci-dessus, notamment s’il s’agit d’un jeton matériel, son utilisation peut être restreinte, par exemple grâce à un code secret ou une empreinte biométrique.

Il semble qu’un jeton d’authentification matériel fasse courir a priori peu de risques pour la vie privée de son utilisateur, toutefois, avec un jeton logiciel installé sur un ordinateur, et plus encore sur un smartphone, cela dépend essentiellement des bonnes intentions du fournisseur du jeton, car celui-ci peut avoir accès à de nombreuses informations confidentielles et/ou personnelles, que le terminal soit privé ou professionnel. Il convient d’être particulièrement vigilant dans l’utilisation des jetons logiciels concernant les aspects « privacy ».

Atouts Faiblesses
  • Basé sur ce que l’on possède (sécurité physique) contrairement à la plupart des autres techniques d’authentification.
  • (selon le type de jeton) Authentification dynamique : change à chaque utilisation.
  • (si jeton matériel) Difficile à copier, altérer ou espionner.
  • (si jeton logiciel) Plus aisé à mettre à jour, à maintenir.
  • Oubli, perte, copie, vol, destruction, panne du support physique du jeton matériel, ou du dispositif hébergeant un jeton logiciel (exemple : smartphone).
  • (si jeton matériel) Mise à jour et renouvellement complexe et/ou coûteux.
  • (si jeton logiciel) Peut être altéré, espionné, corrompu, voire copié.
  • Difficulté lors de la diffusion à un grand nombre d’utilisateurs : livraisons de jetons matériels dans le monde physique, ou compatibilités des jetons logiciels avec tous les types de smartphones par exemple.
  • Produisent parfois de simples codes alphanumériques, voire numériques, avec trop peu de combinaisons (exemple : de 6 à 10 chiffres, très faible entropie).
  • La sécurité peut être « opaque » si le jeton matériel ou logiciel n’est pas open source, ou non issu d’une norme « ouverte ».

Clefs publiques ou clefs de passe (passkeys)

Cette forme d’authentification s’appuie et doit se baser exclusivement sur des protocoles et algorithmes cryptologiques (on parle aussi de cryptosystèmes), éprouvés et constamment renforcés en matière de sécurité, comme c’est le cas depuis des décennies avec les normes (et non les standards) cryptologiques.

Il s’agit d’un authentifiant robuste par nature, et basé sur ce que l’on possède, qui peut être une clef matérielle (cf. les jetons d’authentification, mais attention, tous les jetons ne sont pas des clefs de passe au sens de cette section) ou une clef logicielle (présentée ci-dessous). Dans les deux cas, une clef de passe doit reposer sur les principes suivants pour espérer être considérée comme robuste.

Les clefs de passe, ou clef d’authentification, sont basées sur une branche de la cryptologie, nommée cryptolographie asymétrique (ou cryptographie à clef publique), qui nécessite que le prouveur, que l’on nomme habituellement « Alice », et le vérifieur, que l’on nomme « Bob », produisent chacun une paire de clefs. Au sein de chaque paire, les deux clefs sont solidaires l’une de l’autre par un lien mathématique : une clef dite « publique », et une clef dite « privée ». Les deux sont nécessaires, et utilisées, dans un processus d’authentification :

  • La clef publique doit être échangée entre les deux protagonistes, d’où son nom, toutefois cela ne signifie pas qu’elle doit être obligatoirement mise à disposition de tous, mais elle peut être échangée par un média non sécurisé : courriel, SMS, etc. La copie de la clef publique d’Alice servira à Bob pour vérifier l’authentification d’Alice.
  • La clef privée doit rester parfaitement secrète (critère rédhibitoire !), et par conséquent uniquement détenue par son propriétaire. La clef privée d’Alice lui servira à prouver son identité à Bob.

Nous n’allons pas détailler ici les algorithmes utilisés en cryptographie asymétrique, pour l’essentiel basés sur des problèmes mathématiques variés, tels que le logarithme discret, la factorisation, les réseaux euclidiens ou encore les codes correcteurs. De plus, leur fonctionnement appliqué, pour l’authentification notamment, s’appuient en réalité sur des processus. On parle de protocoles cryptographiques, utilisant plusieurs algorithmes cryptologiques : cryptographie asymétrique, hachage cryptographique, signature…

Anecdote historique : ceux qui connaissent déjà la cryptologie à clef publique, ont certainement entendu parler de DIFFIE-HELLMAN (les inventeurs de l’échange de clefs DH, en 1976), et RIVEST-SHAMIR-ADLEMAN (les inventeurs de la cryptologie asymétrique RSA, en 1978). Beaucoup moins de monde sait, car cela n’a été rendu public qu’en 1997, qu’en fait ils ont été devancés de quelques années – ce qui n’enlève rien à leurs découvertes et leurs talents – par des chercheurs tenus au secret défense, car travaillant au GCHQ (centre de renseignement des télécommunications du Royaume-Uni). Respectivement, il s’agissait de James ELLIS (pour un système d’échange de clefs proche de celui de DH), et Clifford COCKS (pour le système RSA). Pour les plus curieux, je vous renvoie à l’excellent livre (accessible à tous) « Histoire des codes secrets : de l’Egypte des Pharaons à l’ordinateur quantique » de Simon SINGH.

Officiellement, dans le monde public, personne n’a jamais réussi à « casser » les algorithmes asymétriques couramment employés, du moins pas ceux qui sont normalisés et utilisés en masse. En général, ce qui est « cassé », ce sont certaines implémentations de protocoles et d’algorithmes cryptologiques, ou de versions volontairement affaiblies à des fins d’études. Bien entendu, cet « argument » ne fournit aucune garantie pour l’avenir, mais le milieu de la cryptologie semble confiant, grâce à toutes les recherches qui ont été faites sur ces algorithmes depuis des décennies, et toutes les améliorations au cours du temps.

Précision : bien entendu, la complexité des clefs cryptographiques a continuellement augmenté pour tenir compte de l’évolution de la puissance des ordinateurs et l’amélioration des techniques (notamment mathématiques) d’attaque.

La génération, l’utilisation et la conservation des paires de clefs nécessitent tout de même certaines précautions, il convient de respecter des normes et des caractéristiques précises : par exemple, il est possible de produire des clefs faibles, et la sécurité peut être compromise si les clefs privées ne sont pas conservées parfaitement secrètes.

Comme n’importe quel authentifiant, il est crucial de protéger correctement l’accès à sa clef privée, et sur tous les périphériques (ordinateurs, smartphones, etc.). Les techniques les plus courantes sont d’utiliser un mot de passe verrouillant l’accès à la clef privée et/ou de stocker la clef dans un coffre-fort numérique, dont il existe de nombreuses formes, ce dernier étant protégé par un authentifiant fort, qui est souvent… un mot de passe. On observe qu’au final, on retrouve des mots de passe partout, avec leur cortège d’avantages et d’inconvénients.

Les deux implémentations les plus connues d’authentification par clefs sont les clefs SSH, pour authentifier un utilisateur ou un système informatique auprès d’un serveur ou d’un service, et les certificats numériques, pour authentifier les serveurs web notamment.

Les clefs publiques, comme les clefs privées d’ailleurs, se présentent généralement comme de simples petits fichiers contenant un nombre très grand (encodé en base64 en général) : rien de bien effrayant en réalité ! Voici à quoi ressemble une clef publique robuste, fictive, et générée en moins de 2 minutes avec un logiciel adéquat :

ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBADHjDvj
qYc28gTTlKeuf76VQBJAFmc3VNSAaT7ThJLwx8DPUQb1Zh0ugUdNEoGVk7/swH3QjMVJH9G2YxIIELow
7gBQlT+OKybAGQuUcBOQDTb/fZhiTtibiPZ9BwCzFntqd6JZOpVSV1tbsZOrwh5p2jBVX8vMuSDgheeP
iKHahvBYyQ== ecdsa-key-20230209

Bien entendu, l’utilisateur n’aura pas à mémoriser cette valeur, ou la recopier manuellement à chaque authentification, sinon ce ne serait pas plus pratique qu’un mot de passe 😉 : il « charge » simplement sa clef privée dans le dispositif qu’il utilise pour se connecter (ordinateur, smartphone, logiciel ou application), et c’est ce dispositif qui va se charger de son authentification, de manière transparente, en utilisant sa clef privée. Cependant, si le dispositif lui-même est mal conçu ou mal sécurisé, la clef privée pourrait fuiter par ce biais… Bien entendu, cela implique que le dispositif supporte ce type d’authentifiant et que le fournisseur des ressources accédées l’autorise.

Il est possible d’utiliser la même paire de clefs pour s’authentifier auprès de plusieurs ressources, ce qui est préférable par un utilisateur humain, ou en générer une par ressource, ce qui est préférable entre systèmes informatiques, au choix.

Atouts Faiblesses
  • C’est l’un des rares mécanismes d’authentification réellement robuste et sûr à ce jour, notamment parce qu’il n’est pas choisi par l’utilisateur car généré aléatoirement !
  • L’authentifiant ne peut être prêté, ou utilisé par plusieurs utilisateurs, s’ils respectent le principe crucial de garder secrètes leurs clef privées.
  • Pas de besoin de mémorisation, sauf pour l’authentifiant protégeant l’accès à la clef privée.
  • Une même paire de clefs peut être utilisée pour s’authentifier sur plusieurs services (si chaque service le supporte), même s’il est aisé de produire une paire de clefs spécifique à chaque service, ce qui peut être compliqué à gérer ensuite.
  • Aucun impact sur les données personnelles, et n’impose pas de fournir d’autres informations personnelles aux services accédés.
  • Authentifiant aisé à renouveler, ou à changer, par exemple en cas de fuite de données côté fournisseur des ressources accédées.
  • Authentification multi-facteurs inutile avec ce type d’authentifiant.
  • Relative complexité d’utilisation, mais moins contraignante que d’autres mécanismes. Des éditeurs de solutions travaillent à généraliser et simplifier leur usage.
  • Authentifiant statique car la clef publique ne change pas à chaque authentification.
  • Pour s’authentifier depuis plusieurs périphériques (ordinateurs, smartphones, etc.) il faut charger sa clef privée sur chacun, de manière sécurisée, mais une seule fois.
  • La protection des clefs privées, comme tout authentifiant, est cruciale (par exemple contre le vol ou la copie). Celle-ci est souvent réalisée par mot de passe : celui-ci doit donc être particulièrement robuste et il faut le mémoriser. Se méfier des systèmes qui ne demandent aucun mot de passe de protection de ses clefs.
  • Relativement peu de services destinés à des utilisateurs humains proposent ce type d’authentification, mais c’est très courant entre matériels et/ou logiciels informatiques.

Cet article vous a, je l’espère, apporté des éléments de compréhension sur ce qui caractérise véritablement une authentification forte et sur une partie des mécanismes d’authentification très souvent utilisés. La troisième partie de ce dossier fera la part belle à d’autres mécanismes très courants de nos jours tels que la biométrie mais également les systèmes d’authentification multi-facteurs

Date

16 octobre 2023

Auteur