Brevet FR3162878A1 — publié le 20251205

La présente invention présente un procédé permettant pour une saisie sécurisée d’un secret sur un appareil tiers en vue de réaliser une authentification sur un appareil de sécurité connecté à l’appareil tiers ou pour personnaliser un secret initial dans cet appareil de sécurité. L’utilisation d’une table de correspondance affichée sur l’appareil de sécurité permet d’ajouter un masque sur la valeur du secret manipulé par l’appareil tiers. Méthode de gestion d’un secret utilisateur dans un appareil de sécurité La présente invention présente un procédé de gestion sécurisée d’un secret utilisateur (par exemple le numéro d’identification personnel aussi appelé code PIN, ou tout autre secret) dans un appareil de sécurité (pouvant par exemple être une clé FIDO ou encore un portefeuille matériel de crypto-monnaie) ayant une interface utilisateur physique limitée et pouvant mettre à profit les fonctions d’interface utilisateur d’un appareil tiers (ordinateur, téléphone ou tablette) pour sécuriser et faciliter l’expérience utilisateur de gestion d’un secret. Certaines applications utilisent aujourd’hui un clavier virtuel mélangé pour sécuriser la saisie d’un mot de passe. C’est le cas par exemple pour certaines banques françaises qui implémentent ce principe depuis plusieurs années. Cette technique permet notamment de se prémunir contre un espionnage des périphériques d’entrée de l’utilisateur (clavier et souris) puisque le clavier virtuel est mélangé à chaque fois que l’utilisateur entre son mot de passe. Ce principe n’est cependant pas suffisant si un attaquant a la capacité de capturer à la fois ce qui est affiché à l’utilisateur et également les périphériques d’entrée de l’utilisateur. La vulnérabilité principale repose ici sur le fait que l’intégralité du processus de recueil des informations d’identification de l’utilisateur s’exécute sur une seule machine. Cette dernière pouvant être compromise par un attaquant, il est difficile de pouvoir accorder toute sa confiance dans ce mécanisme d’authentification. La présente invention propose de s’inspirer et d’améliorer cette solution pour permettre à un utilisateur d’initialiser, mettre à jour ou valider son secret sur un appareil de sécurité dans le cas où : l’appareil de sécurité ne dispose pas physiquement d’un clavier (ou tout autre dispositif similaire) permettant la saisie directe du secret sur l’appareil lui-même, l’appareil de sécurité dispose physiquement d’un écran suffisamment grand pour permettre l’affichage, par exemple, d’un clavier virtuel, un appareil tiers (par exemple ordinateur, téléphone ou tablette) est utilisé pour recueillir la saisie de l’utilisateur. L’appareil tiers, servant à recueillir la saisie de l’utilisateur, qui peut ne pas être de confiance (il peut par exemple ne pas appartenir à l’utilisateur ou il peut aussi être infecté par un virus), ne doit pas être en mesure de connaître la valeur du secret de l’utilisateur pour garantir l’intégrité de l’appareil de sécurité. De ce fait, le secret de l’utilisateur ne doit pas, par exemple, être saisi en clair sur l’appareil tiers. L’appareil de sécurité est, par définition, considéré comme étant de confiance puisque c’est un périphérique dédié à la réalisation d’opérations sensibles et qu’il a possiblement suivi un processus de certification de haut niveau. Il est donc considéré comme hautement improbable que l’appareil de sécurité soit lui-même sous le contrôle d’un attaquant. Dans la configuration décrite au paragraphe [0005], et en prenant en compte les prérequis décrits dans les paragraphes [0006] et [0007], la présente invention propose donc d’utiliser l’appareil tiers afin de fournir une interface adaptée pour la saisie du secret et d’utiliser l’écran de l’appareil de sécurité afin de masquer la valeur réelle du secret à l’appareil tiers. Par cette proposition, la compromission du secret est rendue impossible même si l’appareil tiers est sous le contrôle d’un attaquant, le tout en gardant une expérience utilisateur la plus fluide possible. La séquence suivante est donc proposée pour recueillir de façon sécurisée le secret de l’utilisateur (voir aussi l’illustration fournie dans FIG. 1 ) : l’utilisateur connecte son appareil de sécurité à un appareil tiers (la connexion peut se faire à travers tout type de protocole : USB, Bluetooth, etc.), et utilise l’application adaptée pour que les deux appareils puissent dialoguer ensemble, l’utilisateur réalise une action déclenchant la demande de saisie du secret, ce qui provoque les deux évènements suivants : l’appareil de sécurité affiche une table de correspondance permettant d’assigner de façon mélangée un caractère donné à un autre caractère (voir [Fig 2] pour un exemple de table de correspondance utilisant uniquement des chiffres). Chaque fois que l’utilisateur veut envoyer son secret, un nouveau mélange de la table de correspondance est réalisé, l’appareil tiers présente à l’utilisateur un champ de saisie textuel, en utilisant la table de correspondance affichée sur son appareil de sécurité, l’utilisateur entre dans le champ textuel de l’appareil tiers le code dynamique correspondant à son secret (par exemple, si le secret de l’utilisateur est ‘1234’, le code dynamique de l’utilisateur serait ‘2731’ en utilisant la table de correspondance donnée en exemple dans FIG. 2 ), l’utilisateur valide ensuite son entrée, ce qui déclenche l’envoi du code dynamique vers l’appareil de sécurité. Ce dernier, connaissant le mélange de la table de correspondance, est capable de traduire le code dynamique pour obtenir la valeur réelle du secret que l’utilisateur veut transmettre. L’appareil tiers, ne connaissant pas le mélange de la table de correspondance, est incapable de reconstruire le secret de l’utilisateur à partir du code dynamique saisi par l’utilisateur. La table de correspondance changeant à chaque soumission du secret, l’appareil tiers ne peut également pas connaître à l’avance la bonne valeur du code dynamique à envoyer. L’appareil de sécurité étant de confiance, il est considéré comme étant hautement improbable qu’un attaquant parvienne à contrôler l’appareil tiers ainsi que l’appareil de sécurité pour retrouver la valeur réelle du secret. La séquence décrite dans le paragraphe [0009] est utilisable à la fois pour l’initialisation du secret de l’utilisateur lors de la personnalisation initiale de l’appareil de sécurité mais aussi par exemple à chaque fois que l’utilisateur a besoin de s’authentifier à l’aide de son secret. A noter que, bien que l’appareil tiers ne puisse pas retrouver le secret réel de l’utilisateur, l’appareil tiers peut récupérer une information partielle du secret réel en utilisant le code dynamique. En effet, prenons les deux exemples suivant (en utilisant toujours FIG. 2 comme table de correspondance) : Si le secret est ‘0000’, l’utilisateur utilisera le code dynamique ‘8888’ et par conséquent, l’appareil tiers peut déduire que le secret de l’utilisateur est composé de quatre chiffres identiques, ce qui réduit le nombre de possibilités du secret. De même, si le secret est ‘1234’, l’utilisateur utilisera le code dynamique ‘2731’, et là aussi, l’appareil tiers peut déduire qu’il n’y a aucune répétition de chiffre dans le code de l’utilisateur, ce qui a également pour conséquence de réduire le nombre de secrets possibles. Cependant, cette fuite d’information peut être contrecarrée en utilisant une des propositions suivantes ou en utilisant une combinaison de ces propositions : Similairement à une carte bancaire, la présence d’un compteur d’essais dans l’appareil de sécurité permet d’empêcher la réalisation d’une attaque en force brute. Le compteur d’essai doit être suffisamment petit pour être efficace. Plus la taille du secret sera élevée, plus il sera difficile d’exploiter la fuite d’informations expliquée au paragraphe [0012]. L’utilisation d’un secret ayant le moins de répétition de chiffre possible permet également de réduire l’exploitation d’une fuite telle que décrite au paragraphe [0012]. L’utilisation d’une table de correspondance unique par caractère alphanumérique du secret permet de supprimer entièrement les risques détaillés au paragraphe [0012]. Cette option nécessite cependant que l’utilisateur réalise une action (par exemple appuyer sur un bouton) pour indiquer à l’appareil de sécurité de passer à la table de correspondance suivante, ce qui peut réduire l’expérience utilisateur. Nous prendrons comme exemple l'application FIDO2 bien connue et standardisée qui fournit un moyen d'authentifier les utilisateurs sans mot de passe en toute sécurité, tout en préservant la vie privée. Les services en ligne (par exemple les sites Web) peuvent utiliser cette spécification en implémentant le côté serveur du protocole FIDO2. Ce protocole et ces applications remplacent le nom d'utilisateur et les mots de passe en utilisant la cryptographie à clé publique d'une manière pratique qui préserve également la vie privée de l'utilisateur. Considérons, à titre d’exemple, que : notre appareil de sécurité est un appareil FIDO2, avec un écran et un bouton ; notre appareil tiers est un ordinateur Windows 11 ; nos deux appareils ont la capacité de réaliser une connexion Bluetooth. Le code PIN de l’appareil FIDO2 n’est pas encore personnalisé. La séquence suivante peut donc être exécutée : L’utilisateur connecte son appareil FIDO2 à son ordinateur. L’utilisateur déclenche la personnalisation de son code PIN en réalisant les deux actions suivantes : Un appui sur le bouton de l’appareil FIDO2 déclenche l’affichage de la table de correspondance (avec un nouveau mélange). En utilisant l’interface de configuration d’une clé physique disponible dans les paramètres Windows, l’utilisateur obtient le champ d’entrée permettant la saisie de son code PIN. L’utilisateur entre le code dynamique correspondant au code PIN qu’il a choisi. La validation de l’entrée de l’utilisateur déclenche l’envoi du code dynamique à travers le protocole FIDO2 standard. L’appareil FIDO2 reçoit et traduit le code dynamique en code PIN réel. Après cette première initialisation du code PIN, l’utilisateur peut utiliser son appareil FIDO2 avec un site Web qui implémente le protocole FIDO2 pour être authentifié sans mot de passe : L’utilisateur connecte son appareil FIDO2 à son ordinateur. L’utilisateur navigue vers le site Web avec le navigateur internet de son ordinateur et accède à la page d’authentification. Le protocole FIDO2 se déclenche : L’appareil FIDO2 affiche la table de correspondance (avec un nouveau mélange). Le navigateur demande le code PIN de l’utilisateur pour que l’appareil FIDO2 puisse l’authentifier. L’utilisateur entre le code dynamique correspondant au code PIN qu’il a personnalisé (voir paragraphe [0015]). La validation de l’entrée de l’utilisateur déclenche l’envoi du code dynamique à travers le protocole FIDO2 standard. L’appareil FIDO2 reçoit et traduit le code dynamique en code PIN réel. Enfin, si le code PIN est correct, l‘authentification de l’utilisateur sur le site Web se poursuit selon le protocole standard FIDO2. Considérons, à titre d’un autre exemple, que : notre appareil de sécurité est un portefeuille matériel Bitcoin, avec un écran et deux boutons ; notre appareil tiers est un ordinateur Windows 11 ; nos deux appareils ont la capacité de réaliser une connexion Bluetooth. Nous considérons le cas où l’utilisateur veut importer ses clés privés d’un autre portefeuille Bitcoin. Pour cela l’utilisateur doit introduire un secret initial qui est représenté par 24 mots. La séquence suivante doit donc être exécutée : L’utilisateur connecte son appareil de sécurité à son ordinateur. L’utilisateur déclenche l’importation de ses clés privés en utilisant l’interface utilisateur de son application portefeuille Bitcoin qu’il a installé sur Windows, ce qui déclenche les actions suivantes : L’application portefeuille Bitcoin sur Windows notifie l’application Bitcoin dans l’appareil de sécurité de cette action et celle-ci affiche une table de correspondance alphanumérique (avec un nouveau mélange) sur l’écran de l’appareil de sécurité. Si l’écran de l’appareil de sécurité est trop petit pour afficher la totalité de cette table de correspondance seulement la première partie de cette table est affiché et l’utilisateur peut passer aux parties suivants en appuyant sur un bouton de l’appareil de sécurité ou revenir en arrière avec un autre bouton. L’application portefeuille Bitcoin sur Windows affiche un champ de saisie à l’utilisateur. L’utilisateur entre le code dynamique correspondant à chaque mot qu’il doit saisir. Pour chaque mot, la validation du champ de saisie de l’utilisateur déclenche l’envoi du code dynamique à travers le protocole Bluetooth vers l’appareil de sécurité. L’appareil de sécurité reçoit et traduit le code dynamique. Le mot traduit est affiché sur l’écran de l’appareil de sécurité et l’utilisateur peut vérifier s’il est correct avant de le valider et passer au mot suivant à l’aide d’un bouton de l’appareil de sécurité. Après validation de chaque mot dans la série de 24 mots l’importation est finalisée et l’appareil de sécurité génère les clés de l’utilisateur. Un procédé de gestion de secret de l’utilisateur par un appareil de sécurité muni d’un écran mais sans clavier qui est connecté à un autre appareil qui dispose d’un clavier, ou autres moyens des saisies, selon les étapes suivantes : L’appareil de sécurité affiche sur son écran un tableau de correspondances des caractères alphanumériques dans lequel chaque caractère alphanumérique est attribué à un autre caractère alphanumérique. L’utilisateur saisit le code dynamique sur l’autre appareil qui est connecté à l’appareil de sécurité en utilisant le tableau de correspondance affiché par l’appareil de sécurité et en choisissant, pour chaque caractère alphanumérique du secret, le caractère alphanumérique qui est attribué au caractère alphanumérique original de son secret à la place du caractère alphanumérique original. L’appareil connecté envoie le code dynamique ainsi saisi par l’utilisateur à l’appareil de sécurité en utilisant leur canal de communication. L’appareil de sécurité reçoit le code dynamique et remplace chaque caractère alphanumérique comprenant ce code par le caractère alphanumérique original dans le tableau de correspondance pour retrouver le secret original. L’appareil de sécurité utilise le secret ainsi déchiffré pour initialiser ou mettre à jour le secret de l’appareil de sécurité ou pour valider ou refuser celui-ci lors d’une procédure d’authentification. Un procédé d’authentification de l’utilisateur par un appareil de sécurité selon la [Revendication 1] qui est utilisé pour la saisie d’un code PIN numérique en utilisant un tableau de correspondance numérique à la place d’un tableau alphanumérique. Un procédé d’authentification d’utilisateur par un appareil de sécurité selon les [Revendications 1 & 2] dans lequel le tableau de correspondance change d’une manière aléatoire pour chaque demande de saisie du secret par l’utilisateur Un procédé selon les [Revendications 1 & 2] qui est utilisé pour la phase de l’initialisation du secret de l’utilisateur lors de la personnalisation initiale de l’appareil de sécurité. Un procédé selon les [Revendications 1 & 2] qui permet d’afficher le tableau de correspondance sur plusieurs écrans consécutifs (s’il est trop grand) et en permettant à l’utilisateur de naviguer entre les différents écrans en utilisant des buttons de navigation sur l’appareil de sécurité ou sur l’appareil adjoint. Un appareil de sécurité muni d’un écran mais sans clavier qui dispose d’un ou plusieurs moyens de communications tel que USB, Bluetooth, NFC ou autres et qui implémente le procédé selon les [Revendications 1 & 2] en communiquant avec un appareil adjoint tel qu’un PC ou téléphone ou autre appareil qui dispose de moyens de saisie. Un appareil de sécurité selon la [Revendication 6] qui peut rejeter les choix d’un secret par l’utilisateur dans la procédure de la personnalisation initiale de l’appareil de sécurité si ce secret intègre des répétitions de caractères alphanumériques qui fragilisent le secret. Un appareil de sécurité selon la [Revendication 6] qui peut avoir la forme d’une carte à puce ou un dongle USB.