Chapitre 4 Quelques illusions de sécurité
Bien. On commence à avoir fait le tour des traces que nous pouvons laisser involontairement, et des informations que des personnes mal intentionnées pourraient récupérer.
Il reste maintenant à pourfendre quelques idées reçues.
4.1 Logiciels propriétaires, open source, libres
On a vu qu’un logiciel peut faire plein de choses qu’on n’a pas du tout envie qu’il fasse. Dès lors, il est indispensable de faire ce que l’on peut pour réduire ce problème. De ce point de vue, les logiciels libres sont dignes d’une confiance bien plus grande que les logiciels dits « propriétaires » : nous allons voir pourquoi.
4.1.1 La métaphore du gâteau
Pour comprendre la différence entre logiciels libres et propriétaires, on utilise souvent la métaphore du gâteau. Pour faire un gâteau, il faut une recette : il s’agit d’une liste d’instructions à suivre, d’ingrédients à utiliser et d’un procédé de transformation à effectuer. De la même façon, la recette d’un logiciel est appelée « code source ». Elle est écrite dans un langage fait pour être compréhensible par des êtres humains. Cette recette est ensuite transformée en un code compréhensible par le processeur, un peu comme la cuisson d’un gâteau nous donne ensuite la possibilité de le manger.
Les logiciels propriétaires ne sont disponibles que « prêts à consommer », comme un gâteau industriel, sans sa recette. Il est donc très difficile de connaître ses ingrédients : c’est faisable, mais le processus est long et compliqué. Au demeurant, relire une série de plusieurs millions d’additions, de soustractions, de lectures et d’écritures en mémoire, pour en reconstituer le but et le fonctionnement est loin d’être la première chose que l’on souhaite faire sur un ordinateur.
Les logiciels libres, au contraire, sont livrés avec leur recette pour quiconque veut comprendre ou modifier le fonctionnement du programme. Il est donc plus facile de savoir ce qu’on donne à manger à notre processeur, et donc ce qu’il va advenir de nos données.
4.1.2 Les logiciels propriétaires : une confiance aveugle
Un logiciel « propriétaire » est donc un peu comme une boîte étanche : on peut constater que le logiciel fait ce qu’on lui demande, possède une belle interface graphique, etc. Mais on ne peut pas vraiment connaître en détail comment il procède. On ne sait pas s’il se cantonne à faire ce qu’on lui demande, ou s’il fait d’autres choses en plus. Pour le savoir, il faudrait pouvoir étudier son fonctionnement, ce qui est difficile à faire sans son code source… il ne nous reste donc qu’à lui faire aveuglément confiance.
Windows et macOS, les premiers, sont d’immenses boîtes hermétiquement fermées dans lesquelles sont installées d’autres boîtes tout aussi hermétiques (de Microsoft Office aux anti-virus…) qui font peut-être bien d’autres choses que celles qu’on leur demande.
Notamment, elles peuvent fournir des informations que ces logiciels grapilleraient sur nous ou même permettre d’accéder à l’intérieur de l’ordinateur. Par exemple avec des backdoors ou « portes dérobées »97 incluses dans le logiciel, que les personnes en ayant la clé pourraient utiliser pour pirater notre ordinateur. Comme il n’est pas possible de savoir comment est écrit le système d’exploitation, tout est imaginable en la matière.
Dès lors, faire reposer la confidentialité et l’intégrité de nos données sur des programmes auxquels on est obligée d’accorder sa confiance les yeux fermés est une illusion de sécurité. Et installer d’autres logiciels prétendant sur leur emballage veiller à cette sécurité à notre place, alors que leur fonctionnement n’est pas plus transparent, ne peut pas résoudre ce problème.
4.1.3 L’avantage d’avoir la recette : les logiciels libres
La confiance plus grande qu’on peut avoir dans un système libre comme GNU/Linux est principalement liée au fait de disposer de la « recette » qui permet de le fabriquer. Gardons en tête quand même qu’il n’y a rien de magique : les logiciels libres ne jettent aucun « sort de protection » sur nos ordinateurs.
Toutefois, GNU/Linux offre davantage de possibilités pour rendre un peu plus sûr l’usage des ordinateurs, notamment en permettant de configurer assez finement le système. Cela implique trop souvent des savoir-faire relativement spécialisés, mais au moins c’est possible.
Par ailleurs, le mode de production des logiciels libres est peu compatible avec l’introduction de portes dérobées : c’est un mode de production collectif, plutôt ouvert et transparent, auquel participent des gens assez variés. Il n’est donc pas facile pour des personnes mal intentionnées d’y introduire des accès secrets en toute discrétion.
Il faut toutefois se méfier des logiciels qualifiés d’open source. Ces derniers donnent eux aussi accès à leur « recette », mais ont des modes de développement plus fermés, plus opaques. La modification et la redistribution de ces logiciels est au pire interdite, au mieux autorisée formellement mais rendue très pénible en pratique. Comme seule l’équipe à l’origine d’un logiciel va pouvoir participer à son développement, on peut considérer qu’en pratique personne ne lira en détail son code source… et donc que personne ne vérifiera vraiment son fonctionnement.
C’est le cas par exemple de TrueCrypt, dont le développement s’est arrêté en mai 2014. Il s’agissait d’un logiciel de chiffrement dont le code source était disponible, mais dont le développement était fermé et dont la licence restreignait la modification et la redistribution. Pour ce qui nous occupe, le fait qu’un logiciel soit open source doit plutôt être considéré comme un argument commercial que comme un gage de confiance.
Sauf que… la distinction entre logiciels libres et open source est de plus en plus floue : des personnes employées par Intel, Google et compagnie, écrivent de grosses parties des logiciels libres les plus importants, et on ne va pas toujours regarder de près ce qu’elles écrivent. Par exemple, voici les statistiques des organisations employant les gens qui développent le noyau Linux (qui est libre). Elles sont exprimées en pourcentage du nombre total de lignes de code source modifiées sur une période donnée98 :
Organisation | Pourcentage |
---|---|
Linaro | 17,4 % |
Intel | 11,5 % |
Red Hat | 5,5 % |
4,2 % | |
(Inconnue) | 4,2 % |
NVIDIA | 4,1 % |
(Aucune) | 3,8 % |
Realtek | 3,3 % |
SUSE | 2,9 % |
MediaTek | 2,9 % |
Arm | 2,3 % |
Marvell | 2,2 % |
AMD | 2,1 % |
Pengutronix | 2,0 % |
etc. |
Alors il n’est pas impossible qu’une personne qui a écrit une partie du logiciel dans un coin, et à qui la « communauté du Libre » fait confiance, ait pu y intégrer des bouts de code malveillants. La NSA (une agence de renseignement états-unienne) a ainsi pu créer et faire valider un standard cryptographique dans lequel se trouvait une faille lui permettant de contourner le chiffrement de certains protocoles sécurisés99.
Si on utilise uniquement des logiciels libres livrés par une distribution GNU/Linux non commerciale telle que Debian ou Tails, il y a peu de chances que ce cas se présente, mais c’est une possibilité. On fait alors confiance aux personnes travaillant sur la distribution pour étudier le fonctionnement des programmes qui y sont intégrés.
Néanmoins, cette confiance ne peut valoir que si on reste vigilante à ce que l’on installe sur notre système. Par exemple, sur Debian, les paquets officiels de la distribution sont « signés », ce qui permet de vérifier leur provenance. Mais si on installe des paquets ou des extensions pour Firefox trouvées sur Internet sans les vérifier, on s’expose à tous les risques mentionnés au sujet des logiciels malveillants.
En guise de conclusion : libre ou pas, il n’existe pas de logiciel pouvant, à lui seul, assurer l’intimité de nos données ; pour ce faire, il n’existe que des pratiques, associées à l’utilisation de certains logiciels. Logiciels choisis parce que des éléments nous permettent de leur accorder un certain niveau de confiance.
4.2 Le mot de passe d’un compte ne protège pas ses données
Tous les systèmes d’exploitation récents (Windows, macOS, GNU/Linux, etc.) offrent la possibilité d’avoir différents comptes utilisateur ou utilisatrice sur un même ordinateur. Mais il faut savoir que les mots de passe qui protègent parfois ces comptes ne garantissent pas du tout la confidentialité des données.
Certes, il peut être pratique d’avoir son espace à soi, avec ses propres réglages (marque-pages, fond d’écran, etc.), mais une personne qui souhaiterait avoir accès à toutes les données qu’il y a sur l’ordinateur n’aurait aucun mal à y parvenir : en rebranchant le disque dur sur un autre ordinateur ou en le démarrant sur un autre système d’exploitation elle aurait accès à toutes les données écrites sur ce disque dur.
Aussi, si utiliser des comptes séparés et des mots de passe peut avoir quelques avantages (comme la possibilité de verrouiller l’écran quand on s’éloigne quelques minutes), il est nécessaire de garder en tête que cela ne protège pas réellement nos données.
4.3 À propos de l’« effacement » des fichiers
On a déjà évoqué que le contenu d’un fichier devenu inaccessible ou invisible ne s’était pas pour autant volatilisé. On va maintenant détailler pourquoi.
4.3.1 La suppression d’un fichier n’en supprime pas le contenu…
… et ça peut être très facile de le retrouver.
En effet, lorsqu’on « supprime » un fichier en le plaçant dans la Corbeille puis en la vidant, on ne fait que dire au système d’exploitation que le contenu de ce fichier ne nous intéresse plus. Il supprime alors son entrée dans l’index des fichiers existants. Et il a ensuite le loisir de réutiliser l’espace que prenaient ces données pour y inscrire autre chose.
Mais il faudra peut-être des semaines, des mois ou des années avant que cet espace soit effectivement utilisé pour de nouveaux fichiers, et que les anciennes données disparaissent réellement. En attendant, si on regarde directement ce qui est inscrit sur le disque dur, on retrouve le contenu des fichiers « supprimés ». C’est une manipulation assez simple, automatisée par de nombreux logiciels permettant de « récupérer » ou de « restaurer » des données100.
4.3.2 Un début de solution : réécrire plusieurs fois par-dessus les données
Une fois que de nouvelles données sont réécrites sur l’espace d’un disque dur, il devient difficile de
retrouver ce qui s’y trouvait auparavant. Mais cela n’est pas pour autant
impossible : lorsque l’ordinateur réécrit 1
par-dessus 0
, cela donne plutôt
0,95
et lorsqu’il réécrit 1
par-dessus 1
, cela donne plutôt
1,05
101… un peu comme on peut lire sur un bloc-notes ce qui a été écrit
sur une page arrachée, par les dépressions créées sur la page vierge située
en dessous.
En revanche, cela devient très difficile, voire impossible, de les récupérer quand on réécrit plusieurs fois par-dessus avec des données aléatoires. La meilleure façon de rendre inaccessible le contenu de ces fichiers « supprimés » est donc d’utiliser des logiciels qui s’assurent de réécrire plusieurs fois par-dessus. C’est ce qu’on appelle « écraser des données » (wipe en anglais).
4.3.3 Quelques limites des possibilités de réécriture
Même s’il est possible de réécrire plusieurs fois à un endroit donné d’un disque dur pour rendre inaccessibles les données qu’il contenait, cela ne garantit pas pour autant leur disparition complète du disque.
4.3.3.1 Les disques « modernes »
Les disques actuels réorganisent leur contenu « intelligemment » : une partie du disque est réservée pour remplacer des endroits qui deviendraient défectueux. Ces opérations de remplacement sont difficilement détectables, et on ne peut donc jamais vraiment s’assurer que l’endroit sur lequel on réécrit est bien celui où le fichier « supprimé » était écrit initialement.
Pour les clés USB et les disques SSD (Solid State Drive), il est même sûr que, dans la plupart des cas, on réécrit à un endroit différent. La mémoire flash, utilisée par les clés USB et les disques SSD, arrête de fonctionner correctement après un certain nombre d’écritures102, et ces derniers contiennent des puces chargées de réorganiser automatiquement leur contenu pour répartir les informations dans un maximum d’endroits différents.
En prenant en compte ces mécanismes, il devient difficile de garantir que les données que l’on souhaite détruire ont bien disparu.
Néanmoins, ouvrir un disque dur pour en examiner les entrailles demande du temps et d’importantes ressources matérielles et humaines. Cet investissement ne sera pas forcément à la portée de tout le monde, ni tout le temps.
Pour les puces de mémoire flash d’une clé USB ou d’un disque SSD, même si ce n’est pas non plus immédiat, l’opération est beaucoup plus simple : il suffit d’un fer à souder, et d’un appareil permettant de lire directement les puces de mémoire. Ces derniers peuvent être achetés pour environ 1 500 dollars103.
4.3.3.2 Les systèmes de fichiers
Même si le contenu d’un fichier a été parfaitement supprimé, il peut en rester des traces ailleurs, qui peuvent être dues au système de fichiers.
En effet, les systèmes de fichiers actuels gardent une trace des modifications successives des fichiers dans un « journal ». Aussi, on dit que ces systèmes de fichiers sont « journalisés ».
La journalisation a été introduite pour améliorer la robustesse des systèmes de fichiers. Après une extinction brutale de l’ordinateur, cela permet au système de se contenter de reprendre les dernières opérations à effectuer, plutôt que de devoir parcourir l’intégralité du disque pour corriger les incohérences. Mais cela peut ajouter des traces à propos des fichiers que l’on souhaiterait voir disparaître.
Windows utilise les systèmes de fichiers NTFS et ReFS, qui sont journalisés. Sous GNU/Linux, ext4 est le système de fichiers le plus souvent utilisé. Par défaut, il ne met dans le journal que les noms des fichiers et d’autres métadonnées, mais pas leur contenu.
Certains systèmes de fichiers ont d’autres fonctionnalités qui laissent des traces :
- les instantanés (snapshots) possibles avec les systèmes de fichiers modernes (NTFS, ReFS, Btrfs, etc.) ;
- la mise en cache dans des dossiers temporaires avec des systèmes de fichiers réseau (comme NFS) ;
- etc.
4.3.3.3 Ce qu’on ne sait pas
Pour ce qui est des CD-RW ou DVD±RW (ré-inscriptibles), il semble qu’aucune étude sérieuse n’ait été menée à propos de l’efficacité de la réécriture pour rendre des données irrécupérables. Les recommandations actuelles sont donc de détruire méthodiquement les supports de ce type qui auraient pu contenir des données à faire disparaître104.
4.3.4 Plein d’autres fois où l’on « efface »
Il faut noter qu’on ne supprime pas seulement des fichiers en les mettant à la Corbeille. Par exemple, quand on utilise l’option « Effacer mes traces » du navigateur Firefox, ce dernier ne fait pas mieux que de supprimer les fichiers. Certes les données sont devenues inaccessibles pour Firefox, mais elles sont toujours accessibles en regardant directement le disque dur.
Enfin, il est utile d’insister ici sur le fait que le reformatage d’un disque dur n’efface pas pour autant le contenu qui s’y trouvait. De même que la suppression des fichiers, cela ne fait que rendre disponible l’espace où se trouvait le contenu, mais les données restent physiquement présentes sur le disque tant qu’elles ne sont pas recouvertes. Tout comme détruire le catalogue d’une bibliothèque ne fait pas pour autant disparaître les livres présents dans les rayonnages.
On peut donc toujours retrouver des fichiers après un reformatage, aussi facilement que s’ils avaient été simplement « supprimés »105.
4.3.5 Et pour ne laisser aucune trace ?
Malheureusement, il n’y a pas de méthode simple pour régler radicalement le problème. La solution la moins difficile pour l’instant est d’utiliser l’ordinateur après l’avoir démarré avec un système live configuré pour n’utiliser que la mémoire vive, comme Tails. Dans ce cas, il est possible de ne rien écrire sur le disque dur, ni sur la mémoire virtuelle (swap), et de ne garder les informations que dans la mémoire vive (donc uniquement tant que l’ordinateur reste allumé).
4.4 Les logiciels portables : une fausse solution
Ce que l’on appelle « logiciels portables », ce sont des logiciels qui ne sont pas installés sur un système d’exploitation donné, mais que l’on peut démarrer depuis une clé USB ou un disque dur externe — et donc, transporter avec soi afin d’en disposer sur n’importe quel ordinateur.
Toutefois, contrairement aux systèmes live, ces logiciels se servent du système d’exploitation installé sur l’ordinateur où on les utilise (la plupart du temps, ils sont prévus pour Windows).
L’idée qui est à leur origine est de permettre d’avoir toujours les logiciels dont on a besoin sous la main et personnalisés à notre usage. Mais « transporter son bureau partout avec soi », n’est pas forcément la meilleure manière de préserver la confidentialité de nos données.
Disons-le tout de suite : ces logiciels ne protègent pas plus les personnes qui s’en servent que les logiciels « non portables ».
4.4.1 Principaux problèmes
Ces solutions « clé en main » posent donc quelques problèmes plutôt fâcheux.
4.4.1.1 Il restera des traces sur le disque dur
Si le logiciel a été rendu « portable » correctement, il ne devrait pas laisser de traces sur le disque dur de l’ordinateur sur lequel on l’utilise. Mais dans les faits, le logiciel n’a jamais un contrôle absolu. Il dépend en effet largement du système d’exploitation sur lequel il est employé, qui peut avoir besoin d’écrire de la mémoire virtuelle (swap) sur le disque dur, ou d’enregistrer diverses traces de ce qu’il fait dans ses journaux et autres « documents récents ». Tout cela restera ensuite sur le disque dur.
4.4.1.2 Il n’y a aucune raison d’avoir confiance en un système inconnu
On a vu auparavant que beaucoup de systèmes ne font absolument pas ce que l’on croit. Or, puisque le logiciel portable va utiliser le système installé sur l’ordinateur sur lequel on le lance, on souffrira de tous les mouchards et autres logiciels malveillants qui pourraient s’y trouver.
4.4.1.3 On ne sait pas qui les a compilés, ni comment
Les modifications apportées aux logiciels pour les rendre portables sont rarement vérifiées, alors qu’elles ne sont généralement pas faites par les autrices du logiciel elles-même. Dès lors, on peut soupçonner ces logiciels, encore plus que leurs versions non portables, de contenir des failles de sécurité, qu’elles aient été introduites par erreur ou volontairement.
Par ailleurs, on traitera plus loin des critères à prendre en considération lors du choix des logiciels que l’on installe ou télécharge.
Au sujet des « portes dérobées », voir l’article Wikipédia, 2014, Porte dérobée.↩︎
Jonathan Corbet, 2021, Some 5.12 development statistics, Linux Weekly News (en anglais).↩︎
Julien Lausson, 2013, La NSA est suspectée d’avoir altéré un standard cryptographique.↩︎
Peter Gutmann, 1996, Secure Deletion of Data from Magnetic and Solid-State Memory (en anglais).↩︎
Le PC-3000 Flash est vendu comme un outil professionnel de recouvrement de données sur des périphériques flash endommagés (en anglais).↩︎
NIST, 2014, Guidelines for Media Sanitization (en anglais).↩︎