Authy Desktopが終了するので秘密鍵を抽出して他ツールへ移行する

Authy Desktopが2024年3月にサービス終了

Authyは人気のある2FAアプリケーションの一つだったが、 2024年3月にデスクトップ用Authyが終了する発表されている。 元々は8月の予定だったが、3月に前倒しになった模様。

自分はAndroid, Linuxの環境下でAuthyを使っていたがデスクトップ版が終了するため、モバイル版はAegisとデスクトップ版はGnome Authenticatorに移行することにした。

移行先の選定

Authyの一つ大きなポイントはデスクトップ・モバイルデバイス間の各クライアントでの同期だが、これはAuthyのサーバ経由で秘密鍵を同期することで実現されている。

AegisはOSSのTOTPクライアントだが、Android向けしかないため、デスクトップ向けにはGnome Authenticatorを使うことにした。

AuthyからTOTPの秘密鍵のエクスポート

公式を漁ったがAuthyの秘密鍵をエクスポートする方法が見つからなかった。 どうやらAuthyの秘密鍵のエクスポートはサポートされていないため、各自で何らかのアプリやツールを用いた移行が必要となる。

rootが取れるAndroid端末があれば、Aegisや他のアプリからもエクスポートできるらしいが自分はroot取得していないので https://github.com/token2/authy-migration を使った。

  • authy-migrationはクライアントのふりをしてバックアップから秘密鍵をダンプする

    • 廃止されたAuthy Chrome Appのapi_keyを内部で使っている模様
    • 2024年3月現在はまだ使えているが、APIキーがいつまで使えるかは不明なので早めに移行すべき
  • Authy側の設定でバックアップを有効にしておく

  • リポジトリをクローンし、コードを読んで問題なさそうだったのでターミナルで以下のコマンドを実行した

$ go run ./cmd/authy-export/authy-export.go
  • 国番号, 電話番号を入力する
  • モバイルのAuthyアプリから新規クライアント追加の通知が飛んでくるので許可
  • バックアップ用のパスワードを入力し、暗号化されたデータを復号
  • エクスポートする形式はファイル名で形式が変わるようで.htmlだと複数のQRが入ったHTMLが出力される

Aegis / Gnome Authenticatorへのインポート

  • Aegisのアプリからauthy-migrationで取り出したHTML上のQRコードをスキャンし、その後Gnome Authenticatorにまとめてインポートすることでデスクトップとモバイルの同期が行える。
  • 今後はAegisに追加 → QRコードをGnome Authenticatorで読み込むという手順で同期する(追加頻度が高くなければ都度同期でも良い)
  • AegisはAndroidのクラウドバックアップがサポートされているが、他のクラウドストレージに同期しつつ、デスクトップと共有するのも良いかもしれない

まとめ

  • 秘密鍵のエクスポートをサポートしないAuthyから柔軟な2FA管理に移行した
  • 依存するツールはエクスポート/インポート機能と標準形式を含む複数の形式をサポートしていることが重要(自戒)