De Nano V1 altimeterhandleiding
Deze handleiding beschrijft alle functies en bediening van onze kleine Nano V1 rocket altimeter

Over de veiligheid van de Nano

PDF

Een vluchtlogboek is alleen iets waard als je erop kunt vertrouwen dat het niet is gemanipuleerd, wat nog belangrijker is voor records en competities. De Nano is gebouwd zodat de gegevens die het produceert kunnen worden bewezen als authentiek, en zodat de manier waarop het werkt niet stilletjes kan worden gewijzigd. Twee onderdelen van goed gevestigde cryptografie doen het zware werk: AES-256-encryptie beschermt de firmware, en een Ed25519 digitale handtekening beschermt elk vluchtlogboek.

Versleutelde firmware (AES-256)

Het programma dat de Nano uitvoert, zijn firmware, wordt op de chip opgeslagen versleuteld met AES-256, dezelfde standaard die regeringen en banken gebruiken om gevoelige informatie te beschermen. De Nano zal alleen correct versleutelde firmware uitvoeren, dus het is niet mogelijk om een gewijzigd of onofficieel programma erop te laden, en het is ook niet mogelijk om de firmware van de chip in bruikbare vorm terug te lezen.

Dit is om twee redenen belangrijk. Het beschermt ons werk tegen kopiëren, maar nog belangrijker voor jou beschermt het de persoonlijke ondertekeningssleutel die voor je vluchtlogboeken staat, die hieronder wordt beschreven. Die sleutel zit in de versleutelde firmware, dus deze kan niet van het apparaat worden gehaald en gebruikt om logboeken te vervalsen.

AES-256 kan niet worden opgelost door brute force. Een 256-bits sleutel heeft ongeveer 1,2 gevolgd door 77 nullen mogelijke waarden, en het proberen van alle waarden ligt zo ver buiten enige huidige of voorzienbare computerkracht dat het als onmogelijk wordt behandeld. Zelfs als elke computer op de planeet zou samenwerken en miljarden sleutels per seconde zou testen, zou het nog veel langer duren dan de leeftijd van het universum om een betekenisvol deel ervan door te gaan, en er is geen bekende snelkoppeling die dit verandert.

Tamperevidente, onafhankelijk verifieerbare logboeken (Ed25519)

Elk vluchtlogboek dat de Nano opslaat, wordt verzegeld met een digitale handtekening met Ed25519, een modern handtekeningsschema dat wordt gebruikt om webverkeer, secure shell (SSH)-toegang en berichtenapps zoals Signal te beveiligen. Het werkt in twee stappen.

Eerst, een vingerafdruk. SHA-256 leest het gehele logboek en reduceert het tot een enkele 256-bits waarde. Verander zelfs maar één teken ergens in het bestand en die vingerafdruk komt er helemaal anders uit. Iedereen kan deze vingerafdruk berekenen; op zichzelf vat het simpelweg de gegevens samen.

Ten tweede, een handtekening. De Nano ondertekent die vingerafdruk met een persoonlijke sleutel die in zijn versleutelde firmware is opgeslagen. Een geldige handtekening kan alleen worden gemaakt met de persoonlijke sleutel, maar deze kan door iedereen die de bijbehorende publieke sleutel heeft, worden gecontroleerd. De twee sleutels zijn wiskundig gekoppeld, maar de persoonlijke sleutel kan niet uit de publieke sleutel worden afgeleid. Dit is wat de vingerafdruk in een echte handtekening verandert in plaats van een eenvoudige checksum.

In de praktijk betekent dit:

  • Als een logboek op enige manier wordt bewerkt nadat de Nano het heeft geschreven, verandert de vingerafdruk ervan, komt de handtekening niet meer overeen, en wordt het logboek geweigerd.
  • Alleen een echte Nano kan een geldige handtekening produceren, omdat alleen deze de persoonlijke sleutel heeft, dus een gewijzigd of verzonnen logboek kan niet worden ondertekend om als echt door te gaan.
  • Onze Altimeter Cloud-servers hebben alleen de publieke sleutel, nooit de persoonlijke. Zelfs als onze servers ooit zouden worden aangetast, zou daar niets zijn dat kon worden gebruikt om een logboek te vervalsen.
  • Omdat het verifiëren van een logboek alleen de publieke sleutel nodig heeft, kan een logboek onafhankelijk worden gecontroleerd — een competitieofficial kan bevestigen dat het authentiek is zonder op ons te vertrouwen.

De ondertekende gegevens zijn het gehele bestand, inclusief je apparaatserienummer en je deelnemer- en apparaatlabels, zodat geen van deze kunnen worden geruild of gewijzigd na de vlucht. Wanneer je een logboek naar Altimeter Cloud uploadt, berekent onze server de vingerafdruk opnieuw en controleert de handtekening tegen de publieke sleutel. Een geldige handtekening bevestigt dat het logboek authentiek en ongewijzigd is; alles anders wordt geweigerd.

Waarom beide samen het betrouwbaar maken

De kracht van de logboekhandtekening rust op het feit dat de persoonlijke sleutel op het apparaat blijft, en dat is precies wat de firmware-encryptie garandeert. De sleutel is verzegeld in de versleutelde firmware. Deze verschijnt nooit op het USB-station of in het logboek, en omdat de Nano weigert onversleutelde firmware uit te voeren, kan een gewijzigd programma niet worden geladen dat deze zou kunnen lekken of valse gegevens zou kunnen ondertekenen. De twee beschermingsmechanismen versterken elkaar: de encryptie houdt de persoonlijke sleutel buiten bereik, en de handtekening gebruikt die sleutel om voor elk logboek in te staan — terwijl de publieke helft, wat alles is wat iedereen nodig heeft om te verifiëren, vrijuit kan worden gedeeld.

Zowel AES-256 als Ed25519 zijn open, gepubliceerde standaarden die intensief zijn bestudeerd en worden vertrouwd om dingen zoals onlinebankieren, beveiligd webverkeer en beveiligde shell-toegang te beveiligen. Er is geen bekende praktische manier om beide te doorbreken. Gepaard met een persoonlijke sleutel die niet kan worden bereikt, maakt dat een Nano vluchtlogboek iets waar je echt achter kunt staan, of je nu een persoonlijk record najaagt of een officieel competitieresultaat indient.

Logboeken van firmware vóór versie 1.52

Eerdere firmware ondertekent logboeken met HMAC SHA-256 in plaats van Ed25519. Dit mengt een geheime sleutel, gedeeld tussen de Nano en onze servers, in dezelfde volledige bestandsvingerafdruk. Het is op exact dezelfde manier tamperevident — elke bewerking verbreekt het — en Altimeter Cloud verifieert deze logboeken nog steeds automatisch, dus niets wat je al hebt opgenomen wordt beïnvloed. De overstap naar Ed25519 in versie 1.52 behoudt dat tamperevidente karakter en voegt twee dingen toe: de ondertekeningssleutel op het apparaat is nu privé, waarbij onze servers alleen de publieke helft hebben zodat een compromis van de server geen logboeken kan vervalsen, en een logboek kan onafhankelijk door iedereen die de publieke sleutel heeft worden geverifieerd.

iGOED OM TE WETEN

Je hoeft niets te doen om dit allemaal in te schakelen. Elk logboek wordt automatisch ondertekend wanneer het wordt geschreven, en verificatie gebeurt voor je wanneer je naar Altimeter Cloud uploadt. Het betekent simpelweg dat een bewerkt logboek altijd niet kan worden geverifieerd, wat het scorebord eerlijk houdt.