X.509証明書の中身を見る
皆さん、こんにちは。技術開発グループのn-ozawanです。
今年の夏ごろ、フロリダ州郊外でウサギが住宅街を占拠したニュースがありました。原因はブリーダーが引っ越す際にウサギを捨てたところ、そのまま大繁殖してしまったとか。動物は最後まで責任持って飼いたいですね。
本題です。
公開鍵証明書を運用する基盤を公開鍵基盤(PKI)と呼びます。公開鍵基盤(PKI)は公開鍵とその所有者の関係を保証するための幅広い規格となっており、X.509はその一部としてRFC 5380で規格化されています。X.509は公開鍵証明書の形式や構成などを定義した規格です。今回はX.509の内容を見つつ、実際の証明書の中身を覗いてみましょう。
目次
X.509証明書
X.509の構成と内容
X.509証明書は、tbsCertificate
、signatureAlgorithm
、signatureValue
の3つで構成されます。

tbsCertificate
公開鍵やその所有者、証明書の発行者などの情報が含まれるフィールドです。tbsCertificate
には以下の情報が含まれます。
バージョン (Version) | X.509のバージョンを指定します。最新はv3です。 |
シリアル番号 (Serial Number) | 認証局により、各証明書に割り当てられた番号です。 証明書ごとに一意である必要があります。 |
署名 (Signature) | 認証局が証明書に署名する際のアルゴリズムです。 |
発行者 (Issuer) | 証明書の署名して発行した認証局です。 |
有効期間 (Validity) | 証明書の有効期間です。From~Toで指定します。 |
主体者名 (Subject) | 公開鍵の所有者の情報です。 名前だけでなく住所などの情報も含みます。 |
主体者公開鍵情報 (Subject Public Key Info) | 公開鍵です。 |
一意の識別子 (Unique Identifiers) | 発行者もしくは主体者を一意に表現する識別子です。 任意です。 |
拡張 (Extensions) | 追加の情報を、主体者もしくは公開鍵に紐づける際に利用されます。 任意です。 |
signatureAlgorithm
認証局がこの証明書への署名で使用したアルゴリズムです。
signatureValue
tbsCertificate
の署名です。
証明書失効リスト
公開鍵証明書は、有効期限の範囲外であれば、その証明書は無効であり使用してはいけません。しかし、何らかの事情により、有効期限の範囲内であったとしても、証明書を無効にすることがあります。何らかの事情とは、例えば、秘密鍵が漏洩した、誤って証明書を発行してしまった、などがあります。
認証局は、有効期限切れを含む、失効した証明書のリストを保持します。ユーザーが証明書を受け取り、その証明書の署名に問題なかったとしても、その証明書が証明書失効リストに載っている場合は使用してはいけない、ということになります。
詳細は割愛しますが、X.509には、証明書失効リストに関する規格も含まれています。
公開鍵証明書の中身を覗く
実際に証明書の中身を見てましょう。アクセスしたサイトの公開鍵証明書を確認する方法は簡単です。Chromeの場合だと、URLバーにある南京錠マークをクリックして、「この接続は保護されています」→「証明書は有効です」を順にクリックすれば、そのサイトの公開鍵証明書を確認することが出来ます。

以下の画像は当社HPの公開鍵証明書の中身です。証明書の発行先(主体者、公開鍵の所有者)と、発行した認証局、有効期間が分かります。フィンガープリントとは指紋のことで、証明書および公開鍵のSHA-256によるハッシュ値です。
詳細タブにはより詳細な内容が表示されています。先ほど述べたtbsCertificate
の内容が確認できます。もちろん、当社が公開している公開鍵も確認することが出来ます。

おわりに
実際にX.509の中身を覗いてみました。知識だけでなく、実物を見ることで、何となくイメージが湧くのではないでしょうか。
ではまた。