Na Aminecie (util/crypt/AmiAuth) wylądowała paczka, obok której nie umiem przejść obojętnie: AmiAuth 1.0, generator kodów dwuskładnikowego uwierzytelniania autorstwa Simona Dicka. Sto piętnaście kilobajtów, wydanie z 21 lipca. Program implementuje TOTP (RFC 6238) i HOTP (RFC 4226) — dokładnie te standardy, które siedzą w Google Authenticatorze i aplikacjach bankowych.
AmiAuth: wersja CLI i GUI, wymagania systemowe
Dwa interfejsy, dwa światy. Wersja CLI zadowala się AmigaOS 2.04 i gada komendami CODE, ADD, LIST, GET, REMOVE, SYNC, OFFSET — surowo i skryptowalnie. GUI napisano w ReAction, wymaga OS 3.0+ i działa jako commodity: hotkey, autostart z WBStartup, pilnowanie, żeby chodziła tylko jedna instancja.
Kody są sześcio- albo ośmiocyfrowe, z odliczaniem ważności. Magazyn kont można opcjonalnie zaszyfrować — i tu robi się ciekawie, bo autor sięgnął po ChaCha20 z PBKDF2. Współczesna kryptografia mieląca na 68k. Dwadzieścia lat temu taki pomysł uchodziłby za skecz, dziś po prostu leży na Aminecie.
Problem z zegarem, czyli TOTP na Amidze
Cały TOTP stoi na jednym założeniu: że twój zegar się zgadza. A wiemy, jak amigowe zegary trzymają czas — kto miał przyjemność z wylaną vartą na płycie, ten wie, że bywało różnie. AmiAuth rozwiązuje to synchronizacją przez SNTP (po bsdsocket), a wiarygodność zegara pokazuje kolorem: zielony, pomarańczowy, czerwony. Prosto i uczciwie.
Kody QR i import kont przez otpauth://
Kont nie trzeba wklepywać ręcznie. Program czyta kody QR z obrazków i łyka URI otpauth:// — czyli dokładnie to, co pokazuje GitHub albo bank przy włączaniu dwuskładnikowego logowania. Zapisujesz obrazek, wskazujesz plik, gotowe.
W readme autor otwarcie przyznaje, że program powstał z pomocą AI, a pełne źródła dołączył na licencji BSD. Takich wyznań w amigowych archiwach ostatnio wyraźnie przybywa i chyba niedługo przestanę je odnotowywać — to się po prostu staje kolejnym narzędziem w warsztacie, także na scenie.
Czy trzymać kody do banku na Amidze
Czy trzymałbym na podłączonej do sieci Amidze kody do banku? Tu się na chwilę zatrzymam. Bsdsocket, wiekowy stos TCP/IP, system bez izolacji procesów — to nie jest środowisko, w którym słowo „bezpieczeństwo" brzmi poważnie. Do konta na GitHubie, do forum, do zabawy — czemu nie. Do banku wolę jednak coś, co dostaje łatki częściej niż raz na dekadę.
Ale nie oszukujmy się: nikt nie instaluje AmiAuth dlatego, że musi. Instaluje się go, bo można. Logowanie do współczesnego serwisu kodem wygenerowanym na maszynie sprzed trzydziestu lat to dokładnie ten rodzaj absurdu, dla którego to hobby wciąż żyje. U mnie już czeka na liście rzeczy do przetestowania na szóstsetce.