Au sujet de la sécurité de la clé Freeduc-jbart ... voir à la fin du document

Faire une clé vive Freeduc-jbart

Téléchargement

La méthode grossière consiste à placer 16 giga-octets sur une clé USB. Le téléchargement revient bien sûr au même, sous Windows comme sous GNU/Linux. Cette méthode grossière ne convient pas bien pour des clés de taille plus grande ou plus petite que 16 giga-octets.

La méthode astucieuse, sous GNU/Linux

Cette méthode est accessible à tous depuis l'année 2019, quand les clés Freeduc ont commencé à être fabriquées grâce à live-build. Elle consiste à ne télécharger et copier que les partitions contenant le système ; c'est cinq fois moins long à recopier bit-à-bit sur une clé USB : on grave quelques 3 Go au lieu de 16.

On télécharge l'image du système au format ISO-hybride. Il ne sera pas nécessaire de le décomprimer.

DateFichier ISOSomme de contrôleSignatureArchive des sources

cible = amd64 (64 bits)
ISO-hybrid image for a DVD or a USB disk
4635574272
checksum file signature file source tarball to comply with FS licences
14035507200

cible = amd64 (64 bits)
ISO-hybrid image for a DVD or a USB disk
3319456
checksum file signature file source tarball to comply with FS licences
9888690

cible= i686 (32 bits)
ISO-hybrid image for a DVD or a USB disk
3299872
checksum file signature file source tarball to comply with FS licences
9840380

cible= amd64 (64 bits)
ISO-hybrid image for a DVD or a USB disk
3123232
checksum file signature file source tarball to comply with FS licences
9313660

cible= amd64 (64 bits)
ISO-hybrid image for a DVD or a USB disk
3025120
checksum file signature file source tarball to comply with FS licences
8521660

Première version générée par live-build, cible= amd64 (64 bits)
ISO-hybrid image for a DVD or a USB disk
3031040
checksum file signature file source tarball to comply with FS licences

Transfert des données vers une clé USB

Après téléchargement et décompression, on copie l'image bit à bit, sans autre traitement, vers une clé USB. Ça ne marche vraiment bien que si la taille de clé USB vaut 16 Go. Pour une clé de 8 Go, le système de fichiers pour la persistance sera inconsistant, et il faudra le réparer, pour des clés de plus de 16 Go, il restera de l'espace mémoire inutilisé.

Attention : sous Windows, on a l'habitude d'utiliser les « systèmes de copie » ordinaires vers une clé USB, en usant de la souris (tirer-glisser, copier-coller, etc.) ; ça ne marche pas comme ça. Il faut obligatoirement utiliser un programme spécialisé de recopie bit-à-bit, tel que Win32 Disk Imager . On lance le programme Win32 Disk Imager, on désigne la clé USB ciblée, on désigne le fichier de 16 Go (décompressé), et on lance la copie. Selon les modèles, ça peut durer de 10 minutes à quelques heures. Si la durée excède une demi-heure, il est préférable d'utiliser une clé plus performante.

Après téléchargement et décompression, on copie l'image bit à bit, sans autre traitement, vers une clé USB. Ça ne marche vraiment bien que si la taille de clé USB vaut 16 Go. Pour une clé de 8 Go, le système de fichiers pour la persistance sera inconsistant, et il faudra le réparer, pour des clés de plus de 16 Go, il restera de l'espace mémoire inutilisé.

Sous GNU/Linux, en ligne de commande

Il convient de déterminer le périphérique qui gère la clé USB récemment branchée. Pour cela, tapez la ligne de commande : dmesg, et les messages devraient se terminer par une référence au branchement récent d'une clé USB, quelque chose comme : ... scsi25 : usb-storage ... sdb: sdb1 ...
Dans l'exemple, le bon périphérique est /dev/sdb.
Ensuite, il reste à copier les données avec la commande bar ou avec la commande dd :
  1. Avec la commande bar : installez le paquet « bar » disponible sous debian et Ubuntu, il permet d'avoir une barre d'avancement pour savoir où on en est de la copie.
    La commande est : bar -if live-image-i386.stick16G.img -of /dev/sdX
    attention, le X signifie une lettre de l'alphabet, souvent b, c, d, etc. Dans l'exemple, la bonne commande serait : bar -if live-image-i386.stick16G.img -of /dev/sdb
    N.B. : Vous aurez probablement besoin des droits de super-utilisateur pour que la commande fonctionne.
  2. Avec la commande dd : dd est disponible par défaut, inutile de l'installer.
    La commande est : dd if=live-image-i386.stick16G.img of=/dev/sdX status=progress bs=4M oflag=dsync
    ... Relisez bien l'explication plus haut, afin de ne pas vous tromper de périphérique.

Après téléchargement on copie l'image bit à bit, sans autre traitement, vers une clé USB. Ça marche quelle que soit la taille de la clé, de préférence supérieure ou égale à 8 Go.

