web-dev-qa-db-ja.com

スマートカードのPGPキー:なぜディスクに「秘密キー」が必要なのですか?

OpenPGPアプレットを搭載したYubiKey NEOとPGPキーをインストールしました。 3台のコンピューターで作業し、コンピューターbobでカードを初期化しました。現在、コンピュータrobにいます。誰かが暗号化されたファイルを送ってきたので、YubiKey NEOを挿入してgpg --decryptを実行しました。

次の出力が得られました。

gpg: encrypted with RSA key, ID DEADBEEF
gpg: decryption failed: secret key not available

さて、多分私はここに私のPGP公開鍵をインストールする必要があります。私はそれをして、それから得ました:

gpg: decryption failed: secret key not available

次に、bobからrobにSSH接続し、gpg --list-secret-keysを実行してlo-and-beholdを実行しました。

sec>  2048R/DEADDEAD 2015-02-31
      Card serial no. = 0000 12345678
uid                  Naftuli Tzvi Kay <[email protected]>
ssb>  2048R/BEEFBEEF 2015-02-31
ssb>  2048R/DEADBEEF 2015-02-31

一体何ですか?この「キー」をbobからrobにコピーしましたが、問題なく機能しますが、PGPキーにPINと入力する必要があります。

キーを作成したとき、私はディスクにインポートしたことがないなので、存在するはずですカード上。スマートカード以外の場所にあるはずの秘密鍵がディスクに存在しないのはなぜですか?

6
Naftuli Kay

これは実際には秘密鍵ではなく、カードのスタブを参照する一種のスタブです。このスタブには、秘密鍵(所属する公開鍵を含む)のほぼすべての「メタデータ」が含まれていますが、実際の秘密鍵はカードにのみ格納されます(カードから離れることはありません)。

カードには実際のキーのみが保存され(それらを使用して基本的な暗号化操作が実行されます)、作成日、使用フラグ、ユーザーIDなどの他のメタ情報は保存されないため、これは重要です。

(仕様をもう一度読んで、これが間違っていることに気付きました。カードにはキーの指紋と作成時刻が保存されています。)

このキースタブはGnuPGがキーを管理するのに役立ち、カードを探したり、必要に応じてカードを要求したりできます。公開鍵のフィンガープリントはカードに保存されているため、公開鍵が利用可能な場合は、秘密の「スタブ」鍵を簡単に再生成できます。 GnuPGは、--card-editメニューのfetchコマンドを実行することにより、これを簡単にします。このコマンドは、キーサーバーネットワークに公開キーを照会します。

4
Jens Erat