PKI(Public Key Infrastructure)
PKIとは、ディジタル署名の鍵配送問題を解決する技術である。
つまり、「署名の検証に用いる公開鍵が、本当に署名者の公開鍵か」という問題を、PKIは解決する。
PKIでは、CA(Certificate Authority)と呼ばれる信頼できる第三者が、公開鍵
と 公開鍵の持ち主
の関係について証明する。
なお、このような証明の情報はディジタル証明書 と呼ばれ、CAによって発行される。
ディジタル証明書は、「公開鍵とその持ち主の情報」に対するCAの署名を含み、これらの関係を証明する。
署名 = Sign(送信者の公開鍵 || 送信者の情報, CAの秘密鍵)
PKIを使えば、一つCAの公開鍵を持っているだけで、複数送信者の公開鍵を信用できる。
(結局は、事前に一個CAの公開鍵を安全に入手する必要がある。)
なお、実運用上、CAの負荷を分散するためCAはいくつか存在する。
入手しなければいけないCAの公開鍵を減らすため、 多くのCAは上位のCAによってディジタル証明書を発行してもらう。
このようなCAの関係は、効率のため木構造になっており、頂点のCAをRoot CAと呼ぶ。
実際のPKI
- WebPKI
- Webサイトの暗号化で用いる公開鍵用のディジタル証明書を提供する。
- ドメイン(例:
google.com
)とWebサイトの関係や、会社との関係を証明する。 - 多くのブラウザには、一番上位のCA(Root CA)の公開鍵がプリインストールされている。
- JPKI(公的個人認証サービス)
- マイナンバーカードに積まれたディジタル証明書を発行する。