NullPointerException

Blog d’un groupe crypto-terroriste individuel auto-radicalisé sur l’Internet digital

Chiffrofête or cryptoparty… or something else ?

Flattr Twitter Google

J’avais l’intention de publier quelque chose sur le sujet prochainement, mais Okhin me donne l’occasion d’activer un peu les choses.

Il vient de publier un article intéressant qui soulève pas mal de questionnement et de remise en question du système des cafés vie privée.

Faisant parti de ceux qui ont un point de vue différent voire un désaccord sur certains points, voilà mon avis perso du coup.

Une histoire au sujet de Jessica

L’article de Okhin mentionne un autre article, publié il y a quelques mois, A story about Jessica, qui présente une étudiante lambda face à l’informatique, telle qu’elle est vécue par la majeure partie de la population actuelle.

Jessica est donc une étudiante de 17 ans, qui utilise tous les jours Internet et son ordinateur, qui entend vaguement parler de problèmes de sécurité, qu’il faut faire attention à ses mots de passes, qu’il ne faut pas installer n’importe quoi… Des choses ordinaires qu’on entend tous les jours aux infos ou en lisant le journal. Elle tente d’appliquer quelques principes de précaution, comme elle le peut. Elle n’a pas les moyens financiers d’être conseillée en permanence par un professionnel, elle se contente donc comme beaucoup d’un gentil ami « qui s’y connaît » quand elle a besoin. Et puis un jour, elle reçoit un mail émanant de l’administration américaine. Elle vérifie comme tout un chacun qu’elle n’est pas en face d’un fishing, en vérifiant si le site indiqué dans le mail est valide ou non, s’il ressemble à un site cloné par un pirate. Et ça semble bon. Elle ouvre donc la pièce jointe du mail, qui indique qu’il s’agit d’une réponse de l’administration à une demande d’aide sociale, et que tout va bien. Ce que Jessica ne remarque pas, c’est que sa webcam et son micro viennent de se mettre en marche, et se mettent dorénavant à espionner Jessica en permanence. Le mail contenait réellement un virus informatique. Et l’antivirus et le pare-feu de Jessica continue de lui dire que tout va bien.

L’auteur pose alors cette simple question : est-ce la faute de Jessica ? Et cette simple question soulève tout plein d’autres bien plus philosophiques.

L’informatique à la portée de tous… ou uniquement de ceux qui peuvent se la permettre ?

Le premier point soulevé par Okhin, et qui est un véritable point de désaccord entre nous deux, peut être résumé en une simple question au final : l’informatique en général (et la sécurité en particulier), doit-elle être quelque chose qui doit être à la portée de tous ou doit-elle être uniquement accessible à ceux qui ont les moyens et capacités de la comprendre et de la maîtriser ?

Jessica n’a effectivement ni les moyens financiers, ni le temps, ni l’argent nécessaires pour maîtriser intégralement toutes les facettes de l’informatique. Elle a simplement utilisé aussi bien qu’elle le pouvait quelque chose qu’on lui a vendu au coin de la rue. Et comme aujourd’hui tout le monde a besoin de l’informatique, et bien elle a fait avec les moyens du bord, ceux que « nous », les développeurs, avons bien voulu lui laisser. Pour l’auteur de l’histoire de Jessica comme pour Okhin, c’est donc à « nous » qu’incombent la faute. Parce qu’on n’a pas été capable de la protéger, alors qu’elle, elle n’en avait pas les capacités, compétences, finances ou autres.

Ma position sur le sujet est radicalement à l’opposée : l’informatique et la sécurité, ce sont juste des outils comme les autres. Et à ce titre, ils viennent avec non seulement des prérequis d’utilisation, mais en plus un mode d’emploi. Il n’y a pas un outil dans le monde qui ne vienne pas avec sa terrachié de restriction d’emploi ou d’âge minimal d’utilisation (qui revient en fait à fixer les compétences minimales attendues pour en espérer la maîtrise).

