GPG キーサインパーティ
資料

岩松 信洋 iwamatsu@debian.org
IRC nick: iwamatsu2010 年 09 月 11 日

Agenda

注意事項
特になし

最近あった Debian 関連のイベント報告
前回の勉強会

PGP/GPG とは何か
GPG キーサインパー
ティの説明
GPG キーサインパー
ティを楽に済ませるた
めのツール caﬀ の紹介
キーサインパーティ

PGP/GPGとは何か

GPG キーサ
インパーテ
ィの説明

なぜキーサインするのか？

なぜキーサインするのか？

リア充

なぜキーサインするのか？

PGP/GnuPG は認証局がないので、自分が相手を信頼するしかない。
キーサインパーティを行って、 PGP/GnuPG の公開鍵をソーシャルな情報とともに交換し、信頼の輪 (web oftrust) を広げる。

使いどころフリーソフトウェア開発者の場合アカウント作成時のチェックに使ったり。
（ インターネット上での存在を示す。）
ソフトウェアのリリース時に使ったり。

Debian ではパッケージへの署名、投票などに使う。

ユーザの場合は？

メールへの署名／暗号化に利用。

Debian 開発者になるための通過儀礼。

ユーザの場合は？

Linux カーネルのリリースチェック。ちゃんと Linus がタグを打っているのか！

$ git tag -v v2.6.31
object 74fca6a42863ffacaf7ba6f1936a9f228950f657
type commit
tag v2.6.31
tagger Linus Torvalds <torvalds@linux-foundation.org> 125253444

Linux 2.6.31
gpg: 2009 年 09 月 10 日 07 時 14 分 11 秒 JST に DSA 鍵 ID 76E21CBB で施さ
gpg: 署名を検査できません: 公開鍵が見つかりません
error: could not verify the tag ’v2.6.31’

ユーザの場合は？

身近なところでは、改竄のチェックにつかう。 Debian の場合
は secure-apt で使われている。

# apt-get update.....
W: GPG error: http://cdn.debian.or.jp testing Release: The foll
signatures couldn’t be verified because the public key is notavailable: NO_PUBKEY 9AA38DCD55BE302B

ユーザの場合は？

# gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 9AA38DCD55BE30# gpg --armor --export 9AA38DCD55BE302B | apt-key add # apt-get update.....
Fetched 2B in 1s (1B/s)
Reading package lists... Done

エラーがでなくなった！ これで大丈夫です！ (って書いてあるWeb サイト多いよね。)

ユーザの場合は？

じゃなくて、ちゃんと鍵と信頼度をチェックしましょう。
鍵のチェックをするには、 Web Of Trust に入らないとできない。

チェックする簡単な方法

9AA38DCD55BE302B の鍵に署名している人は以下のとおり。

pub 4096R/55BE302B 2009-01-27
uid Debian Archive Automatic Signing Key (5.0/lenny) <ftpmastersig sig3 55BE302B 2009-01-27 _____ 2012-12-31 [selfsig]
sig sig
7E7B8AC9 2009-01-27 _____ __________ Joerg Jaspert <sig sig
D0EC0723 2009-01-27 _____ __________ Mark Hymers <mhsig sig
BE9BF8DA 2009-01-27 _____ __________ Mike O’Connor (sig sig
30B94B5C 2009-05-24 _____ __________ ******** (imaca鍵のチェック$ gpg --keyserver pgp.mit.edu --recv-keys 55BE302B$ gpg --list-sig 55BE302B
pub4096R/55BE302B 2009-01-27 [満了: 2012-12-31]
uid
Debian Archive Automatic Signing Key (5.0/<ftpmaster@debian.org>
sig
7E7B8AC9 2009-01-27 [ユーザー ID が見つかりません]
sig
D0EC0723 2009-01-27 [ユーザー ID が見つかりません]
sigBE9BF8DA 2009-01-27 [ユーザー ID が見つかりません]
sig
30B94B5C 2009-05-24 [ユーザー ID が見つかりません]
sig 3
55BE302B 2009-01-27 Debian Archive Automatic Sign

だれともサインしていないようです。

trust path finder
しかし Web of Trust なので、信頼のパスが使える。
trust path finder を使うと、信頼のパスが分かる。
http://pgp.cs.uu.nl/mk_path.cgi

Joerg と岩松の trust path

他の人を介して、 Web of Trust がつながっていることが分か

GPG キーサインパー
ティ を楽に済ませるた
めのツール
caﬀ の紹介

相手に鍵を送るまでがキーサインパーティです

相手に鍵を送るまでがキーサインパーティです。ちゃんと相手に署名した鍵を送りましょう。

キーサインの流れgpg のコマンドでやった場合$ gpg --keyserver pgp.mit.edu --recv-key 40AD1FA6$ gpg --fingerprint 40AD1FA6$ gpg --edit-key 40AD1FA6$ gpg --sign-key 40AD1FA6$ gpg --check-sig 40AD1FA6$ gpg --export -a 40AD1FA6 > iwamatsu.gpgkey$ iwamatsu.gpgkey を 相手にメールに 署名+暗号化して送信数人ならいいけど、 100 人とかやってられん！

そこで caﬀ の登場

インストール

caﬀ は signing-party パッケージで提供されている。
$ sudo apt-get install signing-party

初期化

caﬀ を使うための初期化を行う。 caﬀ を一回実行すると、初期ファイルを作成してくれる。
$ caff.......
##Regards,#{$owner}#EOM
Please edit /home/hoge/.caffrc and run caff again.

caﬀ の設定
˜/.caﬀrc にある 設定ファイルを修正する。
$ cat ~/.caffrc$CONFIG{’owner’} = ’Nobuhiro Iwamatsu’;$CONFIG{’email’} = ’iwamatsu@debian.org’;$CONFIG{’keyid’} = [ qw{4121C7433170EBE9 32247FBB40AD1FA6} ]# Additionally encrypt messages for these keyids$CONFIG{’also-encrypt-to’} = [ qw{4121C7433170EBE9 32247FBB40AD# Mail template to use for the encrypted part
$CONFIG{’mail-template’} = << ’EOM’\maketitle#Hi,

please find attached the user id{(scalar @uids >= 2 ? ’s’ : ’’){foreach $uid (@uids) {$OUT .= ‘‘\t’’.$uid.’’\n’’;};}of your key {$key} signed by me.
......

caﬀ の設定

caﬀ のデフォルトの設定では、 cert-digest-algo が SHA1 になっているので、1 SHA512 に設定する。
$ mkdir -p ~/.caff/gnupghome$ chmod 700 ~/.caff/gnupghome$ cat >> ~/.caff/gnupghome/gpg.conf
cert-digest-algo SHA512
personal-digest-preferences SHA512
EOF

1

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=527944

ローカル SMTP の設定

ローカル（ 作業するマシン）の SMTP を設定しておく必要がある。

caﬀ を使った署名署名する ID をキーサーバから取得し、指定した自分の ID で署名してくれる。そして、署名した鍵を暗号化して送信してくれる。
$ caff -u 自分の ID 署名する ID .......

署名完了後

署名後のデータは ˜/.gnupg/pubring.gpg ではなく、˜/.caﬀ/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キーサインパーティ

キーサインパーティ

みんなで sha256 ハッシュをチェックしましょう。

キーサインパーティ

7be4 db5f 8cef 8aa5
70d8 f3ac b564 8d7def81 739e 6298 1b5b004a a646 44ab 00a7

キーサインパーティ

Enjoy GPG Key Signing Party!