証明書ストアに格納されている証明書の列挙 (1/2)

CA 証明書、ルート証明書って何?

公開鍵基盤 (公開鍵インフラストラクチャ, PKI, Public Key Infrastructure) では証明機関が発行した証明書というものが、大変重要な役割を担っています。

なんのことやらさっぱり、という人もいるかもしれませんが、証明書について少し知っておかないとこの資料でやっていることが全く意味不明だと思いますので、簡単に説明します。 (厳密さは追求しませんので、細かい突っ込みはやめてくださいね(苦笑))

さて例えば、「SSL を利用する時に VeriSign が発行したサーバー証明書を利用する」 というようなことは、一度くらい聞いたことがあるのではないでしょうか。 この場合、VeriSign は「証明機関」(CA) にあたります。特に自らの正しさを自己主張する、大元の証明機関を ルート CA (root CA) といいます。

Windows (とか IE) は VeriSign が発行してくれた証明書なら信用できるだろう、ということでそのサーバー証明書を信頼するわけです。 証明機関を信頼するからこそ、そこが発行したサーバー証明書を提示してくる Web サーバーへのアクセスを、信用がおけるものとみなします。

さて、 VeriSign がそもそも証明機関であることは、どうしたらわかるでしょうか?

実は Windows はあらかじめ 「VeriSign は証明機関ですよ」ということがわかるための情報を持っているのです。

証明機関に関する情報も「証明書」という形で保存されており、これを「CA 証明書」 といいます。特にルート CA の証明書は 「ルート証明書」 といいます。

そして Windows には VeriSign のルート証明書が保存されています。

とりあえず、ここまでがこの資料で作成するプログラムを理解するために必要な前提知識です。

もっと公開鍵やら証明書について知りたい人は別の資料を読んでください。

証明書は証明書ストアに格納されている

証明書は Windows では証明書ストア (certificate store) という特別な格納領域に保存されています。 ここには、証明書 (certificates)、証明書失効リスト (certificate revocation lists, CRL) 及び証明書信頼リスト (certificate trust list, CTL) 等が格納されています。

そして、証明書ストアはプログラムからは Crypto API を通して、それにアクセスすることが可能です。

証明書ストアに格納されている証明書の列挙 (2/2) へ続く »»

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説