Pourquoi en serait-il différemment pour un ordinateur ou l’informatique ? On a même tendance à essayer de le faire comprendre à tous nos politiques qu’il n’y a justement aucune espèce de différence entre l’informatique et le reste. Que non, Internet n’est pas une zone de non droit. Que non, ce n’est pas parce que c’est sur Internet que c’est plus dangereux. Que non, ce n’est pas parce que c’est numérique que ça leurs donne plus de pouvoirs. C’est juste strictement le même problème, les mêmes règles, les mêmes droits et les mêmes devoirs que n’importe quel autre outil sur cette planète.

Si on en revient à l’histoire de Jessica, appliquons strictement ce qu’on aurait fait avec un outil totalement « normal » hors Internet et informatique. On lui a dit que Windows, c’était totalement pourri et donc qu’il ne fallait pas s’en servir. Elle a continué à s’en servir et s’est bouffée un virus. Si elle avait acheté un truc bas de gamme alors qu’on lui avait dit que ce n’était pas fiable et au contraire dangereux, et qu’il lui arrivait un truc avec, ça aurait été de la faute à qui ? Sûrement pas au fabriquant…

On lui a dit qu’il fallait avoir des mots de passe robustes, changés tous les 6 mois, et différents pour chaque site. Elle ne l’a pas fait. Si elle avait une voiture, et qu’elle n’avait pas remplacé sa courroie de distribution tous les 6 ans ou passé son contrôle technique tous les 2 ans, et que sa bagnole claquait par manque de prévention, on aurait tapé sur qui ? Sûrement pas sur le concessionnaire…

On lui a dit que les pièces-jointes, c’était dangereux et qu’il ne fallait jamais ouvrir un mail d’un expéditeur inconnu, d’autant plus sans moultes précautions. Elle a ouvert un PDF sans s’assurer de son innocuité. Si elle était intervenu sur une ligne haute tension sans toutes les protections réglementaires et qu’elle s’était prise une grosse décharge, on aurait gueulé sur qui ? Sûrement pas sur EDF…

Alors pourquoi est-ce que dans le monde de l’informatique, on n’applique pas les mêmes règles ? Et que donc c’est Jessica la seule et unique fautive ?

Oui, les prérequis de l’informatique, ils réclament peut-être du bac+5. Et oui, le mode d’emploi pour savoir s’en servir, il fait peut-être 400.000 pages. Vous avez quand même dans les mains un truc des millions de fois plus puissant que la machine qui a envoyé l’Homme sur la Lune. Alors que ce dernier était veillé en permanence par des centaines d’ingénieurs, comment pourrait-on imaginer que vous puissiez maîtriser la bestiole en face de vous sans un minimum de formation et d’implication personnelle ?

L’utilisation de l’informatique n’est pas un droit. Certes, c’est un devoir, une nécessité vu la société moderne. Mais ce n’est pas parce que quelque chose est un devoir qu’il en devient automatiquement un droit. Mon propos va sûrement sembler extrêmement élitiste, mais comme n’importe quel outil, l’informatique ne devrait être utilisée que par les personnes étant capables de maîtriser cet outil. 99% de la merde ambiante dans l’informatique et sur Internet est uniquement là parce que plein de monde qui ne sont pas capables de maîtriser cet outil l’utilise pourtant chaque jour.

Bref, si on ne veut pas ou si on ne peut pas utiliser l’informatique telle qu’elle devrait être utilisée, on ne s’en sert pas. Et si on s’en sert quand même, non seulement on fait gaffe à ne pas emmerder ceux qui savent s’en servir, mais en plus si on cause des problèmes à d’autres ou à soi-même, on ne s’en prend qu’à soi-même, et surtout pas à ceux qui ont conçu cet outil.

