Transport nigdy nie jest zaufany
Łączność radiowa ma słabą historię, jeśli chodzi o bezpieczeństwo. Zamiast spierać się, który jej rodzaj jest wystarczająco bezpieczny, AirNox zakłada, że żaden, i buduje bezpieczeństwo warstwę wyżej.

Spis treści
Nośniki to nie poświadczenia
Parowanie (pairing) Bluetooth dowodzi, że dwa urządzenia przeszły przez rytuał parowania. Bliskość NFC dowodzi, że coś było w odległości kilku centymetrów od czytnika. Kod QR dowodzi, że aparat zobaczył wzór. Nic z tego nie dowodzi, kto jest po drugiej stronie, a każdy z tych nośników był już publicznie atakowany: podsłuch, obniżanie siły klucza, przekazanie zbliżenia na drugi koniec miasta za pomocą dwóch zwykłych telefonów.
Dlatego wszystkie trzy traktujemy jako wrogie. Każdy z nich da się podsłuchać, można do niego wstrzyknąć wiadomości albo przekazać je dalej. Nic, co twierdzi nośnik, nie jest dla nas dowodem czegokolwiek.

Parujesz raz
Zaufanie ustanawiasz raz, kiedy parujesz komputer z telefonem. Komputer wyświetla kod QR, a telefon go skanuje. Potem na obu ekranach pojawiają się krótkie kody, a ty je porównujesz. Jeśli się zgadzają, oba urządzenia uzgodniły klucze, których żaden nośnik nigdy nie widział, i od tej chwili każde zna tożsamość drugiego. Jeśli się nie zgadzają, coś siedziało pośrodku – i przerywasz.
To porównanie to jedyny moment, w którym kanał sprawdza człowiek, i to właśnie ten moment się liczy. Wszystko, co następuje potem, dziedziczy zaufanie potwierdzone twoimi własnymi oczami.

Sesja
Po sparowaniu każda wiadomość między komputerem a telefonem podróżuje w sesji, którą kontroluje portfel. Jest szyfrowana end-to-end, więc podsłuchiwany nośnik nie zdradza nic poza szumem. Ma wzajemne uwierzytelnianie (mutual authentication), więc każda strona wie, że wiadomość pochodzi od urządzenia, z którym się sparowała, a nie od czegoś, co się pod nie podszywa. Jest związana z nośnikiem, po którym biegnie, więc wiadomości przechwyconej na jednej ścieżce nie da się powtórzyć na innej.
Sesja opiera się na dobrze przebadanym, nowoczesnym schemacie handshake'u, takim, jakiego używają szeroko wdrożone bezpieczne tunele. Nie improwizujemy z kryptografią.
Co jest odrzucane
Wiadomość zmieniona po drodze nie przechodzi uwierzytelniania i zostaje odrzucona. Powtórzona nie pasuje do sekwencji, więc też leci do kosza. To samo dotyczy tej, która przychodzi w złej kolejności. A wiadomość od urządzenia innego niż sparowane nigdy nie przechodzi przez handshake. W każdym z tych przypadków telefon nie pokazuje niczego do podpisania, bo nie dotarło nic prawidłowego.
Dlatego wygoda Bluetooth LE i NFC nic nie kosztuje, jeśli chodzi o bezpieczeństwo. Nośnik może być tak słaby, jak chce. Czy radio pod spodem jest bezpieczne, to pytanie, na które nigdy nie musimy odpowiadać.
Ta sama sesja na każdym nośniku
Sesja nie wie, czy jedzie na świetle, falach radiowych czy zbliżeniu. Możesz sparować urządzenia przez QR, a potem używać Bluetooth LE do codziennej pracy i NFC przy terminalu – wszystko bez ponownego parowania. Zmiana nośnika nie zmienia tego, czemu ufamy, bo nośnik od początku nie był zaufany.
Czy to nadal air gap?
Puryści mówią, że air gap oznacza wyłącznie światło. Nie będziemy się spierać o słowo. Jeśli chcesz wersji ścisłej, używaj tylko kodów QR – są zawsze dostępne. Właściwość, na której nam zależy, kryje się pod tym słowem: urządzenie z kluczami nie ma żadnej drogi do internetu, a jedyne, co kiedykolwiek przechodzi na drugą stronę, to żądanie, które telefon sam dekoduje, i podpis, który sam postanowił złożyć. Sesja przez Bluetooth LE zachowuje tę właściwość. Dodaje do niej to, że z air gapu nadal korzystasz.
Cała seria
- Załóż, że komputer jest przejęty
- Mass Adoption Security: urządzeniem podpisującym jest telefon, który już masz
- Trzy drogi przez air gap: kody QR, Bluetooth LE i NFC
- Niewidzialny w eterze: urządzenie podpisujące, którego nie wykryje żaden skaner
- Transport nigdy nie jest zaufany
- Co pokazuje ci telefon: analiza transakcji na urządzeniu podpisującym
- Telefon prowadzi własny zapis
- Sejf na twoim komputerze: Argon2id i profil odporny na zgadywanie
- dAppy bez portfela w przeglądarce
- Serwer MCP z zasadami: agenci AI w granicach limitów
- Jeden chroniony portfel do wszystkiego
- Mały i natywny: C++, bez środowiska JavaScript, od stacji roboczej po Raspberry Pi