Sous GNU/Linux, en ligne de commande

Il convient de déterminer le périphérique qui gère la clé USB récemment branchée. Pour cela, tapez la ligne de commande : dmesg, et les messages devraient se terminer par une référence au branchement récent d'une clé USB, quelque chose comme : ... scsi25 : usb-storage ... sdb: sdb1 ...
Dans l'exemple, le bon périphérique est /dev/sdb.
Ensuite, il reste à copier les données avec la commande bar ou avec la commande dd :
  1. Avec la commande bar : installez le paquet « bar » disponible sous debian et Ubuntu, il permet d'avoir une barre d'avancement pour savoir où on en est de la copie.
    La commande est : bar -if live-image-i386.hybrid.iso -of /dev/sdX
    attention, le X signifie une lettre de l'alphabet, souvent b, c, d, etc. Dans l'exemple, la bonne commande serait : bar -if live-image-i386.hybrid.iso -of /dev/sdb
    N.B. : Vous aurez probablement besoin des droits de super-utilisateur pour que la commande fonctionne.
  2. Avec la commande dd : dd est disponible par défaut, inutile de l'installer.
    La commande est : dd if=live-image-i386.hybrid.iso of=/dev/sdX status=progress bs=4M oflag=dsync
    ... Relisez bien l'explication plus haut, afin de ne pas vous tromper de périphérique.

Création de la partition de persistance

Toujours en ligne de commande, avec des droits de super-utilisateur, on utilise un outil de gestion de partitions pour créer un espace de persistance, sur la place disponible à la fin de la clé.

En poursuivant l'exemple où la clé est désignée par /dev/sdb, tapez la commande fdisk /dev/sdb ; cela démarre le programme interactif fdisk. Quand celui-ci a démarré, vous pouvez voir la structure interne des systèmes portés par la clé USB en tapant p (Print) : fdisk vous présentera les partitions existantes, numérotées 1 et 2.

Sous le contrôle de fdisk, tapez n (New), puis p (Primary partition), puis 3, et enfin plusieurs fois sur la touche Entrée. Cela crée une troisième partition qui utilise tout l'espace disponible. Tapez p (Print), vous pourrez bien vérifier la structures, qui comporte trois partitions, numérotées 1, 2 et 3. Si tout va bien, tapez w (Write) : ça écrit la nouvelle table de partition en écrasant l'ancienne. On peut abandonner en cas de doute, en tapant q (Quit) ; cela arrête fdisk sans altérer la table de partition.

Formatage de la partition de persistance

Quand on dispose de l'invite du terminal (pas sous le contrôle de fdisk), on peut taper la commande mkfs -t ext4 -L persistence /dev/sdb3 ; remarquez bien que le mot persistence est en anglais, pas avec l'orthographe française persistance, ce détail a son importance. Remarques aussi que si votre clé USB n'est pas connue comme /dev/sdb, ce n'est pas /dev/sdb3 qui est censé désigner la partition 3 de la clé : vous devrez adapter la syntaxe.

Renseignement du système de persistance

Un fichier de renseignement doit être placé sur la partition fraîchement formatée. Vous pouvez ouvrir un outil graphique de gestion de fichiers : celui-ci aura détecté une partition de disque nommée persistence, si ce n'est pas le cas, vous pouvez tenter de débrancher la clé et de la rebrancher après quelques secondes. Le gestionnaire de fichiers permet de voir cette partition, mais s'il n'a pas été lancé par le super-utilisateur, il ne permet pas d'y manipuler directement des fichiers. Cependant, il vous permet d'apprendre le point de montage de cette partition. Typiquement, quelque chose comme /media/toto/persistence (toto n'est pas le vrai nom, c'est probablement plutôt votre nom d'utilisateur à la place).

Créez un fichier texte pur quelque part sur le disque, avec le nom de fichier persistence.conf, qui contient une seule ligne, rédigée ainsi : / union ; vérifiez soigneusement le nom du fichier, basé sur l'orthographe anglaise, et l'espace entre le texte / et le texte union. Enfin, en tant que super-utilisateur, copiez ce fichier à la bonne place : cp persistence.conf /media/toto/persistence (bien sûr que vous ne vous appelez pas toto, adaptez le nom).

C'est prêt, y'a plus qu'à

En fait, toute la « méthode astucieuse » sous GNU/Linux a été encapsulée dans un programme facile à utiliser, nommé live-clone. Téléchargez le paquet Debian le plus récent, et installez-le :

PublicationFichierTaille
Novembre 2022 live-clone version 2.6-1 545 Ko
Novembre 2020 live-clone_2.4-1_all.deb 533 KB

Il se peut que le gestionnaire de paquets demande à installer plusieurs autres paquets automatiquement : ce sont les dépendances du paquet live-clone. Laissez-le faire, afin que l'installation puisse aller à terme sans faute.

