Quelle est la différence entre un mot de passe et un code PIN ?
Après tout, l’un comme l’autre constitue un secret partagé utilisé à des fins d’authentification de l’utilisateur. Qu’est-ce qui les départage ?
L’un des aspects de la sphère de la gestion des identités et des accès sur lequel je me suis toujours interrogé est la différence entre les mots de passe et les codes PIN. J’entendais les fournisseurs parler des deux comme s’ils étaient différents, mais je ne comprenais pas tout de suite pourquoi.
J’ai donc décidé de m’informer sur le sujet et j’ai pensé partager ce que j’ai appris avec tous ceux qui pourraient aussi être confus (à moins que je ne sois le seul…).
Qu’est-ce qu’un mot de passe ?
Les mots de passe restent la méthode la plus courante pour authentifier un compte. Un mot de passe est ce que l’on appelle un secret partagé, c’est-à-dire une donnée connue uniquement des personnes impliquées dans une communication ; il sert à prouver à une partie que l’autre est bien celle qu’elle prétend être. Les mots de passe sont la méthode la plus traditionnelle de protection des comptes.
Las, les mots de passe sont nuls, pour dire les choses crûment. Grâce à des règles de complexité malavisées recommandées en 2003 par le NIST (et dont il s’est détourné en 2017), les mots de passe peuvent être difficiles à retenir pour la plupart des gens, tout en restant assez faciles à craquer pour les logiciels. Cela ne tient même pas compte du fait que de nombreuses personnes réutilisent simplement les mots de passe sur plusieurs sites ou en utilisent des facilement devinables. Par exemple, Troy Hunt, créateur de HaveIbeenpwned, estime que 86 % des mots de passe utilisés sur un site figurent en fait dans sa base de données de mots de passe volés lors de brèches. Chacune d’entre elles vient potentiellement compléter ce qui peut être vu comme un énorme dictionnaire à la disposition des attaquants.
Qu’est-ce qu’un code PIN ?
Les mots de passe ne sont donc pas très efficaces pour protéger les comptes, mais en quoi les codes PIN sont-ils différents ? Bien qu’un code PIN puisse sembler identique à un mot de passe lorsqu’on y pense pour la première fois (les utilisateurs doivent se souvenir des deux), ils ont un objectif différent.
Les codes PIN ne sont pas identiques aux mots de passe, car ils sont généralement liés aux appareils que vous utilisez. Dans de rares cas, vous pouvez créer un code PIN pour une application Web – certaines banques françaises s’appuient dessus – mais en général, ils servent à l’authentification locale.
Et c’est là que réside la différence entre les PIN et les mots de passe : l’authentification locale par rapport à l’authentification à distance. Vous utilisez un PIN pour déverrouiller votre appareil, mais vous utilisez rarement un mot de passe pour le faire. Les codes PIN sont généralement plus courts que les mots de passe (4 à 6 caractères contre plus de 8), mais il est possible de les allonger si vous le souhaitez.
Authentification locale ou distante
Nous devons discuter du sujet réel de cette conversation sur les codes PIN et les mots de passe : l’authentification locale par rapport à l’authentification à distance. Après tout, un mot de passe vérifié à distance peut être court (s’il est autorisé) et similaire à un code PIN, tandis que vous pouvez créer un code alphanumérique long et complexe.
Mais souvent, surtout avec les appareils mobiles, le chiffrement local des appareils utilise des secrets mémorisés plus courts. Pendant ce temps, l’authentification à distance implique l’utilisation d’un fournisseur d’identité (IdP, ou Identity Provider) ou d’un répertoire, nécessitant l’utilisation du mot de passe, et la plupart des gens appellent l’un PIN et l’autre mot de passe.
L’essentiel est de comprendre ce qu’ils font : l’un décrypte un dispositif ou authentifie auprès d’un système local, tandis que l’autre permet de s’authentifier via un service IdP distant. Le modèle de menace pour le dispositif signifie qu’un code PIN plus court et moins complexe convient, tandis que le serveur distant implique que vous voulez plus de complexité. (Mais encore une fois, vous voulez plus qu’un simple mot de passe de toute façon !)
Comment Microsoft, Apple et Android gèrent-ils les codes PIN ?
Microsoft encourage les utilisateurs à créer un code PIN pour se connecter à n’importe quel appareil via Windows 10 Hello, tout en utilisant les données biométriques de l’appareil. Le code PIN est lié à un appareil spécifique (vous êtes invité à en créer un unique pour chaque appareil puisque le code PIN n’est pas partagé) et reste local, ce qui réduit le risque de violation si quelqu’un découvre le mot de passe d’un utilisateur.
La plupart des smartphones demandent aux utilisateurs de créer un code PIN (ainsi que des données biométriques, si possible) pour déverrouiller leur appareil. La longueur plus courte du code PIN le rend plus facile à craquer qu’un mot de passe en raison des options de combinaison plus limitées (la plupart utilisent des chiffres, mais avec Windows Hello, il peut s’agir de n’importe quel caractère).
À première vue, les codes PIN semblent donc être intrinsèquement moins sûrs en raison de leur longueur plus courte et donc des possibilités de combinaison plus limitées (lorsqu’ils sont limités à des chiffres, bien sûr). Mais ce n’est pas un problème aussi important étant donné que le code PIN reste local, ce qui signifie que les attaquants doivent avoir un accès physique à votre appareil. En outre, la plupart des appareils limitent le nombre de fois où l’on peut essayer de deviner votre code PIN avant qu’une action ne soit effectuée, ce qui réduit l’efficacité d’une attaque par force brute.
Apple utilise un code PIN comme méthode d’authentification initiale avant d’ajouter la biométrie pour les appareils iOS. À partir de Réglages > Face ID & Passcode, les utilisateurs peuvent configurer un appareil iOS pour qu’il supprime toutes les données après 10 tentatives infructueuses, rendant ainsi incroyablement difficile une attaque par force brute sur l’appareil. En outre, Apple a mis en place des délais entre plusieurs tentatives de connexion infructueuses, que vous pouvez découvrir dans le Guide de sécurité iOS [PDF].
Android désigne la méthode d’authentification locale par un mot de passe (ou un motif), qui est géré par Gatekeeper. L’utilisateur crée un secret partagé entre lui et le Trusted Execution Environment. Tout comme iOS, Android peut ralentir les attaques par force brute en instaurant un délai d’attente après plusieurs tentatives de connexion infructueuses.
Dissiper la confusion entre mot de passe et code PIN
Cet article a été pensé pour aider les personnes qui, comme moi, n’ont pas bien compris les différences entre les mots de passe et les codes PIN. Si les mots de passe et les codes PIN semblent identiques à première vue, ils servent en réalité de méthodes d’authentification à distance par rapport aux méthodes d’authentification locales, ce qui explique pourquoi un code PIN peut être approuvé par la FIDO, alors que les mots de passe ne le sont pas.
J’ai en partie été attiré par ce sujet par la façon dont certains fournisseurs promeuvent leurs solutions comme étant « sans mot de passe », mais autorisent toujours un secret mémorisé (un PIN) comme option d’authentification. Cela a créé une confusion inutile chez moi ; donc, une fois de plus, un « merci » aux spécialistes du marketing pour rendre la vie de chacun un peu plus difficile.