😄

KeePassとAuthyからBitwardenと2FASに移行した話

2024/06/08に公開

概要

パスワードマネージャ(パスワード管理アプリ)をKeePassからBitwardenに、
二要素認証アプリをAuthyから2FASに移行したお話です。

前提(要件)

  • PCはMacBook
  • スマートフォンはAndroid
  • パスワードマネージャ
    • 相互にパスワードデータベースを同期出来ること
    • 将来他のアプリへ移行したくなった際はJSONやCSV等の標準形式でExport出来ること
  • 二要素認証
    • tokenはBackup可能なこと
    • 将来他のアプリへ移行したくなった際はExport機能があること
  • 個人ユースなので完全無料であること
  • OSSであること

背景

長年パスワードマネージャアプリのKeePassXCをMacBookにて、KeePassDXをAndroidにて利用していました。
また、二要素認証(Two Factor Authentication)アプリとしてAuthyをMacBookとAndroidで利用していました。

動機

パスワードマネージャ

元々問題意識として、KeePassのデータベースファイル(*.kbdx)のMacBookとAndroid間の同期があまりスムーズではない事を課題だと感じていました。
KeePassのデータベースファイルをGoogle Drive上に配置し、MacBookにはGoogle Drive syncアプリを、AndroidはGoogle Driveアプリでそれぞれアクセス出来ますが、頻繁にデータベースのリンクがAndroid側から切れていました。
この辺の話は

等に載っていますが、いずれにせよ現状だと私にはどうするのが最善なのかわかりかねていました。
ここまでがパスワードマネージャにKeePass系を使うことの課題です。

二要素認証

次に、二要素認証についてですが
https://nomeu.net/8879/
等、Authyを使い続けるのも微妙だなと思っているところでした。
マルチプラットフォームで、自動で同期してくれるなど使い勝手は大変良いのですが、Authy Desktop版が最近終了したりしていて、サービスそのものが終了したときには本当に困るなと思っていました。
また、AuthyはClosed sourceな為、セキュリティ的に本当に安全かはわからないというのもあります。


ただ、この状態で長年運用してきていて、転機が訪れました。
会社で1Passwordを配布して頂き、初めてこれを使用してみて大変良いと感じ、今の運用を見直すきっかけになりました。
1Passwordは品質は良いのですが、有料なので個人では使いたくありません。
そこで色々Researchしてみた所、下記が良さそうだと判断し実行に移しました。

  • パスワードマネージャ: Bitwarden
  • 二要素認証アプリ: 2FAS

選定した理由

パスワードマネージャ

KeePass系はlocalで管理するだけならとても良いアプリだと思います。ただ冒頭で述べた通り同期しようとするとちょっと煩雑に感じます。
この記事ではBitwarden推しです。
Bitwardenのメリットとしては

  • OSSであること(安全性が高いと思われる)
  • 無料で利用可能なこと(にも関わらずクラウドで自動同期)
  • Vaultwardenのように自前でサーバ構築、維持管理をする必要がないこと(することも出来ますが、手間を極力少なくしたいです)
  • UI/UXが優れていること
  • password databaseをExport可能なこと

等があります。

二要素認証アプリ

こちらは、AndroidではAegis Authenticatorがredditなどでは人気のようでした。
試用していないので詳しくはわかりませんが、どうやらKeePassのようにtoken databaseをファイルとして自分で管理する必要があるっぽい(?)ようで、
その点がちょっと引っかかり避けました。
2FASであれば、

  • OSSであること
  • 無料で利用可能(tokenは自分のGoogle Drive上で自動同期)なこと
  • UI/UXが優れていること(特に、ブラウザ拡張と合わせることでスマートフォンのtokenを見ながら手入力する必要はなく、自動入力可能)
  • tokenをExport可能なこと

等がメリットとしてあげられます。

移行手順

パスワードマネージャ

KeePassXCに関しては、DatabaseをCSV形式でExport可能なので、Exportした後にBitwardenへImportするだけで簡単なので割愛します。

二要素認証

こちらは、Authyからの移行だとなかなか大変です。
というのも、AuthyはtokenをExportする機能を(多分あえて)提供していないので、普通にやるなら全てのサイトの二要素認証を解除して、再設定しつつ2FASに登録していく作業が必要です。
しかし流石にこれはやりたくなかったので、なにか無いかと調べていた所、下記のGo製のauthy-exportツールが非常に助かりました。
https://github.com/alexzorin/authy
このCLIツールを使うと、authyのtokenを全部Exportしてくれるので、README.mdにある通りにExportしたファイルをbash scriptでloop処理することで、
全ての2FA tokenのQRコードをTerminal上に生成して表示することが可能です。
後はこれを1つ1つ2FASで読み込めばtokenの移行は完了します。
一番技術的な対応が必要なのはこの部分だと思います。

注意事項

Mac版のBitwardenで指紋認証を使いたい場合、brewでインストールしたバージョンは使えず、App Storeからインストールする必要があります。
Bitwardenの自動クレジットカード情報入力機能は、有効期限を自動入力してくれないことがありました。
この点については、Chromeのクレジットカード情報自動入力機能の方が優秀なので、併用で良いかなと思っています。

感想

結構時間を費やしましたが、移行して本当に良かったと思っています。
KeePassXCとKeePassDXの間の同期はGoogle Driveで頑張っていましたが、うまく同期されない点には日頃からストレスだったので、
この点がBitwardenの提供してくれるクラウド上で自動で完璧に同期されるのは本当にありがたいです。
2FASについても、今までAuthyのtokenを目で見て手動入力していたのが、自動入力されるので快適になりました。

追記

https://www.itmedia.co.jp/enterprise/articles/2407/06/news052.html

今回のアップデートは2024年6月下旬に発生したAuthyの脆弱(ぜいじゃく)性による3300万件以上の電話番号流出インシデントに対処したものとされている。

Discussion