公開鍵の正当性を証明するディジタル証明書
ディジタル署名や公開鍵暗号方式を利用するときは事前に通信相手の公開鍵を入手するが、公開鍵の正当性が疑わしい。
現実社会では、印鑑を証明するのに区役所や市役所に印鑑登録などで、地方公共団体が正当性を証明してくれる。ディジタル署名や公開鍵暗号方式を利用する時、公開鍵の正当性を証明するために、信頼を持つ第三者機関である認証局(CA:Certificate Authority)が照明してくれる。(ディジタル証明書・公開鍵証明書)を発行する。
ディジタル証明書の発行手順
①公開鍵の持ち主(申請者)は、第三者機関である認証局に本人確認用書類と公開鍵を提出して、公開鍵に対する証明書の発行を申請する。
②認証局は、提出された申請書類に基づき、公開鍵の持ち主の本人性を審査、問題なければ証明書を発行する。なお、証明書には、申請者の情報や公開鍵などと共に、認証局のディジタル署名が付加される。このディジタル署名は、証明書から作成されたメッセージダイジェストを認証局の秘密鍵で暗号化したものです。
Bは、Aの証明書の中の公開鍵がAの公開鍵である正当性を確認するのに、認証局の公開鍵で復号しメッセージダイジェストを取り出し、認証局が発行した証明書であるかを確認する。
次に、証明書からメッセージダイジェストを作成し、先に復号したメッセージダイジェストと比較し、改ざんされていないかを確認できる。
セキュリティ技術を組み合わせたTLS
TLS:HTTPやFTPなどのTCPを利用するアプリケーション層のプロトコルデータを暗号化して安全な通信を実現するもの。TLSは、ハイブリッド方式である。
①クライアントからの接続要求に対し、Webサーバは、サーバ証明書(ディジタル証明書)をクライアントに送る。
②クライアントは、サーバ証明書に含まれている認証局のディジタル署名を、認証局の公開鍵で復号してメッセージダイジェストを取り出し、サーバ証明書から作成したメッセージダイジェストと比較することで、サーバ証明書の正当性を検証する。
③クライアントは、共通鍵生成用データを、サーバ証明書に添付されたWebサーバの公開鍵で暗号化してWebサーバに送ります。
④これを受け取ったWebサーバは、自らの秘密鍵を用いて復号する。
⑤クライアントとWebサーバは、同一の共通鍵生成用データをによって共通鍵を作成し、これ以降、この共通鍵による暗号化通信を行う。
練習問題
公開鍵の正当性の証明や確認には、認証局CAの発行する証明書を利用。
証明書には、認証局の秘密鍵で暗号化したディジタル署名が付加される。
TLSを利用することで、ブラウザとWebサーバ間の通信の暗号化が実現できる。