Il y a quelques semaines, j'ai eu l'occasion d'assister à l'édition 2019 de PSES (Pas Sage En Seine). C'était une expérience très enrichissante, tant au niveau des connaissances partagées qu'au niveau des rencontres que l'on peut y faire.
Je vais essayer de détailler ce que j'ai retenu des conférences qui ont le plus attiré mon attention. Ces notes sont tirées de ma mémoire et sont un avis personnel. Je vous invite à regarder les vidéos des conférences une fois qu'elles seront sorties pour vous faire votre propre idée.
Contenu
- Opération LineageOS : retour d'expérience
- La domotique et le libre
- Les méthodes formelles, mais quoi est-ce donc ?
- ActivityPub, l’épine dorsale du fédivers, ça marche comment ?
- MirageOS, a smaller and safer operating system
- Outils pour sites statiques modernes à l’intention du développeur paresseux
- Transformez vos A en quadruple A
- Traçage Wi-Fi et Bluetooth
- DoT, DoH : le DNS et le chiffrement
- Conclusion
Opération LineageOS : retour d'expérience
L'orateur nous explique comment il a essayé de libérer son téléphone en fabriquant une ROM LineageOS.
Au tout début il installe des applications obscures permettant de rooter le téléphone en utilisant des failles Android non corrigées. Une fois le root installé cependant, ces applications — de mon expérience pour la plupart chinoises — vont faire plein de trucs bizarres dans notre dos. Je me souviens avoir eu des notifications de téléchargement bizarre une fois le root installé sur un téléphone similaire. Ça ne faisait vraiment pas confiance, et lancer un Wireshark aurait pu nous faire vraiment flipper. L'orateur nous explique que son téléphone s'est briqué après un certain temps à la suite de cette opération. Qu'à cela de tienne, cela le motive à fabriquer sa propre ROM LineageOS, n'ayant à priori plus rien à perdre.
Pas de chance, son modèle (ainsi que la marque qui le propose) sont très peu connus, et donc personne ne propose de ROM déjà toute faite sur XDA (le forum de référence en la matière). Pas même un début de kernel ou device-tree, même si le fournisseur est obligé (par la GPLv2) de fournir le code source du kernel utilisé. Il faut partir de zéro pour essayer espérer faire démarrer quelque-chose.
Faire démarrer un TWRP semble être plus simple qu'un Android complet, car le support matériel est plus étendu. Il faut néanmoins déjà avoir — si je me souviens bien — une base de device-tree pour pouvoir déclarer le soc, l'écran, etc. et donc on est pas plus avancé avec le téléphone du néant. Malgré le temps consacré à la recherche et aux essais de construction d'un device-tree pour pouvoir démarrer — en se basant sur celui d'un autre téléphone possédant le même SoC — l'expérience n'aboutit pas.
Ce partage d'expérience est très intéressant car il nous permet de nous familiariser avec les différentes étapes nécessaires pour fabriquer une ROM LineageOS en partant de zéro. Peut importe l'échec final, l'auteur a dû certainement apprendre énormément de choses sur le fonctionnement des téléphones Android, d'AOSP et de LineageOS. Le partage d'une partie de ces nouvelles connaissances était donc le bienvenu.
La domotique et le libre
La première partie de la conférence nous explique les différents protocoles radio utilisés actuellement domotique, sur les fréquences ISM 433 MHz et 868 MHz.
On notera l'apparition d'un nouveau type de protocole couplé à des objets « sans piles » — qui récoltent l'énergie de l’environnement pour envoyer ou recevoir un paquet radio — dont j'ai oublié le nom. Par exemple, la force d'appui sur un interrupteur va fournir l'énergie nécessaire pour envoyer le paquet. Pour les systèmes passifs, la collection d'énergie peut se faire par un petit panneau solaire couplé à une batterie. Le principe parait intéressant, mais les équipements résultants sont très chers par rapport aux modules à piles 433 MHz qui sont présents depuis longtemps et dont le coût est dérisoire.
Au niveau du matériel d'émission/réception pour la passerelle, on fait le tour des différentes marques. Contrairement au 433 MHz qui a l'air d'utiliser uniquement une modulation ASK, le 868 MHz est plus diverse. Faute de SDR, il faut utiliser un module radio par type de modulation. Un module Zigbee ne pourra pas parler avec un module utilisant un protocole différent. La modulation radio mais aussi le protocole qui intègre le routage rend en effet impossible l'utilisation d'un module pour faire du multi-protocoles (sauf SDR, mais bonjour la chauffe).
On ne mentionne pas le RFLink comme passerelle DIY (ou alors très rapidement). C'est un peu dommage car on peut la fabriquer soi-même avec une Arduino et un peu de matériel radio. C'est ce que j'ai à la maison et ça fonctionne très bien. Mais le public visé n'est pas spécialiste en radio ou électronique. Le choix d'une passerelle toute faite est donc fortement conseillée avec raison à ce public par l'orateur.
La seconde partie s'étend sur le logiciel à installer sur la machine accueillant la passerelle afin de mettre capteurs et actionneurs en relation. Domoticz est brièvement cité, mais c'est Jeedom qui sera détaillé dans la suite de la présentation. On ne parle plus de radio ou de sécurité, je décide d'aller voir l'autre conférence d'à côté.
Les méthodes formelles, mais quoi est-ce donc ?
Une présentation voulue accessible aux méthodes formelles. Pas évident de retenir le public avec un tel titre, mais les orat·eur·rice·s ont plus d'un tour dans leur sac. En utilisant un jeu vidéo de type « puzzle/énigme » comme exemple, ils nous expliquent ce qu'est une machine à états finis (MEF) et comment construire un diagramme d'état avec les différentes possibilités du jeu. La modélisation des transitions et des états peut s'écrire dans un langage dédié à cet usage. Ensuite, afin de résoudre le jeu, l'assertion « il est impossible d'arriver à tel état » est faite, et on demande au logiciel de vérifier qu'elle est correcte. Le logiciel se lance, et effectivement il n'arrive pas à trouver de combinaison montrant que l'on peut arriver à l'état final, qui représente la solution au problème.
Cet échec est rassurant, car cela montre que la modélisation du problème est incomplète. On a oublié une possibilité, une transition. En effet, et comprenne qui aura vu la conférence, la grenouille peut manger la mouche ! Avec cette nouvelle transition découverte, on la rajoute dans notre modèle, et on dit encore « il est impossible d'arriver à tel état ». La vérification se lance, et nous répond « faux ! si je passe par cet état, puis celui-ci, etc. j'arrive dans l'état que tu m'as annoncé comme impossible ». On a donc la liste des étapes à suivre pour parvenir à la solution du problème.
Introduction très réussie tout en restant accessible. Ensuite les applications sont généralisées. Le théorème de Rice est présenté. Il parait fastidieux d'appliquer le principe démontré lors du jeu vidéo à des programmes. Cependant dans les domaines critiques tels que le contrôle aérien ou ferroviaire, le jeu en vaut la chandelle, et ces méthodes sont bel et bien utilisées.
Une méthode intermédiaire parait beaucoup plus accessible au commun des mortels ne souhaitant pas y passer trop de temps : le fuzzing. Le principe est d'envoyer des données aléatoires, respectant ou non un format précis, à votre programme. Si celui-ci plante sur une entrée précise, alors c'est qu'il y a un problème (accès mémoire en dehors d'un tableau, division par zéro, …). Cette méthode parait simple à mettre en place et permet de trouver des bugs automatiquement (mais pas tous) et semble être complémentaire des tests unitaires que l'on devrait tous déjà écrire pour vérifier ce que l'on code.
Une conférence assez inspirante, reste à trouver le courage et les outils pour lancer du fuzzing sur nos programmes, même si ça doit déjà exister depuis quelques temps.
ActivityPub, l’épine dorsale du fédivers, ça marche comment ?
Une conférence à la fois intéressante et rigolote pour nous présenter comment fonctionne ActivityPub. Le support utilisé est une implémentation from scratch d'un serveur parlant ce dialecte. La partie client semble être un simple outil en ligne de commande qui va communiquer avec le serveur pour demander de publier quelque-chose. Le serveur affiche tout ce qu'il récupère sur stdout, ce qui permet de voir les différentes étapes nécessaires pour récupérer le profil d'un utilisateur distant, par exemple.
Je retiens de la conférence que la spécification d'ActivityPub n'est pas autosuffisante, et qu'il faut ensuite plutôt creuser du côté des implémentations existantes (Mastodon, Plemora, ...) afin de comprendre toutes les subtilités du protocole.
Certaines implémentations comportent plus de fonctionnalités que d'autre, Plemora ayant l'air d'être particulièrement fourni à ce niveau. Par exemple, elle peut autoriser des petits bouts d'HTML dans les messages pour faire des liens. J'ai récemment appris qu'à l'inverse, le tableau dans le profil de Mastodon est propre à Mastodon et n'est pas supporté par Plemora (parce que pas standardisé ?). Certains utilisateurs de Plemora recommandent donc de répéter l'information présente du tableau vers le texte de la biographie, afin d'y avoir également accès.
Ça m'a donné envie d'installer une instance de Plemora à la maison — quand j'aurai fini mes autres projets en cours.
MirageOS, a smaller and safer operating system
Cette présentation nous explique les avantages d'un système basé sur un « unikernel », c'est à dire un blob binaire qui contient à la fois un système d'exploitation minimal ainsi que le code métier. Cela permet d'embarquer uniquement ce dont on a besoin. Le tout est développé autour de Xen, afin de lancer des VMs qui ne comportent que le nécessaire pour des applications métier.
L'avantage principal présenté par l'orateur est la réduction de la surface d'attaque du logiciel. Par exemple, le SSH n'est pas disponible car il n'a pas d'utilité dans le cadre d'une application web.
Tout MirageOS est basé sur de l'OCaml, avec j'imagine quelques bouts de C par ci par là en tant que code glue. Les composants comme la dépendance « TLS » sont également implémentés en OCaml. Une remarque que j'ai fait remonter est que on est pas sûr qu'une implémentation maison de TLS soit plus sûre — d'un point de vue failles de sécurité — que OpenSSL qui a eu des bugs connus (tels que Hearthbleed) mais qui est utilisée (et donc auditée ?) par un public plus large.
On peut néanmoins saisir l'intérêt de ce genre de système, dans un monde où les serveurs physiques ne sont plus vraiment administrés à la main et où tout a tendance à être virtualisé.
Outils pour sites statiques modernes à l’intention du développeur paresseux
Dans cette conférence, on nous présente le fait que de plus en plus de sites basés sur Wordpress pourraient simplement être remplacés par des sites statiques.
L'auteur nous montre un exemple personnel, avec un système d'édition de contenu en Markdown dans le navigateur. S'en suit un commit dans l'interface web, et une CI va passer afin de générer le nouveau contenu statique, avant de le mettre en production automatiquement. Ça parle de Hugo et de nouveaux frameworks à la mode. Pelican (avec lequel est réalisé ce blog) n'est pas mentionné, tant pis.
La conférence était pas mal, elle montre que l'on peut rendre la création de sites statiques accessible aux néophytes avec un système d'édition en ligne, une intégration et un déploiement continu.
Transformez vos A en quadruple A
Une conférence IPv6 ! Un petit rappel que l'IPv4 c'est obsolète, puis une manipulation en live sur un serveur pour lui attribuer une adresse IPv6 en partant de zéro. L'orateur explique également brièvement les préfixes, le choix entre DHCPv6 ou le protocole automatique disponible avec IPv6, etc..
C'était pas mal, peut-être un peu trop axé sur la démo en live plutôt que sur IPv6, il fallait déjà un peu connaitre ce que c'était pour pouvoir suivre.
Traçage Wi-Fi et Bluetooth
Le saviez-vous ? Votre téléphone envoie en permanence des paquets radio afin de savoir quels réseaux Wi-Fi sont disponibles. Moi j'ai appris quelque-chose. L'orateur en a fait son sujet de thèse, et nous résume un peu toutes ses découvertes ainsi que comment s'en protéger.
Moralité : il faut désactiver son Wi-Fi manuellement quand on est en dehors de chez soi, si on ne souhaite pas être suivi par les paquets radio qu'émet notre téléphone. Malgré le RGPD, ce suivi est opt-out plutôt que opt-in, ce qui fait qu'il est très difficile d'exercer ses droits et de s'opposer à ce suivi.
Donc le matin quand vous partez de chez vous, désactivez le Wi-Fi, et quand vous rentrez le soir, réactivez le à la main. Je pense que c'est une habitude à prendre.
DoT, DoH : le DNS et le chiffrement
Un des derniers points faible concernant la protection de nos communications semble être le DNS. La résolution transite en clair sur le réseau, et on peut donc facilement savoir à quels sites vous accédez en regardant les paquets DNS passer. On peut donc envisager de chiffrer les requêtes DNS avec TCP/TLS (DoT) ou bien par du HTTPS (DoH).
L'intérêt principal est de ne plus divulguer aux (parfois méchants) FAI quels sites nous consultons, ce qui peut facilement être déduit en regardant les paquets DNS qui passent. Même si on passe par un DNS différent de celui du FAI, celui-ci peut tout de même savoir ce que vous demandez comme adresse vu que ça transite en clair.
Pour pouvoir l'utiliser partout, il faut installer un résolveur sur sa machine. Ce n'est donc pas donné à tout le monde et demande du temps pour mettre ça en place. Un comparatif des différents résolveurs est présenté. Cependant, certains navigateurs web semble prendre peu à peu en charge DoT/DoH en standalone, sans passer par le système.
Conclusion
Voilà un petit résumé des conférences auxquelles j'ai pu assister. Auparavant je consultais les vidéos de PSES tous les ans sur des sujets qui m'intéressaient. Le fait d'y assister physiquement possède des avantages.
Tout d'abord, on s'intéresse à des conférences que nous n'aurions pas pris le temps de regarder sur l'ordiphone à la maison. Étant donné qu'il y a en permanence deux conférences dans deux salles différentes, on a le choix. On va se poser dans la salle et si ça nous parle peu, on peut se lever et changer de salle pour aller voir ce qui se dit ailleurs… ou aller boire un coup de Club Maté pour se rafraîchir !
On y rencontre également des personnes très sympathiques et aux centres d'intérêts variés, comme la protection de la vie privée, le combat contre les GAFAM, l'écologie, les arts, la culture, l'inclusion, la promotion du logiciel libre et bien d'autres domaines. J'ai également pu interagir avec le personnel de la médiathèque, qui m'ont expliqué leur rôle dans la diffusion de la culture et des connaissances au sein de Choisy-le-Roy. Et j'ai également pu rencontrer plein d'autres personnes très sympathiques, avec lesquels j'ai l'occasion de pouvoir rediscuter de temps à autre.
Assister présentement au festival plutôt qu'à distance, ça change vraiment la perception que l'on s'en fait, et les échanges en dehors des conférences sont tout aussi intéressants que ce qu'ont à partager les orateurs. Merci aux organisateurs pour cet événement. J’espère pouvoir y assister de nouveau, et pourquoi pas peut-être y donner une présentation sur un sujet qui me tient à cœur à l'occasion.
Peut-être que l'on s'y croisera, qui sait ?