😺

FIDOキーのPINを設定したりスペックを表示したりするツールを作った

2021/07/25に公開

はじめに

FIDO2に対応したセキュリティキーのPINを設定したり、スペックを取得したりするツールを作成しました。

mac専用です。64bitのMacBookでビルドしたバイナリなんでM1とか32bitのmacでは動かないと思います。

対応しているセキュリティキーはUSB接続でFIDO2に対応しているもの、以下のものは動くかと思います。

  • Yubikey Blue (Security Key Series)
  • Yubikey Black (YubiKey 5)
  • FEITIAN ePass FIDO(A4B)
  • FEITIAN BioPass K27 USB Security Key
  • FEITIAN AllinPass FIDO2 K33
  • SoloKey
  • Nitrokey FIDO2
  • OpenSK
  • GoTrust Idem Key

注意

  • セキュリティキーといったら超大事なものなので最悪リセットして中のデータすっかり消えてもいいくらいのFIDOキー使ったほうがいいです。

  • 本ライブラリ・デモプログラムを利用することによって生じるいかなる問題についても、その責任を負いません。

ソース

Rustで作ってます。MITでGitHubに置いています。

https://github.com/gebogebogebo/ctap-hid-fido2

crate

CTAPエンジンは crate にしていて crates.io で公開しています。

https://crates.io/crates/ctap-hid-fido2

インストール

brew tap gebogebogebo/tap
brew install ctapcli

使い方

ヘルプ

ctapcli -h

PCに刺さっているFIDOキーを表示する

ctapcli -f

結果の例

Enumerate FIDO key
- vid=0x1050 , pid=0x0120 , "product=Security Key by Yubico usage_page=61904 usage=1 serial_number="

PINリトライ回数を見る

ctapcli pin

PIN初期設定

% ctapcli pin -n
PIN Management.

Set new PIN.

new PIN:
[新しいPINを入力]

Success! :)

PIN変更

% ctapcli pin -c
PIN Management.

Change PIN.

current PIN:
[現在のPINを入力]

new PIN:
[新しいPINを入力]

Success! :)

FIDOキーのスペックを見る

ctapcli info

結果の例

Get the Authenticator infomation.

Get all data.
- versions                     = ["U2F_V2", "FIDO_2_0"]
- extensions                   = ["hmac-secret"]
- aaguid(16)                   = F8A011F38C0A4D15800617111F9EDC7D
- options                      = [("rk", true), ("up", true), ("plat", false), ("clientPin", true)]
- max_msg_size                 = 1200
- pin_uv_auth_protocols        = [1]
- max_credential_count_in_list = 0
- max_credential_id_length     = 0
- transports                   = []
- algorithms                   = []

アンインストール

brew uninstall ctapcli
brew untap gebogebogebo/tap

お疲れさまでした

memo サブコマンドで簡易メモを登録することもできますー

ctapcli memo -h

Discussion