公開鍵に秘密鍵で署名することで、公開鍵が秘密鍵の保持者によって信頼されたものであることを示すことができます。これによって、鍵の「信頼の輪」を築くことができます。ですから、公開鍵に署名を行うときは、実際に面会して公的な証明書を見せてもらうなどの対応が必要とされています。いい加減に署名を行うと、鍵の「信頼の輪」自体の信用が落ちてしまいます。
はじめに
GnuPG(GPG)を使用して、公開鍵に対して秘密鍵で署名をします。
公開鍵サーバへの公開鍵の登録
"gpg --sign-key"コマンドで、公開鍵に対して秘密鍵で署名をします。
<コマンド>
公開鍵への署名:gpg --local-user <秘密鍵> --sign-key <公開鍵>
署名結果の確認:gpg --list-sigs <公開鍵>
<実行例>
--------------------------------------------------------------------------------
D:\gpg>gpg --local-user@example.com ict-user --sign-key ict-lab@example.com
pub 4096R/CBCA1C1B 作成: 2015-03-29 有効期限: 無期限 利用法: SC
信用: 充分 有効性: 不明の
sub 4096R/CC14E3F8 作成: 2015-03-29 有効期限: 無期限 利用法: E
sub 4096R/7AB452DA 作成: 2015-03-29 有効期限: 無期限 利用法: S
sub 4096R/AC40F6E7 作成: 2015-03-29 有効期限: 無期限 利用法: A
[ 不明 ] (1). ICT Lab (sun) <ict-lab@example.com>
pub 4096R/CBCA1C1B 作成: 2015-03-29 有効期限: 無期限 利用法: SC
信用: 充分 有効性: 不明の
主鍵フィンガー・プリント: 1664 73E7 8E9F AA22 9601 E5BE B136 0589 CBCA 1C1B
ICT Lab (sun) <ict-lab@example.com>
本当にこの鍵にあなたの鍵"ICT User (sun) <ict-user@example.com>"で署名してよいです
(2B7A297A)
本当に署名しますか? (y/N) y
次のユーザの秘密鍵のロックを解除するには
パスフレーズがいります:"ICT User (sun) <ict-user@example.com>"
4096ビットRSA鍵, ID 2B7A297A作成日付は2015-03-30
D:\gpg>gpg --list-sigs ict-lab@example.com
pub 4096R/CBCA1C1B 2015-03-29
uid [ 充分 ] ICT Lab (sun) <ict-lab@example.com>
sig 3 CBCA1C1B 2015-03-29 ICT Lab (sun) <ict-lab@example.com>
sig 2B7A297A 2015-03-30 ICT User (sun) <ict-user@example.com>
sub 4096R/CC14E3F8 2015-03-29
sig CBCA1C1B 2015-03-29 ICT Lab (sun) <ict-lab@example.com>
sub 4096R/7AB452DA 2015-03-29
sig CBCA1C1B 2015-03-29 ICT Lab (sun) <ict-lab@example.com>
sub 4096R/AC40F6E7 2015-03-29
sig CBCA1C1B 2015-03-29 ICT Lab (sun) <ict-lab@example.com>
--------------------------------------------------------------------------------
署名時の注意点
公開鍵の秘密鍵の署名は、マスターキーで行います。サブキーで公開鍵への署名は行いません。署名は、安全が確保されたマスターキーが使用できる環境で行います。
おわりに
鍵の「信頼の輪」の構築は、キーサインパーティ等で実際に面会して行うことになります。今回は、公開鍵に秘密鍵で署名を行う方法を確認しました。