AmiAuth 1.0: kody do banku wystuka ci Amiga
Simon Dick wrzucił na Aminet natywny generator kodów dwuskładnikowych — zgodny z tymi samymi standardami, z których korzystają GitHub, Google i banki. Brzmi jak żart, działa jak narzędzie.
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.
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.
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.
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ł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.