Aller au contenu

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é :

./scripts/verify-update-signature.sh

(Nécessite rsigncargo 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