- 作者: 結城浩
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/08/26
- メディア: 単行本
- この商品を含むブログ (19件) を見る
第10章 証明書
公開鍵暗号方式は鍵の配送問題を解決したが、man-in-the-middle攻撃には弱い。そこで、公開鍵が正しいものかどうか証明できる証明書を使って自分の持っている鍵が本当に通信したい相手の公開鍵であることをたしかめることができればman-in-the-middle攻撃を防ぐことができる。
証明書
公開鍵証明書は認証局(CA)によるデジタル署名が行われたデータ。公開鍵そのものと、メタデータをふくんでいる。
公開鍵証明書の利用フローは次のようになる。
- 受信者が公開鍵と秘密鍵のペアを作成する
- 受信者が公開鍵を認証局に登録する
- 認証局は受信者の本人確認をする(どの程度厳しくやるかは場合による。)
- 認証局が受信者の秘密鍵にデジタル署名をし、証明書を作成する
- 送信者が認証局から受信者の公開鍵を証明書の形で取得
- 送信者が認証局の公開鍵を用いて証明書を検証する
- 送信者が検証された公開鍵を用いてメッセージを暗号化し、送信する
- 受信者は受け取ったメッセージを秘密鍵で復号し読む
公開鍵基盤(PKI)
公開鍵を運用する規格や仕様の総称を公開鍵基盤 PKIという。PKIはさまざまな規格の総称である。
PKIは利用者・認証局・リポジトリという3つのエンティティから構成される。
利用者は公開鍵暗号をつかってメッセージをやりとりする主体であり、行うことは↓を参照のこと。
認証局は - 鍵ペアを作成する - 公開鍵登録時に本人認証をする - 証明書を作成・発行する - 証明書を破棄する(CRLという、「我々の発行したこの証明書はもう無効ですよ!」というリストを発行する)
といった仕事をする。
リポジトリは認証局のつくった証明書を保存しておき、要求されたら渡す倉庫のようなもの。
証明書の正しさは、別の認証局が保証する。この関係は何重にも階層をなしている。最上位の認証局はルート認証局といい、自分の公開鍵に自分で署名を行っている。
証明書に対する攻撃
- 公開鍵登録時に公開鍵をすり替える
- → 認証局の公開鍵を使って登録する鍵を暗号化しておく
- → 本人確認時に公開鍵のフィンガープリントを確認
- 見間違えられるような登録情報を登録(gooogle.com みたいな感じ)
- 気をつける(笑)
- 認証局の秘密鍵を盗む
- 認証局さん気をつけて
- 認証局は発行した証明書の台帳を持っている。そこにのっていないものは盗まれた鍵で作られた偽物
- 攻撃者が認証局に成る
- 信頼できる認証局を使う
- 鍵を盗んでCRLが発行されるまでの時間差で攻撃