web-dev-qa-db-ja.com

スマートカードにGPG / SSH秘密キーを保存することは、プレーンUSBドライブと比較してどうですか。

私は秘密鍵/公開鍵暗号化の基本的な理解があり、SSHログインとGPG暗号化/署名にしばらく使用しています。ただし、私は常に秘密鍵(鍵リング)をホームディレクトリ(.gnupgおよび.ssh)のデフォルトの場所に保持しています。明らかに、私はキーをUSBドライブに転送できます。これは、理論的には私のコンピューターのキーロガーもUSBドライブだけでも私の秘密キーを取得するのに十分ではないことを意味します。

秘密鍵を保存できるスマートカードと YubiKey Neo (これはスマートカード+ USBリーダーのように単一のドングルのように見える)などのデバイスが、古いものに秘密鍵を保存することよりも優れている理由USBサムドライブ?

スマートカードは、SSHやGPGなどのアプリケーションに対して秘密キーを「公開」しますか?もしそうなら、PINを持っていて、デバイス自体はまだ秘密鍵を取得できるため、通常のUSBドライブに勝る利点はありません。そうでない場合、アプリケーションは知らずにどのように機能するのでしょうか。秘密鍵?

26
user3243135

スマートカードは、SSHやGPGなどのアプリケーションに対して秘密キーを「公開」しますか?もしそうなら、PINを持っていて、デバイス自体はまだ秘密鍵を取得できるため、通常のUSBドライブに勝る利点はありません。そうでない場合、アプリケーションは知らずにどのように機能するのでしょうか。秘密鍵?

理想的には、いいえ。

このようなトークンの主な利点は、キーを秘密に保ち、ハードウェアデバイス自体で暗号化アクティビティ(復号化、署名など)を実行し、秘密キーを開示しないことです。

したがって、たとえば、デバイスにpublicキーを要求し、その公開キーを使用してファイルを暗号化できます(デバイスの有無にかかわらず)。しかし、ファイルを復号化するには、トークンをプラグインし、ファイルを復号化するために尋ねるを行う必要があります。

実際の実装の詳細はデバイスによって異なりますが、これはあなたが何をしたいのかについての一般的な考えです。

さらに、これらの暗号トークンは、攻撃者がデバイスを分解して直接キーを取得するのを防ぐために、物理的なセキュリティ対策を採用していることがよくあります。 100%の確実性で保護することは不可能ですが、(目立たないメモリチップを含めるのではなく)シングルチップデザインを使用するなどの対策とエポキシの寛大な支援が一般的です。

20
tylerl

OpenPGPスマートカード秘密鍵を公開しません。基本的な署名と復号化のタスクは、カードの組み込みの暗号化プロセッサによって実行され、PINコードを入力した後にのみ使用できます。

OpenPGPクライアント(たとえば、GnuPG)が「この暗号ブロックを復号化する」という要求を送信し、それがカードによって実行されると想像してください(実際の暗号化は、はるかに高速で、コンピューターのCPU上のブロック暗号を使用して行われます)。このキーのこのユーザーIDに署名します」。これは、カードによって再度実行されます。

鍵がカードで生成された場合、カードから離れることはありません。または、コンピューターでキーを生成し、カードにアップロードすることもできます。キーはカードから離れることはありませんが、コンピューターから抽出される場合があります。作成されました。


サムドライブアクセス可能なキー全体を保存します。コンピュータに接続されている場合、秘密鍵はコンピュータからダウンロードできます。

7
Jens Erat

正直なところ、すべては本当にカード自体に依存しています。このジョブの外部セキュリティデバイスは、通常、次の3つの形式のいずれかを取ります。PCが計算するストアシークレット。すべての秘密の保存と計算を自分で行います。間に何か。実際のセキュリティを提供するカードは、オンボードキーを使用して署名を行います。できればデバイスでも生成されます。クライアントが信頼できないため(マルウェアなど)、キーはどのような状況でもデバイスを離れることはありません。

これらを使用すると、次の2つの点で役立ちます。

  1. スマートカードが内部にある間、PC上のマルウェアはメッセージ偽造に削減されます。構成によっては、マルウェアをカスタマイズしてリスクをさらに削減することもできます。

  2. スマートカードを泥棒に紛失しても、秘密がいっぱいのラップトップまたはUSBドライブを紛失するほど心配する必要はありません。

  3. とにかく持ち歩きそうな財布にスマートカードを入れることができます。

  4. 最近、かなりの数の商用ラップトップにスマートカードリーダーが搭載されています。

PINパッドはリーダーに組み込まれています。これは、信頼できるパスを確立するのに役立つためですPINスマートカードに直接接続します。これがないと、キーボードを介してマルウェアに感染したコンピュータに入力した可能性があります。信頼できるパスは、特定の「認定された」暗号化USBスティックのパスワード/ピンを介した侵害を防ぎます。この機能を備えたものの例は、以下のリンクにあります(GPGスマートカードの手順への古いリンクと共に)。

http://www.gnupg.org/howtos/card-howto/en/ch02s02.html

スマートカードを使用したOpenSSHはこちら。

http://www.gooze.eu/howto/using-openssh-with-smartcards

3
Nick P