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

Over de beveiliging van de Nano

PDF

Een vluchtlog is alleen iets waard als je erop kunt vertrouwen dat er niet mee is geknoeid, en dat telt des te meer bij records en wedstrijden. De Nano is zo gebouwd dat de data die hij maakt als echt kan worden aangetoond, en dat zijn werking niet stilletjes kan worden veranderd.

Twee beproefde cryptografische technieken doen het zware werk: AES-256-versleuteling beschermt de firmware, en een digitale handtekening met Ed25519 beschermt elke vluchtlog.

Goed om te weten
Je hoeft niets te doen om dit in te schakelen. Elke log wordt automatisch ondertekend als hij wordt geschreven, en voor je gecontroleerd als je hem naar de Altimeter Cloud uploadt. Een bewerkte log zal altijd niet worden geverifieerd, en dat houdt het scorebord eerlijk.

Ondertekende vluchtlogs (Ed25519)

Elke vluchtlog die de Nano opslaat, is verzegeld met een digitale handtekening met Ed25519, een modern schema dat wordt gebruikt om webverkeer, secure shell-toegang (SSH) en berichtenapps zoals Signal te beveiligen.

Op de Nano
1. Vingerafdruk
SHA-256 brengt de hele log terug tot één waarde van 256 bits
Op de Nano
2. Ondertekenen
De vingerafdruk wordt ondertekend met de privésleutel, verzegeld in de versleutelde firmware
Bij uploaden
3. Controleren
De Altimeter Cloud berekent de vingerafdruk opnieuw en controleert hem met de publieke sleutel
Resultaat
4. Geverifieerd
Een overeenkomst betekent echt en onbewerkt. Bij elke wijziging wordt de log geweigerd

Een vingerafdruk. SHA-256 leest de hele log en brengt hem terug tot één waarde van 256 bits. Verander ergens in het bestand ook maar één teken en de vingerafdruk komt er compleet anders uit.

Een handtekening. De Nano ondertekent die vingerafdruk met een privésleutel die in zijn versleutelde firmware zit. Een geldige handtekening kan alleen met de privésleutel worden gemaakt, maar iedereen met de bijbehorende publieke sleutel kan hem controleren. De twee sleutels zijn wiskundig met elkaar verbonden, maar de privésleutel kan niet uit de publieke worden afgeleid.

In de praktijk betekent dat:

  • Wordt een log op enige manier bewerkt nadat de Nano hem heeft geschreven, dan verandert de vingerafdruk, klopt de handtekening niet meer en wordt de log geweigerd.
  • Alleen een echte Nano kan een geldige handtekening maken, dus een gewijzigde of verzonnen log kan niet zo worden ondertekend dat hij voor echt doorgaat.
  • Onze Altimeter Cloud-servers hebben alleen de publieke sleutel, nooit de privésleutel. Zelfs als onze servers ooit gehackt zouden worden, staat er niets op waarmee een log kan worden vervalst.
  • Omdat je voor het controleren van een log alleen de publieke sleutel nodig hebt, kan hij onafhankelijk worden geverifieerd: een wedstrijdofficial kan bevestigen dat hij echt is zonder op ons te hoeven vertrouwen.

Wat de handtekening dekt

Apparaatnaam en deelnemersnummers worden ook ondertekend
Je apparaatnaam en alle drie de deelnemersnummers worden in de header van de log geschreven en maken deel uit van de handtekening. Wijzig je er een in een opgeslagen log, al is het maar één teken, dan mislukt de verificatie. Wil je onder een andere naam of ander nummer vliegen, wijzig ze dan vóór de vlucht in de instellingen.

