taqm's Note

ディジタル署名とPKI

HOME > 応用情報技術者試験 > セキュリティ > ディジタル署名とPKI

メールをはじめとする様々な電子文書のやりとりには、「改ざん」や「なりすまし」といったリスクが存在します。これらのリスクに対する措置として、それが確かに本人が発信したものであることを証明するディジタル署名があります。

目次

  1. ディジタル署名
  2. PKI
  3. SSL/TLS

ディジタル署名

ディジタル署名では、平文をハッシュ化したメッセージダイジェスト送信者の秘密鍵で暗号化し、平文とともに送信します。ディジタル署名を受け取った受信者は、送信者の公開鍵を用いてディジタル署名を復号します。

ディジタル署名
i. ディジタル署名のしくみ

公開鍵に対応する秘密鍵を持っているのは公開鍵を公開した本人(送信者)だけなので、公開鍵でメッセージダイジェストを正しく復号できれば、送信者が本人であることを確認できます。また、受信した平文をハッシュ化したものを、復号したメッセージダイジェストと比較することで、改ざんの有無を検知することもできます。

なお、実際には平文も送信時に暗号化します。

PKI

PKI(Public Key Infrastructure)とは、公開鍵暗号方式を利用した認証および盗聴防止基盤(しくみ)のことで、公開鍵基盤ともよばれています。公開鍵暗号を利用した証明書の作成, 管理, 格納, 配布, 破棄 に必要な方式, システム, プロトコルおよびポリシの集合によって実現されています。

PKIによって、第三者機関である認証局(CA)が、ディジタル署名を利用したディジタル証明書(公開鍵証明書ともいう)を発行し、公開鍵が正当な送信者のものであることを保証します。

PKI
ii. PKIモデル
  1. 送信者は、認証局に公開鍵を提出し、証明書の発行を依頼する。
  2. 認証局は、申請書類等に基づき、公開鍵の所有者の本人性を審査し、ディジタル証明書を発行する。
  3. 送信者は、受信者に対しディジタル証明書を送信する。
  4. 受信者は、それを認証局の公開鍵で復号し、ディジタル証明書中の送信者情報と認証局の署名を確認すると同時に送信者の公開鍵を入手する。

SSL/TLS

SSL(Secure Sockets Layer)は、暗号化と認証の機能を提供するプロトコルです。公開鍵基盤を活用し安全な通信を実現します。改ざん検出のほか、ディジタル証明書を使ったサーバ/クライアント認証も行えます。

iii. SSLの利用準備
  1. Webサーバは、公開鍵の正当性を証明するために、認証局に登録申請を行う。
  2. 認証局は、Webサーバに対してサーバ証明書(ディジタル証明書)を発行し、サーバは認証を受ける。
  3. クライアントがWebサーバに接続すると、Webサーバは認証局の署名付きサーバ証明書を返信する。
  4. クライアントは認証局の署名の確認を行い、サーバ証明書が本物であることを確認する。
  5. 正当性が証明された後、クライアントは暗号化鍵の基となる乱数を発生させ、それをサーバ証明書に組み込まれたWebサーバの公開鍵で暗号化してWebサーバに送る。
  6. Webサーバは秘密鍵で、暗号化された乱数を復号する。
  7. Webサーバとクライアントの双方で、マスターシークレット(MS)と呼ばれる鍵を生成し、このMSから生成した共通鍵を使って暗号化通信を行う。

参考

技術評論社 - 応用情報技術者 合格教本