今回は公開鍵暗号方式に関する PKI(公開鍵基盤) をメインにやっていきます。
前回の公開鍵暗号方式で触れた公開鍵の問題を解決するための技術です
PKI(公開鍵基盤)とは
認証局 が公開鍵に対し デジタル証明書 を発行する仕組みや、その環境を指します。
PKIの構成要素
PKIにはいくつかの 局 で構成されています
・認証局(CA)
メインとなる局で、公開鍵に対し証明書を発行する局
利用者は公開鍵を含めた CSR(証明書署名要求) を作成し、それを認証局に提出します
・登録局(RA)
CSRの受付けや、申請者の身元を確認する窓口担当の局
・発行局(IA)
実際に証明書の発行を担当する局
CAにはRAとIAが内包されていますが、会社の規模によってはRA,IAに分割して運用することもあるようです。
特に上記の3つが重要なイメージですが、以下のような局も存在します
・検証局(VA)
証明書の有効性を確認する為の局
証明書が失効した場合、CRL(証明書失効リスト) にシリアル番号や失効日が記載されていきます
そのCRLの管理や、OCSP というリアルタイムで証明書の有効性を確認する専用のプロトコルを用いたレスポンスを行います。
・属性局(AA)
ユーザの属性情報を管理する局
具体的には、役職や所属を管理する
証明書発行までの流れ
1 ユーザは鍵ペアの生成後CSRを作成し、CA(RA)に提出する
CSRには公開鍵や、署名時のアルゴリズム、ユーザ名や組織名など…
2 CA(RA)がCSRを承認し、(IAが)証明書を発行する
CA(IA)が証明書を生成し、CAが管理する秘密鍵で署名する
3 発行された証明書をユーザーに提供する
デジタル証明書の種類
・公開鍵証明書
公開鍵に対するデジタル証明書のこと
・クライアント証明書
デバイス(PCやスマホ)に対するデジタル証明書
・SSL/TLS証明書
いわゆるサーバ証明書のこと
HTTPS通信に必要となる
・S/MIME証明書
S/MIME(メールの暗号化)に必要な証明書
・コードサイニング証明書
ソフトウェアに対する証明書
証明書の検証
証明書の検証として、証明書の以下の内容を確認します
※サーバ証明書を想定、クライアント(ブラウザ)が検証を行う側
・有効期限
文字通り証明書の有効期限を確認し、期限切れでないことを確認します
・ホスト名の一致
CN:CommonName
SAN:SubjectAltName
証明書にはこれらのフィールドにホスト名(サーバの名前)のFQDNが記載されています
そのホスト名とアクセスしようとしているサーバのホスト名の一致を確認します
・発行元の信頼性と証明書チェーンの検証
証明書の検証には、証明書を発行したCAの公開鍵が必要になる
証明書を発行するCAは上位CA(中間CA/ルートCA)から署名を受ける必要がある
ルートCA → 中間CA → 発行元のCA というように
ルートCAは中間CAを、中間CAはさらに下位のCAに行う
このような署名の連鎖を証明書チェーン(信頼のチェーンなど)という
発行元のCAから上に上がっていき、最終的にルートCAまで検証できることを確認する
・自己署名証明書
先述の通り、証明書には上位のCAによる署名が必要となるが
その署名がなく、発行元CAが自身で署名することを 自己署名 という
自己署名では信頼性に欠けてしまうので、検証は失敗してしまいます
ちなみにルートCAの証明書は、それ以上のCAが無いので自己署名のものとなってますが
ルートCA自体が厳しい条件で管理されているので、信頼できます。
・証明書の失効状況
提供された証明書が失効していないかを確認します
CRLやOCSPを使って確認します
証明書が失効する場合とは、証明書の誤発行や署名に利用された秘密鍵が漏えいしてしまった
などが考えられます
まだまだ書きたいことがありますがこの辺で…
コメント