Sécurité hors ligne – Partie 1 : comprendre nos ordinateurs

Mettre une information sur un ordinateur, c’est accepter que cette information puisse nous échapper

Sommaire

CHAPITRE 1 : notre ordinateur est une somme de composants reliés entre eux

CHAPITRE 2 : nombreuses traces sur l’ordinateur

CHAPITRE 3 : logiciels malveillants

CHAPITRE 4 : illusions de sécurité

CHAPITRE 5 : cryptographie symétrique

CHAPITRE 1 : notre ordinateur est une somme de composants reliés entre eux

1.1. Carte-mère : circuit imprimé permettant de relier les composants électroniques

Viennent se brancher un processeur, de la mémoire vive (barrettes), un système de stockage (disque dur ou autre mémoire), de quoi démarrer l’ordinateur (micrologiciel), d’autres cartes et périphériques selon besoins.

1.2. Processeur (“Central Processing Unit” : CPU)

Fonction : traitement des données (exécute des opérations à la manière d’une calculatrice).

1.3. Mémoire vive (Random Access Memory” : RAM)

Fonction : stocker tous les logiciels et documents ouverts.

C’est ici que le processeur vient chercher les données à traiter et entreposer le résultat des opérations. Après mise hors tension, les données stockées deviennent illisibles (après quelques minutes ou heures selon modèles).

1.4. Disque dur (mémoire persistante)

Fonction : stockage des données et programmes entre chaque allumage.

Stocke toutes les données utilisées pour le fonctionnement de l’ordinateur (fichiers temporaires, journaux de bord, fichiers de sauvegarde, de configuration, etc.). Conserve toutes sortes de traces qui parlent de nous : ce que l’on fait, avec qui et comment.

1.5. Mémoire virtuelle (swap)

Espace du disque dur souvent ignoré : pour soulager la mémoire vive, le système d’exploitation utilise la mémoire virtuelle pour y écrire des informations potentiellement sensibles, qui resteront lisibles après mise hors tension.

1.6. Micrologiciel de la carte-mère (firmware)

Fonction : au démarrage de l’ordinateur, premier programme permettant de charger les programmes à exécuter ensuite. Il permet ainsi, entre autres, de choisir où se trouve le système d’exploitation que l’on veut utiliser (e.g., disque dur, clé USB). Les BIOS et les UEFI sont des micrologiciels.

1.7. Logiciels (software)

Les logiciels sont des programmes de manipulation de données. On peut distinguer les logiciels propriétaires et les logiciels libres :

  • Un logiciel propriétaire ne permet pas (légalement ou techniquement) d’exercer simultanément les quatre libertés logicielles : (i) exécution du logiciel pour tout type d’utilisation, (ii) étude de son code source (et donc accès à ce code source), (iii) distribution de copies, (iv) modification et donc amélioration du code source.
  • Un logiciel libre est un logiciel dont l’utilisation, l’étude, la modification et la duplication en vue de sa diffusion sont permises, ceci afin de garantir entre autres le contrôle du programme par l’utilisateur et la possibilité de partage entre personnes.

Les logiciels libres offrent une protection contre les portes dérobées (“backdoor”). Dans un logiciel, une porte dérobée est une fonctionnalité inconnue de l’utilisateur légitime, qui donne un accès secret au logiciel. Une porte dérobée peut être introduite soit par le développeur du logiciel, soit par un tiers. La personne connaissant la porte dérobée peut l’utiliser pour surveiller les activités du logiciel, voire en prendre le contrôle (par contournement de l’authentification). Enfin, selon l’étendue des droits que le système d’exploitation donne au logiciel contenant la porte dérobée, le contrôle peut s’étendre à l’ensemble des opérations de l’ordinateur. Les BIOS des principaux fabricants (e.g., AMI, AWARD) contiennent une porte dérobée.

1.8. Système d’exploitation (“Operating System” : OS)

Fonction : permettre aux logiciels (programmes de manipulation de données) de se partager l’accès aux composants matériels de l’ordinateur, d’avoir accès aux données et de communiquer entre eux. Les principaux OS sont GNU/Linux, Windows et Mac OS X.

Enrgistré sur le disque dur ou un support amovible comme une clé USB (système live).

1.9. Fichiers et systèmes de fichiers

