totp-migrator siirtää 2FA-koodit pois Google Authenticatorista ilman verkkosivuja. Toimii omalla koneella, ei riippuvuuksia, salaisuudet piilossa.

Kun aloin parantaa omaa yksityisyyttäni, rupesin miettimään, kuinka paljon luotan Google Authenticatoriin. Halusin koodit salasananhallintaan, jonka valitsen itse. En halunnut syöttää jokaista salaisuutta matkalla jollekin muunnossivustolle.

Tein siksi pienen työkalun, joka toimii kokonaan omalla koneella. Se on nyt julkinen: totp-migrator.

Ongelma

Google Authenticator osaa viedä tilit, mutta vain QR-koodeina omassa muodossaan. 1Password, Bitwarden, Vaultwarden, Aegis ja LastPass eivät lue niitä. Useimmat muuntimet ovat verkkosivuja. Silloin liität jokaisen kaksivaiheisen tunnistuksen salaisuuden jonkun toisen JavaScriptiin.

Mitä totp-migrator tekee

Se lukee kahta syötettä:

  • Google Authenticatorin vienti-QR:n otpauth-migration://-osoitteen. Iso vienti jakautuu usealle QR-koodille, ja työkalu tarkistaa, että kaikki ovat mukana.
  • tavalliset otpauth://totp/-osoitteet, joita useimmat muut todennussovellukset osaavat viedä

Se kirjoittaa tuontitiedoston sovellukselle, johon siirryt: 1Password, Bitwarden tai Vaultwarden, Aegis, LastPass tai pelkkä osoitelista.

totp-migrator decode accounts.txt
totp-migrator export -f bitwarden -o vault.json accounts.txt
Terminaali: totp-migrator listaa tilit palvelun, nimen ja asetusten kanssa, ohittaa yhden HOTP-tilin ja kirjoittaa Bitwardenin tuontitiedoston. Salaisuuksia ei näy.

Työkalu on yksi Python-paketti ilman riippuvuuksia. Voit lukea koko koodin ennen kuin annat sille salaisuutesi.

Miten yksityisyys on hoidettu

Työkalu käsittelee avaimia jokaiseen tiliin, jonka olet suojannut kaksivaiheisella tunnistuksella. Siksi oletusten pitää olla tiukat.

  • Mitään ei lähde verkkoon. Testi kaatuu, jos paketti joskus tuo verkkokirjaston.
  • Salaisuudet eivät näy ruudulla. Näet palvelun, tilin nimen ja asetukset. Salaisuudet ja koodit näkyvät vain --reveal-valinnalla. Viimeinen tarkistus estää tulostamasta mitään, missä on salaisuus. Jos tulevassa versiossa on bugi, ajo kaatuu eikä vuoda.
  • Ei mitään komentohistoriaan. Työkalu ei ota osoitteita komentoriviparametreina eikä lue niitä suoraan terminaalista, jossa ne jäisivät ruudulle.
  • Tiedostot huolella. Linuxissa ja macOS:ssä vientitiedostoa voit lukea vain sinä. Työkalu ei koskaan kirjoita olemassa olevan tiedoston päälle.
  • Tiukka lukija. Google ei ole julkaissut vientimuotoa. Jos lukija näkee jotain, mitä se ei ymmärrä, se pysähtyy eikä arvaa.

Mitä oikeasti testasin

En halua luvata enempää kuin olen tarkistanut. README:ssä on siksi taulukko siitä, mitä on testattu:

  • 1Password: työkalun ensimmäinen versio siirsi omat tilini samalla pohjalla. Jokainen koodi täsmäsi ennen kuin poistin Google Authenticatorin.
  • Bitwarden ja Vaultwarden: jokainen muutos testataan tuomalla tiedosto oikeaan Vaultwardeniin Bitwardenin virallisella komentorivityökalulla. Jokainen koodi tarkistetaan.
  • LastPass: samassa testissä CSV-tiedoston lukee Bitwardenin LastPass-tuonti. LastPassiin en ole sitä vielä tuonut.
  • Aegis: tiedosto noudattaa Aegisin dokumentoitua muotoa. Tuontia en ole vielä kokeillut.

Mitä työkalu ei suojaa

Vientitiedosto on selväkielinen, koska sovellukset tuovat sellaisen. Samoin QR-kuvakaappaukset, jotka annat työkalulle. Tuo tiedosto, vertaa muutamaa koodia vanhassa ja uudessa sovelluksessa, poista tiedostot ja poista tilit Google Authenticatorista vasta sen jälkeen.

Kokeile

github.com/ollijunes/totp-migrator

Issuet ja pull requestit ovat tervetulleita. Älä liitä niihin oikeaa QR-koodia, osoitetta tai vientitiedostoa. Reposta löytyy apuvälineet keinotekoisen esimerkin tekemiseen.