<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://petaramesh.org/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Ashram de Swâmi Petaramesh - cryptographie</title>
  <link>http://petaramesh.org/</link>
  <description>Ashram de Swâmi Petaramesh, Grand Guru de la Secte des Adorateurs de Cela.</description>
  <language>fr</language>
  <pubDate>Fri, 25 Jul 2008 07:02:22 +0200</pubDate>
  <copyright>CreativeCommons.org BY-NC-SA 2.0 FR</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Une clé de contact pour votre portable chiffré : Version 1.6</title>
    <link>http://petaramesh.org/post/2008/07/21/Une-cle-de-contact-pour-votre-portable-chiffre-%3A-Version-16</link>
    <guid isPermaLink="false">urn:md5:490252cb2391318d22903d498c62a732</guid>
    <pubDate>Mon, 21 Jul 2008 23:12:00 +0200</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>authentification</category><category>chiffrement</category><category>cryptographie</category><category>geekerie</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>    &lt;p&gt;Ce billet est là uniquement pour signaler une mise à jour du script &lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;bootkeyscript&lt;/a&gt;&lt;/em&gt; proposé dans mon précédent billet &amp;quot;&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/Une-cle-de-contact-pour-votre-portable-chiffre&quot; hreflang=&quot;fr&quot;&gt;Une clé de contact pour votre portable chiffré&lt;/a&gt;&amp;quot;.&lt;/p&gt;


&lt;p&gt;Avec la version 1.6, il est désormais possible de spécifier la partition où se trouve le fichier-clé déverrouillant le système, non seulement par son &lt;em&gt;device&lt;/em&gt; (i.e. &lt;code&gt;sdb1&lt;/code&gt;) mais également par son &lt;em&gt;label&lt;/em&gt; de filesystem ou son &lt;em&gt;UUID&lt;/em&gt;,&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/07/21/#pnote-1570-1&quot; id=&quot;rev-pnote-1570-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; ce qui permet d'utiliser une fichier-clé sur un périphérique dont le nom est susceptible de changer d'une fois sur l'autre.&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/07/21/#rev-pnote-1570-1&quot; id=&quot;pnote-1570-1&quot;&gt;1&lt;/a&gt;] Si le &lt;em&gt;filesystem&lt;/em&gt; contenant le fichier-clé est chiffré &lt;em&gt;LUKS&lt;/em&gt;, il est seulement possible d'utiliser l&lt;em&gt;'UUID&lt;/em&gt; du conteneur &lt;em&gt;LUKS&lt;/em&gt;, mais pas le &lt;em&gt;label&lt;/em&gt; ou l&lt;em&gt;'UUID&lt;/em&gt; du filesystem qui est à l'intérieur.&lt;/p&gt;&lt;/div&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/07/21/Une-cle-de-contact-pour-votre-portable-chiffre-%3A-Version-16#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/07/21/Une-cle-de-contact-pour-votre-portable-chiffre-%3A-Version-16#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1570</wfw:commentRss>
      </item>
    
  <item>
    <title>Retailler à la volée une LVM chiffrée LUKS</title>
    <link>http://petaramesh.org/post/2008/05/27/Retailler-a-la-volee-une-LVM-chiffree-LUKS</link>
    <guid isPermaLink="false">urn:md5:5970b09cf694bf4e4204d39b35039b6e</guid>
    <pubDate>Tue, 27 May 2008 11:58:00 +0200</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>chiffrement</category><category>cryptographie</category><category>geekerie</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>&lt;p&gt;(&lt;em&gt;English abstract at end.&lt;/em&gt;)&lt;/p&gt;


&lt;p&gt;Et encore un article en &lt;em&gt;bas moldave&lt;/em&gt; qui s'annonce ;-)&lt;/p&gt;


&lt;p&gt;J'explique ci-dessous comment il est possible d'agrandir à la volée une LVM chiffrée LUKS sur laquelle est installé tout un système GNU/Linux chiffré (ici une &lt;em&gt;&lt;a href=&quot;http://ubuntu-fr.org/&quot; hreflang=&quot;fr&quot;&gt;Ubuntu&lt;/a&gt; 8.04 Hardy&lt;/em&gt;).&lt;/p&gt;


&lt;p&gt;Si cela vous parle autant que l'élevage du Yaka-Faucon en Patagonie septentrionale, passez votre chemin ;-)&lt;/p&gt;    &lt;p&gt;Ma problématique pour cette manip' était la suivante : un ordinateur portable entièrement chiffré (sauf /boot) dont le disque dur était partitionné de la manière suivante :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;sda1: &lt;code&gt;/boot&lt;/code&gt; (non chiffré)&lt;/li&gt;
&lt;li&gt;sda2: LVM chiffrée contenant le &lt;em&gt;root filesystem&lt;/em&gt; et la quasi-totalité des volumes logiques usuels (&lt;code&gt;/var&lt;/code&gt;, &lt;code&gt;/home&lt;/code&gt;...)&lt;/li&gt;
&lt;li&gt;sda3: un &lt;code&gt;/tmp&lt;/code&gt; chiffré utilisant une clé aléatoire générée au boot.&lt;/li&gt;
&lt;li&gt;sda4: un &lt;code&gt;swap&lt;/code&gt; chiffré utilisant une clé aléatoire générée au boot.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;L'objectif de la manip était d'&amp;quot;incorporer&amp;quot; le &lt;code&gt;/tmp&lt;/code&gt; et le &lt;em&gt;swap&lt;/em&gt; à l'intérieur de la LVM chiffrée principale et non plus à l'extérieur de celle-ci, de manière à pouvoir utiliser la fonction &amp;quot;&lt;em&gt;hibernation sur disque&lt;/em&gt;&amp;quot; de la machine, qui nécessite en pratique que le déchiffrement du &lt;em&gt;root filesystem&lt;/em&gt; au boot permette également l'accès au &lt;em&gt;swap&lt;/em&gt; sur lequel est stocké le fichier de reprise, le plus simple étant alors de mettre le swap dans la même LVM chiffrée que le reste des partitions.&lt;/p&gt;


&lt;p&gt;La même manip pourrait être utilisée à d'autres fins, par exemple augmenter l'espace disque utilisable après avoir recopié l'ensemble d'un système chiffré sur un disque neuf plus gros.&lt;/p&gt;


&lt;p&gt;Pour que ça soit plus drôle, nous allons faire ça en &lt;em&gt;live&lt;/em&gt;, sur le système tournant et bien chaud, et sans recourir au boot sur un CD-Rom.&lt;/p&gt;


&lt;p&gt;Cet article est en partie inspiré de l'article de &lt;em&gt;Bodhi.Zazen&lt;/em&gt; : &lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://ubuntuforums.org/showthread.php?p=4530641&quot; hreflang=&quot;en&quot;&gt;How to Resize a LUKS Encrypted File System.&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Avertissement : Ce type de manipulation est susceptible de provoquer la perte irréparable de l'ensemble des données présentes sur votre disque, si vous faites la moindre erreur durant les opérations, ou si j'ai fait la moindre erreur en les décrivant ! Faites une copie de sauvegarde de l'ensemble de votre système, vous êtes seul(e) responsable des dégâts que vous vous apprêtez à causer, même si une erreur s'est glissée dans mon article et si c'est moi qui vous ai foutu dedans. À vos risques et périls ! ;-)&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Dans mon cas particulier, je vais donc commencer par supprimer les partitions sda3 et sda4, dont le contenu sera perdu durant l'opération, mais cela est sans importance s'agissant d'un &lt;code&gt;/tmp&lt;/code&gt; et d'un &lt;em&gt;swap&lt;/em&gt;, puis je vais étendre la partition sda2 sur laquelle réside la LVM chiffrée afin de récupérer dedans l'espace laissé libre par les partitions supprimées, puis j'agrandirai le container chiffré qui occupe cette partition, puis j'agrandirai le volume physique de LVM qui est dedans, ce qui ajoutera à la LVM chiffrée l'espace ainsi récupéré, permettant alors d'y créer de nouveaux &lt;em&gt;volumes logiques&lt;/em&gt;, ou d'étendre les volumes logiques existants.&lt;/p&gt;


&lt;p&gt;Dans le cas général, on considèrera que nous disposerons d'une manière ou d'une autre d'espace disque libre immédiatement après la partition contenant la LVM chiffrée à étendre.&lt;/p&gt;


&lt;p&gt;Dans mon cas particulier, il me faut commencer par désactiver le swap (&lt;code&gt;swapoff -a&lt;/code&gt;) dont je vais supprimer la partition, démonter le &lt;code&gt;/tmp&lt;/code&gt;, et le démontage du &lt;code&gt;/tmp&lt;/code&gt; nécessite de fermer toute session graphique X (KDE ou Gnome) et d'arrêter le gestionnaire de session graphique (&lt;code&gt;invoke-rc.d kdm stop&lt;/code&gt; ou &lt;code&gt;invoke-rc.d gdm stop&lt;/code&gt; selon le cas), ce qui me fera donc travailler en mode console texte. Il me faudra ensuite désactiver les volumes chiffrés correspondants avant de pouvoir en supprimer les partitions.&lt;br /&gt;
Dans le cas général, si vous n'avez pas besoin de démonter une partition nécessaire, vous pouvez travailler dans un terminal depuis une session graphique.&lt;/p&gt;


&lt;h4&gt;Retaillage des partitions&lt;/h4&gt;


&lt;p&gt;Commençons donc par décrire l'étape de suppression des partitions inutiles, et de redimensionnement de la partition à agrandir.&lt;/p&gt;


&lt;p&gt;Nous allons pour cela utiliser le bon vieux &lt;code&gt;fdisk&lt;/code&gt; en console, et non pas un outil graphique, car seul &lt;code&gt;fdisk&lt;/code&gt; nous permettra de &lt;em&gt;supprimer&lt;/em&gt; notre partition essentielle (celle de la LVM chiffrée) et de la recréer exactement au même endroit, mais plus grande.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Lançons donc: &lt;code&gt;fdisk /dev/sda&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;La première chose à faire est d'afficher la table de partitions actuelle en utilisant la commande &amp;quot;p&amp;quot;, et de noter absolument tous les jolis chiffres qui apparaîssent alors, de manière à pouvoir remettre manuellement les choses en l'état en cas de problème.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Puis nous utiliserons la commande &amp;quot;d&amp;quot; de &lt;em&gt;fdisk&lt;/em&gt; afin de détruire sans regret les partitions &amp;quot;4&amp;quot; et &amp;quot;3&amp;quot; dont nous n'avons plus besoin.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Puis nous arrivons à l'étape &lt;em&gt;&lt;strong&gt;vraiment terrifiante&lt;/strong&gt;&lt;/em&gt; de la manoeuvre, qui consiste à &lt;em&gt;supprimer&lt;/em&gt; la partition &lt;em&gt;sda2&lt;/em&gt;, c'est-à-dire celle de notre LVM chiffrée, ce qui revient très exactement à scier la branche sur laquelle notre système est assis. Supprimons donc courageusement la partition &amp;quot;2&amp;quot; à l'aide de la commande &amp;quot;d&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Pas de panique toutefois, les modifications ne seront &lt;em&gt;réellement&lt;/em&gt; apportées sur le disque qu'au moment où nous exécuterons la commande &amp;quot;w&amp;quot; finale, et nous aurons recréé la partition vitale d'ici-là, mais en plus grand. D'autre part, la modification de la table de partitions sera alors écrite sur le &lt;em&gt;disque dur&lt;/em&gt; lui-même, mais le noyau Linux n'en tiendra aucun compte puisqu'il est incapable de relire la table de partitions d'un disque ayant des partitions &lt;em&gt;montées&lt;/em&gt;. Il faudra donc rebooter le système pour que le changement de taille de la partition concernée soit pris en compte.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Après avoir supprimé la partition &amp;quot;2&amp;quot;, nous la recréons maintenant aussitôt, comme partition primaire, en utilisant la commande &amp;quot;n&amp;quot;. Nous veillerons alors à ce que la &amp;quot;nouvelle partition 2&amp;quot; commence à l'endroit exact du disque (numéro de cylindre) où elle commençait précédemment, et nous la laisserons s'étendre jusqu'à la fin du disque, utilisant ainsi tout l'espace disponible.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Après avoir recréé la partition, utilisons la commande &amp;quot;p&amp;quot; pour afficher la nouvelle table de partitions, et vérifions soigneusement à l'aide de nos notes qu'elle commence effectivement exactement au même endroit que précédemment.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Si c'est bien le cas, nous pouvons alors écrire nos modifications de manière définitive avec la commande &amp;quot;w&amp;quot;, qui nous fera également quitter &lt;em&gt;fdisk&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nous allons maintenant devoir &lt;em&gt;rebooter le système&lt;/em&gt; pour que la nouvelle table de partitions soit prise en compte. Toutefois, si nous avons (dans mon cas particulier) supprimé des partitions qui servaient antérieurement, nous devons en faire disparaître toute trace dans &lt;code&gt;/etc/fstab&lt;/code&gt; et &lt;code&gt;/etc/crypttab&lt;/code&gt;, puis régénérer notre initramfs (&lt;code&gt;update-initramfs -u&lt;/code&gt;) pour éviter de cruelles erreurs lors du reboot.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Rebootons donc bien proprement le système.&lt;/strong&gt; Ceci devrait se dérouler sans erreur.&lt;/p&gt;


&lt;h4&gt;Extension du volume LUKS chiffré&lt;/h4&gt;


&lt;p&gt;Après avoir rebooté, il nous faut théoriquement agrandir le volume chiffré supportant notre LVM. Je dis &lt;em&gt;théoriquement&lt;/em&gt; car mes observations semblent démontrer que le volume chiffré utilise automatiquement la nouvelle taille entière de la partition, mais comme je n'en suis pas absolument certain, le redimensionner &lt;em&gt;quand même&lt;/em&gt; ne fera pas de mal.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Affichons tout d'abord la taille actuelle de notre container de LVM chiffrée, supposant qu'il s'appelle &amp;quot;encVG&amp;quot; par exemple :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;# cryptsetup status encVG
/dev/mapper/encVG is active:
 cipher:  aes-cbc-essiv:sha256
 keysize: 192 bits
 device:  /dev/sda2
 offset:  1032 sectors
 size:    312061593 sectors
 mode:    read/write&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;&amp;quot;Agrandissons&amp;quot; (en théorie) maintenant le container :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;cryptsetup resize encVG&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Affichons de nouveau sa taille (&lt;code&gt;cryptsetup status encVG&lt;/code&gt;) : Surprise : il semble que rien n'a changé, et que notre manip n'a donc servi à rien ? Ce n'est pas grave : nous utilisons désormais bel et bien la totalité de l'espace attribué à la partition sda2.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Agrandissement du volume physique de la LVM&lt;/h4&gt;


