Catégorie : Technique

  • Avec des lettres de A à Z

    Le truc que j’ai du faire avec quasi­ment tous les langages mais pour lequel j’ai rare­ment trouvé une solu­tion satis­fai­sante : trans­for­mer un texte en reti­rant tous les accents et conver­tis­sant les lettres pour ne garder que les a à z.

    Tant que je me limite au français, italien et espa­gnol, j’ai une suite de recher­cher-rempla­cer qui me suffit :

    const ascii_replacements = [
      ['áàâä', 'a'],
      ['éèêë', 'e'],
      ['íìîï', 'i'],
      ['óòôö', 'o'],
      ['úùûü', 'u'],
      ['ñ', 'n'],
      ['æ', 'ae'],
      ['œ', 'oe'],
    ].map(([search, replace]) => [
      [new RegExp(search, 'gu'), replace],
      [new RegExp(search.toUpperCase(), 'gu'), replace.toUpperCase()],
    ]).flat()
    
    function ascii(text) {
      return ascii_replacements.reduce(
       (text, [search, replace]) => text.replace(search, replace),
       text
      )
    }

    Le gros problème c’est qu’il faut tout lister et que dès que je m’aven­ture hors du français, je risque d’en oublier.

    Via Le Hollan­dais Volant, une solu­tion qui utilise normalize :

    text.normalize("NFD").replace(/\p{Diacritic}/gu, "");

    C’est plus court, presque magique, mais en géné­ral j’ai aussi besoin de conver­tir æ et œ, qui seront oubliés ici. Il faut donc ajou­ter ces deux cas et leur version en majus­cule. Du coup c’est mieux mais pas encore ça.

    On peut se dire qu’en échange ça fonc­tionne pour toutes les langues, pas que le français, mais c’est passer à côté des spéci­fi­ci­tés locales. Si en français ö peut être dégradé en o, en alle­mand c’est l’équi­valent de oe.

    Reti­rer les signes diacri­tiques ne suffit pas pour obte­nir une version accep­table. La conver­sion dépend de la langue. L’al­le­mand est loin d’être la seule langue avec ce type de spéci­fi­ci­tés. Il faudra aussi ajou­ter les lettres propres à chaque langues, comme ß qui donne­rait ss.

    Par le passé j’ai utilisé iconv en PHP. Je me souviens que ce n’était pas parfait mais ça faisait ce type de job.

     iconv('UTF-8', 'ASCII//TRANSLIT', $text)

    Il faut juste penser à bien défi­nir la bonne locale avant. Ce n’est pas un défaut, c’est une fonc­tion­na­lité : Le résul­tat sera diffé­rent pour diffé­rentes locales.

  • GPS illus­tré

    Global Posi­tio­ning System is, without a doubt, one of the most useful inven­tions of the late 20th century. It made it signi­fi­cantly easier for ships, airplanes, cars, and hikers to figure out where they are with high degree of accu­racy.

    https://ciecha­now.ski/gps/

    Cet article est juste excep­tion­nel. On explique tout le GPS, depuis la trian­gu­la­tion dans un espace à trois dimen­sion jusqu’au déco­dage radio, en passant par les ques­tions de trajet élip­tique et dérives de temps dues à la rela­ti­vité.

    Il faut tout ça et ça reste tota­le­ment acces­sible, à base d’illus­tra­tions qui se mani­pulent dans la page. Incroyable.

    À lire jusqu’au bout (via Nim)

  • Vidéos de We Love Speed

    Les vidéos de We Love Speed 2021 sont sorties sur Youtube.

    J’ai la tris­tesse de ne pas avoir pu y assis­ter. Je suis preneur de vos recom­man­da­tions sur quelles présen­ta­tions regar­der.

  • Peri­text : A CRDT for Rich-Text Colla­bo­ra­tion

    Je me rappelle avoir fouillé Prose­mir­ror et les OT pour implé­men­ter l’édi­tion colla­bo­ra­tive de Cozy Notes.

    C’était une implé­men­ta­tion simpliste faite pour quelques auteurs simul­ta­nés sur un même docu­ment. Le vrai enjeu était de pouvoir gérer à la fois le colla­bo­ra­tif en ligne et la capa­cité de modi­fier un docu­ment hors ligne sur un temps long.

    C’est ce que tente Peri­text et c’est un problème bien plus complexe.

    In this article we present Peri­text, an algo­rithm for rich-text colla­bo­ra­tion that provides grea­ter flexi­bi­lity: it allows users to edit inde­pendent copies of a docu­ment, and it provides a mecha­nism for auto­ma­ti­cally merging those versions back toge­ther in a way that preserves the users’ intent as much as possible. Once the versions are merged, the algo­rithm guaran­tees that all users converge towards the same merged result.

    https://www.inkand­switch.com/peritext/

  • D’où vient cette &é’çà& de requête ?

    Astuce vue ce matin, je ne sais plus où :

    Ajou­ter un commen­taire dans chaque requête de base de données pour y mention­ner la loca­li­sa­tion de cette requête dans le code source (fichier, ligne).

    Objec­tif : Dans les jour­naux du SGBD, pouvoir tracer d’où vient la requête lente ou problé­ma­tique qu’on a en face de nous.

    Sur certains langages et cadres de travail ça peut même s’au­to­ma­ti­ser pour que ce soit fait auto­ma­tique­ment. En SQL c’est tout ce qui est après ‘-- ‘. En Mongo c’est dans $comment.

  • Sécu­rité de Have I Been Pwned?

    Concer­nant Have I Been Pwnd? il y a pas mal de gens réti­cents à l’uti­li­ser de peur que ça aspire ce qu’ils saisissent. Et c’est aussi prendre le risque qu’un site frau­du­leux se fasse passer pour lui.

    https://masto­don.teta­neu­tral.net/@Natouille/105820437840086551

    Il y a deux parties à Have I Been Pwnd?. La première partie c’est une solu­tion pour lais­ser son email et être averti dès qu’une brèche concerne un de vos comptes.

    Là dessus il n’y a aucun risque de sécu­rité, que du béné­fice. Si vous ne vous êtes pas enre­gis­tré, faites-le.

    On laisse certes son email mais pour l’ins­tant personne n’a relevé de spam sur ce service (et croyez-moi, il doit y avoir des milliers d’in­for­ma­ti­ciens qui ont du essayer de mettre une adresse de test spéci­fique).


    La seconde partie propose de saisir son mot de passe et regarde s’il est présent dans la base de données des mots de passe déjà connus.

    Troy Hunt a établi un proto­cole qui permet de véri­fier si un mot de passe est dans la base sans avoir à trans­mettre ce mot de passe au serveur. C’est simple à lire et à comprendre, et ça ne laisse aucune part au doute : Tant qu’on suit ce proto­cole, tester un mot de passe ne présente aucun risque de divul­ga­tion. Aucun.

    La seule vraie ques­tion est « pouvons-nous faire confiance au site web dans lequel nous saisis­sons le mot de passe pour suivre ce proto­cole et ne pas envoyer notre saisie quelque part sur un serveur ? »

    Il n’y a pas eu de brèche ou de malveillance sur Have I Been Pwned? jusqu’à présent mais, évidem­ment, ça n’est en rien une garan­tie abso­lue pour l’ave­nir.

    Si vous voulez plus de sécu­rité, deux possi­bi­li­tés :

    • Utili­ser un site web ou un outil en qui vous avez plus confiance pour qu’il implé­mente correc­te­ment le proto­cole de Have I Been Pwned?
    • Télé­char­ger la base en local sur votre poste, et utili­ser un outil en qui vous avez confiance pour cher­cher dedans.

    Des gestion­naires de mots de passe comme Dash­lane et Bitwar­den proposent de tester direc­te­ment vos mots de passe depuis le logi­ciel. Il faut avoir confiance mais, si vous les utili­sez comme gestion­naire de mots de passe, c’est à priori déjà le cas.

    Ce que je propo­sais quand je parlais de mot de passe fort et inter­face c’est exac­te­ment ça : C’est au logi­ciel ou au site web à qui vous allez confier votre mot de passe de toutes façons de le véri­fier auprès de la base Have I Been Pwnd? (qu’ils auront télé­chargé en local sur leur serveur). Ainsi il n’y a aucun besoin de faire confiance à un acteur tiers, aucun risque supplé­men­taire.


    Ok, mais c’est quoi ce proto­cole ? Comment peut-on véri­fier mon mot de passe sans le divul­guer ?

    On utilise des conden­sats, ici SHA1.

    Plus exac­te­ment on calcule la somme SHA1, sur 40 carac­tères hexa­dé­ci­maux, et on envoie les 5 premiers carac­tères au serveur. Le serveur nous répond avec la liste des sommes SHA1 de mots de passe connus qui partagent les mêmes 5 premiers carac­tères. À moi de véri­fier que le mien ne fait pas partie de cette liste.

    Vous lirez que SHA1 n’est pas idéal pour des mots de passe, encore moins sans ajout d’un sel aléa­toire. Pour autant il n’y a aucun moyen connu à ce jour pour même imagi­ner trou­ver une infor­ma­tion partielle à propos de votre mot de passe à partir des 5 premiers carac­tères de la somme SHA1.

    La seule chose possible c’est éven­tuel­le­ment se dire « c’est peut-être un des mots de passe connus qui partagent le même début de somme de contrôle ». L’in­for­ma­tion ne présente aucun inté­rêt puisque si juste­ment c’était un de ceux-ci, vous auriez été infor­més de ne pas l’uti­li­ser. Du coup, en creux, l’in­for­ma­tion devient « Quelqu’un utilise un mot de passe, et ce ne sera pas un mot de passe connu ». Bref, c’est exac­te­ment notre objec­tif, tout va bien.

  • Dice­ware

    Règle géné­rale : Lais­sez votre gestion­naire de mots de passe géné­rer des mots de passe outra­geu­se­ment complexes.

    Vous n’au­rez jamais besoin de les taper ou vous en souve­nir vous-même. Vous n’avez en fait même pas besoin de voir ou de savoir à quoi ces mots de passe ressemblent. Lais­sez-le faire.

    Le géné­ra­teur de mot de passe interne de Bitwar­den

    Et puis parfois on a besoin d’un mot de passe dont on doit se souve­nir, un qu’on doit pouvoir taper au clavier ou un qu’on doit pouvoir dicter au télé­phone.

    Et dans ce cas là je vous invite à utili­ser des mots français plutôt que des lettres, chiffres et symboles incom­pré­hen­sibles.

    La raison est simple : il est plus facile de rete­nir 4 mots connus que 8 lettres chiffres et symboles aléa­toires.

    La seule contrainte c’est d’uti­li­ser des mots réel­le­ment aléa­toires et pas ceux auxquels on pense en essayant naïve­ment de trou­ver des mots soi-même. Votre gestion­naire de mots de passe devrait savoir vous géné­rer cette suite de mots. Si ce n’est pas le cas la méthode dice­ware est à votre dispo­si­tion :

    1. Cher­chez une liste de mots de votre langue en cher­chant « dice­ware » sur votre moteur de recherche favori. Ce sont géné­ra­le­ment des listes de 7776 mots qui vont de 11 111 à 66 666.
    2. Lancez 5 fois un dé à 6 faces, regar­dez le mot qui corres­pond dans votre grille. Recom­men­cez autant de fois que vous avez besoin de mots.

    Calcul d’en­tro­pie pour diffé­rentes combi­nai­sons (les paliers de couleur sont arbi­traires à respec­ti­ve­ment 48, 56, 72, 96, 128 et 256 bits d’en­tro­pie)

    La sécu­rité c’est parfois contre intui­tif : Il suffit de 4 mots français pour être aussi robuste que 8 carac­tères acces­sibles au clavier, symboles inclus.

    À 5 mots vous avez l’équi­valent d’un mot de passe de 10 carac­tères clavier tota­le­ment aléa­toires en comp­tant 28 symboles possibles en plus des lettres et des chiffres.

    À 6 mots vous vous avez l’équi­valent d’un mot de passe de 12 carac­tères tota­le­ment aléa­toires, proba­ble­ment suffi­sant pour quasi­ment tous les usages aujourd’­hui. Si vous êtes para­noïaque, 8 mots c’est l’équi­valent de 16 carac­tères tota­le­ment aléa­toires.


    Tout ça n’est pas nouveau. XKCD en parlait déjà il y a plusieurs années. Cette bande dessi­née a été parfaite pour démo­cra­ti­ser l’idée mais trop de gens oublient que ça ne fonc­tionne que pour des mots réel­le­ment tirés au hasard.

    XKCD 936 : Pass­word Strength

    Atten­tion toute­fois : L’hu­main est très mauvais pour piocher au hasard.

    Même avec toute la bonne volonté du monde et en vous croyant machia­vé­lique dans votre choix, il est probable que vous ne pioche­rez que dans quelques centaines de mots, éven­tuel­le­ment un ou deux milliers.

    Le problème d’ailleurs aussi pour les mots de passe « clas­siques ». « Nico­las2012! » et « Julie+Mar­c2307 » sont de très mauvais mots de passe bien qu’ils respectent parfai­te­ment toutes les règles.

    Je donne là une évidence mais c’est plus géné­ral que ça. Un mot de passe qui est généré sans aide d’un géné­ra­teur d’aléa­toire est un mauvais mot de passe, peu importe à quoi il ressemble de loin. Les chiffres et symboles sont quasi­ment aux mêmes posi­tions. Certaines lettres et chiffres sont peu voire pas du tout utili­sés.

    Tout ça dimi­nue signi­fi­ca­ti­ve­ment la robus­tesse du mot de passe, même quand vous essayez de vous même d’y palier en cher­chant compliqué. Utili­sez une machine ou un système externe quel qu’il soit, quitte à ce que ce soit une paire de dés lancés à la main.

  • Mot de passe fort

    Je rage à chaque fois que je vois des règles complexes sur les mots de passe saisis. J’ai l’im­pres­sion qu’on a échoué à expliquer la sécu­rité.

    Une fois qu’on exclut les mots de passe unique­ment en chiffres, il n’y a quasi­ment plus que la longueur du mot de passe qui compte. Vous voulez un mot de passe sûr avec unique­ment des lettres ? Il suffit d’ajou­ter un unique carac­tère supplé­men­taire. Autant dire pas grand chose quand on est déjà à 9 ou 10.

    En réalité la diffé­rence est encore plus réduite que ça parce qu’en deman­dant d’ajou­ter des chiffres et symboles ce sont toujours les mêmes qui appa­raissent, mis à la fin ou en rempla­ce­ment des mêmes lettres (a qui donne @ par exemple).

    Pire : Pour rete­nir un mot de passe complexe avec majus­cules, chiffres et symboles, l’uti­li­sa­teur risque de mettre quelque chose de connu ou déjà utilisé ailleurs. On est parfois dans le contre-produc­tif.

    Si vous deviez utili­ser des règles de saisie du mot de passe, gardez n’en qu’une : la longueur. Le reste c’est de la litté­ra­ture.


    Main­te­nant, et si vous chan­giez de stra­té­gie ? Aidez l’uti­li­sa­teur et expliquez-lui ce qu’il se passe au lieu de lui appor­ter des contraintes.

    Commen­cez par lui propo­ser un mot de passe par défaut, avec une liste de mots connus et à ortho­graphe simple.

    Propo­sez ensuite un indi­ca­teur pour la force du mot de passe. Là vous pouvez prendre en compte la longueur mais aussi la présence dans la base Have I Been Pwnd.

    Une fois passé le strict mini­mum, c’est à l’uti­li­sa­teur de déci­der ce qu’il veut. Ne lui impo­sez pas un mot de passe de 12 carac­tères pour réali­ser un sondage sur la date de sa prochaine soirée entre amis.

    Votre rôle c’est de lui donner les clefs pour faire son choix, pas de le faire à sa place.

    L’in­di­ca­teur de complexité peut tout à fait avoir plusieurs paliers en fonc­tion de la présence de diffé­rentes classes de carac­tères. Vous pouvez aussi essayer de détec­ter des dates, le fait que le dernier carac­tère soit juste un chiffre ou un point d’ex­cla­ma­tion, et des suites un peu trop clas­siques comme 123 ou ou azerty.

    Si vous détec­tez des espaces alors c’est proba­ble­ment une phrase (s’il y a des petits mots faci­le­ment recon­nais­sables comme « le », « la », « il », « ce », « est », etc. ) ou des suites de mots (dans le cas contraire). Vous pouvez là aussi adap­ter votre calcul de complexité et la longueur recom­man­dée.

    Au bout d’une certaine résis­tance parlons unique­ment amélio­ra­tion.

  • Vie privée : Chif­fre­ment des disques

    On parle tant des mots de passe qu’on en oublie l’es­sen­tiel.

    Quiconque a accès à votre disque dur a accès à toute votre vie numé­rique, vos logi­ciels et vos docu­ments.

    Il peut relire votre l’at­tes­ta­tion de sécu télé­char­gée le mois dernier, votre feuille de calcul avec votre compta, vos photos de vacances mais aussi celles que vous gardez privées, la lettre à mamie, le testa­ment de grand père, votre carnet d’adresse complet.

    Il a accès aussi à votre histo­rique de navi­ga­tion inter­net des 30 ou 90 derniers jours, votre compte face­book, votre compte email avec l’in­té­gra­lité de vos échanges passés.

    Si vous êtes enre­gis­tré sous Google et que vous avez un Android, il y a toutes les chances qu’il puisse accé­dez à tout l’his­to­rique de géolo­ca­li­sa­tion et retra­cer dans le détail tous vos dépla­ce­ments depuis plusieurs mois.

    Via le navi­ga­teur il a aussi accès à tous les sites sur lesquels vous êtes enre­gis­tré, ceux pour lesquels vous avez enre­gis­tré le mot de passe. Vu qu’il a accès à vos emails, il pourra de toutes façons réini­tia­li­ser les mots de passe qu’il lui manque.

    Si on parle de votre télé­phone, ça inclut aussi tous vos SMS, votre histo­rique d’ap­pel, vos conver­sa­tions snap­chat, what­sapp et autres outils de commu­ni­ca­tion.

    Ça fait peur, non ?

    Ça arri­vera si quelqu’un de malveillant vous en veut person­nel­le­ment, mais aussi vous êtes la cible aléa­toire d’un cambrio­lage, que ce soit par le cambrio­leur ou par la personne chez qui se retrouve avec votre disque une fois remis en circu­la­tion.

    Non, il n’y a pas besoin de votre mot de passe de session windows ou mac pour cela. Il suffit d’ac­cé­der au disque direc­te­ment. Tout est dessus, en clair.

    Ok, comment on chiffre le disque alors ?

    Sous Windows ça s’ap­pelle BitLo­cker. Sous Mac ça s’ap­pelle FileVault. Sous Android ça s’ap­pelle simple­ment « Chif­frer l’ap­pa­reil » ou « Chif­frez vos données » quand ce n’est pas activé par défaut, et vous avez en plus un « Cryp­tage de la carte SD » pour la carte SD si vous en avez ajouté une.

    Vous trou­ve­rez ça à chaque fois dans la section « sécu­rité » des préfé­rences de votre système.

    La procé­dure est norma­le­ment assez simple (windows, mac). Assu­rez-vous simple­ment de ne pas oublier votre mot de passe.

    Voilà, c’est fait. Toutes vos données sont chif­frées, illi­sibles par un tiers.

    Bien entendu ça ne fonc­tionne que si vous avez aussi activé un déver­rouillage manuel obli­ga­toire au réveil de votre PC et de votre télé­phone, et que vous n’avez pas laissé le mot de passe sur un post-it juste à côté. Il ne sert à rien d’avoir une porte qui ferme à clef si vous lais­sez la clef sous le paillas­son ou si vous la lais­sez toujours ouverte.

    C’est quoi le piège ?

    Désor­mais votre cambrio­leur ne peut pas accé­der à vos données sans le mot de passe. Votre voisin ne peut pas accé­der à vos données sans le mot de passe.

    Vous non plus… Le piège est là. Sans le mot de passe vos données sont perdues, même pour vous.

    Apple vous propose de rete­nir une clef chez lui et de la sécu­ri­ser avec votre compte Apple. Je crois que Micro­soft fait pareil. Sur Android à ma connais­sance il n’y a rien de tout cela.

    En réalité ça n’est qu’un (mauvais) filet de sécu­rité.

    1/ N’ou­bliez pas le mot de passe.

    2/ Faites de sauve­gardes (même si vous avez le mot de passe, le disque lui-même peut casser, et au pire vous pour­rez récu­pé­rer vos données sur la sauve­garde)

    3/ Donnez un moyen à vos proches d’ac­cé­der aux données qui les concernent (photos de famille par exemple) si jamais il vous arrive quelque chose.

  • Self Encryp­ting Disk

    Ce soir j’ai joué avec les SED sous Linux. Ce fut labo­rieux et la docu­men­ta­tion est assez rare alors je pose ça ici si jamais ça sert à quelqu’un d’autre.

    Chif­frer ses données

    Sur mon NAS j’ai des données que je ne veux pas perdre, mais aussi des données que je ne veux pas voir fuiter n’im­porte où en cas de cambrio­lage.

    Jusqu’à présent j’avais une parti­tion prin­ci­pale en clair pour le système d’ex­ploi­ta­tion, et une parti­tion chif­frée via LUKS pour les données.

    Avan­tage : Ça fonc­tionne et je peux monter ma parti­tion à distance pour peu que le NAS ait redé­marré suite à un inci­dent élec­trique.

    Désa­van­tage : Parfois le système démarre mais n’a pas ses données. Il faut que je pense à redé­mar­rer certains services (oui, ça aurait pu être ajouté dans un script, je ne l’ai simple­ment pas fait).

    J’ai aussi la désa­gréable impres­sion que les copies se trainent comme il y a 20 ans alors que le disque est rapide. Il faut dire que j’ai un ancien Cele­ron J très faiblard et on a beau me dire que le chif­fre­ment ne consomme quasi­ment rien, mes explo­ra­tions me laissent penser le contraire.

    Les SED

    Les SED sont les self encryp­ting drives. Quasi­ment tous les SSD modernes sont des SED OPAL.

    Le firm­ware d’un SED sait chif­frer et déchif­fer toutes les données à la volée. Il suffit d’ini­tia­li­ser le disque à l’aide d’une pass-phrase. Lui va aller déchif­frer une clef AES 256 bits à l’aide de cette pass-phrase, et ensuite l’uti­li­ser pour chif­frer ou déchif­frer toutes les entrées sorties.

    C’est tota­le­ment trans­pa­rent pour l’OS et ça ne consomme aucun CPU. C’est même telle­ment trans­pa­rent qu’il le fait même si vous ne lui deman­dez pas. « Chif­fre­ment désac­tivé » revient en fait à chif­frer et déchif­frer avec une clef AES stockée en clair, mais on chiffre et déchiffre quand même toutes les données qui tran­sitent (gros avan­tage : On peut acti­ver le chif­fre­ment à la volée quand on le souhaite sans avoir à toucher les données : Il suffit de chif­frer la clef AES qui était aupa­ra­vant en clair).

    Pour chif­frer le disque d’amorçage il y a une astuce. Le disque a en fait une zone d’amorçage cachée où on charge une image dite PBA (pre-boot autho­ri­za­tion). Quand le disque est verrouillé, c’est cette zone qui est vue par la machine et qui est donc amor­cée. L’image demande la pass-phrase, initia­lise la clef AES, désac­tive la fausse zone d’amorçage et relance la machine comme si de rien n’était. Là aussi c’est tota­le­ment trans­pa­rent, l’OS n’y voit que du feu et a l’im­pres­sion de travailler avec un disque stan­dard, amorçage inclus.

    Sécu­rité

    Les SED ont très mauvaise répu­ta­tion depuis qu’une étude de sécu­rité a trouvé que de nombreux construc­teurs ont implé­menté tout ça avec les pieds (genre : la clef AES n’est pas chif­frée et en mani­pu­lant un peu le firm­ware on peut y avoir accès).

    Certains en tirent « il ne faut pas se repo­ser sur les SED » mais c’est un peu plus complexe que ça. Le stan­dard OPAL 2 est tout à fait solide d’un point de vue théo­rique. Il fonc­tionne d’ailleurs de manière très simi­laire à ce que fait LUKS sous Linux. Il faut juste que ce soit implé­menté avec sérieux.

    Il se trouve que, juste­ment, la même étude dit que les Samsung EVO récents ont une implé­men­ta­tion sérieuse. C’est ce que j’ai choisi, ça me va tout à fait.

    Il reste des attaques possibles, mais rien lié à mon modèle de menace (un simple cambrio­lage par des gens venus piquer le maté­riel infor­ma­tique pour le revendre). La NSA, elle, trou­vera de toutes façons moyen d’ac­cé­der à mes données que j’uti­lise LUKS ou un SED.

    Confi­gu­rer un SED

    Je n’ai trouvé que deux docu­men­ta­tions utiles, celle de ArchLi­nux et celle de l’uti­li­taire sedu­tils. On part d’une instal­la­tion OS exis­tante, on peut acti­ver le chif­fre­ment après coup.

    Acti­ver libata.allow_tpm

    Première étape, pour jouer il faudra acti­ver libata.allow_tpm. Sur Debian la seule manière qui m’a semblé fonc­tion­nelle est d’édi­ter /etc/default/grub et d’ajou­ter « libata.allow_tpm=1 » à la variable d’en­vi­ron­ne­ment GRUB_CMDLINE_LINUX_DEFAULT puis exécu­ter update-grub2 et relan­cer la machine.

    Instal­ler sedu­tils

    Je n’ai pas trouvé de paquet Debian. J’ai télé­chargé la distri­bu­tion binaire Linux à partir du site offi­ciel et ai copié sedu­tils-cli dans /usr/local/sbin. Vous aurez besoin qu’il soit dans le PATH plus tard.

    Prépa­rer une image PBA

    Les docu­men­ta­tions proposent de récu­pé­rer une image offi­cielle. Chez moi ça n’a pas fonc­tionné. Le disque est bien déver­rouillé mais ensuite la machine ne savait plus iden­ti­fier l’UEFI du disque pour lancer Linux.

    J’ai du créer ma propre image. C’est de toutes façons ce que je vous recom­mande parce que les images offi­cielles ne gèrent que les claviers US.

    Après avoir installé les paquets binu­tils, net-tools et console-data, télé­char­ger le projet rear puis suivre ce commen­taire :

    sudo apt install -y binutils net-tools console-data
    
    # aller à la racine du projet
    cd rear 
    echo "OUTPUT=RAWDISK" > ./etc/rear/site.conf
    sudo ./usr/sbin/rear -v mkopalpba
    # l'image est dans ./var/lib/rear/TCG-OPAL-PBA/*/*.raw
    Prépa­rer une clef USB de récu­pé­ra­tion

    Je suis comme tout le monde, j’avais sauté cette étape initia­le­ment mais elle vous sera indis­pen­sable pour retrou­ver l’uti­li­taire sedu­tils et pouvoir réini­tia­li­ser le disque en cas de problème (l’image d’ins­tal­la­tion de Debian non seule­ment n’a pas sedu­tils mais ne lance de toutes façons pas son kernel avec libata.allow_tpm, donc vous ne pour­rez rien en faire).

    Là vous pouvez prendre l’image rescue 64 bits offi­cielle et initia­li­ser une petite clef USB au cas où.

    gunzip RESCUE64.img.gz
    # /dev/sdb est ma clef USB
    dd if=RESCUE64.img.gz of=/dev/sdb

    En cas de diffi­culté ça permet de désac­ti­ver le chif­fre­ment, voire de réini­tia­li­ser un nouveau mot de passe si rien d’autre ne fonc­tionne (si la désac­ti­va­tion se fait sans perte de données, la réini­tia­li­sa­tion vous fait repar­tir avec un disque tota­le­ment vierge).

    # Désactiver le chiffrement
    # Remplacer passphrase par votre passphrase et /dev/sda par votre disque
    sudo sedutil-cli --disableLockingRange 0 passphrase /dev/sda
    sedutil-cli --setMBREnable off passphrase /dev/sda
    Confi­gu­rer le disque

    Désor­mais on peut suivre la procé­dure stan­dard, en utili­sant l’image PBA obte­nue plus haut :

    # Confirmer que le disque est utilisable
    sudo sedutil-cli --scan
    # Remplacer passphrase par votre passphrase et /dev/sda par votre disque
    sudo sedutil-cli --initialsetup passphrase /dev/sda
    sudo sedutil-cli --loadPBAimage passphrase imagePBA.raw /dev/sda
    sudo sedutil-cli --setMBREnable on passphrase /dev/sda
    sudo sedutil-cli --enableLockingRange 0 passphrase /dev/sda

    Éteindre et rallu­mer la machine (pas juste redé­mar­rer) devrait suffire à vous deman­der la pass­phrase. Une fois celle-ci saisie, la machine redé­marre encore. Oui c’est long mais c’est normal.

    Chez moi on me demande deux fois la pass­phrase et j’ai donc deux reboot au lieu d’un seul. C’est très long, agaçant. Si quelqu’un voit quel peut être le problème, ça m’in­té­resse. Entre temps je fais avec : Je ne devrais pas redé­mar­rer tous les quatre matins.