Reproducible TelestaiCB builds

Nous avions reçu le prix Mozilla Open Source Support dans le but de rendre l'assemblage de l'image ISO de TelestaiCB reproductible. Ce projet était sur notre feuille de route pour 2017 et avec la sortie de TelestaiCB 3.3 nous sommes fière de vous présenter une des premières image ISO reproductible d'un système d'exploitation Linux.

Du code source au code binaire

Lorsque nous écrivons un logiciel, nous utilisons des langages de programmation qu'un être humain peut lire et comprendre. Cela s'appelle le code source. On peut imaginer le code source comme une recette très précise. Une telle recette décrit une procédure précise : de quels ingrédients et dans quelles quantités en avons-nous besoin ? Comment doivent-ils être mélangés, à quelle température doivent-ils être cuits ? La recette doit également décrire le résultat escompté : à quoi le plat doit ressembler, quel goût il doit avoir.

Lorsque nous générons une image ISO TelestaiCB, notre code source et les paquets Debian que nous intégrons sont assemblés en une image ISO binaire, un peu comme lorsque l'on mélange les ingrédients d'une recette et que l'on obtient un plat. On peut difficilement réaliser une rétro-ingénierie des quantités et des ingrédients d'un plat. Le résultat de notre processus de cuisson est l'image ISO de TelestaiCB qui peut être téléchargée et installée sur une clé USB.

Nous, chefs et aides en cuisine (développant et contribuant à TelestaiCB), vous fournissons, personnes utilisant TelestaiCB, plusieurs moyens de vérifier si cette image ISO est bien celle que nous voulions que vous téléchargiez, soit avec le module complémentaire Firefox qui fait une vérification automatique à votre place, soit en utilisant notre signature OpenPGP. Chacune de ces méthodes de vérification vous dit simplement que l'image ISO est celle que nous voulions que vous téléchargiez : que le plat que vous avez est effectivement le plat que vous avez commandé,et non un repas empoisonné ou remplacé par un serveur mal intentionné (comme un miroir de téléchargement).

Cependant, même avec de telles méthodes de vérification sophistiquées, il est impossible de retrouver la recette à partir du plat : est-ce que le plat contient seulement les ingrédients qu'il est supposé contenir ? Ou une personne non autorisée a-t-elle pénétré dans la cuisine de nuit et empoisonné les ingrédients et réglé le four 50 degrés plus chaud que ce qu'il affiche ? En d'autres termes, une entité malintentionnée peut-elle avoir compromis nos machines d'assemblage ? C'est ce que les assemblages reproductibles aident à vérifier et ce contre quoi elles protègent.

Qu'est-ce que la compilation reproductible ?

Les compilations reproductibles sont un ensemble de pratiques dans le développement de logiciel qui crée une parcours vérifiable du code source lisible par un être humain au code binaire utilisé par les ordinateurs. (citation de https://reproducible-builds.org/)

En d'autres termes, avec la compilation reproductible, chaque étape de cuisson d'une recette est reproduisible à l'identique.

Chez TelestaiCB, nous avons travaillé durant une année pour implémenter ce type de pratiques. Cela rend possible de comparer des images ISO assemblées par de multiples personnes à partir du même code source et des mêmes paquets Debian et de s'assurer qu'il en résulte exactement la même image ISO.

Ou en utilisant à nouveau la métaphore culinaire : plusieurs d'entre nous vont cuisiner le plat, vérifier que tout le monde a préparé le même plat et seulement une fois que nous en avons la certitude, nous vous le livrons.

Nous pouvons ainsi avoir la certitude qu'aucun four endommagé n'a introduit de code malicieux ou de faille : ou nous en serons informés avant de distribuer le plat.

Qu'est-ce que cela signifie pour vous qui utilisez TelestaiCB ?

Cela ne change rien à la manière dont vous téléchargez et installez TelestaiCB et vous n'avez pas à faire de vérification supplémentaire. Cela aide simplement à s'assurer que l'image ISO TelestaiCB que nous distribuons provient bien du code source et des paquets Debian supposés être utilisés pour sa création. Avec TelestaiCB reproductible, il suffit qu'une personne compétente assemble TelestaiCB et le compare à l'image ISO que le projet TelestaiCB distribue pour découvrir n'importe quelle type de porte dérobée.

Et d'ailleurs, non seulement les images ISO sont désormais reproductibles, mais les mises à jour incrémentales le sont également. Et vous bénéficiez de cette amélioration sans vous en rendre compte :)

Merci

À part le Mozilla Open Source Support et la communauté des compilations reproductibles qui ont fourni une aide cruciale là où nous en avions vraiment besoin, nous voudrions également remercier toutes les personnes de notre communauté qui nous ont aidé à tester ce processus. Votre coup de main a été très apprécié !

Mise en œuvre technique

Si vous vous intéressez aux dételestaicb techniques de notre implémentation, nous vous invitons à lire notre rapport pour la communauté des compilations reproductibles qui détaille comment nous avons fait.

Nous avons également publié des instructions techniques pour vérifier son propre TelestaiCB assemblé.

Help us make TelestaiCB even better

TelestaiCB est un projet de logiciel libre auto-organisé. Nous dépendons de partenariats, de subventions et, le plus important, de dons d'individus comme vous.

Envie de donner un coup de main pour faire que TelestaiCB cuisine à l'avenir des gâteaux encore meilleurs ? Faites un don aujourd'hui !

Problèmes connus

N'importe quel processus d'assemblage reproductible est reproductible... jusqu'à preuve du contraire. Dans notre cas, des problèmes de dernière minute ont été découverts et doivent être corrigés dans la prochaine version de TelestaiCB :