&lt;p&gt;C'est là que nous allons nous apercevoir que la manip' a marché !&lt;/p&gt;


&lt;pre&gt;# pvs
 PV                       VG   Fmt  Attr PSize   PFree
 /dev/mapper/encVG VG1 lvm2 a-   144.80G    0&lt;/pre&gt;


&lt;pre&gt;pvresize /dev/mapper/encVG&lt;/pre&gt;


&lt;pre&gt;# pvs
 PV                       VG   Fmt  Attr PSize   PFree
 /dev/mapper/encVG VG1 lvm2 a-   148.80G    4.0G&lt;/pre&gt;


&lt;p&gt;Eh oui ! le &amp;quot;&lt;code&gt;pvresize&lt;/code&gt;&amp;quot; nous a bien fait gagner 4 Go d'espace libre dans la LVM chiffrée !&lt;/p&gt;


&lt;h4&gt;Création des nouveaux volumes logiques&lt;/h4&gt;


&lt;p&gt;Nous pouvons maintenant créer (&lt;code&gt;lvcreate&lt;/code&gt;) un ou plusieurs nouveaux volumes logiques dans l'espace désormais disponible sur la LVM.  Dans mon cas, j'en recréerai deux, pour le &lt;code&gt;/tmp&lt;/code&gt; et pour le &lt;em&gt;swap&lt;/em&gt; bien sûr.&lt;/p&gt;


&lt;p&gt;Si vous souhaitez utiliser ce nouvel espace non pas pour créer de nouveaux volumes logiques, mais pour agrandir un volume déjà existant (&lt;code&gt;lvextend&lt;/code&gt;), je vous conseille toutefois de commencer par créer un nouveau volume logique, que vous supprimerez ensuite, mais entre-temps vous l'aurez rempli de données aléatoires, ce qui est toujours conseillé avant de commencer à utiliser un volume chiffré.&lt;/p&gt;


&lt;h4&gt;Remplissage des nouveaux volumes logiques avec des données aléatoires&lt;/h4&gt;


&lt;p&gt;Par exemple :&lt;/p&gt;


&lt;pre&gt;dd if=/dev/urandom of=/dev/mapper/VG1-newvolume bs=1M&lt;/pre&gt;


&lt;p&gt;(Si vous voulez accélérer cette étape, vous pouvez utiliser &lt;code&gt;/dev/zero&lt;/code&gt; à la place de &lt;code&gt;/dev/urandom&lt;/code&gt;, puisque, s'agissant d'un volume chiffré, le chiffrement donnera de toute manière un &lt;em&gt;aspect&lt;/em&gt; parfaitement aléatoire aux données qui seront physiquement écrites sur le disque (les zéros seront transformés en &lt;em&gt;random&lt;/em&gt; apparent).&lt;/p&gt;


&lt;h4&gt;Formatage des nouveaux volumes logiques&lt;/h4&gt;


&lt;p&gt;Nous n'avons plus désormais qu'à formater les nouveaux volumes logiques en fonction de leur utilisation projetée : &lt;code&gt;mke2fs&lt;/code&gt;, &lt;code&gt;mkswap&lt;/code&gt;, etc... ou, pour l'extension d'un volume existant, &lt;code&gt;lvextend&lt;/code&gt; puis &lt;code&gt;resize2fs&lt;/code&gt;&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/27/#pnote-1506-1&quot; id=&quot;rev-pnote-1506-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; par exemple.&lt;/p&gt;


&lt;h4&gt;Mise à jour de fstab&lt;/h4&gt;


&lt;p&gt;Enfin, nous pouvons monter nos nouveaux volumes, sans oublier bien sûr de les mentionner dans &lt;code&gt;/etc/fstab&lt;/code&gt; - il n'y a rien à ajouter dans &lt;code&gt;/etc/crypttab&lt;/code&gt; puisque l'entrée servant à déverrouiller globalement la LVM chiffrée y figure déjà.&lt;/p&gt;


&lt;p&gt;&lt;em&gt;That's all, folks !&lt;/em&gt;&lt;/p&gt;


&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;English abstract :&lt;/strong&gt;&lt;/em&gt; This article explains how to expand a LUKS-encryped LVM on which resides a fully encrypted GNU/Linux System, including its root filesystem. This can be done on the &amp;quot;&lt;em&gt;live&lt;/em&gt;&amp;quot; system without needing to boot from a &lt;em&gt;live CD&lt;/em&gt; or the like. Use an online translator such as &lt;em&gt;Google translate&lt;/em&gt; or &lt;em&gt;babelfish&lt;/em&gt; to obtain a truly bad, automated translation of this document ;-)&lt;/p&gt;


&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;Help Google :&lt;/em&gt; resize enlarge expand LUKS encrypted partition LVM container on the fly&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/27/#rev-pnote-1506-1&quot; id=&quot;pnote-1506-1&quot;&gt;1&lt;/a&gt;] À effectuer sur un volume préalablement &lt;em&gt;démonté&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/05/27/Retailler-a-la-volee-une-LVM-chiffree-LUKS#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/05/27/Retailler-a-la-volee-une-LVM-chiffree-LUKS#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1506</wfw:commentRss>
      </item>
    
  <item>
    <title>Une clé de contact pour votre portable chiffré : Mise à jour</title>
    <link>http://petaramesh.org/post/2008/05/11/Une-cle-de-contact-pour-votre-portable-chiffre-%3A-Mise-a-jour</link>
    <guid isPermaLink="false">urn:md5:59c965653ea4c66502aeb252b7365103</guid>
    <pubDate>Sun, 11 May 2008 09:46:00 +0200</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>authentification</category><category>chiffrement</category><category>cryptographie</category><category>geekerie</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>    &lt;p&gt;Ce billet est là uniquement pour signaler une importante mise à jour de mon précédent billet &lt;q&gt;&lt;em&gt;&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/Une-cle-de-contact-pour-votre-portable-chiffre&quot; hreflang=&quot;fr&quot;&gt;Une clé de contact pour votre portable chiffré&lt;/a&gt;&lt;/em&gt;&lt;/q&gt; et du script &lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;bootkeyscript&lt;/a&gt;&lt;/em&gt;&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/11/#pnote-1492-1&quot; id=&quot;rev-pnote-1492-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; qu'il propose.&lt;/p&gt;


&lt;p&gt;En effet, ce script s'est avéré dans sa version précédente pouvoir &lt;em&gt;très mal&lt;/em&gt; fonctionner avec une clé non chiffrée sur une clé USB formatée en FAT. Le voici maintenant &lt;em&gt;bien&lt;/em&gt; débuggé, partiellement réécrit et enrichi, ainsi que les explications qui vont avec.&lt;/p&gt;


&lt;p&gt;Que demande le peuple ? ;-)&lt;/p&gt;


&lt;h4&gt;Instructions de mise-à-jour :&lt;/h4&gt;


&lt;p&gt;Si vous utilisiez la précédente version de mon script &lt;em&gt;bootkeyscript&lt;/em&gt;, il vous suffit d'installer la nouvelle à la place de la précédente (typiquement dans &lt;code&gt;/usr/local/sbin&lt;/code&gt;) et de régénérer votre &lt;em&gt;initramfs&lt;/em&gt; avec &amp;quot;&lt;code&gt;update-initramfs -u&lt;/code&gt;&amp;quot;. C'est tout.&lt;/p&gt;


&lt;p&gt;Bon c'est pas tout ça, faut qu'on va aller pique-niquer ;-))&lt;/p&gt;


