Aucun moyen de prouver que le code est le vrai code
Même si le logiciel de vote est publié, ce seul fait ne suffit pas. Il faut aussi pouvoir le recompiler soi-même et obtenir exactement le même programme que la machine exécute. Sans cela, le code publié pourrait ne pas correspondre à la version secrète réellement installée.
Vidéo explicative à venir
Une explication de 60 secondes, en langage clair, sur cette lacune.
Ce qui s'est réellement passé
C'est un principe bien établi de la chaîne d'approvisionnement logicielle. Le projet intersectoriel Reproducible Builds existe précisément parce que lire le code source ne suffit pas — il faut pouvoir le recompiler indépendamment et confirmer qu'on obtient le programme identique, bit par bit. Sinon, « voici notre code » et « voici ce qui tourne » sont deux choses différentes et non vérifiables.
Où nous en sommes
La plupart des juridictions aujourd'hui n'exigent même pas que le code source du logiciel de vote soit public (voir « Logiciel que vous n'avez pas le droit de vérifier ») — exiger donc une compilation reproductible que n'importe qui peut faire correspondre à la machine qui tourne est encore plus rare. Le chiffre ci-dessus reflète la loi actuelle.
Lire le menu, ce n'est pas goûter au plat
Publier le code source, c'est comme afficher la recette d'un restaurant. C'est bien — mais cela ne prouve pas que la cuisine a réellement cuisiné cette recette. Peut-être qu'ils l'ont suivie. Peut-être que non. On ne peut pas le dire juste en lisant la recette.
Une compilation reproductible comble cette lacune : n'importe qui peut prendre le code source publié, le compiler lui-même et vérifier qu'il obtient exactement le même programme — bit par bit — que celui installé sur la machine. C'est ainsi que l'industrie logicielle en général détecte le code qui aurait été altéré après révision.
Pourquoi c'est important
Sans compilation reproductible, « voici notre code open source » et « voici ce qui tourne sur la machine » sont deux affirmations distinctes, et une seule peut être vérifiée. Une version publiée propre pourrait côtoyer une version altérée secrète, et aucune partie externe ne pourrait prouver la différence.
Comment TrustVoting résout le problème
TrustVoting s'engage envers les compilations reproductibles : recompiler le code source publié, obtenir le binaire identique — puis la couche d'intégrité (sommes de contrôle + démarrage attesté) prouve que la machine exécute exactement ce binaire. Code ouvert → une compilation que n'importe qui peut reproduire → une machine qui prouve qu'elle l'exécute.
Comment TrustVoting la corrige
TrustVoting s'engage envers les compilations reproductibles : n'importe qui peut prendre le code source publié, le recompiler et confirmer qu'il produit exactement le binaire que la machine exécute — puis la couche d'intégrité (sommes de contrôle + démarrage attesté) prouve que la machine exécute ce binaire.