De handtekening dekt het hele bestand, inclusief de header met het serienummer van je apparaat, de gebruikte instellingen, je apparaatnaam en alle drie de deelnemersnummers. Geen van die gegevens kan na de vlucht worden verwisseld of gewijzigd zonder dat de verificatie van de log mislukt.

  • ACLZ-logs hebben twee handtekeningen: één over de volledige log vóór compressie, en één over de CSV waarin hij wordt uitgepakt. Zo kan een CSV die de Altimeter Cloud uit een ACLZ-log opbouwt nog steeds worden geverifieerd.
  • CSV-logs worden over het hele bestand ondertekend.
  • Vluchtinfopagina's worden op dezelfde manier ondertekend als de log ernaast.
  • Herstelde logs, opnieuw opgebouwd na stroomuitval, worden ondertekend zoals elke andere, zodat ze nog steeds als echt kunnen worden aangetoond. Zie Logherstel.

Een CSV in een spreadsheet openen en opslaan is al genoeg om de handtekening te breken, dus upload altijd het originele bestand van de Nano. Zie Vluchtlogverificatie voor het controleren van een log.

Versleutelde firmware (AES-256)

De firmware van de Nano staat op de chip, versleuteld met AES-256, dezelfde standaard die overheden en banken gebruiken om gevoelige informatie te beschermen. De Nano draait alleen correct versleutelde firmware, dus er kan geen aangepast of onofficieel programma op worden geladen, en de firmware kan niet in bruikbare vorm van de chip worden teruggelezen.

Dat beschermt ons werk tegen kopiëren, maar belangrijker voor jou: het beschermt de privé-ondertekeningssleutel. De sleutel is verzegeld in de versleutelde firmware, verschijnt nooit op de USB-schijf of in een log, en kan niet van het apparaat worden gehaald om logs te vervalsen. De Nano heeft ook geen draadloze verbinding: WiFi is permanent uitgeschakeld, en firmware kan alleen via USB met onze updatetool worden geïnstalleerd.

AES-256 kan niet met brute kracht worden gekraakt. Een sleutel van 256 bits heeft ruwweg 1,2 met 77 nullen erachter mogelijke waarden. Zelfs als alle computers op aarde samen miljarden sleutels per seconde zouden testen, zou het onvoorstelbaar veel langer duren dan de leeftijd van het heelal om er ook maar een noemenswaardig deel van te proberen, en er is geen bekende kortere weg.

Waarom de twee samen het betrouwbaar maken

De kracht van de loghandtekening berust erop dat de privésleutel op het apparaat blijft, en dat is precies wat de firmwareversleuteling garandeert. Omdat de Nano weigert onversleutelde firmware te draaien, is er geen manier om een aangepast programma te laden dat de sleutel zou kunnen lekken of valse data zou kunnen ondertekenen. De versleuteling houdt de privésleutel buiten bereik, en de handtekening gebruikt hem om voor elke log in te staan, terwijl de publieke helft, alles wat iemand nodig heeft om een log te verifiëren, vrij kan worden gedeeld.

Zowel AES-256 als Ed25519 zijn open, gepubliceerde standaarden die intensief zijn bestudeerd en worden vertrouwd voor het beveiligen van internetbankieren, webverkeer en secure shell-toegang. Gecombineerd met een privésleutel die onbereikbaar is, maakt dat een vluchtlog van de Nano iets waar je achter kunt staan, of je nu op jacht bent naar een persoonlijk record of een officieel wedstrijdresultaat indient.

Logs van firmware vóór 1.52

Eerdere firmware ondertekende logs met HMAC SHA-256 in plaats van Ed25519, waarbij een geheime sleutel die de Nano en onze servers deelden in dezelfde vingerafdruk van het hele bestand werd gemengd. Knoeien is op precies dezelfde manier zichtbaar, en de Altimeter Cloud verifieert deze logs nog steeds automatisch, dus niets wat je al hebt opgenomen wordt erdoor geraakt.

De overstap naar Ed25519 in 1.52 behield dat en voegde twee dingen toe: de ondertekeningssleutel op het apparaat werd privé, waarbij onze servers alleen de publieke helft hebben, en een log kan onafhankelijk worden geverifieerd door iedereen met de publieke sleutel.