Yubico社は5月21日付けの自社ブログで、YubiKeyの最新のファームウェア5.7を搭載したYubiKey
を近日提供開始することを発表していました。
参考)Yubico Blog
Now available for purchase: YubiKey 5 Series and Security Key Series with new 5.7 firmware
この度、この最新のファームウェア5.7を搭載したYubiKey 5C NFCが手元に届いたので、どこが変わったのか実際に触ってみようと思います。
YubiKeyの外見

ファームウェア5.7を搭載したYubiKey 5C NFC
今回入手したYubiKeyはUSBの接続がTypeCのものです。
ブリスターパックを開けてみました。

YubiKey表面

YubiKey裏面
見た目は従来のYubiKey5と違いはないように見えます。
ファームウェアのアップデートなので、当然と言えば当然かも。
ファームウェアアップデートでの変更点
Yubico社のブログを参考に、今回のファームウェアアップデートでの変更点を挙げると次のものがあります。
- 拡張されたパスキーとパスワードレス ストレージ機能 - 一度に最大 100 個のデバイス バインド パスキー (25 個から増加)、64 個の OATH シード (32 個から増加)、24 個の PIV 証明書、および 2 個の OTP シードを収容でき、合計 190 個の認証情報になります。
- より大きな RSA キー (RSA-3072 および RSA-4096)、Ed25519、および X25519 キー タイプのサポートを含む公開キー アルゴリズムの拡張と強化により、組織のキー管理機能と柔軟性が向上し、より強力な公開キー アルゴリズムに関するDoD メモの要件に準拠します。RSA および ECCの基礎となる暗号化操作 (復号化、署名など) を実行する Yubico 独自の暗号化ライブラリへの移行。
- エンタープライズ認証により、 FIDO2 登録中に ID プロバイダーが YubiKey からシリアル番号を読み取れるようになり、FIDO2 登録中の一意の識別子の取得が容易になり、資産追跡が効率化されます。
- FIDO2、PIV、OpenPGP を含む すべての YubiKey アプリケーションで PIN の複雑さの設定が強化されました。
- FIDO クライアントから認証プロトコル (CTAP) 2.1 の実装により、PIN の強制変更や PIN の最小長など、FIDO2 PIN に関する改善がもたらされ、「代理登録」シナリオでの PIN 要件が解決されます。
1について
登録できるパスキーの数が25個から100個に増えたほか、OATHのシードやPIV証明書のシードを保存する容量が増えました。
以前に比べてパスキーに対応したサービスや製品が増えてきているので、将来を見据えて登録できる数を増やしたようです。
現時点ではなかなか上限である25個以上のパスキーを利用する人は少ないとは思いますが、今後のことを考えると、ストレージに余裕があるのは助かるのではないでしょうか。
2について
より大きな鍵長のアルゴリズムに対応しました。
元々複数の鍵タイプに対応していましたが、順当にセキュリティ強度が高いアルゴリズムが増えています。
3について
FIDOの登録中に、IDプロバイダーがYubiKeyのシリアル番号を読み取ることが出来るようになり、YubiKeyを識別できるため、個人のYubiKeyを登録させないなどの管理が可能になります。
ただし、利用するためにはYubicoの工場出荷時に別途カスタマイズが必要とのことで、出荷済みのYubiKeyではこの機能は利用できないようです。
4について
FIDO2やPIVなどで使用するPINの複雑さの設定を行うことが出来るようになりました。
ただし、こちらも利用するためにはYubicoの工場出荷時に別途カスタマイズが必要とのことで、出荷済みのYubiKeyではこの機能は利用できないようです。
5について
PINの強制変更やPINの最小の長さの制限など、PINに関する設定を制限できるようになりました。
この機能を使えば、管理者がエンドユーザーにYubiKeyを配布する前にPINの運用方法を指定することが出来ますので、従来のパスワードの要件のように、PINに最低文字数や初回必ず変更させるといった制限を行うことができます。
これは企業によってセキュリティポリシーがある場合には、それに則ったYubiKeyの運用ができるので、セキュリティポリシーを徹底したいシステム管理者にとって有用な機能ではないでしょうか。
これらのPINの制限設定についてはコマンドを使って実際に試すことが出来そうなので、早速試してみたいと思います。
PINの制限設定を試してみる
基本的には管理者が行う設定のようですので、一例として以下のような想定を立ててみます。
- 自分が管理者で社員にFIDO認証用にYubiKeyを配布する
- 会社のセキュリティポリシーとしてPINを10桁以上の要件を満たしたい
- PINは社員それぞれが設定するようにしたい
上記の想定を実行するため、YubiKeyに次の2点の設定を試してみたいと思います。
- PINの最小桁数を設定する
- 利用する際に必ずPINを変更させる
それでは実践編です。
設定を行うための事前準備
PINの設定を変更するためにはYubiKey Manager CLIというツールでコマンドを実行する必要があります。
※GUIのYubiKeyManagerでは出来ないようなので注意。
また、コマンドに対応しているのはYubiKeyManagerCLIのバージョン5.4.0以降なので5.4.0をダウンロードします。
https://developers.yubico.com/yubikey-manager/Releases/
サイトにアクセスし、5.4.0をダウンロードします。

