情報セキュリティスペシャリスト
情報技術者試験まとめへ

PKI

PKI(Public Key Infrastructure)とは、公開鍵基盤。公開鍵を利用したセキュリティの枠組み。
PKIによって、機密性、完全性、真正性、否認防止性を保つことが可能になる。

PKIの概要

公開鍵暗号技術はアルゴリズムが公開されているため、誰でも公開鍵と秘密鍵を生成可能である。公開鍵暗号技術による認証、署名は、公開鍵や秘密鍵の正当性が保証されていることが重要
そのため、認証基盤をしっかり構築することが必要となる
【認証基盤の構築】
PKIを構成する要素

また、証明書を運用するのに必要な技術がデジタル署名である。

デジタル署名

デジタル署名とは

デジタル署名は、文字通りデジタルな署名であり、ITの世界の署名である。 機能や目的も一般的な全く同じ。

デジタル署名の目的は

しかし、それが保証されるのは、ルート証明書が正しいときだけ
PKIのセキュリティが保たれるのは、「公開鍵が正しい」ときだけ

電子証明書は何を証明するもの

情報処理技術者試験やインターネットにおける"証明書"とは、"公開鍵証明書"を意味する。インターネットの世界で安全な通信をするには公開鍵が重要な役割を持つ。公開鍵の真正性と完全性を保証するために公開鍵証明書が必要である。

XMLデジタル署名
XMLデジタル署名の特徴:
XML文書中の、指定したエレメントに対して署名することができる。
XML署名において署名対象であるオブジェクトの参照を指定する表記形式:
URIの形式

デジタル署名の検証方法

通信のしくみ


デジタル署名の生成(Aさん)

  1. 公開鍵、秘密鍵を生成
  2. 公開鍵を公開する
  3. 署名する電子データからハッシュ関数を使いメッセージダイジェストを生成
  4. 生成したメッセージダイジェストを自分の秘密鍵で暗号化、署名を生成する
  5. 電子データと生成した署名をBさんに送信

デジタル署名の生成(Bさん)

  1. 受信した電子データからハッシュ関数を使いメッセージダイジェストを生成
  2. 受信した署名を、Aさんの公開鍵で復号、メッセージダイジェストを生成
  3. (6)と(7)のメッセージダイジェストを比較し、完全に一致することを確認する

署名の検証時には、その署名のデータを署名者の公開鍵で復号して元のデータと比較し、一致すれば元のデータが偽造や改ざんされていないことが確認できる

デジタル証明書(電子証明書)

証明書の種類

ルート(CA)証明書

認証局であるCAの公開鍵を証明する証明書
デジタル証明書を発行する認証局(CA)が、その正当性を証明するために自ら署名して発行するデジタル証明書
サーバ証明書やクライアント証明書のデジタル署名を照合するときに、CAの公開鍵が必要になる

サーバ証明書
クライアント証明書

デジタル証明書の概要

証明書の基本的な構造

証明書はX.509に準拠したフォーマットになっている。

X.509

IETFのPKI(X.509)と証明書失効リストプロファイル(CRL)のこと

証明書の構造

X.509 v3 デジタル証明書の構造は、以下のとおり。

パラメータ説明具体例
1証明書バージョンX.509証明書のバージョンV5
2シリアル番号CAが一意に発行した番号20オクテットまでの数値
3署名アルゴリズムCAがこの証明書を発行するときに
利用したアルゴリズム
SHA5 RSA
4発行者CAの名前BP Security
5有効期間有効期間開始及び満了の日付・時刻
6サブジェクト主体者(照明を受ける人)の名前Server X
7公開鍵アルゴリズム主体者の公開鍵アルゴリズムRSA
8公開鍵主体者の公開鍵Server Xの公開鍵【※1】
9署名アルゴリズム3と同じものを記述SHA5 RSA【※2】
10署名値CAがこの証明書に署名した値【※3】
【※1】証明書の中に公開鍵が入っている
パラメータの8に主体者(サーバA)の公開鍵が含まれている。故に「サーバAのX.509証明書を送ってもらう」ということは、「サーバAの公開鍵を送ってもらう」と同義になる。
【※2】署名値を作るためのアルゴリズムが明記されている
パラメータの9に署名作成のためのハッシュ関数と公開鍵暗号方式の二つのアルゴリズムが明記される。(署名値はデジタル署名の仕組みにより作られている)。
なお、3と9は同じものを記述する。
【※3】署名値の作り方が決まっている
上記の場合、1〜8までを、9に記載されているハッシュ関数(ここではSHA5)を使用してハッシュ値を算出、そのハッシュ値に対して、同じく9に書かれている公開鍵暗号方式(ここではRSA)を使ってCAの個人鍵で暗号化する。これが署名値になる。

