Le pire est le « on rembourse la moitié de votre abonnement de transport ». Presque éliminatoire. Si respecter le minimum légal est vu comme un avantage propre à être mentionné, je ne suis pas certain d’avoir envie d’entendre le reste. […]
Ce billet a deux ans et je n’ai pas grand chose à y changer. C’est lui qui guide mes offres aujourd’hui, le fait de décrire le travail et le contexte plutôt qu’une liste de technos.
Le milieu a lui un peu changé. On trouve toujours ses mêmes recruteurs qui cherchent « un développeur pour un éditeur logiciel » mais qui refusent de te dire qui avant de te faire dérouler ton CV, et qui à la place se vantent d’avoir un babyfoot une mutuelle ou une sortie annuelle.
Les espaces communautaires commencent par contre à mettre des règles un peu plus strictes. Précision obligatoire du salaire, de l’entreprise, de la présence ou non de télétravail, etc.
On a aussi quelques recruteurs qui fonctionnent différemment. J’ai au moins Shirley Almosni Chiche en tête. On y voit des annonces claires avec des noms et des chiffres, sans détours, du détail sur le fonctionnement interne des équipes et sur les conditions de travail. J’aimerais bien que d’autres prennent exemple.
C’est probablement elle qui m’a décidé à mettre moi aussi en avant le nom de l’entreprise d’accueil. Je suis agacé quand les autres ne le font pas, il est normal que j’en tire moi-même les conséquences. Bref, merci.
J’ai justement une proposition en cours un peu hors des habitudes, avec un « bring your own team ». Profitez-en !
Dès que je parle d’héritage on me parle de solidarité intergénérationnelle. J’en parle souvent avec des gens qui gagnent bien leur vie et ils ont des préjugés largement discutables de ce qu’est la réalité de l’héritage.
Voici quelques chiffres extraits de la dernière étude patrimoine et transmission intergénérationnelle de l’INSEE (2015) :
40 % des sommes héritées sont inférieures à 8 000 € ; 66 % sont inférieures à 30 000 € ; moins de 13 % dépassent 100 000 €
Première conclusion : Les héritages réels sont bien loin des fantasmes. Quand on discute d’un héritage évalué à plus de 100 000 € on parle déjà de gens extrêmement privilégiés.
Le second fantasme est sur la solidarité intergénérationnelle.
Coup de théâtre :
78 % des héritiers ont plus de 50 ans. Ils sont même 30 % à avoir plus de 70 ans.
Sachant que nous avons les retraités parmi les plus aisés d’Europe, autant dire qu’on est très très loin de la vision d’Épinal où on aide les jeunes générations à partir avec le fruit du labeur de notre vie.
En pratique non seulement on hérite peu, mais en plus ceux qui héritent le font quand ils n’en ont plus besoin, à la fin de leur vie.
Je sais, vous allez me dire que quand même, les plus âgés sont parfois dans une misère incroyable.
L’INSEE nous donne justement des découpages en fonction des catégories socio-professionnelles ou du niveau de patrimoine des héritiers.
Près de 70 % de mes 13 % recevant au moins 100 000 € appartiennent déjà aux trois déciles les plus favorisés en terme de patrimoine.
Le chiffre vient de recoupement de répartitions par déciles n’est pas précis mais l’ordre de grandeur est bon.
Surpris ? moi pas. Tout va dans le même sens : Les héritages bénéficient principalement aux plus favorisés. On ne parle pas de solidarité intergénérationnelle mais de perpétuation de la richesse par droit de naissance.
Mieux. La même étude nous dit que ce sont aussi ces catégories aisées qui ont déjà reçu des dons intergénérationnels importants par le passé au cours de leur vie (logique, l’optimisation fiscale est l’apanage des plus riches). Ils ont donc encore moins besoin de cet héritage.
Les plus pauvres, eux, reçoivent les montants les plus faibles.
Les deux premiers déciles en terme de patrimoine reçoivent à 67 % moins de 8 000 €. Moins de 20 % de ces ménages ont reçu un des héritages à plus de 100 000 €.
Inversement les deux déciles les plus favorisés en terme de patrimoine reçoivent à plus de 30 % des héritages de plus de 100 000 €.
Bref, impossible de faire un tel croisement de façon fiable mais les jeunes ménages de moins de 30 ans avec un patrimoine inférieur à la médiane française et recevant un héritage suffisant pour avoir des droits de succession à payer… doivent probablement se compter sur les doigts de la main.
Juste et légitime l’héritage ? Laissez-moi rire un coup.
En ligne directe, il faut hériter de plus de 1.8 millions d’euros par personne pour être fiscalisé à la même hauteur que les revenus du capital (flat tax dite « Macron » à 30%) et ça restera dans tous les cas bien en deçà de l’impôt sur les revenus du travail.
Ce qui est formidable c’est que malgré tout ça on continue à moins fiscaliser l’héritage que les revenus.
Parfois j’aide au recrutement pour des amis ou des boites que j’apprécie. Ici c’est pour rejoindre un responsable produit avec qui j’ai travaillé par le passé et que j’apprécie je cautionne.
Cette annonce ci j’y tiens aussi parce qu’elle me permet de faire ce que je n’ai pas vu ailleurs : Recruter une équipe et des gens qui se connaissent déjà.
Vous pouvez évidement venir seul·e mais profitez-en si vous avez envie de postuler ensemble avec des anciens collègues avec qui vous vous entendez bien, ou des amis avec qui vous parlez de travailler ensemble un jour depuis longtemps. C’est l’occasion.
Le second point dans la création d’une équipe c’est que c’est à vous de mettre en place les organisations et l’ADN qui vous semble pertinents. Il y a une feuille blanche et si vous savez ce que vous voulez et pourquoi, on vous écoutera. Profitez-en.
📑 : La refonte complète d’un outil de GED existant qui a des utilisateurs dans le public et dans le privé.
🗺 : Lyon sud, sur les transports en commun, mais une équipe en télétravail complet hors de Lyon est aussi envisageable.
🏢 : Une PME de 70 personnes, établie depuis des années sur son domaine.
👥 : Pour constituer une équipe de 5 à 7 avec un responsable produit (personne super avec qui j’ai déjà travaillé), une responsable UX, et potentiellement un alternant dans le futur.
🔧 : Serveur d’API en PHP – Symfony. Application cliente en Typescript – Angular. Hébergement Azure.
💶 : C’est toujours évidemment adaptable suivant qui candidate mais les fourchettes imaginées sont respectivement de 35 à 45 k€ pour un·e dev confirmé·e, environ 3 ans d’expérience, et 45 à 55 k€ pour un·e lead.
Vous m’aideriez en faisant circuler autour de vous (je valorise fortement les personnes dans mon réseau de confiance ou recommandées par quelqu’un de mon réseau de confiance).
N’hésitez pas à me contacter pour plus d’informations.
Parfois le sort s’acharne. Sur une période assez courte j’ai vu trois cancers lourds dans mon entourage plus ou moins proche. Ce sont des choses qui brassent.
Je peux vous dire qu’à ce moment là, savoir que deux sur les trois aient dû lancer des cagnottes en ligne pour payer leurs soins, pour juste continuer à vivre, ça fait réfléchir.
Ce n’était pas le cas du troisième : Savoir que mes proches avec un cancer n’ont pas besoin de lancer un appel à dons pour payer leurs soins, ça justifie toutes mes cotisations sociales, tous mes impôts.
J’irai plus loin : l’hôpital gratuit, l’école gratuite, les secours gratuits, les soins courants accessibles, le RSA et le minimum vieillesse, malgré toutes les critiques qu’on peut en faire, tout ça vaut vraiment largement tous mes impôts et toutes mes cotisations sociales.
C’est vital. Littéralement.
Avoir dans ses proches quelques personnes qui n’ont pas ces chances, qui en souffrent et dont la vie bascule, ça remet vite les pendules à l’heure. Ensuite on n’oublie pas. J’en pleure presque en écrivant.
J’ai récemment parlé complexité de mot de passe mais en réalité le problème est souvent ailleurs. La taille et la complexité n’ont aucune importance si quelqu’un peut deviner quel mot de passe vous utilisez après juste quelques essais.
Jean réutilise son mot de passe
Je connais l’email de Jean ? Il me suffit de regarder quels mots de passe il a utilisé sur d’autres sites, et de les tester un à un.
La plupart des sites ont un problème de sécurité un jour ou l’autre. Souvent les données extraites se retrouvent publiques d’une façon ou d’une autre. Parfois on y trouve des mots de passe en clair ou mal protégés. Il suffit de piocher dedans.
Testez Have I Been Pwned, vous verrez que des tiers peuvent déjà connaitre plusieurs de vos mots de passe.
Paul n’a aucune imagination
Je ne connais pas l’email de Paul ? Qu’importe. Je peux déjà tester les mots de passe les plus courants, et les variations de ceux-ci.
Ne vous croyez pas original. Même ajouter une date, un chiffre, un symbole, changer une lettre, inverser le mot de passe, quelqu’un l’a déjà fait. En quelques milliers de combinaisons j’ai déjà énormément de mots de passe habituels.
Même les méthodes « choisir x mots du dictionnaire » sont vulnérables si c’est l’utilisateur qui choisit ses mots dans sa tête. Le plus souvent on tombera dans quelques centaines de mots, toujours les mêmes.
Par le passé j’ai utilisé un personnage de littérature, auquel j’ai ajouté un chiffre et un symbole. Croyez-le ou non, on trouve plus d’une dizaine d’occurrences sur Have I Been Pwned.
Have I Been Pwned
J’ai cité Have I Been Pwned. Ils mettent à disposition une base de tous les mots de passe qui ont publiquement fuité.
Si vous laissez des tiers saisir des mots de passe sur votre service, vous devriez télécharger leur base, puis chercher dedans à chaque fois qu’un de vos utilisateur saisit un nouveau mot de passe. Le mot de passe est déjà dedans ?
Alors il y a un risque de sécurité et vous devriez en alerter l’utilisateur.
Si vous voulez aller plus loin, tentez quelques variations simples : Si le mot de passe se termine par un nombre, essayez les deux ou trois nombres précédents. Si le mot de passe à des symboles ou chiffres en début ou fin, retirerez-les et testez le mot de passe résultant.
Tout ça ne vous coûte quasiment rien si ce n’est un peu de stockage et le téléchargement de la nouvelle base Have I Been Pwned de temps en temps, mais ça va éviter bien des risques à vos utilisateurs.
J’avoue avoir été très agacé dans des discussions récentes par la fréquence de la réponse « je ne suis pas responsable, c’est un tiers qui m’a demandé de le faire ».
Je ne comprends pas comment je peux trouver chez des ingénieurs, développeurs et travailleurs du web au sens large ce que je n’accepterais pas chez mon fils du haut de ses 7 ans.
C’est trop facile…
Il est vraiment temps que notre corps de métier arrête de se croire étranger et sans responsabilité par rapport au monde.
Ne pas remonter un problème ou un désaccord, ne pas se battre est un choix. Parfois nous n’obtenons pas gain de cause, mais parfois ça fonctionne aussi.
Et si ça ne fonctionne jamais, ou rarement, ou pas sur ce qui est important, rester et continuer quand même est un choix. C’est d’autant plus vrai dans nos métiers de travailleurs du web. D’autres professions n’ont pas ce confort.
Vous n’avez pas le couteau sous la gorge.
Ces choix nous en sommes responsables, quand bien même ils sont contraints et difficiles à prendre. Bienvenue dans la vie, on n’a pas toujours ce qu’on souhaite.
Je ne vous dis surtout pas de démissionner dès qu’il y a une source d’insatisfaction. Je ne vous dis pas de faire blocage sur tout au point d’en devenir toxique. Vraiment, ne faites pas ça.
Nous faisons tous des compromis. Nous avons tous nos priorités et nos combats, pas toujours les mêmes.
Faites ces compromis. Faites vos choix mais assumez les. Ce à quoi vous consentez, par choix, vous en êtes responsables. Ni plus, ni moins.
Assumer ses choix ce n’est pas entrer dans une culpabilisation permanente.
Il s’agit de prendre conscience de son impact, de ne pas s’en déresponsabiliser, et peut-être en conséquence de faire d’autres choix à l’avenir.
Je continue mes réflexions sur comment nous, informaticiens, participons à la politique par nos actions.
Il ne tient qu’à nous de refuser de participer à des projets et des organisations du mauvais côté de la ligne morale. Contrairement à d’autres professions, nous avons le choix. Utilisons-le.
Plus que le choix, nous avons un pouvoir, énorme. C’est un des apprentissages des logiciels libres. Nous avons quand même réussi que les plus grandes corporations se sentent obligées de contribuer, même de façon mineure, à des logiciels communs profitant à tous. Nous avons réussi à en faire un argument dans les processus de recrutement.
Imaginez, le temple du capitalisme, les méga startup techno qui contrôlent jusque notre vie privée, obligées de fait de se plier à contribuer au domaine commun. Quel pouvoir !
Nous avons utilisé ce pouvoir pour imposer le libre accès au logiciel et au code source, en nous moquant de qui l’utilise et pour faire quoi, comme si cela ne nous concernait pas.
Que nous importe que l’imprimante gère des listes de personnes à abattre tant que nous avons accès au code source du pilote pour en corriger les défauts. Je ne peux m’exonérer des conséquences de ce que je créé et de ce que je diffuse.
Avec tout le respect que j’ai pour l’énorme œuvre du logiciel libre, j’ai l’impression que nous avons partiellement fait fausse route, privilégiant une vision libertaire amorale plutôt qu’assumer les conséquences de ce que nous créons.
Pire, en faisant le logiciel libre comme l’alpha et l’oméga de toute notion politique et éthique dans le logiciel, nous nous sommes retirés toute capacité à intervenir sur d’autre critères.
Je repense à la licence JSON qui avait fait grand bruit par le passé.
Cette notion m’attire, aussi floue et aussi problématique soit-elle.
Oui, cette licence n’est pas libre. La licence GPL serait incompatible avec icelle. Qu’importe : L’accès au logiciel et à son code source ne me semble pas une valeur si absolue qu’il me faille abandonner tout recul sur ce qui est fait avec le logiciel.
Je ne suis pas seul, en parallèle d’autres ont mis à jour la licence Hippocratic, qui va globalement dans le même sens.
The software may not be used by individuals, corporations, governments, or other groups for systems or activities that actively and knowingly endanger, harm, or otherwise threaten the physical, mental, economic, or general well-being of individuals or groups in violation of the United Nations Universal Declaration of Human Rights
J’ajouterais probablement la convention de Genève, celle des droits de l’enfant, peut-être un texte de portée similaire parlant d’écologie (lequel ?), un lié à la vie privée, etc.
Ça reste flou mais ça permet de tout de même donner un cadre, surtout si on ajoute que l’interprétation à donner à ces textes ne doit pas être moins stricte que celle de l’Europe occidentale de notre décennie.
Peu importe en réalité. Il s’agit de donner une intention. Je n’ai pas cette prétention mais si l’armée ou une corporation sans éthique veut réutiliser mon code, ce n’est pas la licence qui les en empêchera, flou ou pas.
Je ne prétends certainement pas aller devant au tribunal. Ma seule arme est l’opprobre publique et le flou n’est ici pas un problème. La précision juridique n’est pas un besoin. Au contraire, rester au niveau de l’intention permet d’éviter les pirouettes en jouant sur les mots ou en trouvant les failles. Quelque part la formulation de la licence JSON a ma préférence, justement pour ça.
Ça vous parait fou, irréaliste, inapplicable, mais combien d’entre nous auraient trouvés la GPL raisonnable, réaliste et applicable à ses débuts ? Les débats n’ont d’ailleurs pas manqué.
Le seul vrai problème, à mon niveau, est bien celui du logiciel libre, et plus particulièrement de la GPL, incompatible avec toute autre licence qui fait des choix différents. Or la GPL est incontournable dans de nombreuses situations, dans de nombreux contextes.
Une solution pourrait être de proposer une double licence : une licence basée sur l’éthique, tout en prévoyant une exception qui permet de passer sur une AGPL au besoin.
Je rage à chaque fois que je saisis un mot de passe fort et que le site m’envoie bouler parce que je n’ai pas de caractère autre qu’alphanumérique.
Essayons quelque chose d’un peu plus smart pour évaluer la robustesse d’un mot de passe
Développeurs, vous savez probablement tout ça, mais continuez à lire parce que la fin vous est adressée
Traduit autrement, voici le nombre de combinaisons qu’on peut tester, et le même chiffre écrit en puissance de deux (arrondi à la décimale inférieure) :
1 €
3,5 × 10^12
2^41,6
10 €
3,5 × 10^13
2^44,9
100 €
3,5 × 10^14
2^48,3
1 000 €
3,5 × 10^15
2^51,6
10 000 €
3,5 × 10^16
2^54,9
100 000 €
3,5 × 10^17
2^58,2
Quand on vous parle ailleurs de bits d’entropie, ça correspond à ces puissances de 2. Avec 1 000 € on peut tester toutes les combinaisons de SHA 256 d’une chaîne aléatoire de 51 bits.
Ok, mais ça me dit quoi ? Une lettre c’est 26 combinaisons, environ 4,7 bits. Si vous ajoutez les majuscules vous doublez le nombre de combinaisons et vous ajoutez 1 bit. Si vous ajoutez les chiffres et quelques caractères spéciaux on arrive à à peine plus de 6 bits.
Petit calcul, en utilisant juste les 26 lettres de l’alphabet, on peut tester toutes les combinaisons de 8 caractères pour moins de 1 €. Vu qu’on aura de bonnes chances de tomber dessus avant d’avoir testé toutes les combinaisons, autant dire que même avec 9 caractères, votre mot de passe ne vaut pas plus de 1 €.
Combien faut-il de caractères pour se trouver relativement à l’abri (c’est à dire que la somme investie ne peut pas tester plus de 1% des combinaisons) ? Ça va dépendre de ce que vous y mettez comme types de caractères. J’ai fait les calculs pour vous :
a-z
a-z A-Z
a-z A-Z 0–9
a-z A-Z 0–9 +-%
1 €
11
9
9
8
10 €
11
10
9
9
100 €
12
10
10
10
1 000 €
13
11
10
10
10 000 €
14
11
11
11
100 000 €
14
12
11
11
Et là magie : 8 caractères, même avec des chiffres, des majuscules et des symboles, ça résiste tout juste à 1 €. Et encore, là c’est en partant du principe que vous choisissez réellement les caractères de façon aléatoire, pas que vous ajoutez juste un symbole à la fin ou que vous transformez un E en 3.
Vous voulez que votre mot de passe résiste à un voisin malveillant prêt à mettre plus de 10 € sur la table ? Prévoyez au moins 10 caractères.
Et là, seconde magie : Si vous mettez 10 caractères on se moque de savoir si vous y avez mis des chiffres ou symboles. La longueur a bien plus d’importance que l’éventail de caractères utilisé.
Maintenant que vous savez ça, tous les sites qui vous imposent au moins une majuscule et un symbole mais qui vous laissent ne mettre que 8 caractères : Poubelle.
Je ne suis pas en train de vous apprendre à faire un mot de passe fort. Vous devriez utiliser un gestionnaire de mots de passe et le générateur automatique qui y est inclus.
Je suis en train d’essayer de rendre honteux tous les développeurs qui acceptent de mettre ces règles à la con sur les sites web dont ils ont la charge : Vous imposez des mots de passe qui sont à la fois imbitables et peu robustes.
Vous voulez faire mieux ?
Regardez dans quelle colonne est l’utilisateur en fonction des caractères qu’il a déjà tapé et donnez-lui un indicateur en fonction de la longueur de son mot de passe.
Moins de 10 € ? mot de passe insuffisant, refusé
Moins de 100 € ? mot de passe faible, couleur rouge
Moins de 1 000 € ? mot de passe moyen, couleur orange
Mot de passe sûr, couleur verte, à partir de 10 000 €
Si vous gérez un site central, par exemple un réseau social public, vous pouvez probablement relever tout ça d’un cran.
Si ça donne accès à des données sensibles, à des possibilités d’achat, à la boite e-mail ou à l’opérateur téléphonique, mieux vaux relever tout ça de deux crans.
Le tout prend probablement moins de 10 lignes en javascript. C’est une honte que vous acceptiez encore d’implémenter des règles à la con « au moins une majuscule, un chiffre et un symbole, voici les symboles autorisés […] ».
Il y a peut-être des erreurs, probablement des mauvais termes, certainement des fautes ou mauvaises formulations. Vous êtes bienvenus à participer en proposant des corrections.
L’idée de base : Tous les mots de passe sont chiffrés. Personne d’autre que vous ne peut les relire sans votre accord. Ni le serveur sur lequel vous les envoyez, ni quelqu’un qui a accès au disque où vous les stockez, ni quelqu’un qui a ponctuellement accès à votre poste de travail.
Chiffrer c’est simple.
Pour chiffrer on a le choix. On va séparer deux catégories principales de chiffrement : les chiffrements symétriques et les asymétriques.
La plupart des gestionnaires de mots de passe ont choisi un chiffrement symétrique (une seule clef secrète qui sert à la fois à chiffrer et à déchiffrer). C’est simple à gérer, rapide à l’exécution, et il n’y a pas besoin de clef de grande taille. Tous ceux que j’ai vu utilisent de l’AES avec une clef de 256 bits. Au moins pour Bitwarden et Keepass, c’est le mode CBC, et un contrôle HMAC avec SHA256 comme fonction de hachage (mais vous pouvez ignorer tous ces détails s’ils ne vous disent rien).
J’ai dit « la plupart des gestionnaires de mots de passe ». Un projet au moins a fait un choix différent. L’outil pass utilise un chiffrement asymétrique (une clef publique et une clef privée, l’une sert à chiffrer et l’autre à déchiffrer). Plus exactement, ils utilisent l’outil GnuPG. Même si le choix de la clef est libre, par défaut on y utilise généralement une clef RSA de 2048 bits. Pass a fait ce choix en considérant le partage de mots de passes comme la fonctionnalité principale. On verra pourquoi quand on parlera partage. Entre temps on va se concentrer sur ceux qui font du chiffrement symétrique.
Dans les deux cas, on est là dans de l’ultra-standard au niveau cryptographie. Je serais étonné de voir autre chose ailleurs (et c’est une bonne chose).
Une clef ? quelle clef ?
Ok, nos mots de passe sont chiffrés mais où est la clef ?
Impossible de demander à l’utilisateur de se rappeler une clef de 256 bits. Ce serait plus de 40 signes entre minuscules, majuscules, chiffres et caractères spéciaux. Même avec une très bonne mémoire, ce serait ingérable à l’usage.
Stocker la clef de chiffrement en clair sur le disque n’est pas beaucoup mieux. Ce serait comme avoir coffre-fort haute sécurité dont on cache la clef sous le paillasson.
Ce qu’on demande à l’utilisateur c’est un mot de passe principal. Vu qu’il va permettre de déchiffrer tous les autres, on va l’appeler « mot de passe maître ». Il faut qu’il soit assez long et complexe pour éviter qu’un tiers ne puisse le deviner ou le trouver en essayant toutes les combinaisons une à une, mais assez court pour pouvoir s’en rappeler et le taper sans erreur.
Le mot de passe maître ne chiffre rien lui-même. Accompagné d’autres paramètres, il sert à calculer une clef de taille suffisante qui, elle, servira au chiffrement décrit plus haut et qu’on va appeler « clef maîtresse ». La fonction qui fait cette opération est dite fonction de dérivation de clef.
Bitwarden utilise le très classique PBKDF2 avec un hachage SHA256. Pour faire simple on prend le mot de passe, on le mélange à une chaîne aléatoire (stockée quelque part pour réutiliser la même à chaque fois), et on opère la fonction de hachage prévue. Normalement ça suffit pour avoir un résultat considéré comme relativement aléatoire et impossible à remonter en sens inverse.
En pratique on cherche aussi à ralentir quelqu’un qui chercherait à tester tous les mots de passe possibles un à un. Pour ça on va simplement répéter l’opération précédente un certain nombre de fois. Chaque itération prend en entrée le résultat de l’étape précédente. Si je fais 10 itérations, il faudra 10 fois plus de temps à un attaquant pour tester toutes les combinaisons. Ici on considère le résultat comme assez confortable à partir de 100.000 itérations.
Keepass utilise une fonction plus récente et considérée comme plus robuste aux possibilités des matériels actuels : Argon2.
Là aussi tout est très classique. Je n’ai pas regardé tous les gestionnaires de mots de passe mais je serais étonné de trouver autre chose que ces deux solutions standards.
On résume
À l’ouverture le gestionnaire de mots de passe vous demande votre mot de passe maître. À partir de ce mot de passe et de paramètres prédéterminés, il utilise une fonction de dérivation de clef et en sort une clef maitresse.
C’est cette clef maitresse qui permet de chiffrer ou déchiffrer vos mots de passe. Celui qui n’a pas accès à votre clef ne pourra rien faire des mots de passe chiffrés sur le disque.
Sécurité
À l’ouverture, le gestionnaire de mot de passe vous demandera votre mot de passe maître que pour calculer la clef maîtresse à l’aide d’une fonction de dérivation de clef. Une fois ceci fait, il garde la clef maîtresse en mémoire et oublie le reste. Quoi qu’il se passe, personne ne connaîtra votre mot de passe maître.
Le logiciel utilise cette clef maîtresse pour chiffrer et déchiffrer vos mots de passe. Cette clef maîtresse n’est jamais écrite nulle part. La plupart des gestionnaires de mots de passe oublieront volontairement cette clef en mémoire après un certain temps d’inactivité, ou à la mise en veille de votre poste de travail. L’idée c’est de limiter le risque de laisser qui que ce soit d’autre que vous y avoir accès. Dans ces cas là, on vous invitera à saisir de nouveau votre mot de passe maître pour retrouver la clef oubliée.
Une fois la clef maîtresse hors de la mémoire, vous n’avez que des blocs chiffrés que personne ne pourra déchiffrer sans le mot de passe maître. Pas même vous. Si vous oubliez votre mot de passe maître, vous ne pourrez plus jamais relire ce que vous avez stocké. Même votre ami qui s’y connait ne pourra rien pour vous.
Ne vous laissez toutefois par leurrer. On parle sécurité, chiffrement, complexité des fonctions de dérivation de clef, mais en réalité tout ça a peu d’importance comparé à votre mot de passe maître. C’est un peu comme un coffre-fort : Discuter du diamètre des barres de renfort n’a aucun intérêt s’il s’ouvre avec une combinaison de trois chiffres seulement.
S’il est possible de trouver votre mot de passe avec un nombre de tentatives limité, tout le reste ne servira à rien. « Limité » dans ce cas, ça dépasse la centaine de milliards de combinaisons. Il vaut mieux un mot de passe maître complexe avec une fonction de dérivation simple qu’un mot de passe maître simple avec une fonction de dérivation complexe.
Changer le mot de passe
Les plus alertes d’entre vous auront remarqué que si tout est déchiffré indirectement à partir du mot de passe, changer le mot de passe fait perdre l’accès à tout ce qui est déjà chiffré.
Quand vous changez votre mot de passe maître, Keepass déchiffre toutes les données en mémoire, calcule la nouvelle clef et rechiffre l’intégralité des données. Même si vous gérez une centaine de mots de passe, c’est quelque chose qui se fait rapidement sans avoir besoin de vous faire patienter longtemps.
Bitwarden utilise lui une clef intermédiaire totalement aléatoire appelée clef de chiffrement. C’est cette clef qui sert en réalité à chiffrer et déchiffrer les données stockées. Elle est elle-même chiffrée, à partir de la clef maîtresse, et stockée à côté des données.
On a donc un mot de passe maître qui sert à calculer une clef maîtresse. La clef maîtresse sert à déchiffrer la clef de chiffrement. La clef de chiffrement sert à chiffrer et déchiffrer les données sur le disque.
Lorsqu’on veut changer de mot de passe il suffit de chiffrer la clef de chiffrement avec la nouvelle clef maitresse. Il n’y a pas besoin de rechiffrer chaque donnée (vu que la clef de chiffrement ne change pas, elle).
L’avantage n’est pas tant dans le temps gagné (peu significatif) mais dans la résistance aux accès concurrents : On peut avoir plusieurs clients qui lisent et écrivent en parallèle des données différentes dans le même trousseau sans crainte que l’un d’eux n’utilise encore une ancienne clef de chiffrement et envoie des données illisibles par les autres.
Et justement, et si je partage ?
Avec ce qu’on a vu jusqu’à présent, si je partage des mots de passe je dois aussi partager la clef de chiffrement utilisée.
Bitwarden permet de partager des mots de passe à un groupe de plusieurs personnes (appelé « organisation »). Au lieu d’être chiffrés avec ma clef de chiffrement personnelle, ces mots de passe sont chiffrés avec une clef de chiffrement dédiée à l’organisation.
Le gros enjeu n’est pas dans le chiffrement mais dans comment transmettre cette clef d’organisation à chaque utilisateur de l’organisation.
Il faut un moyen pour que l’administrateur de l’organisation chiffre la clef d’organisation, me l’envoie sur le serveur d’une façon que seul moi puisse la relire.
Jusqu’à maintenant c’est impossible parce que nous utilisons des clefs symétriques. C’est la même clef qui sert au chiffrement et au déchiffrement. Si l’administrateur pouvait chiffrer avec ma clef, il pourrait aussi déchiffrer tous mes mots de passes personnels et ça c’est inacceptable.
C’est donc ici qu’on reparle des clefs asymétriques RSA. Chacun a une clef publique (diffusée à tout le monde) et une clef privée (garder secrète par chaque utilisateur). La clef publique sert à chiffrer. La clef privée sert à déchiffrer. Tout le monde est donc capable de chiffrer quelque chose avec ma clef publique, mais seul moi pourrait le déchiffrer.
La clef RSA fait 2048 bits mais ne vous laissez pas impressionner, ces 2048 bits sont en fait moins robustes que les 256 bits d’AES.
L’administrateur de l’organisation récupère ma clef publique, chiffre la clef d’organisation à l’aide de ma clef publique, et envoie ça sur le serveur. Quand je voudrais chiffrer ou déchiffrer quelque chose dans l’organisation, je récupère la clef d’organisation chiffrée avec ma clef publique, je la déchiffre avec ma clef privée, et je m’en sers dans mes opérations de chiffrement.
Ok, mais il va me falloir sécuriser ma clef privée. On a déjà les outils pour ça, il suffit de la chiffrer ! Bitwarden la chiffre donc avec la clef de chiffrement, celle dont on a déjà parlé plus haut.
On a donc un mot de passe maître qui sert à calculer une clef maîtresse. La clef maîtresse sert à déchiffrer la clef de chiffrement. La clef de chiffrement sert à déchiffrer ma clef RSA privée. La clef RSA privée sert à déchiffrer la clef d’organisation. La clef d’organisation sert à chiffrer et déchiffrer les données.
Pfiou! Ça semble long et complexe mais tout utilise toujours le même principe et la plupart de ces opérations ne servent qu’à l’initialisation logiciel quand vous le déverrouillez.
Rappelez-vous, votre clef de chiffrement ne change pas quand vous changez votre mot de passe. Pas besoin donc de changer ou rechiffrer vos clefs RSA non plus.
Et Pass alors ?
Pass fait le choix de sauter tout le chiffrement symétrique et de n’utiliser que l’asymétrique. Un dépôt contient les clefs GPG de tous les membres (clefs publiques). Chaque fois qu’un mot de passe est chiffré, il l’est avec toutes ces clefs. Quand un membre veut lire un des mots de passe, il le déchiffre avec sa propre clef privée.
Quand on ajoute un membre, quand on change une clef, il faut tout rechiffrer.
Je crédite peu. Je ne nomme généralement pas la personne par qui j’ai obtenu une information. Je nomme pas l’auteur d’une photographie qui n’a aucune originalité artistique (*). Je ne souhaite pas nommer la personne qui a numérisé une œuvre.
Je n’aime simplement pas la maximisation du droit d’auteur qui s’infiltre depuis des années. Je ne souhaite pas contribuer à l’idée qu’une information appartient à celui qui la diffuse. Je ne cautionne pas l’idée d’une paternité attribuée à celui qui transmet, tel un second droit d’auteur s’additionnant au premier.
Je n’apprécie pas plus la monnaie de célébrité avec une course au nombre de like et de suivis sur les réseaux sociaux. Si c’est humain, et je m’y laisse parfois prendre aussi, je ne souhaite pas l’encourager.
Si quelqu’un mérite d’être mentionné, c’est par ce qu’il réalise, pour la valeur qu’il peut apporter à des tiers par le futur, pas parce que j’ai trouvé telle ou telle donnée chez lui.
Parfois je remercie, souvent ou parallèle ou par un autre canal, mais je ne crédite pas. La forme, l’intention et les destinataires sont différents.
Si je mentionne un intermédiaire ou un auteur qui n’est pas source d’originalité, c’est souvent que cette mention a du sens en elle-même. Ce peut être pour que cette personne puisse accéder aux discussions qui s’en suivent, pour inciter les lecteurs à aller chercher un complément d’information ou d’autres informations similaires à la source, ou encore pour laisser le lecteur juger de la crédibilité de ce que je diffuse.
Petite note de fin de billet pour rappeler que si la paternité est une composante essentielle du droit d’auteur, le droit d’auteur lui-même ne s’applique ni aux informations ni aux créations sans originalité, et ce peu importe le travail qui a été nécessaire ou la rareté de ce dont on parle.
(*) J’entends la notion d’originalité artistique au sens du droit d’auteur. Il ne s’agit pas de juger de la valeur ou de la réussite de l’image, ni de si elle ressemble à une autre. Il s’agit de grosso modo de savoir si c’est un œuvre intellectuelle qui dénote une intention et une personnalité de l’auteur, si elle a une particularité créative recherchée.