Les données sont regroupées sous forme de fichiers. Un fichier a un contenu, un nom, un emplacement (dossier dans lequel il se trouve), une taille, et d’autres détails selon le système de fichiers utilisé. Le code (extension) à la fin du nom d’un fichier indique le format du fichier (e.g., MP3, ODT, JPEG). Les formats peuvent être ouverts ou propriétaires.

Un système de fichiers est comparable à la table des matières d’un ouvrage : il permet de retrouver des informations dans la pile de données. Il est important de noter que la suppression d’un fichier ne fait qu’enlever une ligne dans table des matières : son contenu est toujours présent sur l’espace dédié, sauf si réécriture de la page (point que nous aborderons ultérieurement).

Puisque c’est le système d’exploitation qui donne aux programmes l’accès aux données, les systèmes de fichiers dépendent souvent du système d’exploitation : les type NTFS et FAT32 sont ceux employés habituellement par Windows, le type ext (ext3, ext4) est souvent utilisé sous GNU/Linux.

CHAPITRE 2 : nombreuses traces sur l’ordinateur

2.1. Mémoire vive

Contient toutes les infos dont le système a besoin : frappes (mots de passe, etc.), fichiers ouverts, événements divers.

Quand l’ordinateur est allumé, il est aisé d’extraire le contenu de la mémoire vive vers un autre support (clé USB, disque dur).

Après mise hors tension, les données stockées deviennent illisibles, mais il possible de prolonger la persistance des données en portant la mémoire vive à basse température (“cold boot attack“).

2.2. Mémoire virtuelle (swap)

Conserve de nombreuses traces qui parlent de nous : par exemple, un document lu à partir d’une clé USB laissera des traces sur le disque dur.

2.3. Journaux, sauvegardes automatiques et autres listes

Le système d’exploitation écrit dans son journal de bord (“logs”) un historique détaillé de son activité : date, heure et nom de l’utilisateur, marque et modèle de chaque support amovible branché, etc.

Le système d’exploitation garde des traces des fichiers supprimés : “documents récents” dans les logiciels de traitement de texte, copie des fichiers pour impression, etc.

2.4. Métadonnées

Informations associées aux fichiers : date et heure de création et modification, nom logiciel et ordinateur, etc. Enregistrées sur le système de fichiers et à l’intérieur du fichier.

CHAPITRE 3 : logiciels malveillants

Flics et services de sécurité disposent des moyens de mettre en place une surveillance informatique en toute légalité, en s’appuyant sur des mouchards comme les keyloggers.

Les keyloggers, ou enregistreurs de frappe au clavier

Les logiciels malveillants peuvent assurer une fonction de collecte d’informations. Afin de s’installer sur un ordinateur, certains logiciels malveillants exploitent les vulnérabilités du système d’exploitation ou des applications.

Fonction des keyloggers (“matériels” ou “logiciels”) : enregistrer furtivement tout ce qui est tapé sur un clavier d’ordinateur, afin de pouvoir transmettre ces données à l’entité qui les a installés.

La capacité des keyloggers à enregistrer touche par touche ce qui est tapé sur un clavier contourne tout dispositif de chiffrement, et permet d’avoir directement accès aux phrases, mots de passe et autres données sensibles entrées.

Pour repérer les keyloggers matériels : se familiariser avec ces dispositifs et faire régulièrement une vérification visuelle de sa machine, à l’intérieur et à l’extérieur (ils peuvent ressembler à des adaptateurs, à des cartes d’extension à l’intérieur de l’ordinateur).

Pour repérer les keyloggers logiciels : ce sont les plus répandus (installation et récupération des données à distance), les pistes sont les mêmes que pour les autres logiciels malveillants, comme utiliser un système d’exploitation minoritaire (GNU/Linux) et n’installer aucun logiciel de provenance inconnue.

CHAPITRE 4 : illusions de sécurité

4.1. Logiciels propriétaires : une confiance aveugle

Un logiciel propriétaire est une “boîte noire“: on peut constater que le logiciel fait ce qu’on lui demande, on ne peut pas savoir s’il se cantonne à faire ce qu’on lui demande. Pour le savoir, il faudrait pouvoir étudier son fonctionnement, ce qui est impossible sans son code source : il ne nous reste donc qu’à lui faire aveuglément confiance.

