kmille@linbox:~ ykman --モデル YubiKey スーパーバイザー (ykman) モデル: 4.0.9
Yubikey のファームウェアのモデルによっていくつかの側面が異なります。 Yubikey のツーリング (言葉遣いが気に入っています) 球形は、ほとんどが少しわかりにくいものです。 実際に非常に長い時間が経過した後に何かを再構成する必要がある場合は、この記録を参照として使い果たします. 前回までお世話になったので、小粋に書き直しました。 あなたにも役立つことを願っています。 何かが汚染されている/欠けている場合は、私と連絡を取って回収してください (ハッカーデータの議論 ). Yubikey が正常に検出された場合に変更されたかどうかを確認し、どのモードが無効になっているかを調べます。有効、排気:
kmille@linbox:~ ykman チェックリスト
YubiKey 5 NFC (5.1.2)シリアル番号: 1312 kmille@ linbox:yubikey ykman records ソフトウェア形式: YubiKey 5 NFC シリアル番号: 1312
ファームウェアモデル: 5.1.2
元ネタ:キーホルダー(USB-A)
H7TTOPOIDLOXGT4E)。 これらの 32 の秘密と戦術を Yubikey 楽器に追加できることは間違いありません。 GUI ユーティリティを購入した場合、Yubico Authenticator (yubioath-desktop 装置)。 Yubico Authenticator はシークレットを小売りしなくなり、Yubikey 機器にトークンを要求します。
ykman config usb --enable-all ) 合計で、TOTP(時間ベースのワンタイムパスワード) 2FA (2要素認証) の履歴です。 これにより、ログイン中に入力するのが最も多い 6 (通常は 8) 桁のトークンが得られます。 キー key は detrimental32 でフォーマットされます (例: USB有効インターフェイス: OTP、FIDO、CCID NFC トランスポートが有効になっています。
機能 USB NFC FIDO2 有効 有効 OTP 有効 有効
FIDO U2F 有効 有効 OATH 有効 有効
OpenPGP 有効 有効 PIV 有効 有効 YubiHSM Auth すぐにアクセスできなくなった すぐにアクセスできなくなった
ykman config nfc --PIV を無効にする
もあるかもしれません。 Android用のNFCポークアップ付き。
を使用した関連行ツール:
kmille@linbox:~ ykman oath accounts add take a look at --touch
秘密鍵を入力してください (detrimental32): H7TTOPOIDLOXGT4E kmille@linbox:~ ykman宣誓アカウントチェックリスト を見てみましょう
kmille@linbox:~ ykman の誓い acc カウントコード YubiKeyをタッチして...
629211 をご覧ください
kmille@linbox:~ ykman宣誓口座コード -s Hetzner
あなたの YubiKey をタッチしてください... 940658
kmille@linbox:~ ykman宣誓アカウントを削除して見てください
削除神話: 見てみよう で ? [y/N]: はい 削除しましたのでご覧ください。
kmille@linbox:~ ykman宣誓アカウントチェックリスト kmille@linbox:~ )
シークレットのバックアップが必要です。 Yubikey を紛失した場合は、Google Authenticator などの他のツールにシークレットを追加するか、数行の Python コードを使い果たすことで、穏やかなログインを実現できます。 KeepassXC
も滑らかな特性を持っていますTOTP用。 ただし、日常的に使用する同一の Keepass データベース内には設定しないでください。
インポート 時間 インポート
pyotp otp=pyotp.totp.TOTP("H7TTOPOIDLOXGT4E")
一方 1 : print(otp.now()) time.sleep(2) これにより、2 秒ごとに 6 桁のトークンが出力されます (pip のセットアップが必要です --user pyotp
).
ほとんどの場合 U2Fは FIDO2 または WebAuthn
。 ファンシーな TOTP トークンである U2F は、2 成分認証のネット ログイン全体で履歴を残す可能性があります。 TOTP の亜種は、ユーザーがフィッシング ネットの問題資料にもトークンを入力するため、フィッシング攻撃の危険にさらされています。 U2F は、SSL チャネル ID とログイン ネット ページのブラウザ URL (
)。 ユーザーは U2F を使用しますが、ブラウザーは Yubikey インストルメントに正確に話しかけます。特別なドライバーやツールは不可欠ではありません。 すべての不可欠なブラウザ が U2F を起動しますを含むベンチャー レスポンス メカニズムの排気によって、この問題を解決します。 docs 。 Arch Linux では、libfido2 装置。 あなたがFirejailを消費するのに対して サンドボックス、
内の browser-disable-u2f no の住居にトップです/その他の完全なファイル/firejail/firejail.config.
U2Fは簡単に排気できます。 あるレベルのセットアップでは、オンラインの神話と Yubikey の楽器を組み合わせます。 あるレベルのログインでは、理想的には Yubikey に触れる必要があります。 これを照会 demo
ユーチューブでその気持ちを救います。 Yubico デモで U2F を確認できます。オンラインのネットページ。 NFC搭載のAndroidで使い切るのもとても素晴らしいです。シークレットを所有していないため、バックアップはチャンスごとにバックアップする可能性があります。 そのため、神話に複数の U2F デバイスを追加するか、追加の 2FA 方法として TOTP を追加するのが一番です。 バックアップは、おそらくあなたの IT 部門であり、彼らがもう一度復旧エントリを作成する場合に備えてください。 Google は U2F を 50,000 のワーカー .
FIDO2 (U2F) を使用した SSH
![]()
私はこの特性を尽くすつもりはありません。私の Yubikey ファームウェアの神話は、私のニーズに対して弱すぎるだけです。 私はed25519を使い果たしません(理想は NSA 曲線 sk-ecdsa-sha2-nistp256) および常駐特性は、ファームウェア 5.2.3 以降で理想的に機能します。 あなたは ですが、以下にリストされているのは道徳的な読み物です:
https://www.stavros.io/posts/u2f-fido2-with-ssh/
- https: //developers.yubico.com/SSH/Securing_SSH_with_FIDO2.html
https://gist.github.com/reanim8ed/35a998b018f976e1189fe7266b2d1a43 kmille@linbox:~ ssh-keygen -t ed25519-sk
公開/非公開の ed25519-sk 鍵ペアを生成しています。
また、主要な能力を承認するために、オーセンティケーターに触れなければならない可能性があります。 キーの登録に失敗しました: 要求された特性はサポートされなくなりました
kmille@linbox:~ ssh-keygen -t ecdsa-sk -O 常駐
公開/非公開の ecdsa-sk キー ペアを生成しています。
また、主要な能力を承認するために、オーセンティケーターに触れなければならない可能性があります。
キーの登録に失敗しました: 要求された特性はもはやサポートされていません
kmille@linbox:~ ssh- keygen -t ecdsa-sk 公開/非公開の ecdsa-sk キー ペアを生成しています。
また、主要な能力を承認するために、オーセンティケーターに触れなければならない可能性があります。
有名な (/dwelling/kmille/.ssh/id_ecdsa_sk) を設定するファイルを入力してください:
パスフレーズを入力してください (空 for パスフレーズなし):
同じパスフレーズをもう一度入力してください:
あなたの身分証明書は /dwelling/kmille/.ssh に保存されました/id_ecdsa_sk
あなたの公開鍵は /dwelling/kmille/.ssh/id_ecdsa_sk.pub に保存されました )
Yubikey を使い果たしてキーボード (HID - ヒューマン インターフェイス ソフトウェア) をシミュレートし、静的パスワードを入力することは間違いなく可能です。 YubiKey 5 NFC の場合、2 つのスロットがあり、1 回のチャンスごとに排出されます (短いタッチでスロット 1 がトリガーされ、長時間のタッチでスロット 2 がトリガーされます)。 静的パスワードの特性を使い果たすことによる、使い尽くされたケースやセキュリティ上の利点は見当たりません。 パスワードを手動で入力し、それを Yubikey のパスワードと連結した場合でも、キーロガーの穏やかな人は両方の部分を取得します (パスワードを再利用しないと仮定します)。 適切な収入は、高度なパスワードを覚えておく必要がないことです。 それを排出する方法は次のとおりです:
kmille@linbox:~ ykman otp static --keyboard-layout de 1
静的パスワードを入力してください: hiya world
スロット
1 は既に構成されています。 構成を上書きしますか? [y/N]: はい
#ゆびきーにタッチ kmille@linbox:~ hiya world
zsh: 画像が表示されなくなりました: hiya
kmille@linbox:~ ykman otp 削除 1 )スロット 1 の構成を削除しようとしているのは本当ですか? [y/N]: はい
スロット 1 の構成を削除しています...
kmille @linbox:~ ykman otp records
スロット 1: 空
スロット 2: プログラム済み
kmille@linbox:~ ykman otp static --generate
2 --長さ 32 スロット2 は既に構成されています。 構成を上書きしますか? [y/N]: はい
#ゆびきーにタッチ kmille@linbox:~ FiNIFRNhbDRhKEbFLrDNLbkJedkiELhn
zsh: 画像が表示されなくなりました: FiNIFRNhbDRhKEbFLrDNLbkJedkiELhn
kmille@linbox:~
kmille@linbox:~ ykman otp swap
YubiKey の 2 つのスロットを入れ替えますか? [y/N]: はい
スロットを入れ替え中...
GUI インストゥルメントは、おそらく、おそらく使い果たすでしょう YubiKey Personalization Instrument
。 手順は
「静的パスワードモード」に乗ります
スキャンコード
構成スロット 1/2 を消費する (短押し/長押し) パスワードを入力するよりも早くキーボード レイアウトを決定したい場合 (ユーザビリティはまぁ)
- パスワードを入力する
書き込み設定
正確には、Yubikey は正確な 2D 成分ではなくなりました。 KeepassXC は、Yubikey のベンチャー レスポンス メカニズムを排気します。 すべての認証作業 (データベースの暗号化解除) でのベンチャー (およびこの事実から生じる応答) は、もはや珍しいことではありません。 したがって、ベンチャー/レスポンスは、おそらくチャンスごとに、さらに攻撃者によって USB 経由で傍受される可能性があります。 より多くの記録について教えてください StackExchange でこの解決策を確認し、同様に
よくある質問
Yubikey の利用に関しては KeepassXC の設定するには、最初にベンチャー レスポンス特性を有効にし、スロットのシークレットを追加/生成する必要があります:
kmille@linbox:~ ykman otp records
スロット 1: 空 スロット 2: 空
kmille@linbox:~ ykman otp chalresp --touch --generate 2 ランダムに生成されたキー (16 進数) の使用: 874352e9f826d9c0cbc497113cbf7921fb962d76
スロット 2 でベンチャー レスポンス資格をプログラムしますか? [y/N]: はい
kmille@linbox:~ ykman otp records
スロット1 : 空
スロット 2: プログラム済み
Keepass データベースと Yubikey をペアリングするには、データベースを開き (KeePassXC を使い果たしました)、データベース -> データベース セキュリティ -> 取引パスワード -> セキュリティを追加 -> Relate-Response を追加 -> 更新
に急いで進みます。 )
これは、Android の NFC でも素晴らしく機能します
Keepass2Android
アプリ (必要ykdroid
, 「Password + Relate-Response for KeepassXC」で決済。 Yubikey でバックアップを所有するために購入するのに対し、同じ秘密を持つ他のすべての楽器を使い果たします。
kmille@linbox:~ ykman otp charresp --touch
2
秘密鍵を入力してください: 874352e9f826d9c0cbc497113cbf7921fb962d76 スロット 2 にベンチャー レスポンス資格をプログラムしますか? [y/N]: はい
この特性は静的パスワードの性能と同じスロットを使い果たしてしまうとの考えを含んでいます。 Keepass が firejail でサンドボックス化されている場合は、~/.config/firejail/keepassxc.native に次の行を追加します。 :
プロトコル netlink,unix
非公開開発者を無視 きっと、フルディスク暗号化の 2FA を有効にする Yubikey のベンチャー レスポンスの特徴 (
luks)。 のミッションがあります) Debian
と
。 どちらもほとんど同じように機能します。 ボンネットの下で発生するのは:用の 1 つArch Linux
初期化: Yubikey にシークレットを追加 (HMAC-SHA1 Relate-Response) 成分の 1 つは、起動中に手動で入力することがトップのベンチャーです ( Yubikey に送信するよりも早く sha256sumed を受け取ります) 第 2 成分は、Yubikey によって計算された応答です ( コード
)ベンチャーと応答が連結されます (code) をパスワードとして luks キースロットに追加 ( )コード
あなたは間違いなく、おそらくチャンスごとにチャンスごとに設定ファイルにベンチャーを書き込むでしょう. 次に、Yubikey を使用すると、起動中にディスクを復号化できる可能性があります。パスワードを入力する必要はありません (ベンチャー)。 少し簡単に利用を開発するツールがあります (
ykfde-layout, )ykfde-impress up, ykfde-open)。 それを排出する方法は次のとおりです:
kmille@linbox:~ ykman otp charresp 2
秘密鍵を入力してください: supersecret2 スロット 2 にベンチャー レスポンス資格をプログラムしますか? [y/N]: はい
kmille@linbox:~
# ディスクを見てみましょう kmille@linbox:~ truncate -s 20M ディスク # キープ: 私は YKFDE_CHALLENGE_PASSWORD_NEEDED="1" と DBG="1" を /and 完全な区画に住んでいますその他/ykfde.conf
kmille@linbox:~ ykfde-layout ディスク
> ~ スロットスペース 'ykinfo -q -2': 1警告: このスクリプトは遅延します
'cryptsetup luksFormat disk'。 これが想定していたものでなくなった場合は、中止してください。
> ベンチャーを提示してください。
ベンチャーを入力してください: 123
>ベンチャーを繰り返してください。
ベンチャーを入力してください: 123 働く: 'ykchalresp -2 a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3'...
必ず楽器に触れてください
if 必須。
購入した回答: '0c66dacbf9155c6f48b774ca7c2520735b3dce7c'
> 'a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae30c66dacbf9155c6f48b774ca7c2520735b3dce7c' を 'cryptsetup'
新しい LUKS インストゥルメントが正常にフォーマットされました
# 手動で再現してみましょう:
# ステップ1:ベンチャーのsha256 「123」
kmille@linbox:~ echo -n
123 | sha256sum a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3 - # ステップ 2: ベンチャー レスポンス特性 (スロット 2) をコマンドします。 入力: sha256("123") kmille@linbox:~ ykchalresp -2 a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae30c66dacbf9155c6f48b774ca7c2520735b3dce7c [DEFAULT|NEVER|ONCE|ALWAYS]
# ステップ 3:venture|response を連結し、luks インストルメントを復号化するためのパスワードとして使い果たします kmille@linbox:~ エコー "a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae30c66dacbf9155c6f48b774ca7c2520735b3dce7c" | sudo cryptsetup open disk take a look at-disk [sudo] パスワード [DEFAULT|NEVER|ONCE|ALWAYS] for kmille:
kmille@linbox:~ sudo cryptsetup terminate take a look at-disk kmille@linbox:~ rm ディスク バックアップとして、ユビキーのベンチャー対応の秘密をコレクションアップ時に販売するのが理想的です。 バックアップ手段を所有していない場合は、Python でのこの限られたベンチャー レスポンスの実装を使い果たす可能性があります (これはバイアスのない SHA-1 HMAC であり、RFC2104):
kmille@linbox:~ ykman otp chalresp --touch --generate
2
ランダムに生成されたキー (16 進数) の使用: 00b96ec0a15fe9c6d752d2d89793b434ef7c49c5 スロット 2 にベンチャー レスポンス資格をプログラムしますか? [y/N]: はい
from binascii import unhexlify インポート hmac
kmille@linbox:~ echo -n | を見てみましょう。 ykchalresp -2 -i- bcfb0464611a4b29444d0288c9e4ba91db13ed72
kmille@linbox:~ ネコ見てみようat.py hashlib import sha1 から
key=unhexlify("00b96ec0a15fe9c6d752d2d89793b434ef7c49c5")
メッセージ=b"を見てみましょう"
ハッシュ=hmac.new(キー、メッセージ、sha1 ) マック=hashed.hexdigest()
kmille@linbox:~ python at.py を見てみましょう
print(mac)
bcfb0464611a4b29444d0288c9e4ba91db13ed72
kmille@linbox:~ PIVを使い果たすSSH 公開鍵認証のパフォーマンス。 残念ながら、理想的な 1 つの鍵ペアは、ssh 認証のために Yubikey 5C に保存される可能性があります (PIV 方式の排気)。 また、最大 RSA キー測定は 2048 に制限されています。 PIV の動作をサルベージするために、pcscd と呼ばれるキャリア (PC/SC Perfect Card Daemon) が実行されている必要があります。 Arch Linux では、opensc
機器、基本的に Debian ベースの OS セット用上
pcscd
。 次に、キャリアを開く/有効にします:
systemctl enable --now pcscd.carrier systemctl スペース pcscd.carrier
A PIV 対応の YubiKey には、PIN、PUK、および管理キーがあります。 PIN は、ロードされた証明書のデジタル署名の作成などのアクションを承認するための同一の古い操作全体を通じて履歴です。 PUK は、PIN を紛失したり、一連の不適切な試行が最大数回行われた後にブロックされたりした場合でも、PIN をリセットするための履歴となる可能性があります。 不適切な暗証番号を 3 回連続して入力すると、暗証番号が無効に変更されます。 PUK を保持している場合は、その PUK を確実に使い果たして PIN を新しいコストにリセットできます。 不適切な PUK が 3 回連続して与えられた場合、これはおそらくブロックされます。 PIN と PUK の両方がブロックされている場合、機器はおそらく毎回リセットされます。 これにより、YubiKey の PIV パフォーマンスが工場出荷時の設定に戻り、デフォルトの PIN、PUK、および管理キーの値が設定され、保存されているキーと証明書が削除されるのと同じ効果が得られます。 一度リセットすると、機器を再初期化できます。
YubiKey のすべての PIV 管理操作には 24 が必要です。管理キーとして識別されるバイト 3DES キー。 間違いなく、明示的に 24 バイトのキーを保持することができます (YubiKey PIV スーパーバイザーが生成できます)。さもなければ、これらの操作の PIN の使い果たしを変更するため、管理キーを保持しないことに決着する可能性があります。 . その場合、新しい証明書のインポートや新しいキー ペアの生成などの管理操作を行うたびに、管理キーの変更として PIN を提供するよう求められる可能性があります。 の懸念事項をご覧ください。 オンラインネットページ
の場合PIV 管理用の PIN の使い果たし。
古いテキストは、ユビコオンラインのネットページ
. 最大のもの:間違いなくリセットできます 何かが汚染された場合の PIV 構成:
kmille@linbox:~ ykman piv リセット 警告! これにより、保存されているすべての PIV レコードが削除され、工場出荷時の設定に復元される可能性があります。 続行? [y/N]: はい
PIV レコードをリセットしています...
成功! すべての PIV レコードが YubiKey から消去されました。
あなたの YubiKey には、デフォルトの PIN、PUK、および管理キーがあります:
暗証番号: 123456 PUK: 12345678 ) 管理キー: 010203040506070801020304050607080102030405060708
管理キーを交換するには、以下を排出します:
os のインポートkmille@linbox:~ cat gen-mgmt-key.py
binascii からインポート hexlify
print(hexlify(os.urandom(24)).decode())
kmille@linbox:~ python gen-mgmt-key.py faf6bf013ed8fc473e0b47e5502d0c75fda8e40ece5bce24
PIN/PUK を交換したり、機器のブロックを解除するには、次のように入力します:kmille@ linbox:~ ykman piv salvage entry to switch-management-key PIN を入力してください:新しい管理キーを入力してください: 繰り返し
for
確認:
kmille@linbox:~ スイッチピンへの ykman piv サルベージエントリ
現在の PIN を入力してください:
新しい PIN を入力してください: 繰り返す 確認のため: 新しい暗証番号の住居。
kmille@linbox:~ switch-puk への ykman piv サルベージ エントリ
プレゼントを入力PUK: 新しい PUK を入力してください:
繰り返し
新しい PUK 住居。for
確認:
kmille@linbox:~ ykman piv records PIV モデル: 5.1.2 PIN 試行手段: 0
..
kmille@linbox:~ ブロック解除ピンへの ykman piv サルベージ エントリ PUK を入力してください: