namdicul's blog

気ままに更新します. CTFと暗号理論について勉強中です.

暗号理論(8) ~ 証明書 ~

暗号技術入門 第3版

暗号技術入門 第3版

暗号技術のすべて

暗号技術のすべて

証明書とは

前回では, デジタル署名について紹介しました. デジタル署名によって, なりすましやデータの改ざんを検出できたり, 送信データが正しい相手のものなのかを検証できるようになりました.

しかし, 受け取った公開鍵が本当に正しい相手のものなのかを検証する手段は依然として確立されていません. それを検証するために「(公開鍵)証明書」を使用します.

証明書を使用するまでの手順

証明書は信頼できる第三者機関が作成する必要があります. この第三者機関を「Trent」と命名しましょう.

例によってAliceがBobにメッセージを送信する場合を考えていきましょう.

(1) 公開鍵の登録
Bobはまず自分の公開鍵を認証局Trentに登録する必要があります. 登録する際には, 定められた「運用規定」にしたがって本人確認をする必要があります. 例えば, メールによる本人確認, 実際にBobが認証局を訪れて対面することによる本人確認などがあります.

(2) 証明書の作成
本人確認によりBobであることが確認できたら, TrentはBobの公開鍵にデジタル署名をします. もちろん, デジタル署名をする際にはTrent自身の秘密鍵が必要なので, あらかじめ用意しておきます(同時にTrentの公開鍵も用意しておきます). 証明書には, Bobの公開鍵とTrentによるデジタル署名が存在しています.

(3) 証明書の取得
AliceはBobに対してメッセージを送りたいので, Bobの公開鍵が必要になります. その際に, AliceはTrentから証明書を取得し, Trentの公開鍵で検証をします. 検証に成功すれば, 証明書に含まれているBobの公開鍵が正しいものであるとわかります.

このようにして, AliceはBobの正しい公開鍵を入手することができます.

公開鍵基盤(PKI)

公開鍵基盤(以下, PKI)とは, 公開鍵を効果的に使うために定められた規格や仕様の総称を指します.

PKIの構成要素は主に3つあります.

(1) 利用者
ここでいう利用者とは, 公開鍵を登録しようとしている人と, 公開鍵を利用しようとしている人の両方を指します.

(2) 認証局
認証局では, 証明書の管理を行います.

(3) リポジトリ
リポジトリとは, 証明書を保存し, PKIの利用者が証明書を入手できるようにしたデータベースのことを指します.

証明書に対する攻撃

証明書に対してもいくつかの攻撃手法が考えられます.

認証局へ登録する前に公開鍵を攻撃する

認証局に登録されてしまったら攻撃は難しくなるので, 登録する前にman-in-the-middle攻撃などを仕掛けることができます.
この攻撃を防ぐためには, Bobが公開鍵を認証局に登録する際に, 認証局の公開鍵を作成してBobの公開鍵を暗号化することが有効です.

攻撃者自身が認証局になる攻撃

認証局は信頼ある第三者機関によって営まれなければならないのですが, この認証局が悪意ある第三者であることを偽ることができれば, 攻撃者自身が認証局になりえます. こうすれば悪意ある攻撃がいくらでも可能になってしまいます.
こうなることを防ぐには, 信頼できない認証局は使用しないことが大切です.