Zapis lotu ma wartość tylko wtedy, gdy możesz ufać, że nikt przy nim nie majstrował, a przy rekordach i zawodach ma to jeszcze większe znaczenie. Nano jest zbudowany tak, aby można było udowodnić autentyczność generowanych przez niego danych i aby nie dało się niepostrzeżenie zmienić sposobu jego działania.
Główną pracę wykonują dwa sprawdzone rozwiązania kryptograficzne: szyfrowanie AES-256 chroni oprogramowanie, a podpis cyfrowy Ed25519 chroni każdy zapis lotu.
Podpisane zapisy lotów (Ed25519)
Każdy zapis lotu zachowany przez Nano jest zabezpieczony podpisem cyfrowym Ed25519, nowoczesnym schematem używanym do ochrony ruchu w sieci, zdalnego dostępu SSH i komunikatorów takich jak Signal.
Odcisk. SHA-256 odczytuje cały zapis i sprowadza go do jednej 256-bitowej wartości. Zmień choćby jeden znak w dowolnym miejscu pliku, a odcisk będzie zupełnie inny.
Podpis. Nano podpisuje ten odcisk kluczem prywatnym przechowywanym w zaszyfrowanym oprogramowaniu. Ważny podpis można utworzyć tylko kluczem prywatnym, ale sprawdzić go może każdy, kto ma odpowiadający mu klucz publiczny. Oba klucze są powiązane matematycznie, jednak klucza prywatnego nie da się wyznaczyć z publicznego.
W praktyce oznacza to, że:
- Jeśli zapis zostanie w jakikolwiek sposób zmieniony po zapisaniu przez Nano, odcisk się zmienia, podpis przestaje pasować, a zapis zostaje odrzucony.
- Ważny podpis może utworzyć tylko prawdziwy Nano, więc zmienionego lub zmyślonego zapisu nie da się podpisać tak, by uchodził za prawdziwy.
- Nasze serwery Altimeter Cloud przechowują tylko klucz publiczny, nigdy prywatny. Nawet gdyby kiedyś zostały przejęte, nie byłoby na nich niczego, czym dałoby się sfałszować zapis.
- Ponieważ do sprawdzenia zapisu wystarczy klucz publiczny, można go zweryfikować niezależnie: sędzia zawodów może potwierdzić jego autentyczność bez polegania na nas.
Co obejmuje podpis
Podpis obejmuje cały plik, w tym nagłówek z numerem seryjnym urządzenia, ustawieniami lotu, nazwą urządzenia i wszystkimi trzema numerami zawodnika. Żadnej z tych rzeczy nie da się po locie podmienić ani zmienić bez utraty weryfikacji zapisu.
- Zapisy ACLZ mają dwa podpisy: jeden obejmujący pełny zapis przed kompresją i drugi obejmujący CSV, do którego się rozpakowuje. Dzięki temu CSV odtworzony przez Altimeter Cloud z zapisu ACLZ nadal można zweryfikować.
- Zapisy CSV są podpisywane w całości.
- Strony informacji o locie są podpisywane tak samo jak zapis, któremu towarzyszą.
- Odzyskane zapisy, odtworzone po zaniku zasilania, są podpisywane jak wszystkie inne, więc nadal można udowodnić ich autentyczność. Zobacz Odzyskiwanie zapisów.
Otwarcie pliku CSV w arkuszu kalkulacyjnym i zapisanie go wystarczy, aby złamać podpis, dlatego zawsze przesyłaj oryginalny plik z Nano. Jak sprawdzić zapis, opisano na stronie Weryfikacja zapisów lotu.
Zaszyfrowane oprogramowanie (AES-256)
Oprogramowanie Nano jest przechowywane w układzie w postaci zaszyfrowanej AES-256, tym samym standardem, którym rządy i banki chronią poufne informacje. Nano uruchamia wyłącznie poprawnie zaszyfrowane oprogramowanie, więc nie da się wgrać zmodyfikowanego ani nieoficjalnego programu, a oprogramowania nie można odczytać z układu w żadnej użytecznej postaci.
Chroni to naszą pracę przed kopiowaniem, ale co ważniejsze dla Ciebie, chroni prywatny klucz podpisu. Klucz jest zamknięty w zaszyfrowanym oprogramowaniu, nigdy nie pojawia się na dysku USB ani w zapisie i nie da się go wydobyć z urządzenia, aby fałszować zapisy. Nano nie ma też łączności bezprzewodowej: WiFi jest trwale wyłączone, a oprogramowanie można zainstalować tylko przez USB za pomocą naszego narzędzia aktualizacji.
AES-256 nie da się złamać metodą siłową. 256-bitowy klucz ma około 1,2 razy 10 do potęgi 77 możliwych wartości. Nawet gdyby wszystkie komputery na świecie wspólnie sprawdzały miliardy kluczy na sekundę, przejrzenie choćby znaczącej części zajęłoby nieporównanie dłużej niż wiek wszechświata, a żaden skrót nie jest znany.
Dlaczego połączenie obu budzi zaufanie
Siła podpisu zapisu opiera się na tym, że klucz prywatny pozostaje w urządzeniu, a dokładnie to gwarantuje szyfrowanie oprogramowania. Ponieważ Nano odmawia uruchomienia niezaszyfrowanego oprogramowania, nie da się wgrać zmodyfikowanego programu, który mógłby ujawnić klucz lub podpisać fałszywe dane. Szyfrowanie trzyma klucz prywatny poza zasięgiem, podpis używa go, by poręczyć za każdy zapis, a publiczną połowę, która wystarcza do weryfikacji, można swobodnie udostępniać.
AES-256 i Ed25519 to otwarte, opublikowane standardy, które zostały gruntownie przebadane i którym powierza się ochronę bankowości internetowej, ruchu w sieci i dostępu SSH. W połączeniu z niedostępnym kluczem prywatnym sprawiają, że za zapisem lotu Nano możesz stanąć murem, niezależnie od tego, czy walczysz o rekord życiowy, czy zgłaszasz oficjalny wynik zawodów.
Zapisy z oprogramowania starszego niż 1.52
Wcześniejsze oprogramowanie podpisywało zapisy za pomocą HMAC SHA-256 zamiast Ed25519, łącząc w tym samym odcisku całego pliku tajny klucz współdzielony przez Nano i nasze serwery. Manipulacje są wykrywane dokładnie tak samo, a Altimeter Cloud nadal automatycznie weryfikuje te zapisy, więc nic z tego, co już zarejestrowałeś, nie jest zagrożone.
Przejście na Ed25519 w wersji 1.52 zachowało to i dodało dwie rzeczy: klucz podpisu w urządzeniu stał się prywatny, a nasze serwery przechowują tylko publiczną połowę, oraz każdy, kto ma klucz publiczny, może niezależnie zweryfikować zapis.