お勉強
GnuPG
用途は主にメールの暗号化、署名かな。
S/MIME が信頼性の担保にPKIを利用するのに対して、PGP/MIMEでは信頼性の担保に信頼の連鎖を利用する。
信頼の連鎖とは、ざっくり言うと、自分の知ってる人が署名した鍵の持ち主は信頼できる。というもの。
自分の知っている人が署名した鍵で署名された鍵の持ち主も信頼できる。……みたいな。
GPG における鍵管理
GPGでは鍵を管理するのに鍵束を利用する。鍵束には
がある。
また、鍵の信頼度をデータベース trustdb.pgpに持っている。
自分が使う鍵ペアの生成
gpg --gen-key
で生成できる。
途中、どの鍵を作るのか
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
鍵サイズ
What keysize do you want? (2048)
鍵の使用期限
0 永遠に
<n> n日
<n>w n週間
<n>m nヶ月
<n>y n年
が聞かれる。
その後 名前、メールアドレス、コメント を聞かれる。
最後にパスワードが聞かれる。
鍵は pubring.pgp secring.pgp に保存されている。
鍵束の中身を確認
-k, --list-key, --list-public-key
pubring.pgp の中に入ってる鍵を一覧表示する。-K, --list-secret-key
secring.pgp の中に入っている鍵を一覧表示する。--list-sig
pubring.pgp の中に入ってる鍵を署名した鍵情報も含めて一覧表示する。--check-sig
pubring.pgp の中に入ってる鍵を署名した鍵情報と署名の状態含めて一覧表示する。
!だと有効 - だと無効 % だとエラー(サポートしてないアルゴリズムだったとか)
鍵束に鍵を追加
--import
鍵ファイルをpubring.pgpに追加する。--recv-keys KeyID 鍵サーバにあるKeyIDをもった鍵をpubring.pgpに追加する。
--refresh-keys
鍵サーバにアクセスして、pubring.pgpにある鍵のうち、更新されているものを更新する。
鍵束から鍵を取り出す
--export
pubring.pgp から鍵を取り出す。--send-keys KeyID pubring.pgp にあるKeyIDをもった鍵を鍵サーバに登録する。
--export-secret-keys
secring.pgp から鍵を取り出す。
鍵サーバ
世の中には、PGP鍵を登録しておける鍵サーバがたくさんあります。
鍵サーバに登録したり鍵サーバから受け取ったり、鍵サーバ内を検索したりできます。
--send-keys KeyID
--recv-keys KeyID
--search-keys name
search-keys で鍵を探して、KeyIDを見つけて recv-keysで自分の鍵束に追加する感じですね。
search-keys すると結構たくさん見つかるので、どれが自分の求める鍵なのかがんばって探しましょう。
GPGで使う鍵サーバは 設定ファイル ~/.gnupg/gpg.conf に記載しておくことも出来ますし、
--keyserver
で指定することもできます。
--send-keys
--recv-keys
などと一緒に使います。
鍵サーバとして指定できるのは
hkp://server/
mailto:mail@address
ldap://server/
の3種類みたいです。Web上にあるサーバはhkp://なものなのかなぁと。
標準では hkp://keys.gnupg.net が指定されていました (CentOS6.5)