Windows et Mac OS X : principales boîtes noires sur lesquelles sont installées d’autres boîtes tout aussi hermétiques qui font peut-être bien d’autres choses que celles qu’on leur demande.

Exemple : balancer des informations que ces logiciels collectent sur nous, ou permettre d’accéder à l’intérieur de notre ordinateur au moyen de portes dérobées (“backdoors“).

Confier la confidentialité et l’intégrité de ses données à des programmes auxquels on ne peut accorder sa confiance que les yeux fermés relève de la pure illusion de sécurité.

Logiciels libres : la confiance plus grande qu’on peut mettre dans un système libre comme GNU/Linux est liée au fait de disposer du code source. GNU/Linux est développé de manière collective, relativement ouverte et transparente. De plus, GNU/Linux offre davantage de possibilités pour rendre un peu plus sûr l’usage des ordinateurs.

4.2. Supprimer un fichier ne supprime pas son contenu

Quand on “supprime” un fichier, notre système d’exploitation supprime son entrée dans l’index des fichiers existants et a ensuite le loisir de réutiliser l’espace libéré 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.

Il est aisé de retrouver le contenu des fichiers sur le disque dur : de nombreux logiciels permettent de “récupérer” ou “restaurer” des données “supprimées”.

4.3. Réécrire plusieurs fois par-dessus les données

Une fois que l’espace d’un disque dur a été réécrit, il devient difficile mais pas impossible de retrouver ce qui s’y trouvait auparavant. Une solution est de réécrire plusieurs fois par-dessus 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’assureront de réécrire plusieurs fois par-dessus. C’est ce qu’on appelle “écraser des données”.

Attention : cela ne garantit pas pour autant leur disparition complète du disque.

4.4. Plein d’autres fois où l’on “efface”

L’option “Effacer mes traces” du navigateur Firefox ne fait pas mieux : les données sont toujours sur le disque dur.

Le reformatage d’un disque dur n’efface pas pour autant le contenu qui s’y trouvait : cela ne fait que rendre disponible l’espace où se trouvait le contenu, les données restant physiquement présentes sur le disque.

4.5. Les logiciels portables : une fausse solution

Logiciels portables : logiciels installés sur une clé USB ou un disque dur externe. Contrairement aux systèmes live, les logiciels portables se servent du système d’exploitation installé sur l’ordinateur où on les utilise. Ces logiciels portables ne protègent pas plus les personnes qui s’en servent que les logiciels “non portables”.

Principaux problèmes :

(i) Les logiciels portables laissent des traces sur le disque dur (mémoire virtuelle, journaux, documents récents).

(ii) Ils sont souvent conçus pour Windows et sont donc vulnérables aux mouchards et autres logiciels malveillants.

(iii) Les modifications apportées sont rarement vérifiées, alors même qu’elles ne sont généralement pas faites par les auteurs du logiciel lui-même.

Solution générale

La solution la moins difficile pour l’instant est d’utiliser l’ordinateur avec un système live configuré pour n’utiliser que la mémoire vive, comme Tails. Il est alors possible de ne rien écrire sur le disque dur ni sur le swap, et de ne garder les informations que dans la mémoire vive (donc uniquement tant que l’ordinateur reste allumé).

CHAPITRE 5 : cryptographie symétrique

La cryptographie est la branche des mathématiques qui s’occupe spécifiquement de protéger des messages. Jusqu’en 1999, l’usage de techniques cryptographiques était interdit au grand public. Lorsque l’on veut protéger des messages, on distingue trois aspects :

(i) Confidentialité (empêcher les regards indiscrets)

(ii) Authenticité (s’assurer de la source du message)

(iii) Intégrité (s’assurer que le message n’a pas subi de modification)

5.1. Chiffrement et déchiffrement d’un message (confidentialité)

(i) Pour chiffrer un message : utiliser le logiciel GnuPG avec algorithme de chiffrement et phrase de passe.

Exemple : nous voulons chiffrer le message “les spaghetti sont dans le placard”

