KeePassXCにワンタイムパスワードを設定するとすごく便利、でもこれ危なくないか?
みなさま、Googleなど各種サービスのアカウント・パスワードはどのように管理しているでしょうか。今回紹介するKeePassXCは、アカウント・パスワードを登録して、マスターパスワードで暗号化してファイルに保存できる、パスワード管理アプリの一つです。今回はこのアプリの「ワンタイムパスワード設定機能」に感じた便利さと危うさについて書いていきます。
ワンタイムパスワードの概要
ワンタイムパスワードは、ログイン時にアカウント・パスワードとは別に入力が要求されるもので、Google Authenticatorなどのスマホアプリで生成したり、スマホにSMSで通知されたりします。この場合、仮にアカウント・パスワードが漏洩しても、ワンタイムパスワードを取得するスマホがないとログインできないため安全という理屈ですね。詳細は「多要素認証」(Wikipediaで恐縮ですが…)を参照してください。
KeePassXCのワンタイムパスワード機能は使っていいのか?
このGoogle Authenticatorスマホアプリに相当する機能がKeePassXCにもあって、アカウント・パスワードに加えて、ワンタイムパスワードもKeePassXCで管理できます。この環境を作ると、Webページへのログイン時にKeePassXC一つですべてのセキュリティ情報を参照できて超便利です!
…と思っていたのですが、これ考えてみたら危なくないかと思い立ちました。前述の通り、ワンタイムパスワードによる防御は、ワンタイムパスワードを取得できる環境が限定されることに立脚しています。KeePassXCのパスワードファイルを読み取るにはマスターパスワードが必要ですが、万一パスワードファイルとマスターパスワードの両方が漏洩した場合、アカウント・パスワード・ワンタイムパスワードのすべてをKeePassXCから取得できるため、ワンタイムパスワードによる防御が成立しません。
KeePassXCのFAQにはこう書いてある
このあたり、KeePassXCのFAQには以下の通り記述がありました。
抄訳を以下に示します(Chromeブラウザーで翻訳後、手動で微調整)。TOTP シークレットはワンタイムパスワードを生成するためKeePassXCに登録するデータ、2FAは2要素認証(多要素認証の要素数が2個のもの)を表します。
要するに、KeePassXCでワンタイムパスワードを管理する場合、セキュリティを気にするならパスワードとは別のデータベースファイルにしてくれという案内です。だったら最初から別のワンタイムパスワードアプリを使いますよね。「2FA をまったく使用しないよりは安全」という記述に、なんともなげやりな印象を受けてしまいました。
筆者が思うところ
KeePassXCでワンタイムパスワードを管理する機能をちょっと使ってみましたが、ログイン時にワンタイムパスワード用スマホを持ち出す必要がなく、KeePassXCだけを見ていればいいので本当に便利です。でもこの便利さは「人をダメにするタイプの便利さ」と感じました。スマホを持ち出す面倒は、ワンタイムパスワードのセキュリティを成立させるのに必要なものといえます。
KeePassXCが脆弱とかそういう話ではなく、便利な機能があったとしても、利便性とセキュリティを利用者側で吟味して使いましょうという話かと思います。皆様におかれましても、ご利用は自己責任でお願いいたします。
余談
本記事のため、KeePassXCや、Google Authenticator/Authyといったワンタイムパスワードアプリのスクリーンショットを取得しようとしたのですが、ことごとく何も映りませんでした。そのあたりさすがセキュリティを考慮してしっかり作られているようです。
KeePassXCには、元となる「KeePass」というアプリが存在しますが、このKeePass(2.x)にもワンタイムパスワードの生成機能が実装されているので、本記事で言及した件は「そんなことは最初から分かっている」という感じなのでしょう。
この記事が気に入ったらサポートをしてみませんか?