Po artykule na temat usługi Bitwarden (menedżer haseł, z którego korzystam) dostałem całkiem sporo zapytań m.in. od znajomych o tę usługę. Ale to, co mnie zaskoczyło chyba najbardziej, to to, że dominującym argumentem nawet nie do samego korzystania z Bitwardena, ale od razu do przejścia na wersję płatną dla moich rozmówców okazała się opcja dostępu awaryjnego, o której wspomniałem trochę przy okazji (dla mnie – głównie ze względów zawodowych – to bardzo ważna opcja, z której korzystam po to, by “w razie czego” zabezpieczyć m.in. interesy swoich klientów). A skoro już ktoś zdecydował się na wersję płatną usługi Bitwarden, to bardzo możliwe, że zdecyduje się korzystać z niej również do generowania kodów jednorazowych 2FA/TOTP (Time-based One-Time Password).

Eksport tokenów z Authy

Kwestii bezpieczeństwa takiego rozwiązania – loginy i hasła, oraz kody 2FA/TOTP w jednej aplikacji – nie będę rozwijał, bo choć zdecydowanie bezpieczniej korzystać z różnych aplikacji do tego celu, to przy odpowiedniej “staranności” nie powinno być większego problemu, by wszystko trzymać w jednym miejscu, czyli bezpiecznym menedżerze haseł, jakim najprawdopodobniej właśnie jest Bitwarden.

Z opcji takiej zdecydował się skorzystać m.in. mój dobry przyjaciel, z tym że – również za moją radą – dotychczas jako aplikacji programowego tokena, czyli do generowania jednorazowych kodów 2FA/TOTP korzystał z Authy. Z aplikacji, z której sam od lat korzystam, i ogólnie jak najbardziej polecam.

Problem tylko w tym, że o ile dodanie nowych kodów (serwisów, usług) do Authy jest banalne, tak samo jak ich synchronizacja między różnymi urządzeniami, to już wyciągnięcie ich z Authy takie proste nie jest. Znaczy – jak mam nadzieję, że za chwilę pokażę – jest dość proste, ale wymaga odrobiny kombinowania…

Authy Desktop

Są różne metody, by wydobyć z Authy niezbędne informacje, ja najczęściej korzystam z “ataku” na klienta Authy na komputery, czyli Authy Desktop. Konkretnie na klienta dla systemy Windows, ale to nie ma większego znaczenia.

Tak więc instalujemy i konfigurujemy Authy Desktop, tak w aplikacji były dostępne do generowania kody jednorazowe. W tym momencie wyłączamy klienta i uruchamiamy ponownie, ale z dodatkowym parametrem:

--remote-debugging-port=12345

Skrót do aplikacji znajdziemy w katalogu:

C:\Users\[NAZWA UŻYTKOWNIKA]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Twilio Inc

A samą aplikację (Authy Desktop.exe) w katalogu:

C:\Users\[NAZWA UŻYTKOWNIKA]\AppData\Local\authy-electron\

Załóżmy, że użytkownik nazywa się “webinsider”, więc ścieżka do aplikacji będzie wyglądać tak:

C:\Users\webinsider\AppData\Local\authy-electron\Authy Desktop.exe

A cała komenda uruchomieniowa – już z uwzględnieniem cudzysłowów, ze względu na spacje w nazwie pliku – tak:

"C:\Users\webinsider\AppData\Local\authy-electron\Authy Desktop.exe" --remote-debugging-port=12345

Wystarczy teraz kliknąć prawym przyciskiem myszy na przycisk menu na pasku zadań (symbol Windowsa), lub skorzystać z kombinacji klawiszy Windows + R, by wywołać okno “uruchamianie”, gdzie wklejamy powyższą linijkę (pamiętając o zmianie nazwy użytkownika).

Po tej operacji aplikacja uruchomi się jakby normalnie. Ale można teraz w przeglądarce internetowej wejść na stronę, debugowania aplikacji, czyli:

http://localhost:12345/

A stąd już otwarta droga do wyciągnięcia niezbędnych danych z aplikacji:

Tak więc po wejściu na stronę klikamy link “Twilio Authy”, następnie z menu wybieramy “application” (jakby ta pozycja była niewidoczna, to korzystamy ze strzałek “>>” by pokazać ukryte/niewidoczne). Dalej w sekcji “frames” robimy dwuklik lewym przyciskiem myszy na “top”, i z rozwiniętej listy klikamy prawym przyciskiem myszy na pliku “main.html” (frames -> top -> scripts -> main.html) i wybieramy opcję/pozycję “open in containing folder”.

W tym momencie powinno otworzyć się okno konsoli, w której wklejamy kod ze strony “AuthyToOtherAuthenticator.md” w serwisie GitHub Gist, lub – już w wersji zmodyfikowanej, by wynik zapisać do pliku – z tej strony.

Po uruchomieniu skryptu (wkleić i nacisnąć enter) zostanie wygenerowany plik, w którym znajdziemy wszystkie (obsługiwane przez skrypt) tokeny kodów 2FA/TOPT.

Przykładowa zawartość (jeden token):

{
 "name": "Webinsider",
 "secret": "8Q7PBLAHE5S2RQP39W5RPBJH56Q",
 "uri": "otpauth://totp/Webinsider?secret=8Q7PBLAHE5S2RQP39W5RPBJH56Q&digits=7&period=10"
}

W większości przypadków wystarczy skorzystać z kodu “secret” wprowadzając go w nowej aplikacji (np. Bitwarden).

(!) Zgłoś błąd na stronie | Lub postaw nam kawę :-)
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk