公開鍵基盤

目次

認証局

前節で学んだように、公開鍵暗号方式では、最初に受信側が通信相手に自分の公開鍵を送ります。しかし、その公開鍵が本当に信頼できる個人や組織から来たものなのかどうか、どう確認すれば良いでしょうか?

ここで認証局(CA: Certificate Authority)とデジタル証明書の役割が重要になります。

認証局は、デジタル証明書を発行し、管理する信頼できる第三者機関です。これらの証明書は、特定の個人や組織の公開鍵が本当にその個人や組織に属していることを証明するために使用されます。

デジタル証明書は、所有者の公開鍵、所有者の情報(例えば、名前や組織)、有効期限、そして証明書を発行した認証局のデジタル署名を含む電子文書です。このデジタル署名により、証明書の内容が認証局によって検証され、改ざんされていないことが保証されます。

デジタル証明書は今まで学んできた公開鍵とデジタル署名を組み合わせて使用したものです。

認証局は、公開鍵とそれを発行する個人や組織の身元情報が正確であることを確認し、公開鍵とその所有者の身元情報を含んだデジタル証明書を発行します。そしてそのデジタル証明書には認証局の秘密鍵を用いて作成されたデジタル署名が付与されます。

これにより、証明書を受け取った通信相手は公開鍵が信頼できる相手からのものであることを確認でき、安心して通信を行うことが可能となります。

つまり、認証局は公開鍵暗号技術の信頼性を保証し、インターネット上の通信の安全性を高める重要な役割を果たしていると言えます。

なお、認証局自体の信頼性は非常に重要で、認証局が不適切な証明書を発行したり、秘密鍵が漏洩したりすると、その認証局が発行した全ての証明書の信頼性が失われてしまいます。そのため、認証局は厳重なセキュリティ管理が求められます。

例え話「認証局」

一般的に、何らかの取引やコミュニケーションを行う際に、相手が信頼できるかどうかを判断する最も安心できる方法は、相手自身の主張ではなく、信頼できる第三者による証明を受けることです。つまり、信頼できる第三者のお墨付きをもらうことが重要です。

認証局はパスポート発行機関に例えることができます。パスポート発行機関は、国民の身元を確認し、パスポート(デジタル証明書に相当)を発行します。

パスポートには、本人の写真や署名、国の紋章(認証局のデジタル署名に相当)が記載されており、これによって他国の入国審査官(クライアント)は、パスポートの正当性を確認できます。

インターネット上でも同様に、Webサイトの信頼性を確認するために認証局が重要な役割を果たします。Webサイトは認証局からデジタル証明書を取得し、認証局はそのWebサイトが本物であることを確認します。このデジタル証明書には、認証局のデジタル署名が付与されており、ユーザーがWebサイトにアクセスする際に、その証明書を用いてサイトの正当性を検証できます。

このプロセスにより、ユーザーはWebサイトが確かに信頼できるものであることを確認でき、安心して通信を行うことができるのです。

SSL/TLS

SSL(Secure Sockets Layer)は、インターネット上でデータを暗号化して安全に送受信するためのプロトコルです。

Webサイト(Webサーバ)とユーザー(Webブラウザ)間の通信が盗聴や改ざんされるリスクを軽減することができます。

現在では、SSLの後継であるTLS(Transport Layer Security)が主流となっており、一般的にSSL/TLSというセット名称で呼ばれることが多いです。

SSLは以下のようなプロセスで動作します。

STEP
接続要求

クライアント(例:Webブラウザ)がWebサーバーにアクセスし、SSL/TLSで通信することを要求します。

STEP
デジタル証明書の送付

サーバーはサーバ証明書(公開鍵とサーバーの識別情報を含むデジタル証明書の一種)をクライアントに送信します。

STEP
証明書の検証

クライアントはブラウザが予め保持しているルート証明書に含まれる公開鍵を用いてサーバ証明書を検証し、信頼された認証局(CA)によってデジタル署名されていることを確認します。信頼できる場合は、サーバーに対して暗号化された通信を開始します。

STEP
通信の開始

クライアントとサーバーは、共通鍵暗号方式を使ってデータを暗号化・復号化しながら通信を続けます。

SSLを利用することで、ウェブサイトとユーザー間の情報が保護され、安全な通信が実現されます。

特に、オンラインショッピングやインターネットバンキングなど、機密性が高い情報を扱う場合に重要です。

SSLでは以下の種類のデジタル証明書を利用します。

