GnuPG 鍵を作る
鍵の生成
恥ずかしいことに以前作っていたGPGの鍵がなくなってしまったので新たに作りなおすことにした。
参考にするサイトは以下:
GnuPG 鍵の作り方 - keysignparty-ja
PGP/GPG
登録メールアドレスの変更
GnuPG で自分のメイルアドレスを追加する - Procrastination Log
参考というより、このエントリは実際にサイトに書いてある手順にそって、使用例を書いているのみです。
// 無ければgpgをインストールしておく # apt-get install gnupg // 鍵の生成 $ gpg --gen-key
鍵の種類は
・RSA and RSA
・鍵長は4096ビット
・鍵は無期限で作っておく
・名前、メールアドレス、コメントとあるがコメントは特に入れなくてもいいと思う
鍵の指紋
結構待った後に、以下のようにメッセージが出て鍵の生成が完了します。
gpg: /home/hiroyuki/.gnupg/trustdb.gpg: trustdb created gpg: key A11BB07C marked as ultimately trusted public and secret key created and signed. gpg: checking the trustdb gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u pub 4096R/A11BB07C 2015-06-16 Key fingerprint = E3BB 42E3 E676 D34A A2EC CD18 7BAE 5662 A11B B07C uid Hiroyuki Nagata (From 2015) <newserver004@gmail.com> sub 4096R/C6295C88 2015-06-16
この部分の英数字がユーザーID
・鍵をサーバに登録する時、廃棄証明書を作るときに使う
gpg: key A11BB07C marked as ultimately trusted
この部分が鍵の指紋
・他の人と鍵を交換してキーサインするときに使う
Key fingerprint = E3BB 42E3 E676 D34A A2EC CD18 7BAE 5662 A11B B07C
公開鍵・秘密鍵
コンソールに出てくるものに関しては特に秘匿する必要はないはずです。同時に作成された、以下のファイルが大事です。特に、秘密鍵は無くしてしまうと受け取った暗号文の解号、署名ができなくなります。
gpg: keyring `/home/hiroyuki/.gnupg/secring.gpg' created # 秘密鍵 gpg: keyring `/home/hiroyuki/.gnupg/pubring.gpg' created # 公開鍵
関連:
公開鍵/秘密鍵の使用例と保管方法について
nantonaku-shiawase.hatenablog.com
廃棄証明書の作成
廃棄証明書を作成しないと、鍵の無効化ができないので絶対やっておく。
$ gpg --gen-revoke <user_id>
なんか標準出力にPGPの公開鍵が出るのでテキストに保存しておく。これは見られるとまずいので秘匿する。
鍵を鍵サーバに送信
MIT PGP Key Server に鍵の公開鍵を登録する。これで全世界から鍵が検索できるわけです。
このサーバは公開鍵の情報を登録しているだけで、鍵を認証しているわけではないので乗っ取られてもそこまで困りません(困るけど…)。GPG(PGP)は個人が持っている秘密鍵同士の承認なので、CA(認証局)のように中央を持ちません。その面ではP2Pに似てますね。
$ gpg --keyserver pgp.mit.edu --send-keys <user_id>
鍵を鍵サーバから検索
$ gpg --keyserver pgp.mit.edu --search-keys newserver004@gmail.com
これにて終了
ハッシュ値を交換した相手にこちらの公開鍵を送る方法
ハッシュ値を交換した後相手から送られてきた鍵をインポートする方法
caffを使うと少なくとも鍵の署名とメールは楽
caffを使った署名(こちらからメールを送る場合)
署名するID をキーサーバから取得し、指定した自分のID で署 名してくれる。そして、署名した鍵を暗号化して送信してく れる。 $ caff -u 自分の ID 署名する ID 署名後のデータは ˜/.gnupg/pubring.gpg ではなく、 ˜/.caff/gnupghome/pubring.gpg に格納される。この鍵束 を ˜/gnupg/pubring.gpg に 取り込む。 $ gpg --import ~/.caff/gnupghome/pubring.gpg 取り込んだら、自分の鍵をキーサーバに送信。 $ gpg --keyserver pgp.nic.ad.jp --send-keys 自分の ID $ gpg --keyserver pgp.mit.edu --send-keys 自分の ID