Ça ne veut sûrement pas dire que nous, développeurs, n’avons plus qu’à nous en laver les mains. Oui, l’informatique c’est compliqué mais on en a besoin tousles jours, pour n’importe quoi. Là où on a effectivement du travail, c’est de réussir à faire un outil le plus simple possible, pour mettre cet outil à la portée du plus grand nombre.

La simplicité des applications pour de la sécurité… ou pour de la non-sécurité ?

Dans le cadre précis de la sécurité, ça soulève alors un nouveau problème. Le constat de Okhin, que je partage, sur le sujet est assez clair : pour avoir de la sécurité aujourd’hui, faut vraiment en vouloir. Mais alors vraiment. Les logiciels sont compliqués à utiliser, plein de chausses-trappes partout, et la moindre erreur remet la sécurité au niveau 0 ou pire.

L’exemple typique est GPG. Faites une session de formation à GPG à des étudiants. À la fin, faites le tour des machines, et comptez le nombre de clefs privées qui ont fini sur le poste du voisin. Si vous en avez moins de 80%, alors c’était une bonne session…

Même pour OTR, mentionné comme étant un bon système de sécurité, il reste le problème de l’échange de clef. Et même dans les milieux pourtant bien au fait de ce système, on en arrive encore à authentifier son destinataire à coup de « coin/pan » ou de « ping/pong »… Et allez faire comprendre à une personne lambda qu’il faut qu’il me lise une clef hexadécimale de 40 caractères, vous allez vous amuser…

Ou encore le Tor Browser, aussi cité comme un bon outil. Qu’on lance et qu’on oublie. Qu’on oublie tellement que la première chose qu’on va s’empresser de faire, c’est d’aller se connecter à Facebook ou à GMail…

L’histoire de Jessica fait dire à Okhin que si elle n’a pas pu avoir de sécurité, c’est à cause des développeurs. Qu’il faut qu’on fabrique enfin des outils sécurisés « by design », simples, ne nécessitant aucun prérequis ni compétences pour être utilisés. Encore une fois, je ne suis pas d’accord. La sécurité est un concept tellement mouvant (faille de sécurité par paquets de 12 au petit dej’), propre à chaque personne (le fameux mais trop souvent oublié modèle de menace), extrêmement contextuel (une même machine chez soi n’a pas le même niveau de sécurité que dans un aéroport), qu’il me fait dire qu’un outil qui apporte de la sécurité est forcément compliqué et nécessite une certaine maîtrise de l’outil.

À partir du moment où on ne comprend pas ce qu’on fait et/ou ce qui va être réellement fait par la machine, on ne peut pas être en sécurité. Si on voulait y arriver, il faudrait simplifier. Simplifier demande de masquer. Masquer demande de faire confiance. La confiance finit toujours par se perdre (volontairement ou non). Et la sécurité avec donc. Je pourrais citer des tonnes d’exemple à ce sujet :

Dès qu’on veut simplifier, on perd en sécurité, puisque la vérification de l’intégralité de la sécurité de la chaîne de transmission n’est plus vérifiable par l’utilisateur, qui remet alors sa sécurité dans les mains de l’outil, qui lui fera bien son travail… ou pas ! La sécurité étant en effet ultra-dépendante du contexte d’utilisation, il est impossible à un outil de traiter tous les cas, il se contentera uniquement des cas les plus représentatifs, laissant de côté les cas particuliers de l’utilisateur courant. Avec des outils simples, on arrivera donc peut-être à sécuriser « globalement » le système, mais chacun restera exposé sur chaque point particulier de sa sécurité, qui ne rentre pas dans le modèle global. Pire, l’utilisateur utilisant un outil présenté comme « fiable et sécurisé », il a un faux sentiment de sécurité, qui fait qu’il risque de baisser sa garde et d’affaiblir ainsi sa sécurité.