証明書の種類内容
ルート証明書ルート証明書は認証局(CA)自体によって自己署名された証明書で、CAの公開鍵を含みます。この証明書は、信頼の基盤となり、他の証明書(サーバ証明書やクライアント証明書など)の検証に使用されます。OSやブラウザなどのクライアントは、信頼されたルート証明書のリストを持っており、それを基に他の証明書の信頼性を判断します。
サーバ証明書サーバ証明書は、Webサーバなどのサーバに発行される証明書で、サーバの身元を確認するために使用されます。これによって、クライアント(例:Webブラウザ)はサーバと安全に通信できることが保証されます。サーバ証明書には、サーバの公開鍵、ドメイン名、組織情報などが含まれ、認証局によって署名されます。
クライアント証明書クライアント証明書は、クライアント(個人やデバイス)の身元を確認するために使用される証明書です。これを使用することで、サーバはクライアントの身元を検証し、特定のサービスへのアクセスを許可できます。クライアント証明書には、クライアントの公開鍵と個人やデバイスの特定情報が含まれ、認証局によって署名されます。
秘密鍵の漏えい

秘密鍵が漏えいすると、悪意のある第三者がその秘密鍵を使ってなりすましやデータ改ざんを行う恐れがあります。

鍵が流出したことが判明した場合、直ちに認証局に電子証明書の失効を申請し、関連する証明書を無効にする必要があります。

証明書の無効化は、認証局が発行する「CRL(Certificate Revocation List:証明書失効リスト)」に該当証明書を登録することで実現されます。

CRLに登録された証明書は、信頼できないものとして扱われます。

SSL/TLS

SSL/TLSはWebサーバとWebブラウザ間のデータ通信を暗号化します。
多くのブラウザでは、暗号化されている場合、アドレスバーに南京錠マークが表示されます。

以下は、Google Chromeにおける表示例です。

暗号化されている場合
暗号化されていない場合

S/MIME

S/MIME(Secure/Multipurpose Internet Mail Extensions)は、電子メールのセキュリティを強化するための技術です。

S/MIMEは、メール本文の暗号化とデジタル署名を実現し、送信されたメールの機密性、完全性、および送信者の認証を保証します。これにより、第三者によるメールの内容の盗聴(盗み見)や改ざんを防ぎ、なりすましのリスクも軽減されます。

S/MIMEは、公開鍵暗号技術を利用しており、受信者の公開鍵で暗号化し、送信者の秘密鍵でデジタル署名を行います。

タイムスタンプ

タイムスタンプ(時刻認証)は、データが特定の時刻において確かに存在し、以降改ざんされていないことを証明するためのサービスです。

タイムスタンプに記載されている情報とオリジナルの電子データから得られる情報を比較することで、タイムスタンプに付された時刻から改ざんされていないことを確実かつ簡単に確認することができます。

基本的な仕組みは以下のようになります。

STEP
タイムスタンプの要求

ユーザーは、データのハッシュ値をタイムスタンプ局に送信します。

タイムスタンプ局は、信頼性の高いタイムスタンプを提供する機関で、公正な第三者としての役割を果たします。

STEP
タイムスタンプの発行

タイムスタンプ局は、受け取ったハッシュ値とその時点の時刻情報を組み合わせて新たなデータを作り、そのデータに対してデジタル署名を行います。

このデジタル署名はタイムスタンプ局の秘密鍵で行われ、この結果生成されたデータがタイムスタンプです。

STEP
タイムスタンプの保存

生成されたタイムスタンプはユーザーに返され、元のデータと一緒に保存されます。

STEP
タイムスタンプの検証

ユーザーは、必要な時にオリジナルのデータのハッシュ値とタイムスタンプに格納されているハッシュ値を比較することで検証を行います。
(タイムスタンプのデジタル署名は、タイムスタンプ局のデジタル証明書に含まれる公開鍵で復号することができます)

2つのハッシュ値が一致すれば、改ざんされていないことが確認できます。

以上のようにして、タイムスタンプ局は特定の時刻におけるデータの存在を証明します。後からそのデータが改ざんされても、ハッシュ値が変わるため、タイムスタンプと一致しなくなります。

これによってデータの改ざんを検出することができます。

PKI

PKI(Public Key Infrastructure:公開鍵基盤)は、インターネット上で安全な通信やデータのやり取りを実現する公開鍵暗号に関連した技術の基盤(インフラ)をさす言葉です。

PKIは、認証局(CA)を中心とした公開鍵暗号方式に基づく認証、暗号化、デジタル署名などの機能を提供します。これにより、データの安全性や信頼性を確保し、インターネット上での情報のやり取りを安全に行うことができます。

PKIは、オンライン決済や電子署名などの取引において、安全かつ信頼性の高い通信環境を提供するために広く利用されています。

公開鍵暗号方式の重要性

公開鍵暗号方式はインターネット上の安全な通信を支えている最も重要な基盤技術の一つだと言えます。

認証局、暗号化、デジタル署名、SSL、S/MIME、タイムスタンプなど、この単元で学習した内容は全て公開鍵暗号の技術によって成り立っています。

目次