認証局(CA)とは?デジタル証明書のデータ通信の仕組みについてまとめました。
【1】認証局(CA)とは?ルート認証局、中間認証局の違い
認証局(CA:Certification Authority)は、デジタル証明書(電子証明書)の登録、発行、失効をおこなう第三者機関です。
認証局を大別すると「ルート認証局(root CA)」「中間認証局(intermediate CA)」があります。
ルート認証局は自分の正当性を自身で証明し、他の認証局へ証明書を発行する最上位の認証局です。
一方、中間認証局は、ルート認証局などの上位認証局から信頼を受ける事で、自身の正当性を証明します。
【2】公開鍵証明書の発行申請
クライアント、サーバ、認証局の三者間でサーバーの証明書を発行するまでの手順は以下のとおり.
– | – |
---|---|
①サーバー側 | 公開鍵と秘密鍵のペアを生成 |
②サーバー側 | 公開鍵を認証局に登録(申請書のフォーマットはX.509が多い) |
③認証局側 | 公開鍵と秘密鍵のペアを生成 |
④認証局側 | サーバから証明書の発行申請が来たら、 「認証局の秘密鍵」でサーバの公開鍵と申請者の情報からディジタル署名を生成し、公開鍵に組み込んで「サーバーの公開鍵証明書」を生成 |
⑤クライアント | サーバから「サーバーの公開鍵証明書」を取得 |
⑥クライアント | 認証局の公開鍵で取得した「サーバーの公開鍵証明書」の認証局のディジタル署名を復号し、検証する。 |
⑦クライアント | 公開鍵を使って通信を開始 |
【3】デジタル署名を用いたデータ通信(認証局とのやり取り)
デジタル証明書を用いたデータ通信の手順は以下の通りです。
– | 手順 |
---|---|
①取引事業者 | 認証局に公開鍵を提出して証明書の発行を申請 |
②認証局(CA) | 提出された申請情報に基づき、公開鍵所有者の正当性を審査し、ディジタル証明書を発行(デジタル証明書には、認証局(CA)のデジタル署名が付加されている。) |
③送信者(取引事業者) | 受信者に対してデジタル証明書を送信 |
④受信者 | デジタル証明書を認証局の公開鍵で復号し、証明書中の送信者の情報と認証局の署名を確認すると同時に送信者の公開鍵を入手 |
【補足】公開鍵暗号方式を使った通信暗号化、デジタル署名
通信暗号化
公開鍵暗号方式を使った通信暗号化の手順は以下のとおりです。
– | 公開鍵暗号方式を使った通信暗号化の手順 |
---|---|
1 | 受信者が「秘密鍵」を作成 |
2 | 受信者が「秘密鍵」を使って「公開鍵」を作成(秘密鍵は受信者が大切に保管し、公開鍵は誰でも取得できる場所に公開) |
3 | 送信者は、受信者が公開している「公開鍵」を取得 |
4 | 平文(暗号化したい文)を送信者が公開鍵を使い暗号化し送付 |
5 | 受信者が暗号文を受け取る。 |
6 | 受信者は暗号文を秘密鍵で平文に復号化(秘密鍵を持っている受信者のみが暗号を解くことができる) |
このように、公開鍵暗号方式では、公開鍵は誰でも簡単に入手できる公開された鍵ですが、秘密鍵を持っている受信者のみが暗号を解くことができる仕組みになっています。
– | 公開鍵と秘密鍵のポイント |
---|---|
公開鍵 | 送信者が、データを暗号化するための鍵。受信者が作成し、送信者向けに公開(公開鍵で作成した暗号文は、秘密鍵でないと復号化できない) |
秘密鍵 | 受信者が送信されてきたデータ(公開鍵で暗号化されている)を復号化するための鍵。受信者が作成して、受信者のみが大事に保管しておく(他人に公開してはいけない) |
秘密鍵が漏洩してしまうと、対応する開鍵は安全ではありません(使ってはいけません)。
捨てて新しい鍵ペアを作るしかありません。
また、誰のものかわからない公開鍵を使って暗号化しすると、知らない第三者だけが読める暗号文となるため、利用してはいけません。
デジタル署名
公開鍵暗号方式は、送信者と受信者の鍵を逆にすると、デジタル署名(電子署名)に利用できます。
逆にすると、公開している「公開鍵」で、誰にでも復号化することが可能になりますが、「秘密鍵で送信してきたら、そのデータは改ざんされていない」ということが証明されます。
秘密鍵は本人のみ保有しているため、公開鍵で正しく復号化できれば本人に間違いないということになります。
– | デジタル署名の手順 |
---|---|
1 | 送信者は「秘密鍵」を作成し、さらに「秘密鍵」から「公開鍵」を作成する。 |
2 | 送信者は受信者に「公開鍵」を送付し、受信者は「公開鍵」を取得します。 |
3 | 送信者は、「送信するデータ」から「ハッシュ関数」により「ハッシュ値」を計算します。 |
4 | 「ハッシュ値」を「秘密鍵」で暗号化します。 |
5 | 送信者は「送信するデータ」にハッシュ値をつけて受信者に送付します(ハッシュ値が署名となる)。 |
6 | 受信者は、送信されてきた「データ」と「暗号化されたハッシュ値」を受信します。そして、手順2で取得した「公開鍵」で「暗号化されたハッシュ値」を復号化します。 |
7 | 受信者は、送信されてきた「データ」からハッシュ関数で「ハッシュ値」を計算します。 |
8 | 「6で復号化されたハッシュ値」と「7で計算されたハッシュ値」を比較し、完全に一致していれば改ざんされていないデータと判断します。 |
この方法では、送信するデータ自体は暗号化されないため第三者に内容は漏れますが、ハッシュ値は暗号化されるため、「送信したデータが途中で改竄されていないかどうか」がわかります。
これがデジタル署名の仕組みとなります。
ハッシュ関数とは、メッセージダイジェストともよばれ、任意長のデータブロックを入力すると、固定長ビット列のハッシュ値を返します。
メッセージダイジェストは以下の特性をもっているため、デジタル署名やメッセージ認証符号、その他の認証技術で使われています。
– | 特性 |
---|---|
1 | ハッシュ値から元のメッセージを得ることがほぼ不可能(一方向性) |
2 | ハッシュ値を変えずメッセージを改竄することがほぼ不可能 |
3 | ハッシュ値は1つのメッセージにつき1つ(ハッシュ値の重複が発生するのは極めて稀) |
【補足】デジタル署名の確認方法
– | 概要 |
---|---|
①デジタル署名を確認 | PKIによりデジタル署名を検証します。 |
②有効期限の確認 | デジタル証明書内にある有効期限を確認します。 |
③失効情報(CRL、OCSP)の確認 | 秘密鍵の漏洩などにより有効期限内であっても失効となっているデジタル証明書があります。そのため、CRL、OCSPを使って失効しているデジタル証明書の一覧表と照らし合わせて確認します。 |
④ルート認証局、ルート証明書の検証 | 上位の認証局が下位の認証局のデジタル証明書の正当性を証明しています。ブラウザには事前に信頼されたルート認証局のデジタル証明書がいくつも入っています。あるルート証明書を検証し、そのいずれでもない場合は警告が出ます。 |
⑤証明書のレベルを確認 | デジタル証明書にはDV(ドメインのみ確認)、OV(企業の実在性を確認)、EV(DVやOVよりも厳しい審査基準)の3種類があり、より安全なサイトであることを証明する場合はEV SSLが利用されます。 |
⑥入力されたFQDNとコモンネームのチェック | ブラウザでWebサイトにhttps接続すると、入力したURLのFQDNと、Webサイトのデジタル証明書内のコモンネームを比較します。同じでない場合は警告が表示されます。 |
コメント