7月の技術講座

2013-07-08

テーマ: GnuPG

開催日時 2013年07月14日(日曜日)18:30 〜 19:30

場所:東京体育館第三会議室

GnuPG (GNU Privacy Guard)の開発の現況をリポートするほか、EZKSP (Easy KeySigning Party Protocol)による鍵の署名の証明のための情報交換をします。

GnuPG (GNU Privacy Guard)の 2.0.20 が今年の5月10日にリリースされ、Gpg4winも5月31日にリリースされました。

次期2.1シリーズの開発では、楕円曲線暗号のサポートが入っています。また、2.0.x シリーズの開発では、gpg-agent による ssh-agent サポートの機能に関してPutty のサポートが進んでいます。

概要

GnuPGは、年一回くらいしかリリースされないので、忘れちゃっている/見落としている人もいるかと思いますが、新しいリリースが出ています。

今回のリリースでは、特に、Gnuk Token の利用のための修正など、smartcardサポートのfixがいくつも入っているほか、日本語のメッセージの修正も行われています。

Gnuk Tokenの開発の余波で、GnuPG の開発にも参加するようになった g新部が、いくつかの話題を話します。

EZKSP (Easy KeySigning Party Protocol)

また、 EZKSP による鍵の署名の証明のための情報交換をします。

近年、よく行われるKSP(Key Signing Party)では、コーディネータによる的確な事前の準備が必要で、また、参加者も、ファイルを事前に入手し印刷し、チェックサムを計算する必要があります。

これは、より厳格に手順が定まっていてKSPのアセスメントがしやすく、手間も減らせてきちんと確認ができるという利点がありますが、準備が必要なこと、人手によるチェックサムの確認がMD5のころは短かくて(128-bit)SHA1まではなんとかできた(160-bit)がSHA2(256-bit or more)はもう集中力が続かなくて無理という場合もなくはない、などの問題があるかもしれません。

なによりも、飛び入り参加がしにくい、その扱いが難しい、という欠点があります。

今回のプロトコルは、わかりやすく、大人数でなければ手間もさほど問題にはなりません。

EZKSP に持ってくるもの

  • 自分の鍵の情報の紙: 鍵のID、名前、フィンガープリントを印刷した紙(の短冊)を想定される人数分 たとえば、以下のようです(gpg --list-key --fingerprint <自分の鍵ID> の出力):

    pub   2048R/4CA7BABE 2010-10-15
          Key fingerprint = 1241 24BD 3B48 62AF 7A0A  42F1 00B4 5EBD 4CA7 BABE
    uid                  NIIBE Yutaka <gniibe@fsij.org>
    uid                  NIIBE Yutaka <gniibe@debian.org>
    sub   2048R/084239CF 2010-10-15
    sub   2048R/5BB065DC 2010-10-22
    
  • 自分の名前を証明するもの。User ID に英字を使っている場合はパスポート。

今回のEZKSP (前提)

今回は鍵サーバの利用をデフォルトとします。

  • 鍵サーバに鍵があることが前提
  • 署名した鍵を署名した人が送信することが前提

この前提を選択しない場合は、相手にその旨を伝えて、鍵を相手に送付してください。

EZKSP のやり方(事前準備)

  • 持っていない場合は、鍵を作っておく。(gpg --gen-key)
  • 自分の鍵の情報の紙を印刷する。

EZKSP のやり方(現場)

だいたいのやりかた:

  • 机の回りにそれぞれ並びます。向き合った二人の優先順位(東が先とか)を決めておきます。
  • 自分の鍵と自分の名前を結びつけてもらうため、まず、自分の鍵の情報の紙を渡します。
  • 次に、自分の名前をパスポート(などで)確認してもらいます。
  • 相手の鍵に対して同じように。
  • 違う人とこれを繰り返します。

「違う人とこれを繰り返す」のをシステマチックにもれなく全部効率よくやる場合は、参加者の半分のグループがひとつ隣に動く、というようにし、それで、その方法での組み合わせがすべて終わったら、再帰的に半分のグループのメンバー同士で同じように繰り返します。

EZKSP のやり方(現場での情報交換が終わった後)

  • 鍵サーバから鍵のIDで鍵を入手します。(あるいはメールで送ってもらいます)
  • 現場でもらった紙と情報を確認します。(鍵のID、名前、フィンガープリントの一致) (一致しない場合は署名しません。)
  • 署名します。(gpg --sign-key)
  • 相手に(gpg --encrypt --armor で)暗号メールを作成して送るか、(gpg --send-keys で)鍵サーバに署名した鍵を送ります。

ご注意

18:00 まで、同じ会議室でFSIJ総会をやってます。