OpenSSHのPKCS#11プロバイダ:PINをキャッシュできますか?

OpenSSHのPKCS#11プロバイダ:PINをキャッシュできますか?

スマートカードのOpenSSHクライアントでRSAキーを使用しています。スマートカードは、PINパッド付きのスマートカードリーダーに読み込まれます。キーはPINコードで保護されています。

どういうわけかPINコードをキャッシュできますか?私はsshを使用するたびにカードリーダーキーボードを使ってPINを書くのが大好きではありません...迷惑だけでなく、他の人の目にもIMHOが多すぎる可能性を開きます。

私の設定は、Debian/Devuan + OpenSC + .ssh/configの一般的な「PKCS11Provider /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so」です。

opensc.conf、フレームワークpkcs15に次の行を追加しようとしましたが、役に立ちません。

use_pin_caching = true;
pin_cache_counter = 64;
pin_cache_ignore_user_consent = true;

OpenBSDで同じ設定を使用しており、結果は同じです。

私はAventra MyEID 4.5.5をスマートカードとして使用しています。この技術をプロダクションに使用する前にできるだけ多くのことを学ぼうと努力しているので、Cherry、Gemalto(現Tales)、SCM/Identivなど様々なリーダーを試してみることができました。

答え1

ssh-agent-tPIV認証情報(ssh-agentまたはssh-add経由)は一定期間キャッシュされます。

SSHクライアントはすでにスマートカード/ pivを使用して正常に認証できるため、次のssh-addコマンドはそれをssh-agentにキャッシュできます。

ssh-add -s <path to shared library pkcs11>  #add keys provided by pkcs11
#          for me, /usr/lib/ssh-keychain.dylib

キャッシュされたIDが期限切れになると、SSHエラーは次のようになります。

sign_and_send_pubkey: signing failed for RSA "<id>" from agent: agent refused operation

その後、次のコマンドを使用して前のキャッシュエントリを消去できます。

ssh-add -e <path to shared library pkcs11>  #removed keys provided by pkcs11
#          again, for me, /usr/lib/ssh-keychain.dylib

ssh-add -D                                  #delete all identities from agent (may not be needed, ymmv)

詳細については、リソースを参照してくださいman ssh-add。ただし、2024年2月現在、-sおよび-e以外に他のPIV関連オプションはありません。

ssh-addpkcs15を使用していることに注意してください。 /との相互運用性は不明ですが、ssh-agent正しいライブラリを渡す限り必要です。

関連情報