YubiKeyで静的パスワードを扱う

はじめに

静的パスワードを管理するYubiKey 5Secure Static Password という機能を使ってみたので、使った感想を記録しておきます。

Secure Static Password 機能について

Secure Static Password は、パスワードをYubiKey に登録して、そのパスワードを入力したい位置にカーソルを置いてYubiKey をタッチすると、登録したパスワードが入力されるという機能です。

パスワードは1件しか登録できないので、パスワードマネージャーのように複数のサービスのパスワードを管理できる訳ではないです。

環境

今回、普段使っているパスワードマネージャー1Password のログイン時に入力しているマスターパスワードをYubiKey に登録して使ってみようと思います。

  • OS:macOS Monterey
  • YubiKey Manager (ver.1.2.4)
  • YubiKey 5 NFC
  • 1Password (ver.8.7.0)

使い方

1. YubiKeyに静的パスワードを登録

YubiKey Manager を起動してYubiKey をパソコンに挿入し、メニューの[Applications] > [OTP] をクリックします。

YubiKey Manager >OTP

YubiKey 5 のOTP にはスロットが2つあり、タッチする時間で使い分けができるようになっています。

  • Slot 1:Short Touch(1〜2.5秒)
  • Slot 2:Long Touch(3〜5秒)

今回は空のSlot2 を使うのでLong Touch (Slot2) の[Configure] をクリックします。

YubiKey Manager >OTP > Long Touch(Slot2)

[Static password] を選択して[Next] をクリックします。

YubiKey Manager >OTP > Long Touch(Slot2) >Static Password

任意の文字列を手入力するか、[Generate] をクリックしてランダムな文字列を生成して登録するパスワードを入力し、[Finish] をクリックします。

  • 入力できる文字種は、ModHex 形式USキーボードで使われる文字のどちらかを選択することができます。
  • デフォルトはModHex形式 で、USキーボードで使われる文字に切り替える場合は、”Allow any character” のチェックをONにします。
  • ModHex形式は、全ての言語のキーボードで共通の文字のみ( “c b d e f g h i j k l n r t u v” )で構成され、大文字と小文字の32文字が使えます。
YubiKey Manager >OTP(登録後)

元の画面に戻ると、Long Touch (Slot2) が”This slot is configured” に変わっていました。

  • 登録後に[Configure] をクリックした先の画面で登録したパスワードを確認することはできなかった
  • パスワードは1つしか登録できないので、再度[Configure] から同じ操作で登録すると上書きされる

2. YubiKeyに登録した静的パスワードを使う

1Password のアプリケーションを起動してYubiKey をパソコンに挿入します。

1Password

パスワードの入力欄にカーソルがある状態で、YubiKey を長くタッチすると、登録したパスワードがマスクされた状態で入力され、リーターンキーを押さずにそのままログインすることができました。

間違えて短いタッチをするとSlot1 に設定されているYubico OTP が入力されるので、タッチする長さには気を付ける必要がありそうです。

推奨の使い方

Yubico社が推奨する使い方について

推奨の使い方

Secure Static Password の機能はパスワードの一部にのみ使うことを推奨すると書かれています。
パスワードの前方部は記憶できる文字列後方部はYubiKeyに登録する第三者の推測困難な文字列とするという感じです。

使用例は、以下の通りです。

  1. “Sunny33″を記憶して、”rcltrcihbkkiulnveuenervidliliifv”をYubiKeyに登録し、対象のサービスのパスワードは”Sunny33rcltrcihbkkiulnveuenervidliliifv” で登録する
  2. 対象のサービスにログインする際に、”Sunny33″を手入力し、続けてYubiKeyをタッチして”rcltrcihbkkiulnveuenervidliliifv” を入力する

万が一、YubiKey が盗まれてもパスワードの一部しか漏洩しないので、不正ログインを防ぐことはできそうですが、公開されている使い方なので、記憶できる部分が推測が容易だと簡単に突破されてしまいそうです。

あとがき

  • YubiKey のタッチして文字を入力する仕組み
    • YubiKey はパソコンにUSB 接続するとキーボードとして認識され、タッチするとキー入力として信号がパソコンに送られる
  • ModHex形式 のパスワードについて
    • [Generate] で32桁を生成できるので、ModHex形式で生成した32桁を使うのでもよさそう(32の32乗パターン)
  • USキーボードのパスワードについて
    • 日本語のJISキーボードのパソコンで使うと、USキーボードと配置が違う記号が登録と異なる記号で入力されるかと思ったけれど、登録と同じ状態で入力された
    • 記憶が困難な文字列を登録するのであればUSキーボードで生成するのでもよさそうだけれど、サービス側が許可しない記号が含まれていないようにする必要があるのが若干面倒
  • YubiKey の扱いに注意が必要
    • キーボードで文字入力中にYubiKey に手が触れると、登録されている文字列がプレーンテキスト状態で入力される
    • 無意識にYubiKey に手が触れて登録されている文字列が入力され、入力されたことに気付かないでファイル等を保存するみたいなことも起こりうる
    • デフォルトでShort Touch(Slot1) に設定されているYubiKey OTP は、タッチしてYubiKey から出力される文字列はYubiKey のID(12文字) とAES-128の暗号文(32文字) を結合した44桁の文字列なので漏洩しても大して問題ない
    • Secure Static Password はタッチしただけで生パスワードが漏洩する。推奨の使い方に従ったとしても、生パスワードの一部が漏洩することになる
  • スマホでも使えるか?
    • スマホにUSB接続してキーボードとして認識されれば、パソコンと同じように使える
    • 手持ちのAndroid 端末(Pixel)では使えた
  • 1Password のマスターパスワードで使うことについて
    • Touch ID が使えるMac であれば、Touch ID で1Password にログインできるので、普段はマスターパスワードを入力する機会がない
    • 1Password のサポートページにマスターパスワードは一意でランダムで記憶できるものにしましょうと書かれているが、凡人には困難
    • 第三者に突破されずらいパスワードを扱いやすくすることができるだけでもSecure Static Passwordは使う価値があるのでは?

参考