民芸的プログラミング 〜ソフトウェア開発日記〜

アクセスカウンタ

zoom RSS GnuPGについて (17) 信頼の輪モデルの続き

<<   作成日時 : 2008/11/02 00:03   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

知らない人から、GnuPG(あるいは PGP)の鍵を受け取った場合、その鍵の信頼度をどのように判断すればいいのか。
その説明の構想を練るのに相当時間がかかってしまった。
そして、結局、「The GNU Privacy Handbook」を適宜日本語訳し、解説を加える形にすることにした。

・Alice は Bob の鍵に署名をしている
・Bob は Carol の鍵に署名をしている
・Alice は Carol の鍵を持っていない(当然、署名もしていない)

この状態で、Alice が初めて Carol の鍵を受け取ったとする。Carol に直接電話して、Carol の鍵の鍵指紋を照合するというのがこれまでの考え方だった。

しかし、信頼の輪モデルを使うと少し話が違ってくる。
Alice は予め、Bob について、信頼度( trust )を設定しておくことができる。Bob は OpenPGP に精通しており、やたらめったら電子署名するような人物ではないと信じられるなら、Alice は Bob の信頼度を完全( full )と設定することができる(設定のためのコマンドは別の記事で紹介する)。そして、その場合、Bob の署名のある鍵に関しては、いちいち鍵指紋の照合をしなくても、「正当な鍵である」と GnuPG が判断してくれる。

鍵の信頼度には
unknown (不明。初期状態)
none (信頼度なし)
marginal(部分的)
full(完全)
の4レベルがある。

そして、GnuPG では、デフォルトでは、
・自分自身が署名している
・鍵に信頼度が full の人の署名が一つ以上ついている
・鍵に信頼度が marginal の署名が三つ以上ついている
の3つのいずれかの条件を満たしており、さらに
・この検証レベルが5ステップ以内に収まっている
場合に、その鍵の正当性は完全( full )であると判断するようになっている。

引き続きこの意味を、ケーススタディで説明する。ただし、説明を簡略化するため、GnuPG のデフォルトの動作とは異なり、
・自分自身が署名している
・鍵に信頼度が full の人の署名が一つ以上ついている
・鍵に信頼度が marginal の署名が二つ以上ついている
の3つのいずれかの条件を満たしており、さらに
・この検証レベルが3ステップ以内に収まっている
場合に、その鍵の正当性は完全( full )であると判断するというように、スケールを小さくして説明する。

画像

ここで、
・Alice は Bob と Dave の鍵に署名している
・Bob は Carol の鍵に署名している
・Carol は Ellen と Frank の鍵に署名している
・Dave は Carol と Frank の鍵に署名している
・Ellen は George の鍵に署名している
ものとし、Alice がそれぞれの鍵の正当性をどう判断するかを見ていく。

ケース1
Dave の信頼度を full にした場合
画像

○Bob(直接署名している)
○Carol(信頼度が full の Dave の署名がある)
○Dave(直接署名している)
×Ellen(Carol の署名があるが、Carol の信頼度は不明)
○Frank(Dave の署名がある)
×Geroge(Ellen の署名があるが、Ellen の信頼度は不明)

ケース2
Bob と Dave の信頼度を marginal にした場合
画像

○Bob(直接署名している)
○Carol(Bob と Dave で marginal 2人の署名がある)
○Dave(直接署名している)
×Ellen(Carol の署名があるが、Carol の信頼度は不明)
△Frank(信頼度が marginal の Dave の署名がある)
×Geroge(Elen の署名があるが、Ellen の信頼度は不明)

ケース3
Carol と Dave の信頼度を marginal にした場合
画像

○Bob(直接署名している)
△Carol(信頼度が marginal の Bob の署名がある)
○Daniel(直接署名している)
×Ellen(Carol の署名があるが、Carol の鍵は正当か不明)
△Frank(信頼度が marginal の Dave の署名がある。Carol の鍵は正当か不明)
×Geroge(Ellen の署名があるが、Ellen の鍵は正当か不明)

ケース4
Bob と Carol と Dave の trust を marginal にした場合
画像

○Bob(直接署名している)
○Carol(Bob と Dave で marginal 2人の署名がある)
○Dave(直接署名している)
△Ellen(trust が marginal の Carol の署名がある)
○Frank(Carol と Dave で marginal の2人の署名がある)
×Geroge(Ellen の署名があるが、Ellen の鍵は正当か不明)

ケース5
Bob と Carol と Ellen の trust を full にした場合
画像

○Bob(直接署名している)
○Carol(Bob の署名がある)
○Dave(直接署名している)
○Ellen(Carol の署名がある)
○Frank(Carol の署名がある)
×Geroge(Ellen の署名があるが、検証ステップが3段を超えている)

以上のように「自動的に」正当性が判断されることになる。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
GnuPGについて (17) 信頼の輪モデルの続き 民芸的プログラミング 〜ソフトウェア開発日記〜/BIGLOBEウェブリブログ
文字サイズ:       閉じる