ほとんどの人はGPGが何であるかを知っています。 多くの人が使用します。 スマートカードなどの外部メディアに秘密鍵を保存できることを知っている人もいます。 また、実際にどのように見えるかについても説明したいと思います。
数日前、「OpenPGP SmartCard v2」がいくつか来ました。 それらは、公式ディストリビューターshop.kernelconcepts.de/index.php?language=enから注文されました。 現在、1枚のカードの価格は17.14ユーロです。 注文したカードのうち2枚は、書留郵便のようなもので送られ、転送には5ユーロかかりました。これは非常に良いことです。 また、カードが問題なく税関を通過したことも嬉しかったです。 これが多く発生するかどうかはわかりませんが、個人的な使用については、非常に安全に注文できると思います。
そして、ここに私はそれらを持っています...
両方とも別々のバッグにパッケージされており、それぞれにデフォルトのPINコードのリマインダーと3回の入力試行が含まれています。
以前、さまざまなスマートカードの研究のために、カードリーダーモデルSCR331を購入しました。 OpenPGPカードは、他のカードよりも悪くなりません。
最初に動作すること(Ubuntu 10.04 LTS)は、pcscdサービスを開始することです。 その後、カードを挿入してpcsc_scanコマンドを実行します。 すべてが正常であれば、カードの技術データがコンソールに表示されます。
次に、gpgを使用してマップを見てみます(マップには既にキーがあります)。
$ gpg --card-status gpg:検出されたリーダー `SCM SCR 331(21121046203464)00 00 ' アプリケーションID ...:D2760001240102000005000010C00000 バージョン..........:2.0 メーカー.....:ZeitControl シリアル番号....:000010C0 カード名義人:[未設定] 言語設定...:de セックス..............:[見つかりません] 公開鍵のURL:[設定なし] ログインデータ.......:[インストールされていません] プライベートDO 1 .....:[インストールされていません] プライベートDO 2 .....:[インストールされていません] 署名PIN ....:強制 キー属性...:2048R 1024R 2048R マックス PINの長さ:32 32 32 PIN再試行カウンター:3 0 3 署名カウンター:6 署名キー....:4F3B 52C3 23FF 3931 6774 E694 3D10 7955 72D5 82DB 作成されました....:2011-10-18 11:52:30 暗号化キー....:82CB 2DB7 7DDD 6E56 5CB6 21B9 598A 49D6 B3F3 F028 作成されました....:2011-10-18 11:52:30 認証キー:F159 6F7E D472 5CD0 7161 F00E 554E 78F8 CABD 115C 作成されました....:2011-10-18 11:52:30 一般的なキー情報..:pub 2048R / 72D582DB 2011-10-18 John Smith <john@smith.org> sec> 2048R / 72D582DB作成:2011-10-18有効期限:なし カード番号:0005 000010C0 ssb> 2048R / CABD115C作成:2011-10-18有効期限:なし カード番号:0005 000010C0 ssb> 1024R / B3F3F028が作成されました:2011年10月18日が期限切れになる前:なし カード番号:0005 000010C0
「gpg --card-edit」コマンドを使用して、所有者の名前、好みの言語、性別などの個人データを変更できます。 非常に興味深いフィールドは「公開キーのURL」ですが、それについては後で詳しく説明します。
コマンド「gpg --card-edit」を使用して、マップ上にキーを生成することもできます。 この手順では、公開鍵と擬似秘密鍵がファイルシステムのGPGデータベースに挿入されます。秘密鍵自体は、スマートカードに実際に配置されていることを示すスタブに置き換えられます。
それでは、次は何ですか? それから私は個人的に2つの質問に興味を持ちました。
- 通常のキーを紛失した場合に使用するために、カード上の通常のキーのバックアップコピーを作成することは可能ですか?
- スマートカードのキーは、たとえば他の人のコンピューターからの作業を整理するために使用するのに十分ですか?
既存のキーをバックアップ
私の実験に基づいて、マップ上にキーのバックアップを作成するための最適な手順は次のとおりであると想定しています。
- コマンド「gpg --export-secret-key <key id>」を使用して、ディスク上に秘密鍵のバックアップを作成します。
- コマンド「gpg --edit-key <key id>」を使用してキーを入力します。
- 「トグル」コマンドで秘密鍵部分に移動します。
- keytocardコマンドは、署名のために鍵を転送します。 次のダイアログで、「署名用のキー」行を選択します。
- コマンド「key 1」を使用して、暗号化に使用される次のキーに切り替えます。
- keytocardコマンドを使用して、キーをカードに転送します。 次のリクエストで、gpgは1つのオプション-「暗号化キー」を提供する必要があります。 それを選択して、転送を待ちます。
- saveコマンドで終了します。
- コマンド「gpg --delete-secret-key <key id>」で秘密鍵を削除します。
- コマンド「gpg --import <file name>」を使用して、バックアップから秘密鍵を復元します。
その後、カードには秘密鍵のバックアップコピーが含まれます。
スマートカードの主要な自給自足
調査中に、GPGデータベースのスマートカードから秘密鍵の説明を「ロード」するには、カードの鍵(この束の通常の公開鍵)に関連付けられた公開鍵が必要であることが判明しました。
次に、ベースをカードと「同期」するには、「gpg --card-status」コマンドを実行するだけで十分です。 実行後、シークレットスタブキーがGPGデータベースに作成され、キーを完全に使用できます。
公開キーをどこにでも持ち運ばないようにするには、インターネット(httpまたはキーサーバーのいずれかでアクセスできるファイルの形式)に公開キーを配置し、カードの「公開キーのURL」パラメーターで公開キーの場所を示すことを利用できます。 このプロパティの動作を確認し、公開キーが存在するhkpサーバーのURLを示しました。
マップパラメータ「公開キーのURL」に正しいエントリがある場合、新しい場所で作業するためのマップの準備(もちろん、インターネットにアクセスできる場合)は、次の2つのコマンドの実行に限定されます。
- gpg --card-editおよびgpgシェルの後続のフェッチコマンド。
- gpg --card-status
その後、システムに完全なキーがあり、それを操作できます。
使用する
スマートカードでGPGを使用することは、通常の使用とほとんど変わりません。 さらに、パスフレーズの代わりに、カードのPINコードを入力する必要があります。 カードがカードリーダーに挿入されていない場合、コンソールモードでキーを操作すると、カードを挿入する必要があることを示すメッセージが表示されます。
残念ながら、私のバージョンのGPAシェル(0.9.0)はスマートカードのキーで正しく動作できないことが判明しました。 何らかの理由で、彼女はカードのPINコードの入力を期待していませんが、すぐに操作を完了できないことを示します。 ただし、次のウィンドウのどこかで、PINコード要求ウィンドウがハングします。 おそらく他のシェルでは、物事が優れています。 まあ、そしてもちろん、少なくともすべてがコンソールから正常に機能することを嬉しく思います。
一般的に、スマートキーに秘密鍵を保存することは、もちろん、コンピューターまたはフラッシュドライブの鍵データベースに保存するよりもはるかに安全です。 そして、もちろん、移動するときのほうがはるかに便利で、慣れていないコンピューターからGPGで作業を整理する必要があります。