Les médias et les « experts » en sécurité sont conscients des risques du phishing, et donc cherchent à avertir le grand public. Et ils sont alors obligés de faire de la vulgarisation. Et de juste signaler aux gens de vérifier l’émetteur du mail, qu’il correspond bien au domaine habituel de ce genre de mail, qu’il n’y a pas de fautes d’orthographe ou que ça ne vous demande pas votre mot de passe ou vos coordonnées banquaires. Et tout le monde pense être à l’abri du phishing juste en appliquant ça. Alors qu’en fait le problème est bien plus complexe que ça !

Jessica en est le parfait exemple, elle a appliqué à la lettre les diverses recommandations communément admises : elle a vérifié l’adresse de l’expéditeur en se rendant sur le site du domaine en question (hud.gov), qu’il ne ressemblai pas à un site de phishing russe comme il en existe des centaines. Et pourtant, elle s’est faite trouée en beauté…

Pourquoi ? Tout simplement parce qu’elle n’a au final strictement rien vérifié. Parce que ce qu’elle a vérifié n’était qu’une vulgarisation de ce qui est vraiment à vérifier. On ne lui a jamais dit que le corps du mail peut indiquer des choses différentes de ses en-têtes, tout comme je peux vous écrire une lettre indiquant que je suis Nicolas Sarkozi écrivant à François Hollande, alors que l’enveloppe elle, indique mes coordonnées réelles et les vôtres. Parce que oui, je peux envoyer un mail en me faisant passer pour n’importe qui dans l’émetteur et le destinataire. On n’a jamais parlé à Jessica qu’il était bien plus fiable de vérifier ces en-têtes, qui indiquent exactement par où le mail était passé. Et qu’il y a toutes les chances du monde que ces en-têtes montrent que ce mail ne vient pas d’un serveur gouvernemental, et donc qu’il n’est pas fiable. Mais il aurait encore fallu pour ça qu’on lui apprenne ce qu’est SPF, ou la base de données WHOIS. Et à s’en servir. En fait, il aurait fallu lui apprendre exactement tout ce qu’un logiciel d’antispam gère. Logiciel antispam qui avait pourtant toutes les chances d’être présent sur le serveur de mail de Jessica, mais qui a fait défaut, involontairement (par exemple le bug dans SpamAssassin qui excluait les adresses en .link de l’analyse), ou volontairement (on peut imaginer que si une agence gouvernementale voulait réellement trouer Jessica, elle irait bien gentillement demander à son fournisseur de mail d’être très gentil et de laisser passer le mail). Et parce que Jessica lui a fait confiance, parce qu’elle ne voulait pas entendre parler de ce qu’un antispam faisait réellement, hop, plus de sécurité.

On a le même problème de l’autre côté, avec l’administration en question qui n’a fait aucun effort pour régler définitivement le problème du fishing/spam/scam. Il suffirait de mettre en place GPG sur tous les mails sortants pour éradiquer le spam en 10min : tu m’envoies un mail sans signature ou avec une signature qui ne correspond pas à mon trousseau connu (remis par exemple par le conseiller à l’ouverture d’un compte à la banque ou à la création d’un dossier dans une administration), tu dégages. Je n’aurais plus à me poser de question sur la légitimité du courrier reçu. Et surtout la réponse à la question si le mail est légitime ou pas devient une réponse certaine et non pas issu de l’alignement de la Lune ou du résultat du numéro de jour courant modulo 97. Mais comme GPG « c’est compliqué » et/ou « pas accessible à tout le monde », on a préféré laisser tout le monde dans son petit jus tout pourri plutôt que d’essayer de faire monter le niveau par le haut. Et on se retrouve aujourd’hui avec plus de sécu du tout.

Bref, la sécurité par des logiciels simples ne nécessitant aucun prérequis techniques ni compréhension de ce qu’on est réellement en train de faire, ça n’existe tout simplement pas Pire, c’est même généralement juste un piège à con.