Quand l'installation est terminée, vous devriez pouvoir trouver l'application dans les menus, signalée par son icône :
logo Live-Clone
On peut lancer l'application à partir des menus, ou à partir d'un terminal (sudo live-clone). Dans tous les cas, il vous sera demandé de gagner le droit d'administration, vous devrez donc taper un mot de passe.

Et là, c'est trop simple ! Dès qu'une clé USB est branchée, elle apparaît dans un tableau, et sur la même ligne, et un clic sur le gros titre CLONER DES CLÉS USB permet de passer à l'action.
Il faudra juste choisir le fichier live-image-amd64.hybrid.iso dans le dialogue approprié, et laisser faire l'application.

Cerise sur le gâteau

Quand vous aurez installé votre première clé Freeduc-Jbart de juin 2019 (ou plus tard), elle vient avec le logiciel live-clone préinstallé. Dans le contexte de la clé, le bouton de clonage ne demande rien du tout : il se contente de cloner la clé elle-même.

live-clone ne recopie pas les données de la partition de persistance, afin d'éviter la fuite des données personnelles : celles-ci doivent rester sous votre responsabilité.

Freeduc-Jbart et sécurité

La personne qui démarre un ordinateur avec la clé USB Freeduc-Jbart peut obtenir tous les droits sur la machine locale. C'est justement un des buts de cette distribution : mettre dans la mains des professeurs et des élèves un outil affûté, qui donne le contrôle d'un ordinateur.

Dans un contexte pédagogique, le professeur apprend à ses élèves ce qu'ils ont le droit de faire et ce qui n'est pas permis. L'accés aux « outils tranchants » nécessite d'obtenir des droits de super-utilisateur, par exemple avec la commande sudo. Si l'apprentissage se passe dans de bonnes conditions, les élèves respectent leur enseignant et respectent les ordinateurs auxquels ils accèdent.

Cependant, que se passerait-il si la clé USB elle-même contenait des logiciels malicieux, par exemple un virus avec une « charge utile » indésirable ?

Garantie

    Le logiciel libre qui vient avec Freeduc-Jbart est distribué dans
    l’espoir qu’il sera utile, mais SANS AUCUNE GARANTIE, ce qui vaut même
    pour la garantie implicite de QUALITÉ MARCHANDE ou d’ADÉQUATION AVEC
    UNE DESTINATION PARTICULIÈRE. Vous pouvez accéder à plus de détails
    dans les fichiers /usr/share/doc/*/copyright présents dans le
    système de fichiers de Freeduc-Jbart, après démarrage.

Cependant, je soussigné, réalisateur de cette distribution, affirme qu'à ma connaissance, aucun logiciel malicieux n'a été introduit, et que tous les paquets logiciels fournis obéissent aux règles du Contrat Social Debian.

Georges Khaznadar

Et qui garantit la garantie ?

C'est bien connu, il n'y a pas plus facile que de publier une page web, et d'y prétendre proposer du bon logiciel : c'est exactement comme cela que se présentent les meilleurs virus.

Les fichiers que vous téléchargez sont vérifiables par une méthode de cryptographie forte, et vous pouvez de façon fiable établir qu'ils ont été signés par Georges Khaznadar <georgesk@debian.org>, à l'aide de la clé GPG d'identifiant 3340B364FF67153FB7CCAE851C2816907136AE39. Cette clé fait partie du Web of Trust (la Toile de Confiance) , et vous pouvez chercher à vous inscrire dans le Web of Trust afin d'en obtenir une confirmation convaincante.

Comment vérifier les fichiers téléchargés

En plus des fichiers de la distribution, il y a des fichiers de somme de contrôle MD5, et des signatures numériques des fichiers de somme de contrôle.

Par exemple, pour le fichier live-image-i386.hybrid.iso , la somme de contrôle est dans le fichier sha512sums.txt , et la signature de ce dernier fichier est dans l'autre fichier sha512sums.txt.asc

Admettons que les trois fichiers , le .iso, le .txt, et le .txt.asc sont téléchargés tous dans le même dossier.
Alors, la commande sha512sum -c sha512sums.txt permet de vérifier que le gros fichier de 3 giga-octets n'a pas été altéré.

Enfin, la commande gpg --verify sha512sums.txt.asc permet de vérifier que le fichier de somme de contrôle MD5 n'a pas été altéré, et qu'il a été signé par Georges Khaznadar <georgesk@debian.org>, à l'aide de la clé GPG d'identifiant 3340B364FF67153FB7CCAE851C2816907136AE39.

Si vous adhérez au Web Of Trust, vous pouvez faire apparaître clairement toutes les chaînes de confiance qui vous relient personnellement au signataire, par exemple à l'aide du site web pgp.cs.uu.nl .