Hopp til innhold
NorscodeNorscode

Én fil, én sum: reproduserbare utgivelser

ArtikkelAv Norscode-prosjektet

Hele programmet lenkes til én NCB-fil med en SHA-256-sum, så du kan bevise hva som kjører.

Alt lenkes til én fil med én sum app.no std.web std.krypto lenker program.ncb SHA-256: 3f9a…c1

Når du bygger et ferdig Norscode-program, lenkes alt det består av — koden din og de delene av standardbiblioteket du faktisk bruker — til én enkelt fil. Den fila har en SHA-256-sum: et fingeravtrykk som endrer seg hvis så mye som ett tegn er annerledes.

Hva det gir deg

Du kan bevise at det som kjører i produksjon er nøyaktig det du bygde og testet. Ikke «sannsynligvis det samme» — byte for byte det samme. Summen du hadde da du testet, er summen du sjekker mot når du ruller ut. Stemmer de, er det ingen tvil.

Et svar på et reelt problem

En stor del av moderne sikkerhetsbrudd kommer ikke gjennom din egen kode, men gjennom leddene rundt: en avhengighet som ble byttet ut, en byggekjede som la til noe underveis, et bibliotek som ble oppdatert til noe annet enn du trodde. Når hele programmet er én fil med én sum, er det ingen skjulte ledd å bytte ut i det stille.

Bare det du bruker

Lenkingen tar med seg bare de delene av biblioteket programmet faktisk kaller. Resultatet er mindre, raskere å laste, og lettere å resonnere om — det er ikke et helt økosystem som følger med, bare det du ba om.

Reproduserbarhet høres teknisk ut, men handler om noe enkelt: å vite, ikke tro, hva som kjører.

Slik beviser du hva som kjører

Sjekksummen er ikke bare pynt. Når du bygger, får NCB-fila en SHA-256-verdi — et fingeravtrykk som endrer seg fullstendig hvis så mye som ett tegn i programmet er annerledes. Noterer du verdien når du tester, kan du sammenlikne den med fila som ligger på serveren og vite, ikke tro, at det er nøyaktig den samme. Er de like, er det ingen tvil; er de ulike, vet du at noe har endret seg.

Bare det du bruker

Lenkingen tar med seg bare de delene av standardbiblioteket programmet faktisk kaller — resten ristes bort som døde greiner på et tre. Resultatet er mindre, raskere å laste, og lettere å resonnere om. Du sender ikke et helt økosystem ut i produksjon, bare den koden som faktisk kjører.

Et svar på et ekte problem

En stor del av moderne sikkerhetsbrudd kommer ikke gjennom din egen kode, men gjennom leddene rundt: en avhengighet som ble byttet ut i det stille, en byggekjede som la til noe underveis. Når hele programmet er én fil med én sum, er det ingen skjulte ledd igjen å bytte ut. Det er enklere å sikre, fordi det er mindre å sikre.

Les også

Tilbake til oversikten