Je ne dis pas qu’en tant que développeurs, on n’a pas d’efforts à faire non plus sur le sujet, beaucoup d’outils de sécurité n’ont vraiment pas encore la peinture très fraîche. Voire même pas de peinture du tout. GPG en est effectivement un bon mauvais exemple, très difficile à maîtriser. Mais c’est malheureusement le seul outil capable de protéger nos mails. (En fait non, il y a aussi X.509, mais c’est encore plus complexe que GPG…) Il ne faut pas associer ce manque de simplicité à une erreur des développeurs et encore moins leur balancer à la figure que si personne n’a de sécurité, c’est uniquement à cause d’eux. C’est essentiellement à cause des utilisateurs qui refusent tout effort pour mettre en place cette sécurité. Ils veulent du tout cuit, sinon rien.

Cryptoparty, chiffrofête, café vie privée ? Ou rien du tout ?

Du coup, et c’est le dernier point soulevé par Okhin : on doit faire quoi en cryptoparty/chiffrofête/café-vie-privée ? On a changé le nom justement pour essayer d’attirer le grand public, sauf que, si on choisit le point de vue de Okhin, autant les arrêter et se mettre à coder des outils simples, soit, si on choisit mon point de vue, on doit aborder tous les sujets, même les plus techniques et pointus, et faire remonter le niveau aux forceps s’il le faut.

Actuellement, on a un joli mélange des deux mondes, avec des parties très pédagogiques et pragmatiques comme des initiations à Tails ou à la sécurité sur mobile, mais aussi des choses beaucoup plus poussées, comme du Tahoe-LAFS ou du SSL/TLS/X.509. Et je trouve ça plutôt cool, étant donné qu’on laisse aux personnes présentes le choix de participer aux ateliers qu’elles veulent, voire même d’en proposer et/ou d’en animer.

Après, c’est vrai qu’on a peut-être un peu trop tendance à être anxiogène. On ne compte plus le nombre de références à la NSA, à la peur, on utilise du vocabulaire très militaire. Mais c’est au final je pense pour illustrer simplement le propos. Par exemple le terme « NSA » est plus à prendre au sens de « toute entité gouvernementale ayant suffisamment de moyens » que dans son sens littéral. Et les révélations Snowden ont bien prouvé que les paranoïaques n’avaient pas si tord que ça finalement.

Et puis les cafés-vie-privée fonctionnent très bien. Le dernier, organisé durant l’Ubuntu Party 14.10, s’est tenu sur 2 jours complets, et le fablab n’a jamais désempli, jusqu’à faire peur aux personnes en charge de la sécurité. Les personnes présentes représentaient aussi un joli panel de notre société, avec plus ou moins tous les métiers, tous les âges, toutes les couleurs et tous les sexes. Un vrai patchwork de petits pixels ! Les sujets abordés allaient des principes de base de la sécurité sur PC et mobile, un atelier sur l’usage compréhensif de Tor ou des trucs plus techniques comme TLS/HTTPS ou l’installation d’une messagerie chiffrée Schleuder.

Je trouve personnellement que le concept fonctionne plutôt bien, et que les gens sont globalement contents de ce qu’ils viennent y trouver. Certes, c’est pas complètement parfait, comme plus ou moins tout ce qui se trouve en ce bas-monde, et on a quelques trucs à affiner, mais la mayonnaise a bien prise. On est aussi très ouvert pour accueillir de nouvelles personnes et traiter des sujets différents. Il suffit de demander, ou même mieux, de venir en parler :)

Conclusion(s)

La conclusion de tout ça ?

  • Si vous voulez faire de l’informatique, apprenez l’informatique. Comme lorsque vous utilisez n’importe quel autre outil.
  • Si vous voulez de la sécurité, faites-la vous-même. Maîtrisez vos outils, comprenez ce qui se cache derrière.
  • Les cafés-vie-privée, c’est cool, viendez-y. Et si vous avez des remarques/conseils/whatever, n’hésitez pas à nous contacter !
  • Le monde étant le monde, tout est améliorable, et ce n’est pas vraiment nouveau

Comments !