Vérifier une release Silex Desktop¶
Silex Desktop est un logiciel libre, et tu peux prouver que l'application téléchargée a bien été construite à partir du code source public — sans avoir à faire confiance à nos serveurs ni à notre CI. C'est important pour un outil qui publie tes sites web.
Silex Desktop est en alpha. Ces garanties s'appliquent déjà aux builds Linux.
Il y a deux vérifications indépendantes.
1. Le binaire correspond au code source (build reproductible)¶
Les builds Linux (.AppImage, .deb, .rpm) sont reproductibles : n'importe qui
peut reconstruire exactement le même binaire à partir du code source du tag et le
comparer. Si ta reconstruction correspond au hash publié, la release n'a pas été
altérée.
git clone --recurse-submodules https://github.com/silexlabs/Silex && cd Silex
git checkout v3.9.0 # la release que tu as téléchargée
docker build --no-cache --pull --build-arg TAG=v3.9.0 - < verify.Dockerfile && echo "REPRODUCIBLE OK"
Le build s'exécute dans le même environnement épinglé que celui de la release
(nécessite Docker), récupère l'empreinte
publiée avec la release (SHA256SUMS.inner) et se termine par REPRODUCIBLE OK
si ta reconstruction correspond — un écart fait échouer le build.
Pourquoi deux fichiers ? SHA256SUMS couvre les installeurs (intégrité du
téléchargement), tandis que SHA256SUMS.inner est l'empreinte du binaire
compilé lui-même — l'unité reproductible. Les enveloppes des installeurs
(AppImage, deb, rpm) contiennent des métadonnées d'empaquetage non
reproductibles, la vérification porte donc sur le binaire qu'elles contiennent.
2. Les mises à jour sont signées par le projet (auto-update)¶
Silex Desktop se met à jour tout seul. Avant d'installer une mise à jour, il vérifie qu'elle est signée par la clé du projet ; une mise à jour altérée ou malveillante est refusée automatiquement. Tu peux vérifier que le flux de mise à jour publié est bien signé par cette clé :
(Nécessite rsign — cargo install rsign2 — ou minisign, plus jq et curl.)
Portée¶
Ces vérifications couvrent les builds Linux. Les builds macOS et Windows sont
signés avec les mécanismes des éditeurs de plateforme. Détails techniques
complets dans
scripts/README.md
du dépôt source.
Financement¶
Ce travail fait partie de Silex Desktop, financé par NLnet via le NGI0 Commons Fund, avec le soutien financier du programme Next Generation Internet de la Commission européenne.
Éditer cette page sur GitLab