※注意※

電子証明書の署名

電子証明書は、元の文書である証明書部分にデジタル署名を付与したもの
では、署名をするのは誰か

証明書の種類デジタル署名をする人備考
クライアント証明書CA
サーバ証明書CA
CA証明書CA自己署名

※デジタル署名の電子商取引などの場合は、認証局であるCAではなく、署名者本人が署名する(注意)

CAのデジタル署名

CAのデジタル署名とは、CAの秘密鍵で証明書のダイジェストを暗号化したもの。

CRL(Certificate Revocation List:失効リスト)

※有効期限が切れたものは、CRLに登録しなくても、有効期限をチェックすれば無効かどうかが分かる。

デジタル証明書による認証基盤構成要素

認証局(CA:Certification Authority)

【役割】


≪CAの構造≫
CAは、「上位CAが下位CAを認証して証明書を発行する」という階層構造になっている
最上位のCAはルートCAと呼ばれる
証明書に正当性を検証する場合は、該当証明書を発行したCAからルートCAまでの経路(証明のパス)を順にたどり、経路上のすべてのCAの正当性を確認する必要がある

RA(登録局)

RA(登録局)では、証明書発行の受付をする
電子証明書申請者の本人性を審査・確認し、主として登録業務を行う機関。RAは本人性(間違いなく本人であること)に責任を負うが、証明書に署名したり、証明書を発行したりはしない。
【役割】

IA(発行局)

証明書有効性検証局(VA:Validation Authority)

デジタル証明書の失効状態についての問合せに応答すること


≪証明書の有効性を確認する方法≫

受け取った電子証明書が有効かどうかは以下の3つで確認する。

デジタル署名の照合
「証明書をハッシュしたもの」と「デジタル署名をCAの公開鍵で復号したもの」が一致するか。これにより、公開鍵が本人のものであること(真正性)と改ざんされていないこと(完全性)が確認できる

証明書が有効期限内であるか。

「失効情報の確認」「証明書の失効確認」
CRL(Certificate Revocation List:失効リスト)を照合し、CRLに登録されていないか
またはOCSP(Online Certificate Status Protocol)プロトコルを使った失効確認を行う。OCSPの方が、リアルタイム性が高いが、OCSPレスポンダと呼ばれるサーバを立て、なおかつ事前にCRLを取り込んでおかなくてはいけない。仕組みが整っていない場合が多い。


ディレクトリ(リポジトリ)

PKIを運用するのに必要な情報を一元管理し,利用者に公開するためのデータベースのこと
CRLもここに登録される

OCSP(Online Certificate Status Protocol)

デジタル証明書の失効情報(有効性)をリアルタイムで問い合わせる(確認する)仕組み
OCSPを実装したサーバをOCSPレスポンダ(OCSPサーバ)といい、CAやVAが運営する
クライアントはOCSPレスポンダに問い合わせることにより、自力でCRLを取得したり紹介したりする手間が省ける
【OCSPの限界】


≪ブラウザにおける証明書の有効性確認方法≫
HTTPSでアクセスした場合、サーバ証明書に問題がある場合は、セキュリティ警告が表示される
このような証明書の有効性の確認を、ブラウザが自動で実施している
【証明書の警告の詳細説明】
  1)「信頼されたルート証明機関」に登録されたCAから発行されているか
  2)有効期限内であるか
  3)証明書のCNとアクセスするURLが一致するか


≪クライアント証明書≫

専用Webサイトからダウンロードしてインストールしたり、郵送等で送られた証明書をダブルクリックしてインストールすることができる

インターネットエクスプローラの場合、「ツール」「インターネットオプション」「コンテンツ」「証明書」にて「個人」のタグに入る
また、SSLで使用する個人認証用のデジタル証明書は、ICカードなどに格納できるので、格納場所を特定のPCに限定する必要はない



≪証明書とCSR≫

証明書の署名要求
実際には証明書を発行してもらうが、証明書の内容は自分で決める


 

ページトップへ 次へ