試している環境はWindowsなのでWindowsのインストーラーをダウンロードしてインストールを実行します。
インストールが完了したらコマンドプロンプトを実行します。
※コマンドプロンプトは管理者権限で起動する必要があります。
コマンドはYubicoが公開しているページを参考にしました。
YubiKey Manager (ykman) CLI and GUI Guide
コマンドのバージョンを確認します。
ykman -v

YubiKey Manager のバージョン5.4.0がインストールされていることが確認できます。
デフォルトのPINを設定する
PINの制限をするためにはあらかじめデフォルトのPINを設定する必要がありました。
※PINを設定していない出荷状態のままで制限設定を行おうとすると「ERROR: No PIN is set.」というエラーになりました
デフォルトのPINはWindowsのシステム設定からやYubiKeyManagerのGUI版でも設定することができます。
FIDO2セキュリティキーのPINの設定 / 指紋の設定 - Windows編
今回はこのままCLIコマンドを使って設定します。
次のコマンドで6桁のPIN(123456)を設定します。
ykman fido access change-pin -n 123456
設定が出来たので次にPINの制限設定を試していきます。
PINの最小桁数を設定する
次のコマンドでPINの最小桁数を10桁に設定します。
ykman fido access set-min-length 10
設定時に現在のPINを要求されるので設定済みのPIN(123456)を入力します。

設定が変更されました。
試しに10桁より短いPINに変更してみます。
次のコマンドで8桁のPINを指定して実行します。
ykman fido access change-pin -n 12345678

指定した10桁よりPINが短いため、エラーが表示され、変更が失敗しました。
想定通りですね。
[補足]
Windowsのシステム設定からPINを変更する際に短いPINを入力した場合、「もう少し複雑なPINを設定してみてください。」というエラーが表示されます。
PINの長さについてのメッセージではないためわかりにくく、注意が必要です。

次は10桁のPINを設定してみます。
ykman fido access change-pin -n 1234567890

こちらはエラーが出ることなく成功しました。
注意点として、PINの最小桁数を変更するとそれ以降、一度設定した文字数より長い桁数は設定できますが短い桁数は設定できなくなるようです。
例えば10桁を設定した後に12桁に増やすことはできますが8桁に減らすなどはできません。
誤って設定した場合はFIDOの情報をリセットする必要があります。
強制的にPINを変更させる設定
今度は利用する前にPINを強制的に変更させる設定を試してみます。
次のコマンドを実行します。
ykman fido access force-change
現在のPINを入力します。

設定が完了しました。
設定がうまくいっているか確認するため、この状態でFIDO認証が使えるかを試してみます。
FIDO認証を試すため、YubiOnのFIDO Logon管理画面にFIDOでのログインを試します。
Windows11のPCで動作を確認します。

セキュリティキーを選択した時点で「セキュリティキーを使用する前にPINを変更する必要があります。」というメッセージが出ました。

その後、少し経つとPINを変更するウィンドウに切り替わりました。
そのまま現在のPINと、新しいPINを2回入力してOKボタンを押すと、PINを変更することができます。
この操作はユーザーから見ても非常にわかりやすいですね。
利用者が必ず一度はPINを変更するまで、YubiKeyを利用させない運用ができそうです。
[補足]
ちなみにWindows10の場合は動作が異なります。

FIDO認証を行うためのPINを入力した時点で、正しいPINを入力しているはずなのにPINが正しくないというメッセージが出て失敗になりました。
一応想定通りでしょうか。
Windows10の場合は、Windows11で試した時のように自動的にPINの変更シーケンスに移行してくれず、単純にPINを変更しないとYubiKey側が正しいPINとして扱ってくれないということのようです。
PINが正しくないというメッセージだけなので、PINを変更しないといけないのか単純に入力するPINを間違えたのか区別がつかないのでこの点は注意が必要です。
自動的にPIN変更ウィンドウがでないので、別途PINを変更します。

※今回はコマンドでPIN変更していますが、一般のユーザーがPINを変更する場合はWindowsのシステムから行う方がわかりやすいと思います。
FIDO2セキュリティキーのPINの設定 / 指紋の設定 - Windows編
同じようにFIDO認証を行うために変更後のPINを入力してみると、今度はエラーにならずにキーのタッチを要求されました。

ユーザがWindows10のPCを使っている場合、運用を考える管理者はこのあたりの違いを押さえておく必要がありますね。
まとめ
ファームウェアバージョン5.7を搭載されたYubiKeyが提供されるようになりました。
見た目は特に変化はありませんが、いくつかの機能が追加されました。
そのうちのPINの管理機能については、YubiKey Manager CLI(バージョン5.4.0)をインストールしてコマンドを実行することで利用することができます。
PINの制限機能は一般利用者側から見れば特に影響がある機能ではありませんが、企業の管理者が社員にYubiKeyを配って利用させる場合にはできることが増えて管理の選択が広がる機能でした。
ただし、使っているWindowsOSによって挙動が変わる部分がありますので、管理者が社員にYubiKeyを配る運用の際には、初期設定マニュアルなどはしっかり作成する必要がありそうです。
弊社で販売しているYubiKeyもこのファームウェア5.7を搭載したモデルを順次お取扱いいたしますので、認証器をお求めの方は弊社にお問い合わせください。
弊社ではセキュリティキーを使用したソリューションも展開しているので、ご興味のある方は是非ソリューションやブログ等をご覧ください。
最後までお読みいただきありがとうございました。