😺
FIDOキーのPINを設定したりスペックを表示したりするツールを作った
はじめに
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に置いています。
crate
CTAPエンジンは crate にしていて crates.io で公開しています。
インストール
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