Logiciel libre, chiffrement et vie privée - Laurent Sanselme
Titre : Le logiciel libre, chiffrement et vie privée
Intervenant : Laurent Sanselme
Lieu : Libre en Fête 2016 - SUPINFO Clermont-Ferrand
Date : Mars 2016
Durée : 40 min
Visualiser la vidéo
Licence de la transcription : Verbatim
Transcription
Pour cette conférence j’ai pris trois thèmes qui sont extrêmement vastes et qui mériteraient chacun une conférence à part entière sur eux ; que ce soit les logiciels libres, le chiffrement ou la vie privée, c’est très vaste, il y a beaucoup de sujets de débat. Là on va essayer de condenser au maximum pour essayer de s’intéresser aux liens qu’il peut y avoir entre eux.
Donc on va s’intéresser tout d’abord au logiciel libre. On va essayer d’expliquer un peu. Le but de cette conférence c’est principalement de donner les bases pour l’atelier qui va suivre, qui sera justement la mise en place de méthodes de chiffrement et de protection de la vie privée.
Le logiciel libre, qu’est-ce que c’est ?
Un logiciel libre, c’est un logiciel qui respecte quatre libertés fondamentales. Ces quatre libertés fondamentales, la première ça va être la liberté d’exécuter le programme ; d’exécuter le programme et ce pour toute utilisation ; ça, ça aura son importance par la suite. Si on est un boulanger et que l’on veut utiliser un logiciel de comptabilité qui est prévu pour un boucher, on peut le faire, il n’y a rien qui nous en empêche, on peut très bien l’adapter.
On a la liberté d’étudier le programme. Le fait, justement, de pouvoir l’étudier, va permettre cette adaptation par la suite. On peut le lire, vérifier comment il fonctionne, et s’assurer qu’il répond bien à nos attentes.
Il y a aussi la liberté de redistribuer des copies du programme. Si on a notre logiciel de comptabilité pour boulangerie et qu’on a un ami boucher qui veut l’utiliser, on peut très bien lui donner, il n’y a rien qui nous en empêche.
Et surtout, on a la liberté d’améliorer le programme et de partager ces modifications, c’est-à-dire qu'on va permettre de faire les modifications dans le programme pour, par exemple, au lieu de compter des croissants, pouvoir compter des steaks.
Alors qu’est-ce que tout ça implique ?
La première chose que tout ça implique, ça implique l’accès au code source. Pour pouvoir étudier le programme et le lire, il faut qu’on puisse avoir ce qui a permis la conception du programme. Même sur un programme déjà compilé, on peut toujours revenir à une version « lisible » entre guillemets par un humain, mais quand on a des programmes qui font des centaines de mégas voire des gigas de données, ça devient compliqué de déchiffrer un logiciel complet en assembleur.
La deuxième chose que ça implique, c’est que tout le monde peut être acteur : n’importe qui va pouvoir agir ou contribuer à ce programme. Et en plus, personne ne peut être limité, c’est-à-dire qu’il n’y aura pas de restrictions quant aux modifications qu’on va pouvoir effectuer. Si on se retrouve par exemple dans une entreprise qui veut absolument qu’une fonctionnalité reste de telle manière parce que ça fait partie de la culture de l’entreprise, elle pourrait bloquer un développeur en disant tu ne fais pas de modifications sur cette partie. Avec un logiciel libre, on peut : n’importe qui peut faire cette modification.
Qu’est-ce que ces trois éléments impliquent encore ?
Le premier, avec l’accès au code source, il est impossible de cacher quelque chose. Tout ce qui est programmé est lisible, visible. N’importe qui va pouvoir le retrouver. Donc on ne pas cacher quelque chose au sein d’un logiciel libre. Ça aussi ça aura son importance pour tout l’aspect sécurité qui va avec.
Le deuxième c’est qu’on peut adapter le programme à ses besoins, comme je vous le disais, et partager ces améliorations. Donc on va pouvoir faire évoluer le programme et permettre des améliorations constantes.
J’ouvre une petite parenthèse, même si pour les deux choses que je vais voir dans cette parenthèse je vous invite à regarder l’Expolibre1 qui est affichée sur les vitres dans le couloir ; n’hésitez pas à aller y jeter un coup d’œil.
La première chose dont je vais parler c’est des formats libres. Les formats libres ça va être le même principe que les logiciels libres, mais appliqué aux formats, les différents formats d’enregistrement. Ce sont des formats dont on connaît la structure. Et ça, ça va permettre plusieurs choses. La première c’est de garantir la pérennité des données : même un logiciel qui a été codé il y a 20 ans, s’il a arrêté d’être utilisé, les fichiers qui ont été créés à partir de ce logiciel sont toujours lisibles puisqu’il suffit de reprendre la même structure et de les lire de la même manière. Pareil pour de l’édition.
La deuxième chose, c’est l’interopérabilité : on va permettre, à partir de ces mêmes fichiers, de les lire dans plusieurs logiciels. Plusieurs logiciels vont pouvoir les interpréter, voire les éditer.
Et enfin l’évolutivité. À force d’utiliser un format on peut se rendre compte qu’il a des limites. L’avantage du format libre, c’est qu’on va pouvoir effectuer des modifications quand elles sont demandées par la plupart, une grosse partie de la communauté, et intégrer ces évolutions dans de nouvelles versions du format.
Donc voila quelques exemples de formats libres.
Le premier c’est le Format Open Document, celui que vous connaissez très certainement grâce à LibreOffice2, Open Office, etc. Il est lisible sous Office Windows depuis assez longtemps et sous Office Mac depuis pas très longtemps. Voila. C’est un bon exemple d’interopérabilité
Le format PDF, aussi très connu et très utilisé. Sur le PDF, pour vous donner une idée d’évolutivité, il y a la WWF, donc la société de protection de la vie sauvage, qui a fait un format qu’ils ont appelé Save as WWF et qui est en réalité un dérivé du format PDF. dans lequel l’autorisation d’impression est toujours mise à false. Donc on ne peut pas imprimer les documents qui sont sous ce format-là. En réalité, vu que c’est un dérivé du format PDF, il est très facilement possible d’inverser ceci pour les réimprimer, mais du moment qu’on reste dans leur format à eux qui est un dérivé, on ne peut pas imprimer les documents.
Après le format HTML, utilisé partout. Le format TXT qui est le format texte brut, pareil il n’y a pas d’ordinateur qui ne sait pas le lire, ou encore les formats d’image PNG.
Maintenant les licences libres
Les licences libres, ce sont les licences qui vont encadrer l’utilisation d’un logiciel. La première chose qu’il faut savoir, c’est qu’elles sont très nombreuses. Il y a beaucoup de licences différentes qui existent et sur lesquelles il va y avoir soit des incompatibilités entre elles, soit des limitations supplémentaires d’une licence à une autre.
Donc elles n’autorisent pas toutes les mêmes utilisations, mais par contre, elles garantissent toutes les mêmes libertés à savoir les quatre libertés principales qu’on a vues tout à l’heure.
Les quatre licences les plus connues sont la GNU/GPL v3, alors je précise v3, mais il y avait aussi la v2 dans les plus utilisées. La version Apache 2.0 ; la licence BSD modifiée, ou la licence Expat qui est une des licences MIT, le MIT ayant beaucoup de licences différences. C’est donc une des licences qu’on appelle MIT.
Je vais vous donner deux exemples particuliers, par exemple d'une d’incompatibilité : la version Apache version 1.1. Elle a quelques exigences qui la rendent incompatible avec la GNU/GPL v3, mais v2 aussi d’ailleurs, comme par exemple l’interdiction d’utiliser des noms en rapport avec Apache dans le nom du logiciel. Ça, c’est une limite que ne permet pas la GNU/GPL, puisque la GNU/GPL elle permet d’utiliser n’importe quel nom, que ce soit Apache ou un autre. Donc du coup, ces deux licences-là ne sont pas compatibles entre elles, mais elles sont toutes les deux libres, puisqu’elles garantissent que le programme a bien les quatre libertés principales.
La deuxième licence dont je veux vous parler qui est une petite anecdote, c’est la licence JSON. La licence JSON a une petite mention qui dit que le logiciel sera utilisé pour le bien et non pour le mal. On pourrait penser que donc, du coup, elle respecte bien toutes les libertés, mais en réalité, ça c’est une impossibilité d’utilisation, une limite d’utilisation du programme. Donc du coup, ça ne respecte pas la première liberté des quatre libertés fondamentales, donc elle n’est pas considérée comme une licence libre.
Vous pouvez trouver des comparatifs de tout ça sur le site de gnu.org3. Il y a un comparatif de toutes les licences libres et non libres. Vous pourrez voir une bonne partie des différences qui existent entre elles.
Donc voila pour refermer la parenthèse.
Maintenant je vais parler rapidement des logiciels libres, à savoir un certain nombre d’entre eux. Ces logiciels libres sont assez souvent connus puisqu’il y a des gens qui préfèrent utiliser un logiciel libre qu’un logiciel privateur et il y en a même qui sont plus connus que des solutions privatives. Par exemple si je vous demande un lecteur de vidéo, les trois quarts des gens vont répondre VLC4 puisque c’est, à l’heure actuelle, celui qui est le plus utilisé avant même des solutions propriétaires comme des Windows Media Player, Quick Time, etc.
Un autre qui est extrêmement connu c’est MediaWiki. Alors peut-être que vous ne le connaissez pas en tant que MediaWiki5, mais c’est le moteur qui permet de faire tourner Wikipédia. Donc moteur testé par des millions d’utilisateurs par jour.
Il y a aussi les langages de programmation. Les langages de programmation comme PHP, par exemple, sont des langages libres et ouverts. Il n’y a pas beaucoup de langages qui sont privateurs réellement ou entièrement, donc la plupart du temps on va quand même tomber sur des langages qui sont libres.
À propos de PHP, je vous rappelle qu’il y a le PHP Tour 20166 qui passe à Clermont-Ferrand cette année, c’est en mai. Vous pouvez vous renseigner, vous verrez qu’il y a de très belles conférences qui s’organisent. C’est chez nous ; c’est à Clermont-Ferrand.
Il y a d’autres logiciels libres qui sont aussi connus que les solutions privatives. La plupart du temps ils tournent en parallèle, par exemple Mozilla Firefox. Vous connaissez tous Chrome, Internet Explorer, Safari. Mozilla Firefox7 a réussi à faire son trou et est au même niveau que les concurrents.
Il y a en a d’autres comme Mozilla Thunderbird8 qui remplace par exemple Mail sous Apple, ou Outlook sous Microsoft.
Et enfin il y en a deux autres, ça c’est parmi des millions et des millions de logiciels libres, mais il y en a deux autres que je passe aussi dedans, par exemple Gimp9 et LibreOffice que si vous n’utilisez pas vous-même, vous en avez forcément entendu parler en tapant Photoshop gratuit ou Office gratuit. Habituellement c’est souvent comme ça qu’on les trouve.
Donc voilà pour toute la partie logiciel libre.
Chiffrement
Maintenant, là c’est la partie où il va falloir s’accrocher un petit peu. On va parler de chiffrement.
Alors je vais toujours parler et utiliser le mot chiffrement ; vous entendez peut-être sous le nom de cryptage. Cryptage, le mot n’existe pas ! Donc on va utiliser le vrai mot qui est chiffrement, mais vous avez la correspondance.
On va voir un certain nombre de points avec le chiffrement. Déjà qu’est-ce que c’est ? Comment est-ce que ça marche ? Dans quels cas est-ce qu’on s’en sert, aujourd’hui comme plus tard, on va voir. Et combien ça coûte ?
D’abord qu’est-ce que c’est ?
Le chiffrement, c’est le fait de prendre un document clair, mais intelligible soit pour l’homme soit pour la machine, et de le rendre illisible ou en tout cas in-interprétable par toute personne qui ne possède pas la clef de déchiffrement.
Au niveau du chiffrement, il faut distinguer deux types de chiffrement : le premier c’est le chiffrement symétrique et le deuxième ce sera le chiffrement asymétrique.
En ce qui concerne le chiffrement symétrique, comment ça marche ?
On a Alice et Bob, A et B — c’est toujours les noms qu’on utilise dans ce genre d’explication — donc Alice et Bob veulent s’échanger des messages chiffrés. Pour s’échanger des messages chiffrés, ils se mettent d’accord sur une clef. Cette clef va permettre de chiffrer et de déchiffrer les messages, mais elle doit être conservée secrète, toujours secrète. Quand il y a le carré rouge, ça veut dire si cette clef venait à être découverte, alors le chiffrement serait compromis : quelqu’un d’autre pourrait interagir. Donc A et B se mettent d’accord sur une clef.
Alice va écrire un message. Elle écrit son message puis décide de le chiffrer. Elle le chiffre avec la clef X sur laquelle A et B se sont mis d’accord. Le message est donc devenu illisible par toute personne qui ne posséderait pas la clef. B va récupérer ce message et va déchiffrer le message à l’aide de la même clef X sur laquelle il s’était mis d’accord auparavant avec Alice, puis va pouvoir consulter le message. Ça c’est le chiffrement symétrique. Symétrique parce que la clef qui sert au chiffrement est aussi celle qui sert au déchiffrement.
Maintenant le chiffrement asymétrique.
Cette fois-ci, on part sur beaucoup plus de clefs, parce que A va avoir une clef qui n’est pas secrète, qu’on va appeler publique, et qui ne sert que à chiffrer des messages. Elle va aussi avoir une clef qu’on appelle privée, qui elle, par contre, est bien secrète, et qui elle ne va servir qu’à déchiffrer des messages. Pareil pour B, avec ses propres clefs.
Cette fois-ci comment ça se passe ? A va écrire son message, comme au début, puis va chiffrer son message à l’aide de la clef publique de B. Donc c’est grâce à la clef qui permet de chiffrer les messages du destinataire que le message est chiffré. Le message est donc chiffré et inintelligible. On envoie le message. B récupère ce message et va déchiffrer le message à l’aide sa clef privée à lui. Donc on lui a écrit avec sa clef publique, qui peut être transmise à n’importe qui, et lui déchiffre avec sa clef privée qui elle est conservée secrète, par lui uniquement. Il va ensuite pouvoir consulter son message.
Maintenant si B veut répondre à A, il va écrire son message puis il va chiffrer la réponse avec la clef publique de A ; donc encore une fois le destinataire. Le message est chiffré, j’ai volontairement mis d’autres caractères pour montrer que le chiffrement n’est pas le même, et A, après avoir récupéré le message, va pouvoir déchiffrer le message à l’aide de sa clef privée, sa clef qui sert uniquement à déchiffrer, et va ensuite pouvoir lire son message.
Donc voilà les deux types de chiffrement qui sont utilisés.
Maintenant ces chiffrements, vu qu’ils sont différents, ils ont aussi des avantages et des inconvénients différents. Du coup quel est l’avantage – c’est vrai que j’ai mis un s mais pour le coup je n’en présente qu’un ; il y en aura très certainement d’autres, c’est amené à évolution – c’est la rapidité. Le chiffrement symétrique peut être jusqu’à 1000 fois plus rapide qu’un chiffrement asymétrique. Donc on est sur des différences qui sont quand même non négligeables.
Par contre, en inconvénients, le principal déjà, ça va être l’échange de la clef. Pour se mettre d’accord sur la clef qui va servir à chiffrer et à déchiffrer, il est important que les deux personnes se soient rencontrées auparavant ou en tout cas aient communiqué de manière sécurisée pour s’échanger cette clef. Parce que, encore une fois, si elle est interceptée, le chiffrement est compromis. Donc cet échange de clef c’est le problème principal du chiffrement symétrique.
Le deuxième problème ça va être la gestion des clefs. Si on veut faire un chiffrement symétrique sur une centaine de services, eh bien il va falloir générer une centaine de clefs différentes pour s’assurer de la sécurité de chacune des transactions. Donc on se retrouve avec un nombre de clefs très important, très rapidement.
Maintenant le chiffrement asymétrique. Attention ce slide ne m’a pas pris très longtemps.
Les avantages : l’échange de clefs et la gestion des clefs, et les inconvénients, la lenteur puisqu’il est beaucoup moins rapide que le chiffrement symétrique. Et pour la gestion des clefs, le principal point qu’il faut voir, c’est qu'avec une seule paire de clefs par utilisateur, ils vont pouvoir se connecter de manière sécurisée et différenciée sur chacun des services. Donc pas besoin de générer une clef différente à chaque fois.
Le chiffrement en pratique.
Maintenant quand est-ce qu’on va utiliser une solution ou une autre ? Le chiffrement symétrique, on va l’utiliser la plupart du temps pour du chiffrement de masse. Dès qu’on va avoir beaucoup d’informations à transmettre, on va utiliser le chiffrement symétrique parce que beaucoup plus rapide et donc, du coup, moins de pertes de temps au niveau de la transmission.
Alors que le chiffrement asymétrique, on va s’en servir pour deux principaux cas qui sont l’authentification, puisque chaque personne a deux clefs, c’est la seule personne qui possède cette clef-là. Donc si un message est chiffré par lui, on va pouvoir s’en rendre compte. Et le partage des clefs, puisque pour transmettre de manière sécurisée sa clef, dans le chiffrement asymétrique ça ne pose pas de problème puisqu’elle est publique.
Donc la plupart du temps on va utiliser du chiffrement asymétrique pour partager une clef symétrique et continuer le reste de la transaction dans un chiffrement symétrique.
Les certificats
Un autre élément dont je veux vous parler ce sont les certificats. Qu’est-ce que c’est qu’un certificat ? Un certificat c’est un document numérique qui va contenir un certain nombre d’informations, par exemple l’adresse du site web concerné, le propriétaire, une date d’expiration, etc., un certain nombre d’informations, ainsi qu’une clef publique. Donc on a un document qui lie une clef à un nom. Je passe les détails, mais il peut y avoir encore un certain nombre d’autres informations qui sont comprises dans les certificats en fonction de l’emploi qu’on fait de ce certificat, mais là, le genre de certificats dont je vous parle, c’est principalement, par exemple, pour les sites web. Quand vous vous connectez en HTTPS sur un site, c’est ce genre de certificat qui est utilisé.
Donc un certain nombre d’autres informations et, pour s’assurer que le nom correspond bien à la clef, il faut qu’il y ait quelqu’un qui le certifie, qui édite ce certificat et ça, c’est ce qu’on appelle une autorité de certification. Donc l’autorité de certification certifie, auprès de toute personne qui va lui demander, que l’adresse, par exemple site.lef2016.org, fait bien ses communications à l’aide de cette clef publique. Le fait de passer par une autorité de certification, ça force à passer par ce qu’on appelle un tiers de confiance : l’autorité de certification est un tiers de confiance, c’est-à-dire que tout ce qu’elle va nous dire on va le prendre pour argent comptant ; et donc si elle nous dit que c’est bon, on considère que c’est bon. C’est la notion de tiers de confiance.
Maintenant est-ce qu’on se sert du certificat ? Et du chiffrement même de manière générale ? La réponse est oui, vous vous en servez tous les jours, en vous en rendant compte ou sans vous en rendre compte, vous vous en servez tous les jours. En vous en rendant compte, par exemple quand vous faites une connexion SSH [Secure SHell] sur un serveur distant. Ou sans vous en rendre compte dès que vous vous connectez sur un site en HTTPS. Derrière il y a du chiffrement qui se met en place sans que vous vous ayez à faire quoi que ce soit.
Par ailleurs, on s’en sert de plus en plus. Facebook, par exemple, a passé toutes les communications en HTTPS il y a, je ne peux plus dire les nombre d’années mais ça fait quelque temps, où toutes les communications qui sont faites avec Facebook sont maintenant en HTTPS. Et on ne s’en sert pas encore suffisamment parce qu’il y a encore beaucoup trop d’informations qui sont en clair, il y a beaucoup de sites qui ne chiffrent pas par exemple les formulaires d’authentification et de login, donc du coup, dès qu’on tape son identifiant et son mot de passe, ceux-là circulent en clair sur le réseau jusqu’au serveur. Et ça, déjà, c’est un énorme problème de sécurité et même au niveau de la vie privée puisque les informations qu'ils vont nous retourner aussi ne sont pas chiffrées.
Quelques exemples connus : les transactions bancaires. Dès que vous faites une transaction bancaire en ligne vous vérifiez bien qu’il y a votre petit cadenas vert ; s’il n’y est pas, c’est qu’il y a un problème de sécurité. Les formulaires de connexion comme je vous le disais, la navigation classique, par exemple des sites comme Facebook. Et les mails, pareil, de plus en plus de serveurs mails à l’heure actuelle font du SMTP ou de l’IMAP au travers de SSL, et SSL [ Secure Sockets Layer] c’est du chiffrement.
Maintenant est-ce que le chiffrement coûte cher ?
La réponse c’est oui. C’est oui et non. Attention ! Donc on va voir déjà pourquoi ça coûte cher. Pourquoi ça coûte cher ? Parce que déjà toutes les autorités de certification, par exemple, eh bien il y a une infrastructure derrière qui est énorme. Il va falloir sécuriser les accès physiques à toutes ces machines qui permettent de savoir si un certificat est bon ou n’est pas bon. Pour vous donner un parfait exemple d’infrastructure sécurisée qui ne va pas, il y avait un serrurier qui avait réussi à faire une porte avec une serrure électronique et ils avaient vérifié que la serrure était parfaitement sécurisée, elle était vraiment inviolable électroniquement ; mais il suffisait de mettre un coup de marteau à un endroit précis sur la serrure et elle sautait. Donc l’aspect physique compte autant que l’aspect électronique.
Donc les autorités de certification se doivent d’avoir une infrastructure sécurisée.
Par ailleurs, elles doivent traiter des millions et des milliards de vérifications par jour et ça, ça demande de pouvoir traiter l’ensemble de ces demandes et ça, pareil, ça coûte de l’argent. Il faut des machines qui soient capables d’encaisser tout ça derrière. Donc il y a des investissements qui sont faits à ce niveau-là.
Par contre le chiffrement ça coûte cher et non. Par exemple il y a des boîtes comme StartSSL qui donnent des certificats d’une validité de un an, gratuitement, et des initiatives comme Let's Encrypt10 qui est portée par la Mozilla Fondation, qui a édité son millionième certificat d’ailleurs récemment, qui donne des certificats pour les utilisateurs.
Par ailleurs, il y a un autre moyen qui ne coûte pas cher du tout c’est de s’assurer qu’on a chiffré le message ou chiffré ce qu’on a envoyé sur sa machine jusqu’au destinataire. Donc le chiffrement est fait à l’expédition et le déchiffrement est fait à la réception. Quelles que soient les infrastructures par lesquelles on passe entre les deux, on n’a pas à s’occuper de savoir si ça coûte de l’argent ou pas de l’argent puisque le chiffrement est fait d’un côté, le déchiffrement est fait de l’autre.
Donc en résumé sur tout ça:
- le chiffrement est à la portée de tous. N’importe qui peut mettre en place du chiffrement, et maintenant ça ne coûte plus cher de faire du chiffrement ;
- il se démocratise. De plus en plus de sociétés, de plus en plus de particuliers, se mettent au chiffrement pour s’assurer de la sécurité et de la confidentialité des données ;
- Et par ailleurs, c’est le seul garant de la confidentialité. C’est-à-dire que si vous envoyez un message non chiffré, quel que soit le réseau par lequel il passe, il y a un risque et une chance qu’il soit intercepté par quelqu’un. Alors ce quelqu’un, ça peut être une autorité gouvernementale, une société privée ou même un pirate qui se serait intégré dans le réseau, mais le seul garant de la confidentialité, c’est le chiffrement.
La vie privée
Maintenant, la vie privée.
Alors ça va être assez rapidement passé parce qu’encore une fois c’est un sujet à débat. Il y a de très nombreux débats qui se font là-dessus. Je vais juste déjà rappeler une première chose qui est l’article 9 du Code civil qui dit que chacun a droit au respect de sa vie privée. C’est écrit dans la loi, c’est prévu. La vie privée c’est quelque chose qui compte.
Donc un certain nombre de news de ces dernières années, eh bien c’est particulièrement mis à l’épreuve. On a vu ce que ça avait donné, notamment avec les documents Snowden, tout l’espionnage de masse qui était pratiqué par la NSA pendant de nombreuses années et je n’ai jamais dit que c’était arrêté.
C’est aussi menacé sous couvert de sécurité. Nous, en France, on est bien placés pour ça puisqu’on a M. Cazeneuve qui a fait une loi permettant de mettre des boîtes noires. Alors ces boîtes, on ne sait pas trop ce qui s’y passe, mais qui interceptent l’ensemble du trafic. Toujours pour contrer les terroristes, bien sûr ! Toujours menacés sous couvert de sécurité !
Ce n’est pas moins important qu’avant. Ce n’est pas parce qu’on est à la génération Les Anges de la télé-réalité et autres dictionnaires intellectuels, que la vie privée n’a pas un sens. C’est important, ça reste quelque chose qu’il faut protéger. Et on a tous quelque chose à cacher. ÇA C’est justement la partie que je traite assez rapidement ; C’est qu’on connaît tous un quelqu’un qui dit qu’il n’a rien à cacher et que ça ne change rien de mettre l’ensemble de ses données, etc. On a tous quelque chose à cacher, c’est sûr et certain, et si ce n’est pas nous c’est quelqu’un qu’on connaît et c’est, en tout cas, cette personne-là qu’il faut protéger, quel que soit l’aspect d’ouverture qu’on peut avoir sur ses propres données.
À ce titre-là, je vous invite à aller regarder donc si vous l’avez sur votre machine vous pouvez cliquer directement sur les liens, sinon les sites 11, le Wikipédia Rien à cacher (argument)12 qui montre un certain nombre justement d’arguments pro et contre le fait de rien avoir à cacher, et une excellente conférence qui s’appelle « Si, vous avez quelque chose à cacher »13 [Transcription de cette conférence14] dont vous avez le lien ici. C’était une conférence qui avait été faite à Pas Sage En Seine, en 2013. Je vous laisse les regarder.
Donc à partir de maintenant, on va partir du postulat que la vie privée est importante. Pas de notion de débat, la vie privée c’est important !
Rapport entre le logiciel libre et le chiffrement
On va voir le rapport entre le logiciel libre et le chiffrement. On a vu tous les avantages qu’avait le logiciel libre et ce que pouvait apporter le chiffrement. Maintenant pourquoi faire du chiffrement avec un logiciel libre est important ?
La première chose c’est qu’on a un algorithme vérifié. Si un logiciel dit qu’il utilise le chiffrement AES, eh bien ça veut dire qu’il utilise du chiffrement AES [Advanced Encryption Standard]. Derrière on va pouvoir regarder le code source et vérifier que c’est bien celui-là qui est employé.
De plus, il n’y a pas de backdoors [et il s’affiche mal, tant pis]. Il n’y a pas de backdoors, c’est-à-dire que du fait qu’on a le code source et qu’on sait qu’il n’y a rien qu’il est possible de cacher à l’intérieur, eh bien il n’est pas non plus possible de cacher des entrées dissimulées qui vont permettre de chercher ou de s’infiltrer dans le réseau par la suite.
Par ailleurs, on est sûrs de la fiabilité du chiffrement. Le fait d’avoir un code ouvert, ça veut dire qu’on va pouvoir le vérifier et que des personnes même plus expérimentées que nous vont pouvoir le vérifier et s’assurer qu’il n’y a pas d’erreur, tout bêtement d’implémentation. Ce n’est pas parce qu’on a mis un chiffrement AES ; il y a un endroit où on devait faire quelque chose et où on s’est trompé, on n’a pas tout à fait fait ce que, mathématiquement, il est important de faire, eh bien des personnes vont pouvoir se rendre compte de ça, faire la correction et retransmettre pour que le chiffrement soit fiable.
Un exemple qui s’en rapproche c’était Apple, je crois que c’était sur une de leurs librairies, justement, de vérification de certificat où il y avait deux lignes qui étaient recopiées et ces deux lignes recopiées avaient pour effet que si un certificat respectait juste les deux premières conditions mais pas celles d’après, il était quand même considéré comme valide. Donc ça, c’est un problème d’implémentation ; c’est au moment du développement qu’il y a un problème qui a été fait et donc, du coup, le fait que cette partie-là était open source a permis de voir le problème et de le corriger.
Donc justement, toute cette partie analyse et correction des erreurs, des personnes avec des compétences bien plus élevées que la plupart des utilisateurs, vont pouvoir se rendre compte de ces problèmes et les corriger.
Par ailleurs, personne ne peut empêcher quelqu’un de corriger un problème. Ça, c’est quelque chose qui a son sens au vu, par exemple, des documents de la NSA ressortis par Edward Snowden. Il y avait des sociétés, comme RSA Security, qui avaient des backdoors, qui savaient qu’ils avaient des backdoors dans leurs différents systèmes et qui n’avaient pas le droit de les enlever parce qu’il y avait une pression du gouvernement américain qui leur demandait de les laisser. Là, avec un logiciel libre, personne ne peut obliger ce genre de blocage.
Le chiffrement et la vie privée
Maintenant le chiffrement et la vie privée. Quel est le lien qu’on va pouvoir trouver entre eux ?
Tout d’abord, le chiffrement est le seul garant de la confidentialité, on l’a vu tout à l’heure, sinon il y a toujours une possibilité pour que des informations s’évaporent dans la nature, mais c’est à condition qu’il soit maîtrisé. Comme je vous disais, vous faites une connexion en HTTPS avec un site, prenons un exemple au hasard, Google, votre connexion est sécurisée, ça vous le savez, vous passez avec un certificat HTTPS, il n’y a pas de problème, les informations que vous envoyez personne ne peut les intercepter au milieu. Quand Google vous répond, il vous répond de manière sécurisée, personne ne peut les intercepter non plus. Mais il y a un endroit où on ne sait pas ce qui se passe, c’est dans les serveurs Google. Est-ce que vos informations sont toujours chiffrées et ne peuvent pas être interceptées ? Ou, est-ce qu’à l’inverse, tout est stocké en clair et si une personne a accès à ces services, à ces serveurs en tout cas, elle peut accéder à vos informations ? La vraie réponse c’est celle-là, mais il y en a d’autres, on ne sait pas.
Idem si vous envoyez des mails. Par exemple vous envoyez un mail de manière sécurisée au serveur mail qui renvoie le mail au serveur sécurisé, etc., chez votre correspondant. Lui quand il vous écrit boom ! Pareil, sécurisé. Au milieu, vous ne savez pas ce qu’il en est. Potentiellement, une personne qui a accès à ces services peut récupérer vos données.
La solution c’est le chiffrement de bout en bout. Le chiffrement de bout en bout, c’est ce que je vous disais quand je vous disais que le chiffrement ne coûte pas cher. C’est le fait qu’ici vous chiffrez vos données ; ça peut passer par tous les intermédiaires que vous voudrez, de toutes façons le chiffrement est fait, on ne peut pas interpréter le message ou, en tout cas, personne ne peut déchiffrer le message à part le destinataire. Ça peut passer par toutes les infrastructures que vous voulez, ça ne vous change rien. Le destinataire, lui, est capable de le déchiffrer. Et à l’inverse, quand il vous répond, il chiffre, ça peut passer par ce que vous voulez, et vous déchiffrez. Donc le chiffrement de bout en bout.
Donc ça, ça fait partie des recommandations que je vous fais : c’est de, par exemple, toujours déjà se connecter en HTTPS si c’est disponible. Ce n’est pas du bout en bout, mais au moins vous empêchez toutes les possibilités d’interception de vos messages dans un même réseau.
Utiliser un VPN personnel lorsque vous le pouvez. Pourquoi personnel et pas celui d’une entreprise ? C’est que rien ne vous dit que l’entreprise, elle, ne récupère pas vos données en sortie. Avec un VPN [Réseau privé virtuel] personnel au moins vous maîtrisez le point de sortie.
Et surtout, du coup, chiffrer de bout en bout. Ça, c’est ce qu’on va essayer de mettre en pratique tout à l’heure pendant l’atelier, ça va être l’utilisation par exemple de protocoles comme OTR ou PGP, donc pour Off-the-Record ou Pretty Good Privacy, qui eux sont des protocoles de chiffrement entre une personne et une autre. Donc du coup pareil, quels que soient les intermédiaires ça ne vous change rien puisque le message est chiffré, ne peut être déchiffré que par la personne qui va réceptionner votre message.
Les inconvénients. Je ne savais pas trop où le mettre, le l’ai quand même mis ici : chiffrer vos données ça a au moins un coût à l’utilisation. C’est-à-dire que vous mettez en place une sécurité supplémentaire et que celle-là va forcément jouer sur votre confort d’utilisation. Quand vous allez envoyer un mail, eh bien vous allez retaper votre mot de passe pour chiffrer, ça fait déjà une étape en plus. Quand vous allez recevoir un mail, eh bien pareil, vous allez taper votre mot de passe pour déchiffrer votre mail. Quand on va vous envoyer un mail chiffré et que vous n’êtes pas sur votre ordinateur où il y a votre clef, etc., eh bien soit vous avez une machine qui est configurée ou un téléphone qui est configuré avec votre clef pour le déchiffrer, soit vous allez devoir attendre d’avoir accès à votre machine pour le lire, etc. Le confort d’utilisation se retrouve diminué. C’est la grosse problématique en sécurité de manière générale, c’est de trouver la bonne balance entre confort d’utilisation et sécurité. Donc le fait de mettre du chiffrement, on est un peu plus sécurisé, mais du coup, on perd en confort.
La deuxième chose c’est la mise en place. Au début, il va falloir mettre en place toutes ces possibilités de chiffrement, ne serait-ce que d’apprendre à se créer des clefs publique et privée, d’installer les logiciels qu’il faut, etc. Ça c’est une problématique, au début, qu’il va falloir réaliser.
Donc voilà. Il y a quelques inconvénients au chiffrement, mais qui sont largement compensés par la sauvegarde de votre vie privée qui, encore une fois, a un intérêt.
Je suis allé plus vite que ce que je pensais, donc si vous avez des questions, n’hésitez pas. Je vous rappelle, c’est une conférence sur logiciel libre, chiffrement et vie privée. N’hésitez pas si vous avez des questions sur le chiffrement. Il y a certaines parties que j’ai traitées assez rapidement parce qu’encore une fois ces trois sujets de conférences à part entière, on peut en parler des heures et des heures et le but c’était surtout de voir le lien entre les deux et que tout le monde ait les bases pour faire l’atelier ensuite en comprenant ce qui se passe.
Questions du public
Public : Quand tu dis que, par exemple, on doit installer nous-même un VPN, pour l’utiliser pourquoi exactement ? Il va juste chiffrer avant que ça sorte sur Internet ?
Laurent Sanselme : L’avantage du VPN c’est qu’il va chiffrer entre ta machine et le point de sortie, donc la sortie du VPN. Habituellement ton serveur VPN en a une. Ce qui fait que toutes les communications entre toi et ton VPN sont chiffrées. Tu es sur un Wi-fi public, par exemple SUPINFO, open Wi-fi que vous avez désormais, toute personne sur ce réseau peut intercepter les données. Donc le fait de chiffrer toutes tes communications entre toi et ton VPN qui sert lui, de point de sortie sur Internet, toutes les personnes qui sont dans ton réseau ne peuvent pas intercepter tes données à toi. En tout cas, si elles le font, elles ne seront pas lisibles. Donc le but du VPN, c’est d’enlever cette première couche où les gens peuvent récupérer des données, c’est-à-dire en étant juste à côté.
Public : Ça veut dire que d’ici tu te connectes à ton VPN qui est chez toi ? Et du coup ça passe par chez toi ?
Laurent Sanselme : C’est ça, et ensuite je ressors par chez moi sur Internet. Tout est retransmis à mon VPN, chiffré entre mon VPN et moi et j’ai le résultat de mes recherches sur ma machine. Voilà. Il y a d’autres questions ? Oui !
Public : Avec le HTTPS, il y a chiffrement et certification. Peut-être aussi dire aux gens que quand, du coup, on fait des certificats auto-signés, ce n’est pas la fin du monde. À la page attention cette certification…
Laurent Sanselme : C'est vrai qu'il y a ça. Et c’est là que Let’s Encrypt aussi joue, c’est que maintenant on peut faire un certificat qui est certifié et qui est gratuit. Ça c’est l’énorme avantage de Let’s Encrypt. Alors effectivement le certificat auto-signé, je reviens dessus.
Public : Quoi qu’il arrive, de toutes façons, c’est chiffré.
Laurent Sanselme : Voilà. Hop. On a parlé effectivement des certificats avec les tiers de confiance. Quand on crée un certificat, on peut nous-même être une autorité de certification. C’est-à-dire qu’on va être une personne qui est capable de générer ce document dans lequel il y a le nom du site, par exemple, sur lequel on veut se connecter ainsi que la clef publique. Sauf que dans un navigateur, quand on a le petit cadenas vert, c’est que le certificat est valide dans la liste des autorités de certification dans lesquelles le navigateur a déjà confiance. Donc c’est pour ça que lui est capable de faire la correspondance et de dire oui je le connais bien. Je peux le marquer.
Quand on devient nous-même autorité de certification, notre certificat à nous ne figure pas dans la liste, par exemple dans les navigateurs. On peut le rajouter pour nous, mais après c’est vrai que c’est compliqué de le retransmettre de manière plus générale pour que tout le monde le rajoute dans son navigateur. Donc du coup, on a bien un vrai certificat qui est valide, avec une clef publique qui a un nom, mais le navigateur n’est toujours pas content parce qu’il ne connaît pas l’origine de l’autorité de certification. Donc du coup, il va mettre un message comme quoi « attention vous êtes peut-être sur un site contrefait », etc. En l’occurrence ce n’est pas vrai. C’est bien votre site, vous êtes bien au bon endroit avec la bonne clef, c’est juste qu’il n’est pas capable de vérifier jusqu’à la racine de qui a émis ce certificat. Donc si vous acceptez quand même d’accéder au site, votre communication se fera bien de manière chiffrée, elle utilisera quand même bien la clef publique, mais il vous avertira qu’effectivement il ne connaît pas l’autorité de certification et qu’il faut que vous fassiez attention. Voilà.
Pas d’autres questions ? Bon ! Eh bien pas d’autres questions. Dans ce cas je vous laisse on va dire un bon quart de pause et puis on enchaîne après avec l’atelier où on va mettre en place, je vous donne déjà le programme, on va mettre en place Enigmail15 sur Thunderbird, Mozilla Thunderbird. Cet Enigmail va permettre de se créer un couple de clefs, publique et privée, avec lesquelles on va pouvoir ensuite envoyer des messages chiffrés et on va pouvoir nous envoyer des messages chiffrés. On va voir un peu toute cette mise en place.
En plus de ça on va regarder HTTPS Everywhere qui est un plugin qui essaye de passer automatiquement en HTTPS les sites sur lesquels vous vous connectez, quand ils proposent une version chiffrée ou non chiffrée.
Un autre plugin qui s’appelle Decentraleyes. On verra le concept de ce plugin-là.
Et après sur smartphone, des messageries chiffrées qui sont suffisamment, on va dire, reconnues. Je suis en train de penser que dans ma tête tout le monde avait des Android, mais je viens de voir un monsieur Apple qui me dit : « Non, bien sûr que non ». Donc on essaiera de trouver des solutions fiables sur iPhone aussi. Donc voilà, tout ça se fera dans l’atelier. Bonne pause et à tout à l’heure.
[Applaudissements]
- 1. Expolibre - Groupe sensibilisation de l'April
- 2. LibreOffice
- 3. Licences - Projet GNU
- 4. VLC media player
- 5. MediaWiki
- 6. PHP Tour 2016 - Clermont-Ferrand
- 7. Mozilla Firefox
- 8. Mozilla Thunderbird
- 9. Gimp - Retouche d'image
- 10. Let's Encrypt - Autorité de certification
- 11. Je n'ai rien à cacher
- 12. Rien à cacher (argument)
- 13. « Si, vous avez quelque chose à cacher »
- 14. Transcription de la conférence «Si, vous avez quelque chose à cacher»
- 15. Enigmail