Billets
Gestion de mots de passe avancée pour une vie digitale ultra sécurisée
La question épineuse de la sécurité de notre vie digitale n’a fait que se complexifier au fil des années, du fait de notre usage de plus en plus massif de toutes sortes de contenus numériques. Les enjeux financiers se cachant derrière nos données pouvant parfois être colossaux, il est normal qu’elles aient dès le début attisé la convoitise de toutes sortes de personnes peu scrupuleuses. Et il va s’en dire que, même si toutes sortes de mécanismes ont été mis en place pour mieux protéger nos données, les techniques pour les dérober n’ont jamais cessé de croitre en ingéniosité.
Il existe déjà de nombreux guides discutant sur ce qui différencie un bon d’un mauvais mot de passe, de la nécessité d’activer la double authentification quand cela est possible, ou bien encore sur l’emploi de gestionnaires de mots de passe. Tous ces conseils devraient du reste satisfaire la vaste majorité des utilisateurs, ceux-ci désirant en général seulement accéder sans trop de contraintes à leur messagerie ou réseau social préféré. La compromission de ces accès peu d’ailleurs ne pas sembler si grave et se réduisant bien souvent à quelques contrariétés pour les récupérer. Même le piratage d’un service bancaire comme Paypal peut paraitre avoir un impact limité puisque l’organisme qui est derrière assure vos arrières et peut bloquer des paiements illicites et vous rembourser l’argent perdu.
Pour tous ces utilisateurs, je conseillerai simplement de s’en tenir aux règles pratiques de base:
- employer un gestionnaire de mot de passe dans lequel stocker un mot de passe fort et unique pour chaque accès;
- activer la double authentification;
- avoir un antivirus à jour;
- se méfier des techniques d’hameçonnage et autres arnaques diverses.
Mais si vous continuez cette lecture, peut-être faites-vous partie d’une minorité de personnes apercevant les lacunes inhérentes à cette approche minimaliste. Peut-être ressentez-vous le besoin de protéger des données qui ne peuvent en aucun cas se satisfaire d’un “à peu près” sécurisé, ou peut-être ont vous des contraintes qui vont au-delà des cas d’utilisation standards.
Pour fixer un cas concret que tout le monde comprendra bien en 2021, imaginons que vous soyez le millionnaire en cryptomonnaies que j’aurais pu être si j’avais été un peu plus visionnaire. Cette technologie est basée sur l’utilisation d’une paire de clé publique, clé privée, cette dernière étant indispensable pour dépenser votre argent. Ici, il n’y a aura pas un PayPal qui volera à votre secours si vous égarez votre clé ou si quelqu’un la dérobe et siphonne vos comptes. Ici, vous êtes tout seul.
Bien sûr, dans ce cas de figure, vous n’aurez pas manqué d’investir dans un portefeuille électronique pour éviter que vos clés privées trainent sur un PC potentiellement corrompu. Mais le problème est loin d’être résolu pour autant: cette clé peut être détruite ou perdue par accident et il vous faudra donc mettre en place un mécanisme de sauvegarde de votre phrase de récupération. La méthode recommandée consiste alors à graver cette phrase dans une plaque en métal et à la mettre dans un coffre-fort (l’encre et le papier sont très fragiles et se détériorent avec le temps). Cette procédure est sure, mais peu pratique. Aussi, si certains y consentent pour protéger leurs cryptomonnaies, je doute qu’ils l’appliquent aussi pour préserver d’autres données numériques. Je suis également à peu près certain que beaucoup simplifieront certaines étapes pour se faciliter la vie, augmentant de ce fait leur vulnérabilité. Enfin, pour finir, avez-vous vraiment envie que vos avoirs disparaissent avec vous si par malheur vous veniez à décéder de façon inopportune ? Ne désireriez-vous pas que votre conjoint ou vos enfants puissent en bénéficier ? Car le problème c’est que personne ne pourra non plus les récupérer si vous n’avez pas prévu un mécanisme en ce sens.
Il s’agit d’un exemple parmi d’autres, mais il a le mérite d’être bien parlant et d’être un bon représentant d’une donnée que l’on veut particulièrement bien protéger sans pour autant la rendre complètement inaccessible. La sécurité des données informatiques est ainsi une question difficile à résoudre et il nécessite certainement de consacrer un peu de temps pour y réfléchir sereinement en fonction de vos contraintes et objectifs. En ce qui me concerne, cela m’a pris une grosse journée de réflexion après voir visionné une très bonne vidéo de Charles Hoskinson que je remercie ici. C’est ce dernier qui a déclenché mon intérêt, mais qui m’a aussi surtout apporté beaucoup de trucs et astuces que je vais réemployer ici.
La triade Disponibilité (D), Intégrité (I) et Confidentialité (C)
Une bonne solution de sécurité informatique doit immanquablement reposer sur les trois piliers que sont la disponibilité, l’intégrité et la confidentialité. Sans entrer dans trop de détails que d’autres expliqueront mieux que moi, ces concepts peuvent s’appliquer comme suit pour la gestion de nos mots de passe:
-
Disponibilité: l’information doit être accessible à qui de droit au moment où il en a besoin. Tout le problème revient alors à rendre nos mots de passe disponibles tout en garantissant leur intégrité et confidentialité. Par exemple, si vous notez ces informations sur des post-its collés sous votre clavier, l’information est très disponible, mais met également fortement en péril les deux autres critères.
-
Intégrité: ce critère s’assure que les données à protéger ne soient pas altérées ou détruites, que ce soit volontairement ou involontairement. Dans notre cas de figure, cela revient à garantir que les mots de passe soient stockés dans un endroit sécurisé et disposant de copies de sauvegarde adéquates.
-
Confidentialité: les mots de passe ne doivent être accessibles que par la personne qui en a l’usage, c’est à dire vous. Augmenter les mesures assurant ce critère peut considérablement détériorer celui de la disponibilité. Par exemple, si les informations sont consignées dans des registres stockés au fond d’un coffre de votre banque, leur utilisation sera très confidentielle, mais également fortement limitée.
Comme on peut le voir, améliorer isolément chacun de ces critères peut impacter négativement les autres. Il est donc nécessaire de trouver un compromis dépendant des exigences et contraintes du système à protéger. Il n’y a pas de solution parfaite, chaque situation étant unique.
Quoi qu’il en soit, vous apercevrez que j’ai essayé de couvrir un maximum de cas possibles lorsque vous découvrirez plus loin ma petite feuille de route. Dès lors, même si elle ne devait pas s’appliquer à 100% à vos besoins, il y a de grandes chances qu’elle puisse vous servir de très bon point de départ.
Exigences
Les exigences relatives à la gestion de mot de passe que j’ai voulu mettre en place sont assez nombreuses et ne sont pas triviales à satisfaire toutes en même temps.
-
Aucune donnée sensible ne pourra être dérobée sans outrepasser, au minium, deux couches de sécurité. Par couche de sécurité, j’entends n’importe quel mécanisme se dressant comme obstacle entre un pirate et la donnée à protéger. Cela peut consister en un pare-feu, un compte de messagerie, l’accès à votre ordinateur personnel, l’accès à votre téléphone, un mot de passe, une double authentification, etc. Bien sûr, ces couches n’offrent pas toutes le même niveau de protection et chaque donnée sensible doit faire l’objet d’une réflexion pour déterminer si un niveau supplémentaire n’est pas requis.
-
Le gestionnaire de mot de passe lui-même est considéré comme une couche de sécurité qui peut être cassée. Nous reviendrons plus loin sur l’emploi d’un tel logiciel. Celui-ci facilite la gestion des données confidentielles en les rassemblant à un seul endroit, dans une sorte de coffre-fort numérique crypté. De par la cryptographie sous-jacente qui est utilisée, ce genre de solution offre une protection quasiment à toutes épreuves lorsque le coffre demeure verrouillé. Le problème vient plutôt du fait que pour être utilisé, il faudra bien ouvrir ce coffre de temps à autre, exposant alors potentiellement tout son contenu à un espion indélicat se tapissant dans l’ombre. Et même si divers mécanismes sont souvent mis en place pour se prémunir de logiciels malveillants qui essaieraient de subtiliser de l’information une fois la base de données déverrouillées, il est absolument impossible de garantir qu’une tierce personne ne puisse pas y avoir accès également.
-
N’importe quel appareil, que ce soit un téléphone, un PC, une clé USB ou autre, peut être perdu sans que ça porte à conséquence. Ils peuvent en outre être tous perdus ou détruits simultanément sans qu’il soit impossible de recouvrer tous ses accès. Dès lors, même en imaginant le sombre scénario au cours duquel toute votre maison disparaitrait dans les flammes, emportant avec elle la totalité de votre équipement électronique et même votre éventuel coffre-fort censé résister à la chaleur, vous devez être en mesure de récupérer toute l’information. Ce critère est capital sachant que n’importe quel instrument vous supportant dans la mise en oeuvre de votre politique de sécurité peut être facilement perdu, volé ou détruit.
-
La solution doit être la moins contraignante possible et doit permettre un accès journalier aux différents mots de passe depuis un ordinateur de travail. Le problème vient alors du fait qu’un ordinateur exposé quotidiennement à Internet est très susceptible d’être corrompu d’une manière ou d’une autre, même en adoptant un comportement prudent. Il n’est donc pas impossible qu’un key-logger enregistre tout ce que vous tapez au clavier ou qu’un pirate puisse voir ce qui s’affiche sur votre écran. Pour avoir personnellement joué avec “Back Orifice” à l’époque, je peux vous assurer que ce n’est pas du tout de la science-fiction. Malgré tout, déverrouiller son gestionnaire de mots de passe exclusivement sur un PC déconnecté d’Internet est certes prudent, mais aussi terriblement handicapant. Nous n’y aurons donc pas recours la plupart du temps.
-
Dernier point, la politique mise en place doit pouvoir inclure un système permettant de léguer votre base de données de mots de passe à une tierce personne si le pire devait advenir.
Liste des courses
La règle la plus importante à considérer pour échafauder une politique de sécurité est de bien se rendre compte qu’aucune solution n’est infaillible, mais qu’au plus il est nécessaire de briser des protections pour pénétrer un système, au plus la difficulté augmente exponentiellement. Le compartimentage est ainsi obligatoire afin d’éviter qu’une brèche puisse se propager et il ne faut faire confiance en rien ni en personne. L’expression “ceinture et bretelles” est ici la norme.
Les ingrédients que nous allons employer sont assez standards, mais c’est surtout dans la bonne manière de les combiner que réside l’efficacité d’une solution. Commençons donc par énumérer les différents éléments dont nous allons avoir besoin:
-
Un gestionnaire de mots de passe permettant de rassembler toutes les données sensibles dans un seul conteneur numérique. L’utilisation de ce dernier va bien sûr complètement à l’encontre du principe de compartimentage que nous venons d’évoquer. Et sachant que nous partons du postulat que le gestionnaire n’est pas totalement sûr, d’autres couches de sécurité seront nécessaire pour éviter de mettre littéralement tous ses oeufs dans le même panier. Un tel outil facilite cependant considérablement nos exigences 3 et 5, car il permet de concentrer toute notre attention en un unique endroit et de rendre une procédure de sauvegarde ou de synchronisation dans le cloud aisée. Disséminer ses mots de passe à gauche à droite est le meilleur moyen pour les perdre ou pour aboutir à une protection inégale. Un gestionnaire offre en outre l’avantage de pouvoir mémoriser toutes sortes de mots de passe longs et compliqués, ainsi que des outils pour brouiller les key-logger.
-
Des mots de passe uniques pour chaque compte à protéger. Ce principe permet d’éviter que si un mot de passe venait à être compromis, tous vos autres mots de passe le soient également. N’oubliez pas que lorsque vous protégez un compte quelconque en ligne avec un mot de passe, vous n’avez aucune idée de la manière dont ce dernier sera géré par le fournisseur de service. Normalement un mot de passe ne doit jamais être stocké en clair sur un serveur, mais il est tout de même très fréquent que ce ne soit pas le cas et que des pirates emportent dans leur butin des bases de données de milliers de mots de passe. La première chose qu’ils essaieront ensuite est de réemployer ceux-ci sur tous les autres comptes en ligne qu’ils peuvent.
-
Des mots de passe forts pour se prémunir de toutes sortes d’attaques par dictionnaire ou par force brute. Un mot de passe basé sur une variation d’un mot quelconque existant est trivial à casser de nos jours avec un logiciel approprié. Mais même des mots de passe complètement aléatoires sont en périls s’ils sont trop courts. En effet, des attaques par force brute se résumant à tester toutes les possibilités le plus vite possible deviennent de plus en plus réalistes. La puissance démesurée de certaines cartes graphiques peut même être mise à contribution pour atteindre des débits d’essais par seconde vertigineux. Comme expliqué ici, la RTX 3090 permet par exemple de tester plus de 3 milliards de mots de passe par seconde sur un fichier ZIP crypté. Un rapide calcul permet alors de se rendre compute qu’une petite journée est suffisante pour contourner n’importe quel mot de de passe de 7 caractères ou moins. L’utilisation de gestionnaires permettant la mémorisation de longs mots de passe aléatoires est donc l’une des meilleures armes dont nous disposons.
-
Une clé Yubikey. Celle-ci offre la possibilité de transférer une partie de la sécurisation d’un accès sur un dispositif matériel bien plus fiable que ne peut l’être votre ordinateur ou votre téléphone. La première utilisation que nous en ferons est de scinder les mots de passe en deux parties, dont l’une sera stockée dans la clé. Cela permet de créer des mots de passe très forts et pour lesquels vous n’en aurez même pas une connaissance complète. Accéder à l’un de vos comptes requerra alors deux éléments: l’un que vous mémorisez ou qui sera stocké dans le gestionnaire de mot de passe, et un second que vous possèderez au travers de cette clé. En outre, les Yubikey implémentent toutes sortes de protocoles cryptographiques très surs et qui sont ce qui se fait de mieux comme méthode de double authentification. Elles ont également l’avantage d’être très simples d’utilisation et sont acceptées par de plus en plus de fournisseurs de service.
-
Une clé USB permettant d’exécuter une session Tails. Tails est un système d’exploitation basé sur Linux, mais qui est construit de telle manière à rendre toutes vos opérations anonymes et à ne laisser aucune trace après votre passage. Sa grande force réside dans sa manipulation qui se réalise intégralement dans la RAM de l’ordinateur hôte, sans qu’aucun fichier ne soit jamais modifié sur son support physique. De ce fait, même en imaginant que vous ayez collecté divers mouchards, virus ou autres cookies indélicats durant une session, tout cela aura entièrement disparu à votre prochaine utilisation. Tails démarre en effet toujours d’un système complètement vierge et offre la quasi-certitude d’opérer sur un ordinateur totalement sécurisé. Techniquement, tout ce qui est nécessaire se résume à télécharger l’image de Tails et à la flasher sur une clé USB dédiée à son utilisation. Ensuite, n’importe quel ordinateur fera l’affaire pour booter dessus. Quoique ce ne soit pas foncièrement difficile, lancer une session Tails est quelque peu contraignant dans une utilisation quotidienne. Aussi, comme nous l’avons spécifié dans l’exigence 4, nous n’y aurons recours que pour certaines opérations bien spéciales et peu fréquentes.
Le choix du gestionnaire de mots de passe
Il existe de nombreux gestionnaires de mots de passe aux fonctionnalités et prix plus ou moins variés; faire un choix peut alors sembler difficile. Et le niveau de sécurité qu’ils offrent n’est pas vraiment un critère distinctif, car tous emploient plus ou moins le même genre de techniques pour chiffrer et protéger vos données.
La plupart d’entre eux s’articulent néanmoins autour d’un service Cloud qui sera soit très limité, soit payant (biffer la mention inutile), d’une interface utilisateur agréable et de toutes sortes de fonctionnalités pour rendre leur utilisation très facile et quasiment transparente. De par leur simplicité d’utilisation, c’est également le genre de gestionnaires que je recommanderais à quiconque ne lisant pas cet article ou ayant abandonné en cours de route.
Néanmoins, si les données que vous gérez sont très sensibles ou très précieuses, pensez-vous vraiment que ce soit une bonne idée de les confier à quelqu’un d’autre qui n’aura aucun compte à vous rendre en cas de problème ? Même si c’est peu probable s’ils font bien leur travail, il demeure possible que vos données disparaissent dans l’incendie du data center qui les abritait (oui ça arrive). Tout ce que vous obtiendrez alors dans ce cas est de vagues excuses pour les désagréments encourus - et tout ça pour seulement 5$ par mois :-).
Personnellement, je préfère l’option totalement gratuite, mais un peu plus technique que représente le gestionnaire KeePass. Ce dernier est très solide cryptographiquement parlant, entièrement libre, audité, et vous procurera la joie de regouter aux interfaces graphiques des années 90. Certes, il n’est pas ce que l’on pourrait qualifier de user friendly et il ne vous prendra certainement pas par la main pour vous simplifier la vie au quotidien. Néanmoins, il est extrêmement puissant et vous resterez l’unique dépositaire de vos données ; ce qui pour moi est tout ce qui compte.
Élaboration d’une solution
Maintenant que nous disposons de tout ce dont nous avons besoin, il est grand tant de commencer à cuisiner le plat que je vous ai promis. Pour ce faire, regardons tout d’abord à la recette que vous trouverez dans l’image ci-dessous.
L’ingrédient principal occupant toute la partie centrale du dessin est évidemment le gestionnaire de mots de passe dans lequel vous noterez absolument toutes les informations que vous désirez protéger. La seule chose que vous ne pourrez pas y consigner est bien sûr le mot de passe maitre (Master Key) vous permettant de le déverrouiller, et l’élaboration de ce dernier nécessite d’ailleurs un peu d’attention.
Dérivation d’une Master Key
Il y a bien sûr plusieurs manières de procéder, mais voici celle que j’utilise afin de disposer d’un mot de passe à la fois très fort et qui soit très facile à reconstituer. L’idée est de partir d’un code racine (Root Code) quelconque et facile à retenir. Il s’agira d’ailleurs pratiquement de la seule information que vous aurez besoin de mémoriser. Ce code ne doit pas forcément être très complexe, car nous n’allons pas l’employer tel quel, l’idée consiste plutôt à le modifier au travers d’un mécanisme de dérivation secret qui, lui, le rendra beaucoup plus alambiqué.
Aussi, vous pouvez voir sur le dessin en haut à gauche que le code racine est transformé pour générer un sel (SALT) qui sera lui-même enregistré dans le Yubikey pour plus de facilité. Cette procédure de dérivation est elle-même une sorte de secret à retenir et peut être constituée de diverses opérations logiques ou cryptographiques aisément disponibles en ligne. Voici une liste non exhaustive de fonctions qui peuvent être utilisées:
- Des fonctions de hachage telles que MD5, SHA ou Keccak;
- Des changement d’encodage vers ou depuis de l’hexadecimal, du Base64, etc;
- Des permutations diverses et variées, des décalages ou rotations;
Et bien sûr, vous pouvez emboiter ces fonctions pour créer une dérivation secrète complexe de votre cru. Pour fixer les idées, imaginons que nous choisissions 12345
comme Root Code, c’est-à-dire l’un des mots de passe les moins surs qui soient. Sélectionnons maintenant la fonction de dérivation suivante (ne choisissez bien évidemment pas la même!):
$$SALT = SHA1 (REV (B64 (12345)))$$
C’est-à-dire que nous encodons la chaine de caractères 12345
en Base64, que nous lisons le résultat à l’envers, puis que nous prenons l’empreinte SHA1 du résultat. Cela peut donner l’impression d’être compliqué, mais ça ne l’est pas tant que ça et l’opération se réalise en quelques minutes avec de bons outils en ligne. Il est également très facile d’obtenir le même résultat en ligne de commande sous Linux:
rc=12345
echo -n $(echo -n $rc | base64 | rev) | sha1sum
Nous obtenons alors:
SALT = c25061cd9ec4fe948926caeb0d75ec1b5c3dace8
qui est tout de suite quelque chose de beaucoup plus difficile à deviner.
Il va de soi que vous n’arriverez ni à retenir une telle chaine de caractères par vous-même, ni même à l’encoder facilement. C’est pourquoi nous pouvons utiliser l’une des fonctions bien pratiques de la Yubikey et qui consiste à la programmer à restituer cette suite lors d’un appui long sur son bouton central, comme si vous l’aviez tapée vous-même au clavier.
Le mot de passe maitre est quant à lui constitué de la concaténation de ce sel avec le root code. De cette manière, vous vous assurez de bénéficier d’un mot de passe impossible à casser par force brute et personne ne pourrait rien faire de votre Yubikey puisqu’il ne disposerait que de la moitié de l’information nécessaire pour ouvrir votre gestionnaire de mots de passe.
Pour finir, et cela est très important, vous ne risquez absolument rien si vous veniez à perdre votre Yubikey, puisque vous connaissez le processus permettant de restituer l’information qu’elle contenait. Si vous avez peur de l’oublier, faites graver la formule sur une plaque en métal et mettez-la au coffre. Elle sera d’ailleurs toujours valable si vous décidez plus tard de changer le root code par quelque chose d’un peu plus subtil que 12345
.
Gestion générale des mots de passe
Chacune des informations que vous stockerez dans votre gestionnaire est singulière en termes de valeur, de fréquence d’utilisation ou de niveau de sécurité qui lui est associé. Elles ne doivent donc pas toutes être forcément traitées de la même façon et je vais essayer ici de dégager les grandes lignes de la méthode que j’ai choisi d’appliquer. Je vous laisse bien sûr le soin de l’adapter à votre propre convenance.
Le bloc pwd/code/sensitive information du dessin représente une information quelconque à protéger dans le gestionnaire et la première étape consiste à la filtrer selon ces 3 grandes catégories.
-
Tout d’abord, il y a les mots de passe qui protègent un compte en ligne. Ce sont des accès, tels que votre compte de messagerie, qui sont extrêmement exposés puisque le monde entier a le loisir d’essayer d’en forcer l’entrée. Ceux-ci sont traités par le bloc <Public Gateway?> dans mon ordinogramme et requièrent une attention particulière, car, si quelqu’un venait à le dérober, il pourrait à priori accéder directement à la ressource associée.
-
Il y a ensuite des mots de passe qui sont liés à un dispositif matériel quelconque, tel que le cadenas de votre vélo, le code PIN de votre carte SIM, le mot de passe de votre téléphone ou d’un PC, etc. Ceux-ci sont par principe moins vulnérables, car un pirate ne pourrait absolument rien en faire à moins de jouir également d’un accès physique à la ressource associée. Ceux-ci sont traités par le bloc <Bound to device object?> dans l’ordinogramme.
-
Enfin, il y a les informations qui n’appartiennent pas aux précédentes catégories et qui bénéficient d’une valeur intrinsèque en sois, comme la phrase de récupération de votre portefeuille crypto. Celles-ci sont particulièrement critiques et nécessitent une approche plus poussée, car, souvenez-vous, il n’est pas impossible que quelqu’un dérobe les données de votre gestionnaire quand celui-ci est ouvert. Une couche de protection supplémentaire est donc indispensable et ce point sera traité plus loin.
Gestion de la double authentification
S’il s’agit d’un compte en ligne, alors la question suivante à se poser est de savoir s’il dispose d’un mécanisme de double authentification que vous n’aurez pas manqué d’activer, représenté par le bloc <Dbl Auth?>. Une réponse affirmative rajoute immédiatement un niveau de protection, car le mot de de passe associé n’a plus grande utilité s’il est employé seul. Attention toutefois que plusieurs méthodes de double authentification existent et qu’elles ne se valent pas en termes de sécurité.
Tout d’abord, fuyez comme la peste la fameuse et ridicule question secrète, dont le seul niveau de défense repose sur une banalité telle que la couleur de vos yeux. Si vous êtes obligé d’entrer une information de ce style (ça arrive encore malheureusement), soit rentrez n’importe quoi, soit considérez cela comme un second mot de passe que vous rajouterez également à votre gestionnaire - parfaitement, la couleur de mes yeux est sldk3g1hj4uhzeufi
.
Les codes à usage unique envoyés par SMS sont à proscrire pareillement, car il s’avère que ce canal de communication peut être assez facilement exploité pour détourner les messages transmis. Il vaut mieux utiliser les codes uniques générés par une application d’authentification telle que le Google Authenticator, même si ce dernier n’est pas infaillible non plus. En effet il existe des malwares qui auraient la capacité d’extraire la graine secrète de ce genre d’application s’ils parvenaient à pénétrer votre téléphone. Il faut également bien faire attention à sauvegarder cette graine dans le gestionnaire de mots de passe afin de pouvoir restaurer cet accès en cas de perte de votre appareil; nous allons en reparler tout de suite.
Si le site web le permet, ce qu’il y a de mieux en matière de double authentification consiste en fait en une clé de sécurité matérielle comme la Yubikey. Celle-ci incorpore de nombreux protocoles permettant de générer des mots de passe à usage unique qu’il n’est pas possible pour un assaillant de dérober. Le seul problème de la Yubikey, c’est qu’on peut la perdre, et il y a deux solutions pour gérer ce cas de figure. La première, qui est celle généralement recommandée, est de disposer de 2 Yubikey toutes deux associées à votre compte. L’une d’elles doit être stockée dans un endroit sûr et n’être utilisée que si la première venait à disparaitre, le temps de s’en procurer une nouvelle. Le désavantage de cette technique est qu’elle n’est pas en accord avec mon exigence numéro 3 qui spécifie que tout le matériel électronique peut être perdu simultanément.
Personnellement, je préfère activer deux méthodes de double authentification si cela est possible: une première avec une application telle que le Google Authenticator et qui ne sera utilisé qu’en cas de secours, et une seconde avec la Yubikey qui sera utilisée quotidiennement. La perte de cette dernière n’est donc plus problématique, car l’application du téléphone peut la remplacer si nécessaire. De plus, si vous craignez vraiment qu’un malware puisse se glisser dans votre téléphone et subtiliser la graine de l’application de double authentification, vous pouvez simplement supprimer cet accès de votre appareil. Comme cette graine doit de toute façon être sauvegardée dans le gestionnaire de mots de passe, vous pourrez toujours la restaurer plus tard en cas de besoin.
Il nous reste maintenant à expliquer comment s’y prendre pour sauvegarder la graine de l’application de double authentification. Pour ce faire, commençons par regarder comment se passe l’enregistrement au moyen de votre téléphone, avec l’image ci-dessous. Dans tous les cas, il vous sera proposé d’ouvrir l’application et de scanner le QR code qui apparait à l’écran. Celui-ci contient en fait une graine secrète générée aléatoirement qui sera partagée entre vous et le compte en ligne. C’est aussi celle-ci qu’il est nécessaire de sauvegarder dans le gestionnaire de mots de passe afin de pouvoir rétablir ce lien en cas de perte du téléphone. Là où il y deux écoles, c’est que certains sites vous afficheront d’emblée la graine sous forme de texte (à droite), alors que d’autres garderont cette information cachée (à gauche). Dans ce dernier cas, il est toujours possible de forcer son affichage en cliquant sur le lien rentrer le code manuellement
. Une autre option consiste aussi à faire une photo du QR code et de le sauver dans le gestionnaire sous forme de fichier joint. Quoi qu’il en soit, ce code ne sera plus disponible une fois que vous l’aurez scanné et il ne faut donc pas omettre de le sauvegarder à cette étape. Si vous oubliez ou vous trompez, pas de panique: vous pouvez toujours supprimer une double authentification et en rajouter une nouvelle.
Choix d’un mot de passe
Le choix d’un mot de passe n’est pas à prendre à la légère, mais les contraintes que cela implique dépendent vraiment du cas d’usage. C’est pourquoi je distingue 4 cas de figure dans mon ordinogramme, représentés par les 4 rectangles verts.
Commençons par les deux de gauche, qui correspondent à un accès en ligne pour lequel aucune double authentification n’est disponible (Dbl Auth?=No), mais qui serait toutefois sensible sur le plan des conséquences négatives s’il venait à être piraté (<Sensible?=Yes>). Ce n’est certainement pas le cas le plus fréquent, car une double authentification est normalement disponible pour gérer ce genre de comptes. Je le traite néanmoins à des fins d’exhaustivité, mais aussi pour vous représenter la méthode basée sur le sel, car cette dernière est toujours intéressante à utiliser.
Comme nous disposons de la Yubikey pouvant mémoriser une séquence complexe à notre place et qui nous sert déjà à déverrouiller le gestionnaire de mots de passe, autant la réemployer afin de procéder de la même manière. Le mot de passe sera donc constitué de deux morceaux, l’un généré par la clé, l’autre qui sera stocké dans le gestionnaire. Par exemple, si vous choisissez encore une fois 12345
, vous pouvez indiquer {SALT}12345
dans ce dernier afin que cela soit bien claire pour vous. Mais même dans l’éventualité où votre gestionnaire serait compromis, le mot de passe réel ne serait pas révélé.
Si une double authentification existe, alors nous pouvons rejoindre le chemin venant des mots de passe liés à une ressource matérielle. Ces deux cas de figure présentent en effet un niveau de sécurité additionnel et nous pouvons éventuellement nous passer de la technique du sel vu précédemment. Mais que ce soit avec ou sans, je distingue encore deux cas possibles dans l’ordinogramme, au travers du bloc <Daily use?>.
Si le mot de passe n’est pas utilisé souvent, alors cela ne pose aucun problème de le générer aléatoirement grâce au gestionnaire de mot de passe et de laisser ce dernier le mémoriser. Il n’y aura qu’à aller le rechercher en cas de besoin et c’est ce que je dénomme par complex pwd dans le schéma. Mais pour toutes sortes de raison, cela peut être contraignant de devoir ouvrir le gestionnaire chaque fois que l’on veut accéder à une application fréquente, ou encore s’il n’y pas de moyen de faire un copier-coller d’une séquence de 40 caractères aléatoires.
Aussi est-il parfois judicieux de relâcher un peu nos contraintes qui sont de toute façon déjà d’un bon niveau. C’est ce que je dénomme par simple pwd dans le schéma. Attention que je ne veux pas dire par là que le mot de passe doit être simple à deviner, mais plutôt qu’il doit être simple à retenir, tout en étant unique et en présentant une apparence complexe. Vous pourrez ainsi l’utiliser partout sans difficulté et sans trop de risque. Je n’aborderai pas ici les différents moyens qui permettent de définir ce genre de bons mots de passe, car je me rends compte que ce guide est déjà bien long et que j’ai encore beaucoup à dire. Je me contenterai donc de pointer vers un autre article, comme celui-ci, ou encore celui-ci.
Gestion des mots de passe critiques
Comme nous l’avons mentionné plus haut, il existe une catégorie d’information à préserver qui ne se rapporte pas directement à un compte en ligne ou à un équipement matériel quelconque. Jouissant d’une valeur intrinsèque, et partant du principe que le gestionnaire de mots de passe n’est pas infaillible, celle-ci doit faire l’objet d’une protection supplémentaire.
C’est typiquement le cas d’une phrase de récupération d’un portefeuille en cryptomonnaie, par exemple, car quiconque disposant de cette information pourra accéder à vos avoirs numériques. Mais il y a d’autres cas de figure et l’une d’elles est une donnée que nous avons déjà abordée plus haut: les graines des applications de double authentification telles que le Google Authenticator. En effet, si vous entreposez le mot de passe principal d’un compte en ligne dans le gestionnaire, vous ne pouvez pas stocker les renseignements liés à la double authentification de la même manière au même endroit. Car si le gestionnaire venait à être corrompu, ces deux informations seraient divulguées simultanément.
Nous pouvons ainsi imaginer toutes sortes d’information un peu plus critique ne pouvant pas se trouver telle quelle dans le gestionnaire de mots de passe. Et pour savoir ce qui nécessite ce surplus de précautions, il suffit de se poser la question: “qu’adviendrait-il si quelqu’un pouvait voir le contenu intégral de mon gestionnaire de mots de passe ? Que pourrait-il en faire ?”. La réponse tombera alors sous le sens.
Une première option pour résoudre ce problème, simple, mais que je déconseille, pourrait consister à embarquer une archive KeePass secondaire à l’intérieur du conteneur principal. Le second aurait ainsi pour but de stocker les informations critiques dans un coffre numérique indépendant et disposant de sa propre clé, évitant ainsi de révéler quoi que ce soit même en cas d’intrusion dans le conteneur principal. Mais si elle semble intéressante, cette approche à plusieurs défauts:
-
S’il existe une porte dérobée quelconque dans le gestionnaire de mots de passe (genre de celles que la NSA est parfois soupçonnée d’essayer d’introduire là où elle le peut), alors ce deuxième chiffrement présentera exactement la même faiblesse et n’apportera aucune protection supplémentaire.
-
Accéder à ce deuxième conteneur se réalise exactement comme avec le principal: il faut l’ouvrir pour accéder à l’intégralité de son contenu. Mais comme nous l’avons vu, il n’est pas possible de garantir qu’il n’y ait aucun malware guettant cet instant pour vous dépouiller. Et comme nous parlons ici de données beaucoup plus sensibles, il serait très malvenu de tenter d’y accéder sur votre ordinateur principal. En d’autres termes, cela signifie que ce deuxième coffre ne pourrait être manipulé que sur un ordinateur sécurisé avec une solution telle que Tails. Cela rend son utilisation beaucoup moins aisée et nous allons voir qu’une solution un peu plus pratique existe.
Chiffrement PGP avec Kleopatra
OpenPGP est un format non propriétaire de chiffrement et d’authentification de données basé sur de la cryptographie à clé publique. Cette dernière diffère radicalement de la cryptographie symétrique au niveau de son maniement. Ainsi, au lieu d’utiliser la même clé secrète pour chiffrer et déchiffrer des données, il faut ici deux clés, l’une publique et l’autre privée. La clé publique peut être connue de tous, car une fois qu’elle a été utilisée pour chiffrer une information, elle n’est pas suffisante pour la restaurer. Le déchiffrement ne peut en effet se faire que par le détenteur de la clé privée.
Nous pouvons alors employer avantageusement cette propriété pour protéger les données sensibles avant même de les stocker dans le gestionnaire de mots de passe. Tout d’abord, de par l’utilisation d’un protocole de chiffrement différent, cela nous prémunit de toute faille dans la sécurité du gestionnaire lui-même. Ensuite, nous allons pouvoir chiffrer chaque nouvelle information individuellement et cette opération peut éventuellement se réaliser sur un PC de travail ; l’utilisation de la clé publique ne nécessite aucune précaution d’emploi particulière. La seule opération véritablement critique se résume au déchiffrement d’une donnée au moyen de la clé privée, celle-ci devant impérativement s’effectuer sur une session Tails pour être parfaitement certain qu’elle demeure confidentielle.
Concrètement, la cryptographie à clé publique s’emploie à l’aide de certificats contenant, entre autres choses, les fameuses paires de clés publiques et privées. Étant donné que la clé privée doit rester secrète, celle-ci n’est pas stockée telle quelle dans le certificat. A la place, elle est cryptée avec un chiffrement symétrique dont la clé, appelée pass phrase, est choisie au moment de la création du certificat. Le certificat peut ensuite être utilisé directement pour chiffrer n’importe quelle donnée, mais la connaissance de la pass phrase est indispensable pour ensuite la déchiffrer.
Le logiciel libre Kleopatra, disponible sous Linux comme sur Windows, permet de créer et gérer de tels certificats, ainsi que de réaliser les opérations de chiffrement déchiffrement dont nous avons besoin. La première étape consiste à créer un certificat dédié à la protection des données sensibles que nous enregistrons dans KeePass. Comme expliqué, il faut pour se faire choisir une pass phrase indispensable à la protection de la clé privée. Le plus simple est d’utiliser à nouveau le mécanisme de dérivation que nous avions élaboré pour générer le sel sur la Yubikey. En l’appliquant cette fois-ci sur la master key, nous obtenons ainsi un nouveau code, facile à régénérer, qui peut être utilisé comme pass phrase. Une fois le certificat créé, il reste alors à le sauvegarder dans le gestionnaire de mots de passe pour être certain de ne pas le perdre (sans lui, les données chiffrées sont irrécupérables).
Toutes ces différentes étapes sont reflétées dans le bloc rouge sur le dessin introduit plus haut. On peut y voir les informations critiques passer dans le bloc PGP Encrypted, ce dernier opérant au travers d’une paire de clés publique et privée protégée par une pass phrase générée à partir de la master key. Encore une fois, cette mécanique a pour but, à la fois d’utiliser des mots de passe forts, mais aussi de pouvoir les recouvrer très facilement sur la simple connaissance du root code.
Tails
Comme présenté plus haut, Tails permet de faire tourner un OS fiable sur n’importe quel ordinateur au travers d’une clé USB amorçable, employée en lecture seule exclusivement. Cela garantit de chaque fois démarrer une session dans un environnement vierge en toute confiance. Extrêmement bien documenté, l’utilisation de Tails ne devrait poser de problèmes à personne, mais il est certain que cela demande un peu de gymnastique et de discipline. Le mieux est donc de ne le réserver que pour la gestion de données critiques et auxquelles on ne doit pas accéder souvent.
Par exemple, si vous gérez informatiquement vos phrases de récupération de portefeuilles numériques, il est vraiment indispensable que celles-ci ne touchent jamais, d’aucune manière que ce soit, un PC non fiable. La procédure à appliquer scrupuleusement pour sauvegarder ce genre d’information est alors la suivante:
- Copier votre archive KeePass sur une clé USB;
- Lancer une session Tails sur votre PC;
- Déverrouiller le conteneur KeePass qui est sur la clé USB;
- En extraire le certificat dédié aux données sensibles et l’ajouter à Tails
- Consigner l’information sensible dans un fichier texte ou autre;
- Utiliser Kleopatra pour chiffrer ce fichier à l’aide du certificat;
- Ajouter le fichier chiffré au conteneur KeePass;
Ensuite, avant de fermer la session Tails et que l’information sensible non chiffrée disparaisse, il est indispensable de vérifier qu’il est bien possible de la restaurer au moyen de ce même certificat et de la connaissance de la pass phrase.
Techniquement, ajouter une information chiffrée de la sorte dans le gestionnaire de mots de passe peut aussi se réaliser sur un PC de travail ordinaire, sans passer par une session Tails. La seule chose que ce dernier apporte, c’est l’assurance que l’information à protéger ne peut pas être dérobée. Tout dépend donc un peu de quoi on parle. Chaque cas est unique et c’est à vous de juger.
Par contre, toute opération de déchiffrement ne devrait être réalisée que dans Tails, afin d’être certain de ne pas se faire voler la pass phrase. Car si celle-ci tombe, alors ce sont toutes les données chiffrées avec le certificat correspondant qui tombent également.
Copies de sauvegarde
Contrairement à de nombreuses autres solutions de gestion de mots de passe, le logiciel KeePass ne propose pas nativement de mécanisme pour réaliser des copies de sauvegarde de vos données ou pour les synchroniser sur plusieurs appareils. Cette fonctionnalité est pourtant indispensable pour avoir la garantie de ne jamais perdre ses mots de passe, même en cas de défaillance de son matériel informatique.
Heureusement, et même si c’est un peu moins pratique, KeePass bénéficie d’une large panoplie de plug-ins optionnels et dont certains sont dédiés à la synchronisation dans le cloud. Il est ainsi possible de synchroniser sa base de données avec les services de stockage de fichiers usuels tels que Google Drive, One Drive, DropBox, etc.
L’autre possibilité, moins élégante, est de simplement transférer son archive KeePass à la main sur un espace disque en ligne chaque fois que celle-ci est modifiée. Mais, quelle que soit la méthode retenue, il est légitime de se poser la question de la sécurité d’une telle approche: est-il vraiment acceptable de mettre en ligne sa base de données de mots de passe et de l’exposer à tous les dangers ?
La réponse à cette question est un grand oui, et pour plusieurs raisons. Tout d’abord, le conteneur ne sera pas directement exposé puisqu’il sera stocké dans un espace privé quelconque. Et je suis certain qu’un espace tel que Google Drive est mieux protégé que ne peut l’être votre PC personnel. Ensuite, quand bien même une personne malveillante parvenait à mettre la main sur votre base de données, il y a très peu de chance qu’il puisse en faire quoi que ce soit. Tant qu’un conteneur de mots de passe demeure sous forme cryptée, il faut disposer d’énormes moyens de calcul pour en briser le code. Une petite nuance cependant, ceci n’est vrai que si vous avez choisi un mot de passe fort. Dans le cas contraire, je vous invite à lire cet article pour vous faire changer d’avis. Pour finir, cette archive de mots de passe a été construite de telle manière qu’un accès aux données qu’elle contient ne soit pas suffisant pour accéder directement à vos différents comptes numériques. Les mots de passe peuvent en effet être constitués de 2 morceaux, ou une double authentification existe, ou bien encore il est prévu un chiffrement supplémentaire au travers d’un mécanisme étranger du gestionnaire. Tout cela mis bout à bout rend extrêmement improbable l’éventualité que vous puissiez vous faire dérober quoi que ce soit, du moins, numériquement parlant.
Enfin, il va être nécessaire de faire un appel à un ami pour répondre totalement à l’exigence 3 selon laquelle tous les appareils numériques peuvent être détruits sans conséquence. Si cela venait vraiment à se produire, il est possible que vous n’ayez plus accès au service de fichiers en ligne sur lequel est stockée votre base de données de mots de passe. Il est possible de se prémunir de ce cas de figure en utilisant n’importe quelle boite mail d’une connaissance pour réaliser une sauvegarde de temps à autre. Envoyez simplement un message avec le conteneur KeePass en pièce jointe et en indiquant à votre destinataire de le conserver. Il n’est en outre nul besoin de spammer vos amis chaque fois que vous effectuez une modification de vos données, car le but de ce mail se résume à pouvoir accéder à nouveau au service de fichiers en ligne.
Même si la sécurité d’une archive chiffrée telle que celles créées par KeePass est élevée, vous pourriez être réticent à la disséminer aux quatre vents et à en perdre un peu le contrôle. Pour plus de prudence, il est facile de surchiffrer le conteneur avant de l’envoyer par mail à des fins de sauvegarde. Une option parmi d’autres consiste à utiliser Kleopatra qui offre la possibilité de réaliser un chiffrement symétrique sur base de mot de passe. Ce dernier peut être la pass phrase ou une autre séquence qui en dérive. Supprimez ensuite l’extension du fichier et donnez-lui un nom peu explicite. À part vous, personne ne pourra alors vraiment savoir de quoi il retourne et le contenu du fichier sera un simple bloc de valeurs aléatoires ne révélant aucun indice.
Passation
Si pour une raison ou une autre il est nécessaire que quelqu’un puisse avoir accès à votre archive de mots de passe s’il devait arriver le pire, vous aurez besoin de stocker votre root code, la procédure de dérivation et des instructions claires dans un coffre. Votre légataire devra aussi faire partie des personnes auxquelles vous avez envoyé le mail contenant une copie de sauvegarde. À partir de là, il ne vous restera plus qu’à définir un moyen quelconque pour donner l’accès au coffre à la personne que vous avez choisie si la situation l’exigeait. Le mieux pour y arriver est peut-être de passer par un notaire. En attendant, votre légataire sera dans l’impossibilité d’utiliser le mail que vous lui avez envoyé et, d’autre part, quelqu’un qui tomberait sur le contenu du coffre ne saurait que faire des instructions qui s’y trouvent.
Conclusion
Il est bon de se résumer après ces longues explications. Les diverses étapes de cette méthodologie sont reprises ci-dessous et classées dans différentes catégories. Encore une fois, il n’y a pas de manières uniques de procéder et les besoins de tout un chacun sont différents. Tout n’est donc pas forcément à prendre et diverses étapes peuvent être adaptées. L’important est de bien envisager tous les pires scénarios et de s’y préparer en ayant une réponse appropriée pour chacun d’eux. Pour reprendre une citation de Game of Thrones: “What we don’t know is what usually gets us killed.”
Mise en place standard
- Procurez-vous une Yubikey et une clé USB sur laquelle vous flashez Tails.
- Installez le logiciel KeePass et Kleopatra. Sur Tails ils sont fournis d’emblée.
- Choisissez un root code et déterminez une procédure de dérivation secrète. Ces informations sont à retenir ou a mettre au coffre.
- Dérivez le sel à partir du root code et de la procédure de dérivation. Programmez votre Yubikey pour le générer lors d’un appui long.
- Créez une nouvelle archive KeePass dont la master key est donnée par: root code + sel.
- (Optionnellement), installez un plug-in permettant la synchronisation de l’archive avec un service de fichiers en ligne.
- (Optionnellement), gravez le root code et la procédure de dérivation puis placez-les dans un coffre. Prévoyez également quelques instructions à l’attention de la personne à laquelle ces informations sont destinées.
Mise en place avancée
- Transférez votre archive KeePass sur une session Tails à l’aide d’une clé USB.
- Générez la pass phrase au moyen de la master key et de la procédure de dérivation.
- Utilisez Kleopatra pour créer un certificat de chiffrement. La clé privée doit être protégée par la pass phrase.
- Ouvrez l’archive KeePass et ajoutez-y ce certificat.
- Rapatriez l’archive KeePass avec la clé USB.
Ajout d’un mot de passe standard
- Posez-vous les bonnes questions pour savoir si ce mot de passe inclura le sel pour plus de protection. La clé Yubikey sera alors nécessaire.
- Posez-vous les bonnes questions pour savoir si ce mot de passe sera aléatoire et impossible à retenir sans le gestionnaire, ou si vous utiliserez un moyen mnémotechnique pour une utilisation plus fréquente.
- Ajoutez le mot de passe à votre archive. Si le mot de passe est aléatoire, laissez KeePass le générer pour vous.
- S’il s’agit d’un compte en ligne, activez la double authentification. L’idéal est le duo Yubikey, Google Authenticator (ou assimilé). Le premier pour une utilisation normale, le deuxième en cas de perte de la clé. La graine du Google Authenticator doit être également sauvée dans l’archive KeePass et être traitée comme un mot de passe critique.
- (Optionnellement) si la Yubikey est activée pour la double authentification, supprimez ce compte du Google Authenticator.
Ajout d’un mot de passe critique
- (Optionnellement), transférez votre archive KeePass sur une session Tails à l’aide d’une clé USB.
- Ouvrez l’archive et extrayez le certificat de chiffrement pour le rendre utilisable par Kleopatra.
- Utilisez Kleopatra pour chiffrer l’information avec le certificat.
- (Optionnellement) et sur Tails uniquement, réalisez un test pour vérifier que vous pouvez bien déchiffrer l’information à l’aide de la pass phrase.
- Ajoutez l’information chiffrée à votre archive.
- (Optionnellement), rapatriez l’archive KeePass avec la clé USB.
La décision de passer ou pas sur Tails pour l’ajout d’un tel mot de passe dépend vraiment de ce qui est en jeu. Beaucoup de situations peuvent se permettre de s’en passer.
Lecture d’un mot de passe critique
- Transférez votre archive KeePass sur une session Tails à l’aide d’une clé USB.
- Ouvrez l’archive et extrayez le certificat de chiffrement pour le rendre utilisable par Kleopatra.
- Extrayez l’information à déchiffrer de l’archive.
- Générez la pass phrase au moyen de la master key et de la procédure de dérivation.
- Déchiffrez l’information avec Kleopatra et la pass phrase.
Restauration en cas de perte du matériel
- Si vous n’avez plus accès à votre archive KeePass, demandez à vos connaissances de vous renvoyer votre mail de récupération. Déchiffrez la pièce jointe, ouvrez l’archive qu’elle contient et récupérez votre accès au service de fichiers en ligne qui héberge l’archive principale.
- Si vous avez perdu votre téléphone et les doubles authentifications qu’il contenait, recouvrez-les en extrayant les graines sauvegardées dans l’archive KeePass. Cela permettra de restaurer les doubles authentifications dans le nouveau téléphone.
- Si vous avez perdu votre Yubikey, vous devrez la supprimer de chaque compte l’utilisant comme moyen de double authentification. Pour ce faire, assurez-vous d’avoir l’authentification de secours disponible sur votre Google Authenticator. Connectez-vous ensuite à chacun des comptes impactés pour supprimer l’accès de la Yubikey perdue et le remplacer par celui de la nouvelle. Pour plus de sécurité, il vous faudra peut-être aussi changer le sel utilisé dans la master key et dans tout autre mot de passe utilisant cette technique. Cela implique concrètement de changer de root code et de recréer de nouveaux mots de passe grâce à la procédure de dérivation. Tout dépend un peu des circonstances de la perte de la clé et du risque qu’il y a à ce que quelqu’un tente de l’utiliser contre vous.