Après avoir chiffré ce message en utilisant le logiciel GnuPG, et comme phrase de passe « ceci est un secret », on obtient un format incompréhensible pour qui ne possède pas la clé :

   -----BEGIN PGP MESSAGE-----

    jA0ECQMCRM0lmTSIONRg0lkBWGQI76cQOocEvdBhX6BM2AU6aYSPYymSqj8ihFXu
    wV1GVraWuwEt4XnLc3F+OxT3EaXINMHdH9oydA92WDkaqPEnjsWQs/oSCeZ3WXoB
    9mf9y6jzqozEHw==
    =T6eN
    -----END PGP MESSAGE-----

(ii) Pour déchiffrer un message : GnuPG nous demande la phrase de passe ayant servi à chiffrer le texte, et si cette dernière est correcte, on accède au texte en clair.

5.2. Pour un support de stockage chiffré

Chiffrer un support de stockage (disque dur, clé USB, etc.) permet de rendre son contenu illisible pour qui ne possède pas la clé de chiffrement. En revanche, il va falloir que le système d’exploitation se charge de réaliser les opérations de chiffrement et déchiffrement.

(i) A chaque fois que des données devront êtres lues du disque dur, elles seront déchiffrées afin que les logiciels qui en ont besoin puissent y accéder.

(ii) Pour ce faire, il est nécessaire que la clé de chiffrement se trouve en mémoire vive aussi longtemps que le support aura besoin d’être utilisé.

5.3. Limites

(i) Une fois déchiffrées, les données se trouvent en clair au minimum en mémoire vive.

(ii) Tant que les données doivent être chiffrées et déchiffrées, la clé de chiffrement se trouvent en mémoire vive.

Quand le disque dur chiffré est allumé, la mémoire vive contient en clair toutes les données sur lesquelles on a travaillé depuis l’allumage, ainsi que la clé de chiffrement : un adversaire ayant un accès physique à l’ordinateur pourra alors copier l’ensemble de ces informations (e.g., perquisition par la police).

Quelques solutions : toujours éteindre son ordinateur quand on ne travaille pas dessus, et prévoir des solutions pour mettre notre ordinateur hors tension facilement et rapidement (portable sur secteur sans batterie). Les disques chiffrés redeviennent inaccessibles sans phrase de passe (sauf si “cold boot attack”).

Une limite : l’installation d’un keylogger sur notre ordinateur permet à notre adversaire d’avoir accès à la phrase de passe. Pour contourner ce problème, on peut utiliser un clavier virtuel lors de la saisie de la phrase de passe.

5.4. Intégrité et authenticité des données

Le chiffrement assure la confidentialité de nos données, mais il peut être aussi important de pouvoir s’assurer de leur intégrité, c’est-à-dire de vérifier qu’elles n’aient pas subi de modification (les logiciels que l’on souhaite installer sur nos ordinateurs peuvent avoir été modifiés afin d’y introduire des logiciels malveillants). On peut également vouloir s’assurer de la provenance de nos données, en assurer l’authenticité.

Fonctions de hachage

L’essentiel des techniques pour assurer l’intégrité ou l’authenticité reposent sur des outils mathématiques que la cryptographie a baptisés “fonctions de hachage” : elles réduisent un objet en petits morceaux que l’on nomme “somme de contrôle” ou “empreinte“. L’empreinte d’un document peut avoir cet aspect : f9f5a68a721e3d10baca4d9751bb27f0ac35c7ba

Exemple : Alice a écrit un programme et le distribue sur des CD. Betty s’est procuré un CD mais se dit qu’il aurait été facile pour une administration mal intentionnée de remplacer un des CD d’Alice par un logiciel malveillant. Par voie postale, Alice donne à Betty l’empreinte du contenu du CD :

CD d’Alice : 94d93910609f65475a189d178ca6a45f22b50c95416affb1d8feb125dc3069d0

Betty peut alors comparer cette empreinte à celle qu’elle obtient à partir du CD qu’elle s’est procuré (procédure rapide avec la fonction de hachage SHA256 utilisée par les deux femmes) :

CD de Betty : 94d93910609f65475a189d178ca6a45f22b50c95416affb1d8feb125dc3069d0

Résultats : les empreintes sont identiques, le CD contient bien le programme d’Alice. Il suffit donc de se procurer une empreinte par des intermédiaires de confiance pour vérifier l’intégrité de données. Tout l’enjeu est ensuite de se procurer ces empreintes par un moyen de confiance, c’est-à-dire pouvoir vérifier leur authenticité (e.g., se rencontrer, par voie postale, par téléphone).