Uit Hack42
Ga naar: navigatie, zoeken
Project: Reproducible Builds Cert Repo
Schroefje24.png
Schroefje24.png
Schroefje24.png
Schroefje24.png
ReproBuildCertRepo Picture.jpg

Reproducible Builds Cert Repo

Naam Reproducible Builds Cert Repo
Door Raboof
Status Uitvoer
Madskillz web, code, Rust, distributed storage
Doel / Omschrijving
Repository om 'reproducible build'-certificaties te delen
Alle Projecten - Project Toevoegen
File:ReproBuildCertRepo_Picture.jpg noez

Wie een binary downloadt moet er maar op vertrouwen dat deze geen malware bevat. Zelfs wanneer de software open source is en je de code/auteur vertrouwt, heb je geen garantie dat de binary die je downloadt echt het resultaat is van het compilen van precies die source code: wellicht is er een stap in het distributieproces gehacked. In het ergste geval is het systeem wat de auteur gebruikte om de binary te bouwen gecompromitteerd - lees voor een klassieker over dit soort problemen "Reflections on Trusting Trust" van Ken Thompson (ACM, 1984).

Dat lijkt een onoplosbaar probleem, maar er is wel iets wat we kunnen doen: wanneer je de source code vertrouwt, en het bouwen van die code altijd precies tot (byte-voor-byte) hetzelfde resultaat leidt, kun je de code op verschillende systemen bouwen en vergelijken of het resultaat inderdaad steeds hetzelfde is. Op hoe meer systemen dit gedaan is, hoe kleiner de kans dat *al* die systemen zijn gecompromitteerd.

Dit is het concept achter het "reproducible builds"-initiatief, wat op dit moment bijvoorbeeld wordt gebruikt in Debian en F-Droid.

Het vertrouwen in een build staat of valt met het feit dat je kunt controleren dat verschillende deelnemers dezelfde code hebben gebouwd en tot het zelfde resultaat kwamen. Op dit moment is er nog geen distributie-agnostische repository om het resultaat reproducible builds vast te leggen.

Het doel van dit project is te onderzoeken wat de wenselijke eigenschappen van zo'n repository zijn, welke technieken, technologieen en conventies daar goed bij passen, en een prototype te realiseren.

Ik ben begonnen met het schetsen van wat ideeen op github