PKIとは
Public Key Infrastructure = 公開鍵基盤 or 公開鍵暗号基盤
公開鍵暗号化技術やデジタル署名を利用して安全に通信をするフレームワーク(仕組み)のこと。
なぜPKIが必要?
- 共通鍵暗号化方式による暗号鍵の共有が困難
- 公開鍵暗号化方式による公開鍵の配布には安全性に欠ける
→MITM攻撃(横取りしてなりすましorすり替え)を受ける可能性がある
つまり。。
配布させる公開鍵の"真正性=ホンモノである"を証明しなくてはいけない!!
トラストモデル
公開鍵の真正性を確認する方法のことをいう。
-
Web of Trustモデル
公開鍵の真正性を 自分が信頼する人物に保証(署名) してもらう -
認証局モデル
公開鍵の真正性を 信頼できる第3者機関(TTP)に保証(署名) してもらう
→詳しく後述 -
TOFUモデル
初めてアクセスする際に使用する公開鍵を信頼して登録し、次回からの検証に使用する
公開鍵証明書
公開鍵とその所有者を証明するもの。
目的や証明する対象により、3つに分類できる。
- サーバ証明書 :サーバを識別する証明書
- クライアント証明書 :クライアントを識別する証明書
- ルート証明書 :認証局(TTP)を識別する証明書
※公開鍵証明書は認証局が発行するものなので、ルート証明書は認証局が自らを証明する証明書となる。(自己署名証明書)
認証局モデルのフロー
-
証明書の発行
a. 自分の公開鍵に証明書を付けたい人(以下、主体)が公開鍵ペア(公開鍵と秘密鍵)を作成
b. 主体がCSR(主体の情報+公開鍵)を作成し、登録局に提出
c. 登録局が主体の本人性を確認
d. 本人確認出来たら登録局が認証局にCSRを提出
e. 認証局が公開鍵に署名し、証明書を発行
f. 証明書付き公開鍵を主体に返す
※その後、主体が公開鍵を配布する際は、認証局を通して配布する -
証明書の検証
a. 主体の公開鍵を利用したい人(以下、利用者)は公開鍵を安全に利用する為に、それに付随する証明書がホンモノかを検証する必要がある
b. 証明書の発行者が認証局なら、配布されている認証局の公開鍵で検証できる
c. 証明書が認証局で発行されたものと確認出来たら、OK -
証明書の失効
以下の場合は、証明書を破棄する必要がある
・証明書付き公開鍵の対となる"秘密鍵"が紛失 or 漏洩などした場合
・証明書の記載事項を更新した場合