認証局(CA)の役割 ~PKI基礎②~

PKI

認証局(CA:Certification Authority)は公開鍵証明書の発行と、発行した証明書の管理を行う第三者機関となります。

公開鍵暗号方式と共通鍵暗号方式 ~PKI基礎①~ で説明したAさん・Bさんのやりとりを例に、公開鍵暗号方式を成立させるために必要となる認証局について説明します。

認証局(Certification Authority)

認証局とは

ネットの世界ではBさんに直接会って公開鍵を受け取るわけではないので、公開鍵がBさんのものである保証がありません。Bさんの公開鍵だと思っていたら、悪意のある別人の公開鍵で、暗号化通信が傍受される可能性もあります。

そのため、公開鍵が暗号通信する相手のものであるかどうかの確認が非常に大切になります。

そこで、Bさんの公開鍵であることを第三者が証明する仕組みがあります。その第三者となるのが認証局です。

具体的な仕組みを見てみましょう。

Bさんの秘密鍵から作成した公開鍵を公開する前に、認証局の秘密鍵でデジタル署名をしてもらいます。Bさんは認証局のデジタル署名付きの公開鍵を入手しました。

認証局のデジタル署名付きの公開鍵を公開鍵証明書といい、「証明書」という単語が出てきたら大抵がこの公開鍵証明書を指します。

Bさんは、認証局のデジタル署名付きの公開鍵(公開鍵証明書)をAさんに送ります。公開鍵証明書を受け取ったAさんは、認証局の公開鍵を利用して、デジタル署名が認証局が署名したものか確認します。

認証局の暗号鍵で暗号化(デジタル署名)されたものを、認証局の公開鍵で復号化できれば、認証局が暗号化(デジタル署名)したもの、という証明になります。

認証局のデジタル署名が正しいものであることが確認できたら、Bさんの公開鍵は第三者によってBさんのものだと証明されたと同義なので、安心してBさんに暗号文が送れるようになります。

Bさんの公開鍵に署名されている証明機関のデジタル署名を正しく検証できれば、Bさんの公開鍵が本物であるということが保証されます。

ここで一つの疑問が出ます。Bさんの公開鍵は第三者である認証局によって本物だって分かったけど、第三者である認証局の公開鍵が本物かどうかはどうやって確認するのか?

それを解決するために、認証局は無条件に信頼する必要があります。

認証局の信頼

認証局の公開鍵が本物かどうか確認するのに、更なる第三者を~~~としていたら無限ループになってしまいます。そうならないように「この認証局(の公開鍵)は無条件に信頼する」とあらかじめ決めておく必要があります。

Windowsでの具体的に見てましょう。

Windows 10であればWindowsボタンを右クリックして「ファイル名を指定して実行」をクリックします。(もしくは「Windowsキー」を押しながら「R」を押す)

下記ポップアップが表示されたら「certmgr.msc」と入力してOKをクリックします。

左側の[信頼されたルート証明機関] – [証明書]をクリックすると、右側に無条件に信頼する認証局の情報が表示されます。

ここに表示されている認証局に署名された公開鍵証明書は、無条件に信頼できるものとしてマークされます。

AさんBさんの例で見てみましょう。Bさんの公開鍵証明書を受け取ったAさんは、認証局の公開鍵でデジタル署名が正しいかを確認します。

認証局の公開鍵については、Aさんの「信頼されたルート証明機関」に登録されたものであるため、無条件に信頼でき、Bさんの公開鍵が第三者(認証局)によって証明されたものとなります。

信頼できる第三者は「信頼できるルート証明機関」にあらかじめ登録しておくことで、無条件に信頼するようになっています。無闇やたらに登録するのは危険なので、登録する際には慎重に判断しましょう。

公開鍵証明書の失効確認

仮にBさんの秘密鍵が漏洩したとします。どういったことが起きるのかというと、Bさんの公開鍵で暗号化した暗号文が、Bさんの秘密鍵を入手した他の人も復号化できてしまう事態になります。これでは安全に暗号文を送れません。

そこで、秘密鍵が漏洩してしまった場合などは、Bさんが認証局に「失効」という処理をしてもらう必要があります。

認証局はBさんの公開鍵は安全でないため、失効リスト(通称CRL:Certificate Revocation List)にBさんの公開鍵の情報を載せます。

AさんはBさんの公開鍵を使う前に、Bさんの公開鍵にデジタル署名した認証局に問い合わせます。認証局は証明書失効リスト(CRL)をAさんに渡し、AさんはBさんの公開鍵証明書が失効していないか確認します。

もし、失効リストにBさんの公開鍵証明書の情報が載っていれば、Bさんとの暗号化通信は安全ではないということになります。

暗号化通信を始める前に失効リストを確認し、暗号化に使う公開鍵証明書が失効していないかチェックします。

公開鍵暗号方式を利用した暗号文やりとりの流れ

公開鍵暗号方式と共通鍵暗号方式 ~PKI基礎①~ からここまで、色々な情報が出てきました。説明の便宜上、一部説明を省いたりしていたので、一度整理し、AさんがBさんに公開鍵暗号方式を利用して暗号文を送るための流れを最初から書きます。

①事前準備として、Bさんは秘密鍵を元に公開鍵を作成し、認証局にデジタル署名してもらいます。(公開鍵証明書の発行依頼)

②AさんがBさんに暗号化通信をリクエストします。Bさんは認証局にデジタル署名してもらった公開鍵証明書をAさんに送ります。

③Aさんは認証局の公開鍵でデジタル署名を確認し、公開鍵証明書がBさん本人のものか確認します。また、公開鍵証明書が失効していないか失効リスト(CRL)で確認します。

④公開鍵証明書がBさん本人のものであると確認できたら、Bさんの公開鍵証明書で平文を暗号化し、Bさんに送ります。Bさんは自身の秘密鍵で暗号文を平文へ復号化します。

ここまでが公開鍵暗号方式を利用した通信の一連の流れになります。

まとめ

ネット上では通信相手が本人かどうかの確認が非常に困難です。そこで、非常に厳しい審査をクリアした企業が認証局を運営し、以下の流れで暗号化通信する人が本人である証明をしてくれます。

  1. 暗号化通信を受けたい人の公開鍵証明機関の秘密鍵でデジタル署名を付与します。(公開鍵証明書の発行
  2. 暗号化通信したい人が公開鍵証明書を受け取り、信頼できる証明機関から発行されているかデジタル署名の検証をします。
  3. 公開鍵証明書が失効していないか証明機関の失効リスト(CRL)を確認します。

ここまでやって初めて、通信相手が本人であるという証明が可能となります。

以上のことより、認証局の仕事は大きく2つあることになります。

  • 証明書の発行(本記事では公開鍵へのデジタル署名と表現しています)
  • 証明書の失効及び失効リスト(CRL)の管理

公開鍵暗号方式での通信の仕組みを理解いただけたでしょうか?

認証局の種類と証明書の種類について、以下の記事にまとめました。本記事と併せて確認してみてください。

認証局の種類と証明書の種類 ~PKI基礎③~
認証局は公的に運用を認められたパブリック認証局と、各企業が独自に運用するプライベート認証局があります。公開鍵証明書を利用する際、どちらかの認証局が発行した証明書を利用するのが一般的となります。今回はそれぞれの認証局の特徴と、パブリック認証局が発行する証明書の種類について説明します。

コメント