&lt;p&gt;(&lt;em&gt;Rectificatif :&lt;/em&gt; Ah non, tiens, le programme de la journée a l'air plutôt réglé sur &amp;quot;&lt;em&gt;Monstre engueulade familiale et hurlements uxoriens&lt;/em&gt;&amp;quot;... Soyons zen...)&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/11/#rev-pnote-1492-1&quot; id=&quot;pnote-1492-1&quot;&gt;1&lt;/a&gt;] (&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript.asc&quot;&gt;Signature GnuPG&lt;/a&gt;, &lt;a href=&quot;http://petaramesh.org/public/arc/projects/lfd/gpl_v3.txt&quot;&gt;licence GPL&lt;/a&gt;)&lt;/p&gt;&lt;/div&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/05/11/Une-cle-de-contact-pour-votre-portable-chiffre-%3A-Mise-a-jour#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/05/11/Une-cle-de-contact-pour-votre-portable-chiffre-%3A-Mise-a-jour#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1492</wfw:commentRss>
      </item>
    
  <item>
    <title>Another brick in the wall</title>
    <link>http://petaramesh.org/post/2008/02/27/Another-brick-in-the-wall</link>
    <guid isPermaLink="false">urn:md5:dea010ebd7f54b592539ce85170c91ca</guid>
    <pubDate>Wed, 27 Feb 2008 08:31:00 +0100</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>A lire ailleurs...</category>
        <category>ailleurs</category><category>Big Brother</category><category>chiffrement</category><category>cryptographie</category><category>GnuPG</category><category>internet</category><category>politique</category><category>société</category>    
    <description>    &lt;p&gt;L'étau libéral-fasciste se resserre encore un peu plus sur nos moyens d'expression et de communication. C'est à lire &lt;a href=&quot;http://www.lemonde.fr/technologies/article/2008/02/20/le-projet-de-conservation-des-donnees-largement-conteste_1013774_651865.html#ens_id=1013775&quot; hreflang=&quot;fr&quot;&gt;ici&lt;/a&gt; et &lt;a href=&quot;http://partipirate.org/blog/com.php?id=7&quot; hreflang=&quot;fr&quot;&gt;là&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Désolé, je ne fais que mettre ici en évidence &lt;a href=&quot;http://petaramesh.org/post/2008/02/23/Vocabulaire-presidentiel#c51474&quot; hreflang=&quot;fr&quot;&gt;le lien fourni hier par Patrick&lt;/a&gt;, n'ayant pas le temps matériel de pondre un &amp;quot;véritable billet&amp;quot;...&lt;/p&gt;


&lt;p&gt;Mais je ne peux que constater avec un immense dégoût que rien n'arrête le train successif des mesures liberticides adoptées les unes après les autres malgré les vives protestations de ceux qui comprennent de quoi il s'agit vraiment, et dans la totale indifférence du plus grand nombre. &lt;acronym title=&quot;Loi sur la sécurité intérieure&quot;&gt;LSI&lt;/acronym&gt;, &lt;acronym title=&quot;Loi sur la sécurité quotidienne&quot;&gt;LSQ&lt;/acronym&gt;, série sans fin de &amp;quot;lois antiterroristes&amp;quot;, DADVSI, &amp;quot;conservation des données de connexion&amp;quot;, biométrie à tous les étages, &lt;acronym title=&quot;Système de traitement des infractions constatéesI&quot;&gt;STIC&lt;/acronym&gt;, &lt;acronym title=&quot;Fichier national automatisé des empreintes génétiques&quot;&gt;FNAEG&lt;/acronym&gt;, &amp;quot;Rétention&amp;quot; arbitraire &lt;em&gt;sine die&lt;/em&gt; après la &amp;quot;détention&amp;quot;...
Toutes mesures votées au prétexte de bien grands crimes qui finissent rapidement appliquées aux plus petites vétilles, comme les prélèvements génétiques effectués sur un manifestant ou un &lt;em&gt;d'jeunz&lt;/em&gt; qui a tagué un mur... ou un prof qui a giflé un élève. Étonnant que Bayrou n'ait pas eu droit à son petit prélèvement lors de sa fameuse baffe, ou pourquoi pas Sarkozy fiché au STIC pour insulte publique ?&lt;/p&gt;


&lt;p&gt;En l'espace de quelques années, les gouvernements successifs de ce pays se sont dotés d'un arsenal sans précédent de mesures de surveillance et de contrôle de la population au motif que nous sommes tous des &amp;quot;terroristes&amp;quot; ou des &amp;quot;pirates&amp;quot; en puissance.&lt;/p&gt;


&lt;p&gt;Et ne nous y trompons pas, nous le sommes tous. L'ennemi, c'est le peuple. Et le gouvernement a acquis un arsenal lui permettant de réprimer n'importe lequel d'entre-nous à tel ou tel prétexte de manière arbitraire le jour où ça lui pètera.&lt;br /&gt;
Surveillé au microscope, &lt;em&gt;tout le monde est délinquant&lt;/em&gt;...&lt;/p&gt;


&lt;p&gt;En profiterai-je pour rappeler la nécessité brûlante pour chacun de prendre lui-même les contre-mesures nécessaires pour protéger sa vie privée autant que faire se peut, à commencer bien sûr par &lt;a href=&quot;http://openpgp.vie-privee.org/&quot; hreflang=&quot;fr&quot;&gt;le chiffrement de son courrier électronique&lt;/a&gt;...&lt;/p&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/02/27/Another-brick-in-the-wall#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/02/27/Another-brick-in-the-wall#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1379</wfw:commentRss>
      </item>
    
  <item>
    <title>LFD: Mise à jour</title>
    <link>http://petaramesh.org/post/2008/01/18/LFD%3A-Mise-a-jour</link>
    <guid isPermaLink="false">urn:md5:a3f796465e3eb5123966b66a83c31def</guid>
    <pubDate>Fri, 18 Jan 2008 14:19:00 +0100</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>chiffrement</category><category>cryptographie</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>    &lt;p&gt;Voici une mise-à-jour de mon script &amp;quot;&lt;em&gt;&lt;a href=&quot;http://petaramesh.org/post/2007/11/13/LUKSfile-for-dummies&quot; hreflang=&quot;fr&quot;&gt;LUKSfile for dummies&lt;/a&gt;&lt;/em&gt;&amp;quot;.&lt;/p&gt;


&lt;p&gt;Cette nouvelle version permet désormais (optionnellement) la création et le montage de containers chiffrés LUKS intérieurement formatés en FAT16 ou FAT32, les rendant ainsi utilisables sous &lt;em&gt;Windows&lt;/em&gt; grâce au logiciel &lt;em&gt;&lt;a href=&quot;http://www.freeotfe.org/&quot; hreflang=&quot;en&quot;&gt;FreeOTFE&lt;/a&gt;&lt;/em&gt; pour Windows.&lt;/p&gt;


&lt;p&gt;On peut ainsi créer des containers chiffrés sur support amovible (clé USB, etc.) qui pourront être utilisés dans les deux environnement GNU/Linux ou Windows.&lt;/p&gt;


&lt;p&gt;N.B.: Créer des containers chiffrés formatés en FAT est déconseillé si ce n'est pas pour les partager entre les deux environnements. En effet :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Il est impossible d'effectuer un &lt;em&gt;fsck&lt;/em&gt; sur un container formaté en FAT, rendant toute réparation délicate en cas d'endommagement du filesystem.&lt;/li&gt;
&lt;li&gt;FAT est intrinsèquement beaucoup plus fragile qu&lt;em&gt;'ext3&lt;/em&gt; employé par défaut.&lt;/li&gt;
&lt;li&gt;Un &lt;em&gt;filesystem&lt;/em&gt; en FAT ne gère pas les droits &lt;em&gt;Un*x&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;</description>
    
          <enclosure url="http://petaramesh.org/public/arc/projects/lfd/lfd"
      length="43335" type="text/plain" />
          <enclosure url="http://petaramesh.org/public/arc/projects/lfd/lfd.asc"
      length="189" type="text/plain" />
          <enclosure url="http://petaramesh.org/public/arc/projects/lfd/gpl_v3.txt"
      length="35147" type="text/plain" />
    
    
          <comments>http://petaramesh.org/post/2008/01/18/LFD%3A-Mise-a-jour#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/01/18/LFD%3A-Mise-a-jour#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1302</wfw:commentRss>
      </item>
    
  <item>
    <title>Une clé de contact pour votre portable chiffré</title>
    <link>http://petaramesh.org/post/2007/11/29/Une-cle-de-contact-pour-votre-portable-chiffre</link>
    <guid isPermaLink="false">urn:md5:13f4af6a598b74d2ac08b3b032bc3848</guid>
    <pubDate>Thu, 29 Nov 2007 16:44:00 +0100</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>authentification</category><category>chiffrement</category><category>cryptographie</category><category>geekerie</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;Article mis à jour le 22 juillet 2008&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://petaramesh.org/public/arc/img/info/2007/SD_card.jpg&quot; alt=&quot;Carte flash SD&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; /&gt;Dans &lt;a href=&quot;http://petaramesh.org/post/2007/11/21/Ubuntu-%3A-Chiffrement-integral-du-disque-dur-dun-portable&quot; hreflang=&quot;fr&quot;&gt;mon précédent article&lt;/a&gt;, je vous ai expliqué comment chiffrer intégralement le disque dur de votre portable sous Linux, rendant l'ensemble des données et programmes qu'il contient absolument indéchiffrables et inaccessibles pour qui ne connaît pas la phrase secrète nécessaire à son déchiffrement.&lt;/p&gt;


&lt;p&gt;Nous allons aujourd'hui nous intéresser à une autre méthode de démarrage d'un tel portable : Celle qui consiste à utiliser une clé de déchiffrement stockée sur un support externe, qui jouera alors le rôle de &amp;quot;&lt;em&gt;clé de contact&lt;/em&gt;&amp;quot; de la machine : Si ce support externe est inséré, le portable pourra démarrer ; s'il est absent, le portable sera inutilisable.&lt;/p&gt;


&lt;p&gt;Nous verrons qu'il est également possible d'utiliser ce qu'on appelle &amp;quot;&lt;em&gt;dual form authentication&lt;/em&gt;&amp;quot;, une authentification forte basée à la fois sur quelque chose que vous &lt;em&gt;avez&lt;/em&gt;, et quelque chose que vous &lt;em&gt;savez&lt;/em&gt; : Un support externe, que vous avez, plus un mot de passe nécessaire à son utilisation. Si l'un des deux manque, point d'accès. C'est d'ailleurs ce que vous faites, comme monsieur Jourdain, à chaque fois que vous payez avec une carte bancaire.&lt;/p&gt;    &lt;p&gt;&lt;em&gt;(Short english summary at end)&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;L'un des avantages à avoir &lt;a href=&quot;http://petaramesh.org/post/2007/11/21/Ubuntu-%3A-Chiffrement-integral-du-disque-dur-dun-portable&quot; hreflang=&quot;fr&quot;&gt;chiffré tout son disque avec LUKS&lt;/a&gt;, c'est que ce système permet de modifier après coup la ou les phrases secrètes ou clés qui le verrouillent. On peut donc assez aisément : &lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/#pnote-1200-1&quot; id=&quot;rev-pnote-1200-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installer plusieurs phrases secrètes &lt;em&gt;différentes&lt;/em&gt; permettant de déverrouiller la machine, ce qui est utile si la machine a plusieurs utilisateurs légitimes : ainsi, aucun n'a besoin de connaître la phrase secrète de l'autre. Chacun la sienne !&lt;/li&gt;
&lt;li&gt;Ajouter une clé de déchiffrement qui ne sera pas une phrase secrète, mais un fichier hébergé sur un stockage externe (qui peut lui-même être chiffré, ce qui permet d'obtenir la &amp;quot;&lt;em&gt;dual form authentication&lt;/em&gt;&amp;quot;, ou authentification à double critère).&lt;/li&gt;
&lt;li&gt;Supprimer une phrase ou clé existante si l'on ne souhaite plus utiliser l'une des méthodes, si l'un des utilisateurs ne doit plus avoir accès à la machine ou si une phrase ou clé a été compromise, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La méthode hybride permet également de verrouiller le système avec une &lt;em&gt;phrase secrète&lt;/em&gt; longue et complexe - donc fastidieuse à taper - et alternativement avec un support externe contenant une clé qui peut être protégée par un mot de passe plus simple, voire pas de mot de passe du tout, en fonction des besoins de sécurité que l'on aura.&lt;/p&gt;


&lt;p&gt;En terme de &lt;em&gt;support externe&lt;/em&gt;, nous pourrons envisager l'usage d'une clé &amp;quot;&lt;em&gt;flash drive&lt;/em&gt;&amp;quot; USB,&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/#pnote-1200-2&quot; id=&quot;rev-pnote-1200-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt; ou d'une carte mémoire type SD, etc, pour peu que la machine considérée soit équipée d'un lecteur adéquat.&lt;/p&gt;


&lt;p&gt;En partant du principe que nous avons déjà un système entièrement chiffré sur la base de &lt;a href=&quot;http://petaramesh.org/post/2007/11/21/Ubuntu-%3A-Chiffrement-integral-du-disque-dur-dun-portable&quot; hreflang=&quot;fr&quot;&gt;mon précédent article&lt;/a&gt;, la mise en oeuvre d'une clé sur support externe - avec ou sans double authentification - va être relativement simple : Je fournis ici un &amp;quot;&lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;bootkeyscript&lt;/a&gt;&lt;/em&gt;&amp;quot;&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/#pnote-1200-3&quot; id=&quot;rev-pnote-1200-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt; qui fait tout le boulot.&lt;/p&gt;


&lt;p&gt;En premier lieu, procurons-nous évidemment un support externe utilisable sur notre machine, et que nous utiliserons. Nous pouvons le partitionner et le formater de la manière de notre choix, le script &amp;quot;&lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;bootkeyscript&lt;/a&gt;&lt;/em&gt;&amp;quot; détectera automatiquement le système de fichiers utilisé.&lt;/p&gt;


&lt;p&gt;Si nous voulons utiliser une clé &amp;quot;simple&amp;quot; sur support externe, non protégée elle-même par mot de passe, nous pouvons nous contenter de mettre celle-ci dans une partition FAT existante de n'importe quel support externe, que nous pourrons également utiliser &amp;quot;comme d'habitude&amp;quot; pour y stocker tous documents et fichiers de notre choix, en prenant simplement grand soin de ne jamais effacer par mégarde la clé de notre système !&lt;/p&gt;


&lt;p&gt;Si nous voulons chiffrer la clé elle-même, nous créerons sur le support externe une petite partition que nous chiffrerons avec &lt;em&gt;LUKS&lt;/em&gt; avant d'y créer un filesystem &lt;em&gt;ext2&lt;/em&gt; sur lequel nous stockerons enfin la clé.&lt;br /&gt;
Ceux qui ne désirent pas cette &amp;quot;double protection&amp;quot; peuvent sauter l'étape de création d'une partition chiffrée sur le support externe.&lt;/p&gt;


&lt;h3&gt;Création d'une partition chiffrée sur le support externe&lt;/h3&gt;


&lt;p&gt;Nous utiliserons donc un outil de partitionnement (&lt;em&gt;fdisk&lt;/em&gt;, &lt;em&gt;gparted&lt;/em&gt;, etc...) pour créer sur le support amovible une petite partition (typiquement 10 Mo) de type &amp;quot;&lt;em&gt;Linux&lt;/em&gt;&amp;quot; (83), non formatée. Pour la suite de cet article, nous considérerons la partition créée, et située sur &lt;code&gt;/dev/sdb2&lt;/code&gt;. &lt;strong&gt;Adaptez bien évidemment les instructions qui suivent à l'emplacement de votre propre partition, sur votre propre périphérique, au risque de détruire irrémédiablement des données sur votre système.&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Commençons par remplir notre partition de clés de données aléatoires, selon la méthode habituelle :&lt;/p&gt;


&lt;pre&gt;dd if=/dev/urandom of=/dev/sdb2 bs=1M&lt;/pre&gt;


&lt;p&gt;Compte tenu de sa taille modeste, ça ne devrait prendre que quelques secondes.&lt;/p&gt;


&lt;p&gt;Faisons ensuite de cette partition un volume chiffré &lt;em&gt;LUKS&lt;/em&gt; :&lt;/p&gt;


&lt;pre&gt;cryptsetup luksFormat /dev/sdb2&lt;/pre&gt;


&lt;p&gt;Après un avertissement auquel il nous faut répondre &amp;quot;YES&amp;quot;, il nous sera demandé de taper deux fois la &lt;em&gt;phrase secrète&lt;/em&gt; ou mot de passe que nous utiliserons pour protéger nos clés. Rappelons-nous que nous devrons le taper à &lt;em&gt;chaque&lt;/em&gt; boot, et que cela vient en supplément de la possession matérielle du support. À moins d'être paranoïaque, nous pouvons donc nous contenter d'un mot de passe relativement court et facile à taper - mais de préférence, pas à deviner ;-) &lt;br /&gt;
Une fois le volume chiffré créé, nous devons l'activer :&lt;/p&gt;


&lt;pre&gt;cryptsetup luksOpen /dev/sdb2 ext_keys&lt;/pre&gt;


&lt;p&gt;Après avoir tapé le mot de passe, si nous tapons &amp;quot;&lt;code&gt;ls -l /dev/mapper&lt;/code&gt;&amp;quot;, nous devrions voir y apparaître un périphérique nommé &amp;quot;&lt;em&gt;ext_keys&lt;/em&gt;&amp;quot;, qui correspond au volume chiffré &amp;quot;&lt;code&gt;/dev/sdb2&lt;/code&gt;&amp;quot; actuellement ouvert.&lt;/p&gt;


&lt;p&gt;Il nous faut maintenant &amp;quot;formater&amp;quot; cette partition pour y créer un &lt;em&gt;filesystem ext2&lt;/em&gt; :&lt;/p&gt;


&lt;pre&gt;mke2fs -m 0 -L ext_keys /dev/mapper/ext_keys&lt;/pre&gt;


&lt;h3&gt;Génération d'un fichier-clé de 256 octets aléatoires&lt;/h3&gt;


&lt;p&gt;Nous allons maintenant &lt;em&gt;monter&lt;/em&gt; le volume externe de manière à pouvoir y créer un fichier-clé. Commençons par créer le répertoire qui servira de point de montage :&lt;/p&gt;


&lt;pre&gt;mkdir /mnt/ext_keys&lt;/pre&gt;


&lt;p&gt;Puis :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si nous n'avons &lt;strong&gt;&lt;ins&gt;pas&lt;/ins&gt;&lt;/strong&gt; chiffré le volume, nous utilisons directement la partition de l'unité externe :
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mount -t vfat -o defaults /dev/sdb2 /mnt/ext_keys&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Si nous &lt;strong&gt;&lt;ins&gt;avons&lt;/ins&gt;&lt;/strong&gt; chiffré le volume, nous montons sa version ouverte depuis &lt;code&gt;/dev/mapper&lt;/code&gt; :
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mount -t ext2 -o noatime /dev/mapper/ext_keys /mnt/ext_keys&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nous n'avons plus qu'à générer un fichier de 256 octets aléatoires que nous nommerons .bootkey (par exemple).&lt;/p&gt;


&lt;p&gt;&lt;ins&gt;N.B.:&lt;/ins&gt; Veillez bien à utiliser ici &lt;code&gt;/dev/random&lt;/code&gt; et non pas &lt;code&gt;/dev/urandom&lt;/code&gt; :&lt;/p&gt;


&lt;pre&gt;dd if=/dev/random of=/mnt/ext_keys/.bootkey&lt;/pre&gt;


&lt;p&gt;...à la suite de quoi un &amp;quot;&lt;code&gt;ls -la /mnt/ext_keys/&lt;/code&gt;&amp;quot; devrait bien nous montrer la présence de notre fichier-clé aléatoire de 256 octets.&lt;/p&gt;


&lt;p&gt;=&amp;gt; Un support externe peut être endommagé ou perdu ! Une mémoire flash n'est pas infaillible ! A ce stade, je vous conseille vivement de faire une copie de votre fichier-clé sur un ou plusieurs autres supports !&lt;/p&gt;


&lt;p&gt;Maintenant que notre fichier est généré (et sauvegardé), nous pouvons démonter l'unité externe :&lt;/p&gt;


&lt;pre&gt;umount /mnt/ext_keys
sync&lt;/pre&gt;


&lt;p&gt;et, si nous avions utilisé un volume chiffré, nous pouvons le désactiver :&lt;/p&gt;


&lt;pre&gt;cryptsetup luksClose ext_keys&lt;/pre&gt;


&lt;h3&gt;Première regénération de l&lt;em&gt;'initramfs&lt;/em&gt;&lt;/h3&gt;


&lt;p&gt;Pour pouvoir accéder à notre unité externe lors du boot, nous devrons nous assurer que les modules nécessaires (USB ou SD/MMC) sont bien présents sur l&lt;em&gt;'initramfs&lt;/em&gt; que nous utilisons.&lt;/p&gt;


&lt;p&gt;Les modules à charger dépendent fortement du matériel que vous possédez. Utilisez la commande &amp;quot;&lt;code&gt;lsmod&lt;/code&gt;&amp;quot; pour lister les modules actuellement chargés sur votre système, et déterminer ceux qu'il vous faudra inclure dans l'initramfs.&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;On aura typiquement pour de l'USB :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;usbcore&lt;/li&gt;
&lt;li&gt;ohci_hcd (ou uhci_hcd selon le matériel)&lt;/li&gt;
&lt;li&gt;ehci_hcd&lt;/li&gt;
&lt;li&gt;usb_storage&lt;/li&gt;
&lt;li&gt;sd_mod&lt;/li&gt;
&lt;/ul&gt;









&lt;p&gt;Pour un lecteur SD/MMC :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mmc_core&lt;/li&gt;
&lt;li&gt;sdhci&lt;/li&gt;
&lt;li&gt;mmc_block&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si vous voulez mettre votre clé sur une partition FAT (sur une clé USB par exemple, il faudra également ajouter :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fat&lt;/li&gt;
&lt;li&gt;vfat&lt;/li&gt;
&lt;li&gt;nls_cp437&lt;/li&gt;
&lt;li&gt;nls_iso8859_1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mettez alors cette liste de modules, un par ligne, dans le fichier &lt;code&gt;/etc/initramfs-tools/modules&lt;/code&gt;. Le mien, pour une utilisation de cartes SD, contient les lignes suivantes :&lt;/p&gt;


&lt;pre&gt;mmc_core
sdhci
mmc_block
aes_i586
sha256
dm_mod
dm_crypt&lt;/pre&gt;


&lt;p&gt;Une fois ceci fait, récréons notre &lt;em&gt;initramfs&lt;/em&gt; :&lt;/p&gt;


&lt;pre&gt;update-initramfs -v -u&lt;/pre&gt;


&lt;h3&gt;Insertion de la nouvelle clé dans le container &lt;em&gt;LUKS&lt;/em&gt; principal du système&lt;/h3&gt;


&lt;p&gt;Nous allons maintenant rebooter notre système (antérieurement chiffré), et, quand celui-ci nous demandera notre &lt;em&gt;phrase secrète&lt;/em&gt;, nous allons &lt;em&gt;volontairement&lt;/em&gt; taper 3 fois de suite un mot de passe invalide, puis attendre. Au bout d'une trentaine de secondes, nous devrions obtenir un message d'erreur indiquant que le &lt;em&gt;root filesystem&lt;/em&gt; est indisponible, puis nous retrouver dans un &lt;em&gt;shell minimal&lt;/em&gt; (&lt;em&gt;busybox&lt;/em&gt;) à l'intérieur de notre &lt;em&gt;initramfs&lt;/em&gt;.&lt;/p&gt;


&lt;pre&gt;(initramfs)&lt;/pre&gt;


&lt;p&gt;À partir de là, nous ne pouvons pas faire grand-chose, mais nous pouvons en faire assez pour ajouter notre clé au container :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Créons un point de montage &amp;quot;&lt;code&gt;/ext_keys&lt;/code&gt;&amp;quot; : &lt;code&gt;mkdir /ext_keys&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Montons notre unité externe sous ce point : &lt;code&gt;mount -t vfat -o ro /dev/sdb2 /ext_keys&lt;/code&gt; (si nous avions chiffré la partition, nous devons d'abord l'ouvrir avec &amp;quot;&lt;code&gt;cryptsetup luksOpen&lt;/code&gt;'' avant de la monter à partir de &lt;code&gt;/dev/mapper&lt;/code&gt; exactement comme expliqué plus haut)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ajoutons maintenant la clé au container chiffré du disque dur (en supposant qu'il s'appelle /dev/sda2) :&lt;/p&gt;


&lt;pre&gt;cryptsetup luksAddKey /dev/sda2  /ext_keys/.bootkey&lt;/pre&gt;


&lt;p&gt;Le système nous demandera alors la phrase secrète &lt;em&gt;actuelle&lt;/em&gt; du container, avant d'ajouter la clé qui se trouve sur le périphérique externe.&lt;/p&gt;


&lt;p&gt;Une fois ceci fait, nous pouvons démonter le volume externe (&lt;code&gt;umount /ext_keys&lt;/code&gt;), et si nécessaire refermer le volume chiffré correspondant (&lt;code&gt;cryptsetup luksClose ext_keys&lt;/code&gt;).&lt;br /&gt;
Puis, nous pouvons rebooter &amp;quot;normalement&amp;quot; :&lt;/p&gt;


&lt;pre&gt;sync
reboot&lt;/pre&gt;


&lt;p&gt;=&amp;gt; Lors de ce reboot, nous devons toujours taper &lt;em&gt;la phrase secrète habituelle&lt;/em&gt; de notre système, car son &lt;em&gt;initramfs&lt;/em&gt; ne sait pas encore utiliser la clé résidant sur le support externe.&lt;/p&gt;


&lt;h3&gt;Génération d'un &lt;em&gt;initramfs&lt;/em&gt; compatible avec la clé sur support externe.&lt;/h3&gt;


&lt;p&gt;Pour que notre système puisse utiliser la clé que nous avons fabriquée puis installée, il nous faut ajouter dans l'initramfs le script &amp;quot;&lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;bootkeyscript&lt;/a&gt;&lt;/em&gt;&amp;quot; que j'ai écrit et que vous trouverez en attachement.&lt;br /&gt;
Ce script est très souple, car il détecte automatiquement si la partition contenant la clé est chiffrée ou non, et en demande le mot de passe le cas échéant. De plus, si l'unité externe n'est pas présente, il vous sera possible de taper une &lt;em&gt;phrase secrète&lt;/em&gt; à la main - si toutefois votre système en reconnaît encore une comme valide.&lt;/p&gt;


&lt;h4&gt;Installation du script &amp;quot;&lt;em&gt;bootkeyscript&lt;/em&gt;&amp;quot;&lt;/h4&gt;


&lt;p&gt;Installez ce script dans un répertoire approprié de votre système (je vous suggère &lt;code&gt;/usr/local/sbin&lt;/code&gt;), et rendez-le exécutable avec &amp;quot;&lt;code&gt;chmod 755 /usr/local/sbin/bootkeyscript&lt;/code&gt;&amp;quot;.&lt;/p&gt;


&lt;h4&gt;Inclusion de l'utilitaire &amp;quot;stty&amp;quot; dans l'initramfs&lt;/h4&gt;


&lt;p&gt;Créez un script que vous appellerez &amp;quot;&lt;code&gt;include_stty&lt;/code&gt;&amp;quot; dans le répertoire &lt;code&gt;/etc/initramfs-tools/hooks&lt;/code&gt;, avec le contenu suivant :&lt;/p&gt;


&lt;pre&gt;#! /bin/sh
. /usr/share/initramfs-tools/hook-functions
copy_exec /bin/stty /bin&lt;/pre&gt;


&lt;p&gt;Rendez ce script exécutable : &lt;code&gt;chmod 744 /etc/initramfs-tools/hooks/include_stty&lt;/code&gt;&lt;/p&gt;


&lt;h4&gt;Inclusion de l'utilitaire &amp;quot;udevsettle&amp;quot; dans l'initramfs&lt;/h4&gt;


&lt;p&gt;Créez un script que vous appellerez &amp;quot;&lt;code&gt;include_udevsettle&lt;/code&gt;&amp;quot; dans le répertoire &lt;code&gt;/etc/initramfs-tools/hooks&lt;/code&gt;, avec le contenu suivant :&lt;/p&gt;


&lt;pre&gt;#! /bin/sh
. /usr/share/initramfs-tools/hook-functions
copy_exec /sbin/udevsettle /sbin&lt;/pre&gt;


&lt;p&gt;Rendez ce script exécutable : &lt;code&gt;chmod 744 /etc/initramfs-tools/hooks/include_udevsettle&lt;/code&gt;&lt;/p&gt;


&lt;h4&gt;Edition de /etc/crypttab&lt;/h4&gt;


&lt;p&gt;Editez votre fichier &lt;code&gt;/etc/crypttab&lt;/code&gt; : C'est lui qui indiquera au système qu'il faut utiliser le script, et où se trouve la clé. En fonction du périphérique externe que vous utilisez et du nom que vous avez choisi pour votre fichier-clé, la ligne concernant votre LVM chiffrée devra désormais prendre l'aspect suivant :&lt;/p&gt;


&lt;pre&gt;# &amp;lt;target name&amp;gt; &amp;lt;source device&amp;gt; &amp;lt;key file&amp;gt; &amp;lt;options&amp;gt;
crypt_VG1 /dev/sda2 sdb2:.bootkey   luks,tries=3,lvm=crypt_VG1-LV_ROOTFS,keyscript=/usr/local/sbin/bootkeyscript&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;À noter :&lt;/strong&gt; l'emplacement du &amp;quot;&lt;em&gt;key file&lt;/em&gt;&amp;quot; se note ici sous la forme &lt;code&gt;partition/fichier&lt;/code&gt; (avec des sous-répertoires si vous le souhaitez, mais sans &amp;quot;/&amp;quot; de début), sans indiquer &amp;quot;&lt;code&gt;/dev/...&lt;/code&gt;&amp;quot; ni le point de montage, qui sont automatiques.&lt;br /&gt;
La partition peut être définie sous l'une des syntaxes suivantes :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;sdb1&lt;/em&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;em&gt;nom_du_fichier_clé&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LABEL=&lt;/strong&gt;&lt;em&gt;label_du_filesystem&lt;/em&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;em&gt;nom_du_fichier_clé&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UUID=&lt;/strong&gt;&lt;em&gt;UUID_du_filesystem&lt;/em&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;em&gt;nom_du_fichier_clé&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Les deux dernières formes permettant de définir le filesystem par son &lt;em&gt;label&lt;/em&gt; ou son &lt;em&gt;UUID&lt;/em&gt;, indépendamment du périphérique amovible dans lequel ce système de fichiers pourra être trouvé.&lt;br /&gt;
Si le filesystem est chiffré LUKS, on pourra le définir par l'UUID du container LUKS, mais pas par le LABEL du filesystem (invisible tant que le container chiffré n'a pas été ouvert).&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Ne vous trompez pas en modifiant ce fichier !&lt;/strong&gt; Par rapport à votre installation antérieure, il vous faut seulement :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modifier &amp;quot;&lt;em&gt;key file&lt;/em&gt;&amp;quot; de &amp;quot;&lt;code&gt;none&lt;/code&gt;&amp;quot; à l'emplacement de votre fichier-clé ;&lt;/li&gt;
&lt;li&gt;Ajouter à la fin des options &amp;quot;&lt;code&gt;keyscript=/usr/local/sbin/bootkeyscript&lt;/code&gt;&amp;quot;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le reste ne change pas par rapport à précédemment.&lt;/p&gt;


&lt;p&gt;Nous avons presque terminé.&lt;/p&gt;


&lt;h4&gt;Génération de l&lt;em&gt;'initramfs&lt;/em&gt; final :&lt;/h4&gt;


&lt;pre&gt;update-initramfs -v -u&lt;/pre&gt;


&lt;p&gt;...Et il ne nous reste plus qu'à &lt;em&gt;rebooter&lt;/em&gt; proprement.&lt;/p&gt;


&lt;p&gt;- Si le périphérique contenant la clé est présent, la machine bootera automatiquement (elle demandera le mot de passe du périphérique-clé automatiquement, uniquement ci celui-ci a été créé ainsi).&lt;/p&gt;


&lt;p&gt;- Si le périphérique contenant la clé est absent, vous obtiendrez (et c'est intentionnel) uniquement le message d'erreur :&lt;/p&gt;


&lt;p&gt;&lt;em&gt;&lt;strong&gt;Missing boot device /dev/sdb2!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;...mais en réponse à ce messages d'erreur, &lt;em&gt;vous pouvez taper une phrase secrète&lt;/em&gt;, s'il en existe une valide pour le container chiffré du disque dur, et le démarage se poursuivra alors normalement.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Vous avez désormais un système chiffré capable d'être &amp;quot;trimodal&amp;quot; : Il peut démarrer soit avec une phrase secrète, soit avec une clé externe non protégée, soit avec une clé externe protégée, vous offrant ainsi une sécurité extrême.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Si les choses ne fonctionnent pas comme désiré, vous pouvez passer le script en mode &amp;quot;debug&amp;quot; en ajoutant &amp;quot;&lt;code&gt;cryptdebug&lt;/code&gt;&amp;quot; à la ligne de paramètres de démarrage de votre noyau. Le script affichera alors des messages indiquant sa progression et d'éventuels problèmes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Une fois que vous serez &lt;em&gt;certain&lt;/em&gt; que votre clé externe permet effectivement le démarrage du système, et que vous en avez fait une copie de secours (ailleurs que sur le portable qu'elle protège ;-) vous pourrez, si vous le souhaitez, supprimer complètement la &lt;em&gt;phrase secrète&lt;/em&gt; antérieure de votre disque dur chiffré, en utilisant &amp;quot;&lt;code&gt;cryptsetup luksDelKey&lt;/code&gt;&lt;em&gt; (voir &lt;/em&gt;man cryptsetup&lt;em&gt;), après avoir &lt;/em&gt;booté dans l'initrd'' comme expliqué plus haut.&lt;/p&gt;


&lt;p&gt;Il ne vous reste plus qu'à penser à &lt;strong&gt;ne pas laisser votre &lt;em&gt;clé de contact&lt;/em&gt; en permanence sur votre machine&lt;/strong&gt; : Aussitôt que la machine a démarré, vous pouvez la retirer - et donc utiliser votre lecteur de carte ou prise USB pour y connecter, comme d'habitude, tout autre périphérique de votre choix.&lt;/p&gt;


&lt;hr /&gt;


&lt;p&gt;Vous pouvez également vous référer avec fruit au &lt;em&gt;&lt;a href=&quot;https://help.ubuntu.com/community/FeistyLUKSTwoFormFactor&quot; hreflang=&quot;en&quot;&gt;Two Form Factor Authentication and LUKS Whole Disk Encryption with Feisty Fawn HowTo&lt;/a&gt;&lt;/em&gt;, notez cependant que &lt;strong&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;le script &amp;quot;maison&amp;quot;&lt;/a&gt; que je vous fournis ici n'en provient pas&lt;/strong&gt; : J'ai la faiblesse de penser que mon script est beaucoup plus puissant, et il a l'avantage de ne nécessiter aucune modification des scripts standard du système.&lt;/p&gt;


&lt;hr /&gt;


&lt;p&gt;&lt;em&gt;&lt;strong&gt;Short english summary :&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;In this article, I propose a &amp;quot;&lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;bootkeyscript&lt;/a&gt;&lt;/em&gt;&amp;quot; that allows easy use of &lt;em&gt;dual form factor authentication&lt;/em&gt; on a fully encrypted LVM Ubuntu (7.10 Gutsy Gibbon) Linux installation. (See one of these excellent HowTos for installing Ubuntu on a fully-encrypted LVM base : &amp;quot;&lt;em&gt;&lt;a href=&quot;https://help.ubuntu.com/community/EncryptedFilesystemLVMHowto&quot; hreflang=&quot;en&quot;&gt;EncryptedFilesystemLVMHowto&lt;/a&gt;&lt;/em&gt;&amp;quot;, &amp;quot;&lt;em&gt;&lt;a href=&quot;https://help.ubuntu.com/community/FeistyLUKSTwoFormFactor&quot; hreflang=&quot;en&quot;&gt;FeistyLUKSTwoFormFactor&lt;/a&gt;&lt;/em&gt;&amp;quot;)&lt;/p&gt;


&lt;p&gt;The &lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;script&lt;/a&gt; that I propose here has some advantages over existing scripts :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Doesn't need any change or patch to Ubuntu Gutsy existing scripts, with which it integrates well, making future packages upgrads easy ;&lt;/li&gt;
&lt;li&gt;Automatically allows in a smart way any combination of the following authentication methods :
&lt;ul&gt;
&lt;li&gt;Single form-factor authentication, using an unencrypted keyfile on an external removable device ;&lt;/li&gt;
&lt;li&gt;Dual-form factor authentication, using a keyfile residing on a LUKS-encrypted partition on an external device ;&lt;/li&gt;
&lt;li&gt;Possible automatic fallback to typing a passphrase if keyfile external device is missing (with a purposely obscure &lt;q&gt;&lt;em&gt;Missing boot device!&lt;/em&gt;&lt;/q&gt; error message).&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Short installation instructions :&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a fully (passphrase-controlled) LVM encrypted system as usual, possibly following one of the existing HowTos. Do &lt;em&gt;not&lt;/em&gt; change anything in the existing Ubuntu encryption scripts.&lt;/li&gt;
&lt;li&gt;Create a random keyfile. Install it on an external device partition, either itself LUKS-encrypted with a passphrase (for 2 form-factor auth) or unencrypted (1 form-factor, with key device, without passphrase).&lt;/li&gt;
&lt;li&gt;Install the key to the main system LUKS container (following usual instructions).&lt;/li&gt;
&lt;li&gt;List all the modules you will need to access your key device and its filesystem, in the &lt;code&gt;/etc/initramfs-tools/modules&lt;/code&gt; file&lt;/li&gt;
&lt;li&gt;Put such an executable script (mode 744) into /etc/initramfs-tools/hooks, let's call it &amp;quot;include_stty&amp;quot; :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;#! /bin/sh
. /usr/share/initramfs-tools/hook-functions
copy_exec /bin/stty /bin&lt;/pre&gt;


&lt;p&gt;(This will include &amp;quot;stty&amp;quot; into the initramfs, to avoid echoing typed
passphrase if not using bootsplash. Using bootsplash wouldn't actually need
this)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create an &lt;em&gt;include_udevsettle&lt;/em&gt; script the same way :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;#! /bin/sh
. /usr/share/initramfs-tools/hook-functions
copy_exec /sbin/udevsettle /sbin&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Install my &amp;quot;&lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;bootkeyscript&lt;/a&gt;&lt;/em&gt;&amp;quot; script wherever you like on your system (I suggest /usr/local/sbin), mode 755.&lt;/li&gt;
&lt;li&gt;Update /etc/crypttab with the columns :
&lt;ul&gt;
&lt;li&gt;Key : device/keyfilename i.e.:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sdb1:mysystemkey&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;or &lt;code&gt;mmcblk0p2:somedir/somekeyfile&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;or &lt;code&gt;LABEL=fs_label:somekeyfile&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;or &lt;code&gt;UUID=fs_or_LUKS_container_uuid:somekeyfile&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;(Syntax is &lt;em&gt;devicepartition:filepath without leading &amp;quot;/&amp;quot;&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Options : Add &amp;quot;&lt;code&gt;keyscript=/usr/local/sbin/bootkeyscript&lt;/code&gt;&amp;quot;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Regenerate initramfs (update-initrafms -u)&lt;/li&gt;
&lt;li&gt;Reboot, enjoy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example /etc/crypttab entry for encrypted root filesystem :&lt;/p&gt;

&lt;pre&gt;
# &amp;lt;target name&amp;gt; &amp;lt;source device&amp;gt; &amp;lt;key file&amp;gt; &amp;lt;options&amp;gt;
enc_VG1 /dev/sda2 UUID=12345678-90ab-cdef-0123-4567890abc:rootkey.bin luks,tries=1,lvm=VG1-ROOTFS,keyscript=/usr/local/sbin/bootkeyscript
&lt;/pre&gt;


&lt;hr /&gt;


&lt;h4&gt;Changelog&lt;/h4&gt;


&lt;p&gt;&lt;strong&gt;2008/07/21: bootkeyscript V. 1.6&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Now the key partition can be defined in &lt;code&gt;/etc/crypttab&lt;/code&gt; in any of the forms :
&lt;ul&gt;
&lt;li&gt;sdb1/filename&lt;/li&gt;
&lt;li&gt;sdb1:filename&lt;/li&gt;
&lt;li&gt;LABEL=filesystem_label:filename&lt;/li&gt;
&lt;li&gt;UUID=filesystem_UUID:filename&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2008/05/10: bootkeyscript V. 1.5&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Much debugged and rewritten version of the script.&lt;/li&gt;
&lt;li&gt;Works much better than previously for keys on USB flash disks.&lt;/li&gt;
&lt;li&gt;Includes a &amp;quot;debug&amp;quot; mode that you can set by adding &amp;quot;&lt;code&gt;cryptdebug&lt;/code&gt;&amp;quot; to the kernel command line.&lt;/li&gt;
&lt;li&gt;This article completed with some missing infomation.&lt;/li&gt;
&lt;li&gt;Compatible with Ubuntu 8.04 Hardy or 7.10 Gutsy&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;


&lt;p&gt;&lt;em&gt;Help Google : Ubuntu Linux 7.10 Gutsy Gibbon LUKS whole disk encryption external device keys, two form factor authentication, how to howto&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/#rev-pnote-1200-1&quot; id=&quot;pnote-1200-1&quot;&gt;1&lt;/a&gt;] Les possibilités de ce système sont immenses. On peut par exemple imaginer, pour un serveur - qui doit être capable de booter sans intervention humaine - de stocker une clé sur une machine distante, et de l'obtenir via Internet, la machine distante étant configurée pour ne fournir cette clé qu'à une adresse IP précise. Le serveur sera ainsi capable de booter tout seul dans son &amp;quot;environnement habituel&amp;quot;, mais si jamais il est volé, il deviendra inutilisable en dehors de son adresse IP habituelle, et il sera possible de supprimer la clé de la machine distante sur laquelle elle est stockée. Un tel &lt;em&gt;setup&lt;/em&gt; est toutefois extrêmement complexe et va bien au-delà des objectifs de cet article.&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/#rev-pnote-1200-2&quot; id=&quot;pnote-1200-2&quot;&gt;2&lt;/a&gt;] L'avantage d'une clé USB est qu'elle peut être &lt;em&gt;bootable&lt;/em&gt;, alors qu'une SD-card ne le sera pas - parce que le BIOS du système ne le prévoit généralement pas. Si on utilise une clé USB, on peut même envisager de mettre dessus le &amp;quot;/boot&amp;quot; non chiffré du système (moins de 100 Mo), ainsi que le &lt;em&gt;bootloader grub&lt;/em&gt;, ne laissant sur le disque dur qu'un container totalement chiffré et non bootable contenant tout le reste du système. Ce n'est pas particulièrement compliqué à faire, mais c'est là encore en dehors du sujet de cet article.&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/#rev-pnote-1200-3&quot; id=&quot;pnote-1200-3&quot;&gt;3&lt;/a&gt;] Évidemment sous licence GNU GPL.&lt;/p&gt;&lt;/div&gt;</description>
    
          <enclosure url="http://petaramesh.org/public/arc/projects/lfd/gpl_v3.txt"
      length="35147" type="text/plain" />
          <enclosure url="http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript"
      length="9399" type="text/plain" />
          <enclosure url="http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript.asc"
      length="189" type="text/plain" />
    
    
          <comments>http://petaramesh.org/post/2007/11/29/Une-cle-de-contact-pour-votre-portable-chiffre#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2007/11/29/Une-cle-de-contact-pour-votre-portable-chiffre#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1200</wfw:commentRss>
      </item>
    
  <item>
    <title>Ubuntu : Chiffrement intégral du disque dur d'un portable</title>
    <link>http://petaramesh.org/post/2007/11/21/Ubuntu-%3A-Chiffrement-integral-du-disque-dur-dun-portable</link>
    <guid isPermaLink="false">urn:md5:cfa329c4dbf2371f015e90bd29ff7f46</guid>
    <pubDate>Wed, 21 Nov 2007 00:43:00 +0100</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>chiffrement</category><category>cryptographie</category><category>geekerie</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>&lt;p&gt;Je continue à faire mumuse avec le chiffrement sous Ubuntu, et je viens de parvenir au chiffrement intégral du disque dur de mon portable (à &lt;code&gt;/boot&lt;/code&gt; près).&lt;/p&gt;


&lt;p&gt;Eh oui, un portable, ça se perd, ça se vole... Si on veut à la fois que nos données personnelles ne risquent jamais de traîner toutes nues dans la nature, et cerise sur le gâtal, que la machine soit parfaitement inutilisable pour l'éventuel voleur, le chiffrement intégral du disque dur est &lt;em&gt;le must&lt;/em&gt;. Mais ce n'est pas forcément simple !&lt;/p&gt;    &lt;p&gt;Quelques explications pour montrer le chemin à qui n'a pas peur de s'y risquer. Attention, la manip n'est pas sans danger pas plus qu'elle n'est pour les débutants ! Il y a mille manières de se retrouver avec une machine non-bootable et toutes ses données perdues !&lt;/p&gt;


&lt;p&gt;J'en décris ici seulement l'idée, les grandes lignes. Des points de détail peuvent manquer, alors encore une fois, attention à vos données ! &lt;q&gt;&lt;em&gt;You've been warned !&lt;/em&gt;&lt;/q&gt;&lt;/p&gt;


&lt;p&gt;Je pars d'un portable comportant une installation quasi-standard d&lt;em&gt;'Ubuntu 7.10 Gutsy Gibbon&lt;/em&gt;, avec cependant un &lt;em&gt;swap chiffré&lt;/em&gt; selon la méthode expliquée dans &lt;a href=&quot;http://petaramesh.org/post/2007/10/27/Securisation-dune-Ubuntu%3A-Chiffrement-du-swap&quot; hreflang=&quot;fr&quot;&gt;mon précédent article&lt;/a&gt;, et également un /tmp + /var/tmp chiffré selon la méthode décrite dans un article que je n'ai pas encore écrit.&lt;/p&gt;


&lt;p&gt;Le jeu consiste à chiffrer l'ensemble des filesystems sur la base d'une &lt;em&gt;&lt;acronym title=&quot;Logical Volume Manager&quot;&gt;LVM&lt;/acronym&gt;&lt;/em&gt;, sans bien sûr rien perdre de mon installation, ni devoir réinstaller à blanc. Simplement en déplaçant l'installation sur un disque externe avant de la remettre sur le portable dont le filesystem aura été préalablement chiffré.&lt;/p&gt;


&lt;p&gt;J'ai commencé par prendre un disque dur externe USB que j'ai entièrement effacé et gavé de données aléatoires avec un beau&lt;/p&gt;


&lt;p&gt;&lt;code&gt;nice dd if=/dev/urandom of=/dev/sdb bs=1M&lt;/code&gt;&lt;br /&gt;
(ça dure des heures...)&lt;/p&gt;


&lt;p&gt;À la suite de quoi, j'ai partitionné le disque externe en 3 bouts :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Un petit /boot de 100 Mo en ext3&lt;/li&gt;
&lt;li&gt;Une grosse partition non formatée de type 83 (Linux) de &amp;quot;tout le disque moins 2 Go&amp;quot;&lt;/li&gt;
&lt;li&gt;Une partition non formatée de type 82 (Linux swap)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ceci fait, j'ai monté la première partition et y ai copié mon &lt;code&gt;/boot&lt;/code&gt; d'un coup de &lt;em&gt;rsync -ax&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Ensuite de quoi, j'ai utilisé &lt;em&gt;&lt;code&gt;cryptsetup luksFormat&lt;/code&gt;&lt;/em&gt; puis &lt;em&gt;&lt;code&gt;mke2fs&lt;/code&gt;&lt;/em&gt; pour faire de la deuxième partition du disque externe une partition chiffrée &lt;em&gt;LUKS&lt;/em&gt;, que j'ai montée (sous un point de montage temporaire &lt;code&gt;/mnt/ext2&lt;/code&gt;).&lt;/p&gt;


&lt;p&gt;Après quoi, j'ai recopié l'ensemble du système du portable sur cette partition chiffrée du disque externe d'un nouveau coup de &lt;code&gt;rsync&lt;/code&gt; (les différentes partitions séparées du disque interne rassemblées en une seule dans le disque externe).&lt;/p&gt;


&lt;p&gt;J'obtiens donc une copie de sauvegade complète et chiffrée (sauf &lt;code&gt;/boot&lt;/code&gt;) de mon portable sur le disque USB externe.&lt;/p&gt;


&lt;p&gt;Vient le plus délicat : Rendre l'installation chiffrée bootable et utilisable directement depuis le disque externe,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Monter le /boot du disque externe  sous la structure chiffrée : &lt;code&gt;mount -t ext3 -o noatime /dev/sdb1 /mnt/ext2/boot&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Créer un /dev/null bidon sous la nouvelle installation : &lt;code&gt;mknod /mnt/ext2/dev/null c 1 3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Monter le /dev sous l'installation externe, de manière &amp;quot;fantôme&amp;quot; : &lt;code&gt;mount --bind /dev /mnt/ext2/dev&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Se chrooter dans l'installation : &lt;code&gt;chroot /mnt/ext2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Une fois là, monter &lt;code&gt;/proc&lt;/code&gt; : &lt;code&gt;mount -t proc proc /proc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;...et &lt;code&gt;/sys&lt;/code&gt; : &lt;code&gt;mount -t sysfs sysfs /sys&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Adapter &lt;code&gt;/etc/crypttab&lt;/code&gt; à la structure du disque externe : Créer une entrée pour le swap chiffré sur le disque externe, et une autre pour la &amp;quot;racine&amp;quot; chiffrée :
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cswap /dev/sdb3 /dev/urandom size=128,swap&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;crootfs /dev/sdb2 none luks, check&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Adapter &lt;code&gt;/etc/fstab&lt;/code&gt; de même à la structure des points de montage : un /boot non chiffré, une racine (&lt;code&gt;/dev/mapper/crootfs&lt;/code&gt;), un swap chiffré comme &lt;a href=&quot;http://petaramesh.org/post/2007/10/27/Securisation-dune-Ubuntu%3A-Chiffrement-du-swap&quot; hreflang=&quot;fr&quot;&gt;dans mon précédent article&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Se rendre ensuite dans &lt;code&gt;/boot/grub&lt;/code&gt; et modifier menu.lst : Y modifier le &amp;quot;&lt;code&gt;root=&lt;/code&gt;&amp;quot; pour pointer sur le &lt;em&gt;root filesystem&lt;/em&gt; chiffré.&lt;/li&gt;
&lt;li&gt;Installer &lt;em&gt;grub&lt;/em&gt; sur le &lt;acronym title=&quot;Master Boot Record&quot;&gt;MBR&lt;/acronym&gt; du disque externe de manière à le rendre bootable.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A ce stade, il suffit normalement de régénérer l'initramfs avec&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;update-initramfs -v -u&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;...pour avoir fini le boulot.&lt;/p&gt;


&lt;p&gt;Je me suis cependant aperçu qu'un des scripts de démarrage d'Ubuntu était incorrect et n'autorisait pas le boot sur un disque externe USB chiffré, trop lent à être &amp;quot;vu&amp;quot; par le noyau au démarrage.
J'ai donc écrit un &lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/cryptroot.071120a.patch&quot;&gt;patch&lt;/a&gt;&lt;/em&gt; pour ce script (&lt;code&gt;/usr/share/initramfs-tools/scripts/local-top/cryptroot&lt;/code&gt;), patch que je joint en annexe et que je vous conseille d'installer (il ne peut pas faire de mal ;-) &lt;em&gt;avant&lt;/em&gt; de lancer &amp;quot;@@update-initramfs -v -u&amp;quot;&lt;/p&gt;


&lt;p&gt;Ceci fait, il ne reste plus qu'à...&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;cd /&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;umount /proc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;umount /sys&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;exit&lt;/code&gt; (nous sort du chroot)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;umount /mnt/ext2/dev&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;umount /mnt/ext2/boot&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sync&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;umount /mnt/ext2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sync&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Fermer le volume chiffré LUKS (&lt;code&gt;cryptsetup luksClose&lt;/code&gt;, etc...) du disque externe&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;...Et on peut rebooter proprement.&lt;/p&gt;


&lt;p&gt;Sélectionner par le BIOS le démarrage depuis le disque USB, on doit alors avoir un beau &lt;em&gt;grub&lt;/em&gt; qui propose le démarrage sur le disque externe chiffré.&lt;/p&gt;


&lt;p&gt;Le mot de passe de montage de la partition LUKS sera demandé automatiquement grâce aux scripts prévus à cet effet. Elle est pas belle, la vie ?&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;&lt;em&gt;À ce stade, on a créé une installation de Linux entièrement chiffrée sur un disque externe bootable, que l'on devrait pouvoir d'ailleurs utiliser pour booter un peu n'importe quelle machine et y retrouver son environnement Ubuntu complet !&lt;/em&gt;&lt;/strong&gt; (modulo les possibles problèmes causés par des hardwares différents, notamment carte graphique...)&lt;/p&gt;


&lt;p&gt;Une fois que l'on a vérifié que notre installation &lt;em&gt;externe&lt;/em&gt; est complète et marche parfaitement, et qu'on peut donc utiliser le portable &lt;em&gt;sans son disque interne&lt;/em&gt;, on va pouvoir totalement effacer celui-ci, y préparer notre installation chiffrée un peu de la même manière que pour le disque externe, et redéménager dans l'autre sens.&lt;/p&gt;


&lt;p&gt;Commençons par effacer totalement le disque dur du portable avec :&lt;/p&gt;


&lt;p&gt;&lt;code&gt;nice dd if=/dev/urandom of=/dev/sda bs=1M&lt;/code&gt;&lt;br /&gt;
(Comme précédemment, ça durera des heures...)&lt;/p&gt;


&lt;p&gt;Pour l'organisation du disque proprement dit, chiffré là encore à l'exception de /boot, je me suis cette fois largement inspiré de l'excellent &lt;em&gt;&lt;a href=&quot;https://help.ubuntu.com/community/EncryptedFilesystemLVMHowto&quot; hreflang=&quot;en&quot;&gt;EncryptedFilesystemLVMHowto&lt;/a&gt;&lt;/em&gt;, dont je n'ai cependant lu que les points essentiels et que j'ai largement adapté à ma sauce, notamment :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Répartition en plusieurs volumes logiques (&lt;em&gt;root filesystem&lt;/em&gt;, &lt;code&gt;/var&lt;/code&gt;, &lt;code&gt;/home&lt;/code&gt;, etc...)&lt;/li&gt;
&lt;li&gt;J'ai conservé un &lt;em&gt;swap&lt;/em&gt; et un &lt;code&gt;/tmp&lt;/code&gt; chiffrés &amp;quot;selon mon ancienne méthode&amp;quot; sur des partitions séparées en dehors de la &lt;em&gt;LVM&lt;/em&gt;, afin de pouvoir les chiffrer avec des clés aléatoires changées automatiquement à chaque &lt;em&gt;boot&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Une fois le filesystem chiffré installé et monté, il reste à recopier tout le système comme précédemment, mais dans l'autre sens, à grands coups de &lt;em&gt;rsync&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Puis de nouveau la partie délicate : &lt;em&gt;Chroot&lt;/em&gt;, adaptation de &lt;code&gt;/etc/crypttab&lt;/code&gt;, &lt;code&gt;/etc/fstab&lt;/code&gt;, &lt;code&gt;/boot/grub/menu.lst&lt;/code&gt;, installation de &lt;em&gt;grub&lt;/em&gt; dans le &lt;em&gt;MBR&lt;/em&gt; du disque, régénération de l&lt;em&gt;'initramfs&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Ceci fait, démonter tous les volumes du disque interne, arrêter la LVM, désactiver sa partition chiffrée, et il n'y a plus qu'à rebooter !&lt;/p&gt;


&lt;p&gt;On obtient enfin un portable au filesystem entièrement chiffré, qui demande gentiment la &lt;em&gt;phrase secrète&lt;/em&gt; durant le boot, et est totalement inexploitable sans elle. Et ça marche du &lt;em&gt;Feu de Dieu&lt;/em&gt; !&lt;/p&gt;


&lt;p&gt;Prochaine étape : Comme mon portable comporte un lecteur de carte &lt;em&gt;SD&lt;/em&gt; (comme les appareils photos numériques), j'envisage, plutôt que de devoir me peler la phrase secrète à chaque boot, de mettre un fichier-clé sur une telle carte et d'utiliser celle-ci comme &amp;quot;clé de contact&amp;quot; de mon portable : Carte SD insérée, il bootera tout seul, carte SD absente, il ne bootera pas, point. La carte SD tient dans la poche et dans le portefeuille :-)&lt;/p&gt;</description>
    
          <enclosure url="http://petaramesh.org/public/arc/projects/cryptsetup/cryptroot.071120a.patch"
      length="1778" type="text/plain" />
          <enclosure url="http://petaramesh.org/public/arc/projects/cryptsetup/cryptroot.071120a.patch.asc"
      length="189" type="text/plain" />
    
    
          <comments>http://petaramesh.org/post/2007/11/21/Ubuntu-%3A-Chiffrement-integral-du-disque-dur-dun-portable#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2007/11/21/Ubuntu-%3A-Chiffrement-integral-du-disque-dur-dun-portable#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1178</wfw:commentRss>
      </item>
    
  <item>
    <title>Des icônes pour LFD</title>
    <link>http://petaramesh.org/post/2007/11/18/Des-icones-pour-LFD</link>
    <guid isPermaLink="false">urn:md5:ff3174473c9493c6e24776a27eeeb36f</guid>
    <pubDate>Sun, 18 Nov 2007 10:45:00 +0100</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>chiffrement</category><category>cryptographie</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>&lt;p&gt;&lt;img src=&quot;http://petaramesh.org/public/arc/img/info/2007/folder_locked.png&quot; alt=&quot;Dossier verrouillé&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; /&gt;Si vous utilisez mon script de gestion de container chiffré &lt;em&gt;&lt;a href=&quot;http://petaramesh.org/post/2007/11/13/LUKSfile-for-dummies&quot; hreflang=&quot;fr&quot;&gt;LUKSfile for dummies&lt;/a&gt;&lt;/em&gt; avec un bureau KDE, vous aimeriez peut-être bien avoir quelques jolies icônes sur votre bureau pour monter ou démonter votre volume chiffré en un clic, sans avoir besoin d'ouvrir une fenêtre de terminal et d'y taper des commandes à la main...&lt;/p&gt;


&lt;p&gt;Rien de plus facile !&lt;/p&gt;    &lt;p&gt;Il vous suffit pour cela de créer dans le sous-répertoire &lt;code&gt;Desktop&lt;/code&gt; de votre répertoire personnel les fichiers texte suivants, qui créeront chacun une icône.
Vous pouvez les nommer différemment si vous le souhaitez, par exemple pour gérer plusieurs containers chiffrés, ou, par la suite, en changer l'icône ou les propriétés avec un clic-droit sus l'icône qui sera créée...&lt;/p&gt;


&lt;p&gt;Aux lignes &amp;quot;&lt;code&gt;Exec=&lt;/code&gt;&amp;quot;, remplacez simplement &amp;quot;&lt;em&gt;mysecrets&lt;/em&gt;&amp;quot; par le nom de votre container chiffré.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pour ouvrir et monter un container chiffré : fichier &lt;code&gt;LFD_Open.Desktop&lt;/code&gt; :&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
[Desktop Entry]
Comment=
Comment[fr]=
Encoding=UTF-8
Exec=/usr/local/bin/lfd mysecrets on
GenericName=Ouvre le dossier LUKS
GenericName[fr]=Ouvre le dossier LUKS
Icon=folder_man
MimeType=
Name=Ouvrir LFD
Name[fr]=Ouvrir LFD
Path=
StartupNotify=true
Terminal=true
TerminalOptions=
Type=Application
X-DCOP-ServiceType=
X-KDE-SubstituteUID=false
X-KDE-Username=

&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Pour démonter et fermer un container chiffré : fichier &lt;code&gt;LFD_Close.Desktop&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
[Desktop Entry]
Comment=
Comment[fr]=
Encoding=UTF-8
Exec=/usr/local/bin/lfd mysecrets off
GenericName=Ferme le dossier LUKS
GenericName[fr]=Ferme le dossier LUKS
Icon=folder_locked
MimeType=
Name=Fermer LFD
Name[fr]=Fermer LFD
Path=
StartupNotify=true
Terminal=true
TerminalOptions=
Type=Application
X-DCOP-ServiceType=
X-KDE-SubstituteUID=false
X-KDE-Username=

&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Pour visualiser l'état d'un container chiffré : Fichier &lt;code&gt;LFD_Status.Desktop&lt;/code&gt; :&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
[Desktop Entry]
Comment=
Comment[fr]=
Encoding=UTF-8
Exec=/usr/local/bin/lfd mysecrets status
GenericName=Ferme le dossier LUKS
GenericName[fr]=Ferme le dossier LUKS
Icon=folder_yellow_open
MimeType=
Name=Etat LFD
Name[fr]=Etat LFD
Path=
StartupNotify=true
Terminal=true
TerminalOptions=\s--noclose
Type=Application
X-DCOP-ServiceType=none
X-KDE-SubstituteUID=false
X-KDE-Username=

&lt;/pre&gt;


&lt;p&gt;Elle est pas belle, la vie ?&lt;/p&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2007/11/18/Des-icones-pour-LFD#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2007/11/18/Des-icones-pour-LFD#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1172</wfw:commentRss>
      </item>
    
  <item>
    <title>LUKSfile for dummies</title>
    <link>http://petaramesh.org/post/2007/11/13/LUKSfile-for-dummies</link>
    <guid isPermaLink="false">urn:md5:c137f230212f0b3d5a2610c4e1221756</guid>
    <pubDate>Tue, 13 Nov 2007 08:31:00 +0100</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>chiffrement</category><category>cryptographie</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>&lt;p&gt;(&lt;em&gt;English summary at end&lt;/em&gt;)&lt;/p&gt;


&lt;p&gt;Ou le &lt;em&gt;Container chiffré&lt;/em&gt; pour les Nuls.&lt;/p&gt;


&lt;p&gt;Nous avons tous sur nos disques durs quelques petits ou gros &lt;em&gt;secrets&lt;/em&gt; : Listes de mots de passe, informations de connexion à notre site bancaire, écrits personnels, photos de nos (innombrables) maîtresses en lingerie fine ou sans... ;-)&lt;/p&gt;


&lt;p&gt;Toutes sortes de choses que nous n'aimerions pas voir tomber sous des yeux indiscrets si jamais quelqu'un fourre son nez dans nos petites affaires, si notre machine est perdue ou volée, ou si tout bêtement son disque dur est renvoyé un jour en atelier sous garantie.&lt;/p&gt;


&lt;p&gt;Le seul véritable moyen de protéger ces données contre toute indiscrétion est de les &lt;em&gt;chiffrer&lt;/em&gt; (le terme &amp;quot;&lt;em&gt;crypter&lt;/em&gt;&amp;quot; est incorrect).&lt;/p&gt;


&lt;p&gt;GNU/Linux possède pour cela une trousse à outil très puissante, dont l'usage est hélas fort complexe et donc le plus souvent réservé aux initiés.&lt;br /&gt;
Voici un moyen de chiffrer vos données avec une facilité déconcertante en utilisant un &lt;em&gt;container &lt;a href=&quot;http://luks.endorphin.org/&quot; hreflang=&quot;en&quot;&gt;LUKS&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;    &lt;p&gt;Un &lt;em&gt;container &lt;a href=&quot;http://luks.endorphin.org/&quot; hreflang=&quot;en&quot;&gt;LUKS&lt;/a&gt;&lt;/em&gt; est un fichier &amp;quot;ordinaire&amp;quot; (mais chiffré à l'aide d'un algorithme très puissant et très sûr: &lt;acronym title=&quot;Advanced Encryption Standard&quot;&gt;AES&lt;/acronym&gt;) qui se trouvera dans votre répertoire personnel ou sur un support amovible (clé USB, etc.).&lt;/p&gt;


&lt;p&gt;Le contenu de ce fichier sera totalement inexploitable pour qui ne connaît pas la &lt;em&gt;phrase secrète&lt;/em&gt; qui en permet le déverrouillage.&lt;/p&gt;


&lt;p&gt;Une fois déverrouillé, le &lt;em&gt;container&lt;/em&gt; sera &lt;em&gt;monté&lt;/em&gt; et apparaîtra sous vos yeux ébahis en tant que sous-répertoire de votre répertoire personnel (ou du support amovible). Ce répertoire pourra contenir toutes sortes de fichiers et de sous-répertoires, limités seulement par la taille que vous aurez choisi d'affecter à votre &lt;em&gt;container&lt;/em&gt; lors de sa création. Vous pourrez utiliser n'importe quel logiciel de votre choix pour accéder aux fichiers chiffrés, qui seront automatiquement chiffrés et déchiffrés &lt;em&gt;à la volée&lt;/em&gt; tant que le container sera &lt;em&gt;monté&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Une fois démonté, le sous-répertoire (&lt;em&gt;point de montage&lt;/em&gt;) apparaîtra vide, et le fichier-&lt;em&gt;container&lt;/em&gt; seulement plein de données indéchiffrables d'apparence aléatoire. Il ne sera possible de déterminer ni la taille des données qu'il contient réellement, ni le nombre ou le nom des fichiers ou répertoires qu'il contient, ni aucune information à leur propos.&lt;br /&gt;
Si vous avez créé un container de 256 Mo, on verra juste un fichier de 256 Mo de données aléatoires, point.&lt;/p&gt;


&lt;p&gt;Pour obtenir ce résultat, j'ai écrit le script &lt;em&gt;bash&lt;/em&gt; &amp;quot;&lt;strong&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/lfd/lfd&quot;&gt;lfd&lt;/a&gt;&lt;/strong&gt;&amp;quot; joint à ce billet.&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/13/#pnote-1162-1&quot; id=&quot;rev-pnote-1162-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; &lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/13/#pnote-1162-2&quot; id=&quot;rev-pnote-1162-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;


&lt;p&gt;Ce script vous permet d'utiliser trois commandes simples et à la portée du profane : Une pour créer un volume chiffré, une pour le monter, une pour le démonter, et c'est tout.&lt;/p&gt;


&lt;p&gt;Pour installer et utiliser ce script, c'est extrêmement simple :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Copiez (comme &amp;quot;&lt;em&gt;root&lt;/em&gt;&amp;quot;) le fichier &amp;quot;&lt;strong&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/lfd/lfd&quot;&gt;lfd&lt;/a&gt;&lt;/strong&gt;&amp;quot; joint (Annexe &amp;quot;&lt;em&gt;LUKSfile for dummies&lt;/em&gt;&amp;quot; ci-dessous) dans votre répertoire &lt;code&gt;/usr/local/bin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Rendez ce script exécutable avec la commande (comme &amp;quot;&lt;em&gt;root&lt;/em&gt;&amp;quot;) : &lt;code&gt;chmod 755 /usr/local/bin/lfd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Vous pouvez ensuite exécuter le script &lt;em&gt;sous votre profil utilisateur ordinaire&lt;/em&gt; (non-&lt;em&gt;root&lt;/em&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Lancez simplement le script avec la commande &amp;quot;&lt;code&gt;lfd&lt;/code&gt;&amp;quot;, et vous obtiendrez une aide succinte.&lt;/li&gt;
&lt;li&gt;&amp;quot;&lt;code&gt;lfd --help&lt;/code&gt;&amp;quot; vous apportera une aide détaillée.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et voilà !&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;N'hésitez pas à me faire part de vos remarques&lt;/strong&gt;, suggestions, problèmes ou bugs dans l'utilisation de ce script.&lt;/p&gt;


&lt;p&gt;En espérant qu'il vous sera utile :-)&lt;/p&gt;


&lt;hr /&gt;


&lt;p&gt;&lt;strong&gt;N.B.:&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Avant d'écrire des fichiers confidentiels, assurez-vous que votre volume chiffré &lt;strong&gt;est monté !&lt;/strong&gt; S'il ne l'est pas, vos fichiers seront écrits en clair dans le répertoire vide ordinaire qui sert de point de montage, et ne seront pas protégés !&lt;/li&gt;
&lt;li&gt;Quand vous n'avez plus besoin d'accéder à vos fichiers, pensez à fermer les applications qui les utilisent, et à &lt;em&gt;démonter&lt;/em&gt; le volume chiffré, &lt;strong&gt;sinon les données qu'il contient resteront accessibles&lt;/strong&gt; (elles deviennent automatiquement inaccessibles si la machine est arrêtée ou rebootée, même violemment).&lt;/li&gt;
&lt;li&gt;Pensez que si un fichier a été écrit &lt;em&gt;une seule fois&lt;/em&gt; en clair sur votre disque, il en demeure toujours des traces. Rapportez-vous à mon billet sur &lt;a href=&quot;http://petaramesh.org/post/2007/10/27/GNU/Linux-%3A-Effacement-facile-de-fichiers-remanents&quot; hreflang=&quot;fr&quot;&gt;l'effacement des fichiers rémanents&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Pensez que votre système peut utiliser du &lt;em&gt;swap&lt;/em&gt; à tout moment, et que certaines applications peuvent générer des &lt;em&gt;fichiers temporaires&lt;/em&gt; qui peuvent, en fonction de l'application, être créés ailleurs que dans votre répertoire chiffré (par exemple dans &amp;quot;&lt;code&gt;/tmp&lt;/code&gt;&amp;quot;). Référez-vous à mon article sur le &lt;a href=&quot;http://petaramesh.org/post/2007/10/27/Securisation-dune-Ubuntu%3A-Chiffrement-du-swap&quot; hreflang=&quot;fr&quot;&gt;chiffrement du swap&lt;/a&gt;, je rédigerai dans quelque temps un billet sur le chiffrement des fichiers temporaires reposant sur le même principe général.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;


&lt;p&gt;&lt;strong&gt;&lt;em&gt;Changelog :&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2008/02/05: v. 0.97: Small buxfix for use with 2.6.24 kernel and &amp;quot;&lt;code&gt;sha256_generic&lt;/code&gt;&amp;quot; module.&lt;/li&gt;
&lt;li&gt;2008/01/18: v. 0.96: Now supports optionally creating and mounting containers with internal FAT16 or FAT32 filesystem, making them usable under MS Windows with &lt;a href=&quot;http://www.freeotfe.org/&quot; hreflang=&quot;en&quot;&gt;FreeOTFE&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;2007/11/15: v. 0.94: BUGFIX: Change in 0.93 introduced a possible security issue. Fixed.&lt;/li&gt;
&lt;li&gt;2007/11/15: v. 0.93: Compatibility FIX: made compatible with older versions of &amp;quot;losetup&amp;quot; that do not understand the &amp;quot;-a&amp;quot; option.&lt;/li&gt;
&lt;li&gt;2007/11/13: v. 0.92: BUGFIX: Added a couple tests to catch inconsistencies created by some user mistakes.&lt;/li&gt;
&lt;li&gt;2007/11/13: v. 0.91: COSMETIC: Typo fix in included helptext.&lt;/li&gt;
&lt;li&gt;2007/11/13: v. 0.90: First public release.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;


&lt;p&gt;&lt;strong&gt;&lt;em&gt;English summary :&lt;/em&gt;&lt;/strong&gt; &amp;quot;&lt;em&gt;LUKSfile for dummies&lt;/em&gt;&amp;quot; (lfd): A shell script that allows creating / mounting / unmounting LUKS encrypted filesystems the easy way from container files, with a simple command and takes care of all the loopback and mounting &lt;em&gt;technicalia&lt;/em&gt;. Get the script below, put it into &lt;code&gt;/usr/local/bin&lt;/code&gt;, chmod it 755 and run it as a normal non-root user. Designed for &lt;em&gt;Ubuntu&lt;/em&gt; (but usable on any other distro), makes extensive use of &lt;code&gt;sudo&lt;/code&gt; for performing its operations. Run the script to get help (Script help text in english).&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/13/#rev-pnote-1162-1&quot; id=&quot;pnote-1162-1&quot;&gt;1&lt;/a&gt;] Je joins également à ce billet la &lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/lfd/lfd.asc&quot;&gt;signature GnuPG détachée&lt;/a&gt;&lt;/em&gt; qui permet de vérifier (optionnellement) l'authenticité de ce script, ainsi que sa &lt;a href=&quot;http://petaramesh.org/public/arc/projects/lfd/gpl_v3.txt&quot; hreflang=&quot;en&quot;&gt;licence GPL&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/13/#rev-pnote-1162-2&quot; id=&quot;pnote-1162-2&quot;&gt;2&lt;/a&gt;] L'identifiant de &lt;a href=&quot;http://petaramesh.org/petaramesh_pubkey.asc&quot;&gt;ma clé GnuPG&lt;/a&gt; est &lt;code&gt;9076E32E&lt;/code&gt; et son empreinte : &lt;code&gt;CC1F E3A0 6D39 FAB2 B91C  982E 2FC2 5C1D 9076 E32E&lt;/code&gt;. Elle est disponible sur tous les bons serveurs de clés ;-)&lt;/p&gt;&lt;/div&gt;</description>
    
          <enclosure url="http://petaramesh.org/public/arc/projects/lfd/lfd"
      length="43335" type="text/plain" />
          <enclosure url="http://petaramesh.org/public/arc/projects/lfd/lfd.asc"
      length="189" type="text/plain" />
          <enclosure url="http://petaramesh.org/public/arc/projects/lfd/gpl_v3.txt"
      length="35147" type="text/plain" />
    
    
          <comments>http://petaramesh.org/post/2007/11/13/LUKSfile-for-dummies#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2007/11/13/LUKSfile-for-dummies#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1162</wfw:commentRss>
      </item>
    
  <item>
    <title>Sécurisation d'une Ubuntu: Chiffrement du swap</title>
    <link>http://petaramesh.org/post/2007/10/27/Securisation-dune-Ubuntu%3A-Chiffrement-du-swap</link>
    <guid isPermaLink="false">urn:md5:82671a9f1d9710b0a59ffd83c091a60d</guid>
    <pubDate>Sat, 27 Oct 2007 12:21:00 +0200</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>chiffrement</category><category>cryptographie</category><category>geekerie</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>&lt;p&gt;Un billet technique, un !&lt;/p&gt;


&lt;p&gt;Il existe &lt;a href=&quot;https://help.ubuntu.com/community/?action=fullsearch&amp;amp;value=encryptedfilesystem&amp;amp;titlesearch=Titles&quot; hreflang=&quot;fr&quot;&gt;une palanquée de HowTos&lt;/a&gt; expliquant diverses méthodes de chiffrement d'un système de fichiers sous Ubuntu, mais ceux-ci sont généralement complexes et s'adressent à des utilisateurs plutôt expérimentés.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;https://help.ubuntu.com/community/EncryptedFilesystemHowto&quot; hreflang=&quot;fr&quot;&gt;Celui-ci&lt;/a&gt;, dont je me suis inspiré pour ce billet, donne à son début de très intéressantes et abordables informations de base sur le principe du chiffrement, je vous y renvoie donc pour de plus amples informations.&lt;/p&gt;


&lt;p&gt;Je vais vous indiquer ici une méthode très simple permettant de chiffrer uniquement l'espace de &lt;em&gt;swap&lt;/em&gt;, pour commencer...&lt;/p&gt;    &lt;p&gt;Un disque dur peut se révéler très indiscret, et un examen &amp;quot;&lt;em&gt;forensic&lt;/em&gt;&amp;quot; de celui-ci peut le plus souvent exhumer des fichiers temporaires effacés depuis longtemps, des morceaux de documents dont on penserait &amp;quot;&lt;em&gt;qu'ils n'ont jamais été sauvegardés&lt;/em&gt;&amp;quot;, des mots de passe...&lt;/p&gt;


&lt;p&gt;Protéger un système contre la présence de tels &amp;quot;&lt;em&gt;restes mortels&lt;/em&gt;&amp;quot; constitue un projet long et complexe, mais on peut commencer par le plus simple et le plus nécessaire : le &lt;em&gt;swap&lt;/em&gt; et les répertoires de fichiers temporaires.&lt;/p&gt;


&lt;p&gt;Nous nous intéresserons aujourd'hui au seul &lt;em&gt;swap&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Le &lt;em&gt;swap&lt;/em&gt; est une partition spéciale qui est toujours créée automatiquement et séparément des autres lors de l'installation d'une distribution GNU/Linux. Le &lt;em&gt;swap&lt;/em&gt; peut être vu comme une &lt;em&gt;extension sur le disque dur de la mémoire vive (RAM) du système&lt;/em&gt;, c'est-à-dire que dès que le système manque de mémoire, il copie automatiquement sur le disque dur, dans l'espace de &lt;em&gt;swap&lt;/em&gt;, non pas des fichiers, mais des blocs de sa mémoire vive dont &amp;quot;il n'a pas besoin pour l'instant&amp;quot;, de manière à libérer de la place en mémoire centrale. Ces éléments copiés sur le swap y demeurent jusqu'à ce qu'ils soient écrasés par d'autres, et on peut y trouver absolument n'importe quoi : Bouts de documents ouverts ou en cours de rédaction, pages web en cours de visite, morceaux de programmes, mots de passe... Leur exploitation est difficile, mais accessible à un spécialiste doté d'outils &lt;em&gt;ad hoc&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Comme Linux optimise en permanence son utilisation de la mémoire, en pratique, dès qu'une machine a été allumée quelques dizaines de minutes, des données inutilisées sont &lt;em&gt;swappées&lt;/em&gt; même si le système ne manque pas de mémoire.&lt;/p&gt;


&lt;p&gt;Pour éviter la présence rémanente sur son disque dur de telles indiscrétions rémanentes, la plus sûre solution est de &lt;em&gt;chiffrer&lt;/em&gt; le &lt;em&gt;swap&lt;/em&gt; en utilisant un mot de passe aléatoire généré automatiquement au boot de la machine, et définitivement perdu dès que la machine est éteinte ou rebootée. Ainsi, tout ce qui demeure sur le swap est définitivement inexploitable dès la machine éteinte.&lt;/p&gt;


&lt;p&gt;Or, ceci est extrêmement facile à mettre en oeuvre. &lt;strong&gt;Voici comment procéder sur une Ubuntu 7.04 &lt;em&gt;Feisty&lt;/em&gt; ou 7.10 &lt;em&gt;Gutsy&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;=&amp;gt; Dans la suite de ce document, je parle de &amp;quot;&lt;em&gt;console root&lt;/em&gt;&amp;quot;. Une &amp;quot;&lt;em&gt;console root&lt;/em&gt;&amp;quot; est un terminal dans lequel on est passé en mode &lt;em&gt;root&lt;/em&gt; (administrateur) en tapant la commande &amp;quot;&lt;code&gt;sudo -s&lt;/code&gt;&amp;quot;. On peut aussi exécuter chaque commande &lt;em&gt;root&lt;/em&gt; à partir d'une console &amp;quot;ordinaire&amp;quot;, mais il faut à ce moment-là précéder chaque commande de &amp;quot;&lt;code&gt;sudo&lt;/code&gt;&amp;quot; pour l'exécuter en tant que &lt;em&gt;root&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Si l'on a fait &amp;quot;&lt;code&gt;sudo -s&lt;/code&gt;&amp;quot;, on peut ensuite ressortir en mode &amp;quot;utilisateur ordinaire&amp;quot; en tapant &amp;quot;&lt;code&gt;exit&lt;/code&gt;&amp;quot; ou &lt;code&gt;[Ctrl]-D&lt;/code&gt; (fin du fichier d'entrée).&lt;/p&gt;


&lt;p&gt;Pour chiffrer le &lt;em&gt;swap&lt;/em&gt;, donc, la première chose à faire est d'installer le paquetage &lt;em&gt;cryptsetup&lt;/em&gt;, soit au moyen de l'outil graphique adéquat, soit en &lt;em&gt;console root&lt;/em&gt; par la simple commande :&lt;/p&gt;


&lt;pre&gt;aptitude install cryptsetup&lt;/pre&gt;


&lt;p&gt;Une fois ceci fait, il faut s'assurer de la partition de disque sur laquelle se trouve le &lt;em&gt;swap&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;&lt;ins&gt;ATTENTION :&lt;/ins&gt;&lt;/strong&gt; Dans la suite de ce processus, &lt;strong&gt;toute erreur ou faute de frappe dans le nom de la partition sur laquelle on travaille provoquera irrémédiablement la destruction des données du disque dur !&lt;/strong&gt; Il faut donc vérifier à chaque commande qu'on travaille bien sur la bonne partition, exclusivement celle du &lt;em&gt;swap&lt;/em&gt; !&lt;/p&gt;


&lt;p&gt;Tapons la commande :&lt;/p&gt;


&lt;pre&gt;root@totor:/etc# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda4                               partition       4200884 34072   -1&lt;/pre&gt;


&lt;p&gt;...Notre partition de &lt;em&gt;swap&lt;/em&gt; active est &lt;code&gt;/dev/sda4&lt;/code&gt; (4ème partition principale de notre premier disque dur SATA ou SCSI).&lt;/p&gt;


&lt;p&gt;Dans la suite de ce document, à chaque fois que vous verrez &lt;code&gt;/dev/sda4&lt;/code&gt;, pensez à &lt;strong&gt;le remplacer par &lt;ins&gt;votre&lt;/ins&gt; partition de &lt;em&gt;swap&lt;/em&gt; telle que cette commande vous l'aura montrée !&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Si vous avez un processeur de classe i586 ou supérieur (c'est-à-dire tout le monde, sauf les possesseurs de &lt;em&gt;très&lt;/em&gt; vieilles machines), nous utiliserons le module de chiffrement &amp;quot;&lt;code&gt;aes_i586&lt;/code&gt;&amp;quot; (les plus vieux utiliseront &amp;quot;&lt;code&gt;aes&lt;/code&gt;&amp;quot; tout court.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chargeons les modules de noyau dont nous avons besoin pour le chiffrement :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;modprobe aes_i586
modprobe dm_mod
modprobe dm_crypt&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Désactivons notre partition de swap (fermez auparavant les applications dont vous n'avez pas besoin, de manière à vous assurer que vous ne consommez pas plus de mémoire vive que la mémoire RAM réelle de votre système)&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;swapoff /dev/sda4&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Assurons-nous que le swap n'est plus utilisé :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;root@totor:/etc# swapon -s
Filename                                Type            Size    Used    Priority&lt;/pre&gt;

&lt;p&gt;(On ne doit plus rien voir dans la liste)&lt;/p&gt;


&lt;p&gt;Maintenant, nous allons effacer &amp;quot;écraser&amp;quot; complètement le contenu de la partition de swap (si vous écrasez la mauvaise partition, vous êtes &lt;em&gt;mal&lt;/em&gt; !)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Si nous avons du temps devant nous (ça peut prendre plusieurs dizaines de minutes), nous remplirons cette partition de données pseudo-aléatoires, pour rendre son contenu présent et futur complètement indiscernable de données aléatoires :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;dd if=/dev/urandom of=/dev/sda4 bs=1M&lt;/pre&gt;


&lt;p&gt;...L'opération se poursuivra jusqu'à donner une &amp;quot;&lt;em&gt;erreur d'entrée-sortie&lt;/em&gt;&amp;quot; quand la partition sera pleine.&lt;/p&gt;


&lt;p&gt;(Si nous sommes pressés et voulons aller beaucoup plus vite, nous pouvons utiliser &amp;quot;&lt;code&gt;/dev/zero&lt;/code&gt;&amp;quot; à la place de &amp;quot;&lt;code&gt;/dev/urandom&lt;/code&gt;&amp;quot; pour écraser toute la partition avec des zéros, mais cela donnera une protection d'un peu moins bonne qualité.)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;La partition une fois effacée, créons un volume chiffré à partir de celle-ci :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;cryptsetup -s 128 -d /dev/urandom create cswap /dev/sda4&lt;/pre&gt;


&lt;p&gt;(N'utilisez &lt;em&gt;en aucun cas&lt;/em&gt; &amp;quot;&lt;code&gt;/dev/zero&lt;/code&gt;&amp;quot; ici !)&lt;/p&gt;


&lt;p&gt;Si cela a fonctionné, nous devons maintenant voir un péripérique bloc appelé &lt;code&gt;/dev/mapper/cswap&lt;/code&gt; :&lt;/p&gt;


&lt;pre&gt;root@totor:/etc# ls -l /dev/mapper
total 0
crw-rw&lt;del&gt;&lt;/del&gt; 1 root root  10, 63 2007-10-27 10:37 control
brw-rw&lt;del&gt;&lt;/del&gt; 1 root disk 254, 41 2007-10-27 10:37 cswap&lt;/pre&gt;


&lt;p&gt;...Et nous pouvons vérifier que &lt;code&gt;cswap&lt;/code&gt; est bien une partition chiffrée :&lt;/p&gt;


&lt;pre&gt;root@totor:/etc# cryptsetup status cswap
/dev/.static/dev/mapper/cswap is active:
cipher:  aes-cbc-plain
keysize: 128 bits
device:  /dev/sda4
offset:  0 sectors
size:    8401790 sectors
mode:    read/write&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Créons maintenant un espace de swap sur cette nouvelle partition chiffrée :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;mkswap /dev/mapper/cswap&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Activons maintenant cet espace de swap :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;swapon /dev/mapper/cswap&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Vérifions qu'il est bien actif :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;root@totor:/etc# swapon -s
Filename                                Type            Size    Used    Priority
/dev/mapper/cswap                       partition       4200884 34272   -1&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;Et voilà ! Notre swap est désormais chiffré !&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Il nous faut maintenant nous assurer que ceci sera fait automatiquement à chaque boot. Nous avons pour cela quelques fichiers de configuration à éditer (toujours en mode root) :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Editons le fichier &lt;code&gt;/etc/modprobe.d/aliases&lt;/code&gt;, et ajoutons à la fin de celui-ci une ligne :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;alias aes aes_i586&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Editons le fichier &lt;code&gt;/etc/modules&lt;/code&gt;, et ajoutons vers le début de celui-ci les lignes :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;aes_i586
dm_mod
dm_crypt&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Editons le fichier &lt;code&gt;/etc/crypttab&lt;/code&gt;, comme suit :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;# &amp;lt;target name&amp;gt; &amp;lt;source device&amp;gt;         &amp;lt;key file&amp;gt;      &amp;lt;options&amp;gt;
cswap                  /dev/sda4                   /dev/urandom  size=128,swap&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Editions le fichier &lt;code&gt;/etc/fstab&lt;/code&gt;, cherchons la ligne concernant le swap et qui doit probablement commencer par un long &amp;quot;&lt;code&gt;UUID=blablabla&lt;/code&gt;&amp;quot; suivi quelque part de &amp;quot;&lt;code&gt;swap&lt;/code&gt;&amp;quot;, et être précédé d'une ligne de commentaire indiquant &amp;quot;&lt;code&gt;# /dev/sda4&lt;/code&gt;&amp;quot;. Modifions cette ligne en supprimant &amp;quot;&lt;code&gt;UUID=blablabla&lt;/code&gt;&amp;quot; et en le remplaçant pour donner à la ligne l'aspect suivant :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;/dev/mapper/cswap none           swap    sw              0       0&lt;/pre&gt;


&lt;p&gt;Voilà, nous avons terminé !&lt;/p&gt;


&lt;p&gt;Il ne reste plus qu'à redémarrer le système pour s'assurer que ceci a &amp;quot;&lt;em&gt;survécu au reboot&lt;/em&gt;&amp;quot; et que le système sait désormais configurer tout seul son &lt;em&gt;swap chiffré&lt;/em&gt; à chaque boot. Après le reboot, on vérifiera simplement que...:&lt;/p&gt;


&lt;pre&gt;root@totor:/etc# swapon -s
Filename                                Type            Size    Used    Priority
/dev/mapper/cswap                       partition       4200884 34272   -1

root@totor:/etc# cryptsetup status cswap
/dev/.static/dev/mapper/cswap is active:
 cipher:  aes-cbc-plain
 keysize: 128 bits
 device:  /dev/.static/dev/mapper/swap
 offset:  0 sectors
 size:    8401790 sectors
 mode:    read/write&lt;/pre&gt;


&lt;p&gt;Voilà, notre &amp;quot;swap&amp;quot; est désormais définitivement chiffré. Dans un prochain article, nous verrons comment faire la même chose, sur le même principe, pour la partition de fichiers temporaires &amp;quot;&lt;code&gt;/tmp&lt;/code&gt;&amp;quot;.&lt;/p&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2007/10/27/Securisation-dune-Ubuntu%3A-Chiffrement-du-swap#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2007/10/27/Securisation-dune-Ubuntu%3A-Chiffrement-du-swap#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1124</wfw:commentRss>
      </item>
    
  <item>
    <title>L'art de faire chier le monde</title>
    <link>http://petaramesh.org/post/2007/01/09/Lart-de-faire-chier-le-monde</link>
    <guid isPermaLink="false">urn:md5:d208ecd134ba80cb9a643ce4d57d5e93</guid>
    <pubDate>Tue, 09 Jan 2007 08:16:00 +0100</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>General</category>
        <category>blog</category><category>cryptographie</category><category>Echelon</category><category>GnuPG</category><category>métabloguerie</category><category>PGP</category><category>râlerie</category><category>spam</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://petaramesh.org/public/arc/img/blog/2007/spam_spam_spam.png&quot; alt=&quot;Spam Spam Spam Spam !&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; /&gt;Plus de 1200 spams de commentaires reçus en 8 heures sur ce blog, entre cette nuit minuit et ce matin 8 heures environ... Presque tous bloqués par l'antispam &lt;a href=&quot;http://akismet.com/&quot; hreflang=&quot;en&quot;&gt;Akismet&lt;/a&gt;, seuls 7 ou 8 sur 1200+ sont passés à travers.&lt;/p&gt;


&lt;p&gt;Mais la seule vidange de ma file de spams bloqués devient une véritable corvée. Vraiment, je n'arriverai jamais à comprendre que certains puissent déployer autant d'efforts pour faire chier le monde...&lt;/p&gt;


&lt;p&gt;Je dois prévenir mes amis lecteurs : Si jamais l'un de vos commentaires atterrit en &amp;quot;&lt;em&gt;file de modération&lt;/em&gt;&amp;quot; (c'est malheureusement le cas quasi-systématique pour deux d'entre-vous dont les adresses IP figurent sur des listes noires utilisées par l'anti-spam) &lt;strong&gt;prévenez-moi&lt;/strong&gt; par mail &lt;em&gt;via&lt;/em&gt; la &lt;a href=&quot;http://petaramesh.org/contact&quot; hreflang=&quot;fr&quot;&gt;page contact&lt;/a&gt;, parce que quand j'ai 1200 spams dans la file de modération, je vide tout, hein, je ne lis pas... Donc s'il y a des commentaires légitimes noyés dans la masse de merdes, ils passent hélas à la trappe avec... Je ne peux pas lire 1200 spams 4 fois par jour :-(&lt;/p&gt;


&lt;p&gt;7000 commentaires légitimes sur ce blog en un peu moins d'un an. Mais 1200 merdes en 8 heures...&lt;/p&gt;


&lt;p&gt;Vraiment, je suis contre la peine de mort. Sauf pour les spammeurs.&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>