パソコンとネットワーク|on Note

パソコン・ネットワーク・データ通信に関する記事

on Note

デジタル署名

デジタル署名とは、メッセージ認証コードが実現する「認証」と「改ざんの検出」の2つの機能に加え、「否認防止」も保証する仕組みである。

共通鍵を用いるメッセージ認証コードでは、鍵を持つ送信者と受信者の両方がメッセージ送信者である可能性が残り、「否認」の問題を防ぐことができなかった。そこで、送信者にしか作成できないデータである「デジタル署名」を用いてメッセージの作成者を特定する。

デジタル署名とは、署名や押印をデジタルの世界に持ち込んだもの。正真性を確かめ、認証・否認防止を行う為の暗号技術。

公開鍵暗号方式に似たデジタル署名の仕組み

メッセージ送信者が「公開鍵」と「秘密鍵」を作成。デジタル署名の作成(メッセージの暗号化)に秘密鍵を使用する。

メッセージ受信者は受け取った公開鍵を使ってデジタル署名を復号する。デジタル署名は、秘密鍵を持つ者しか作れないことから送信者が特定できる。

公開鍵暗号方式では、暗号化に公開鍵を、復号に秘密鍵を使用。暗号化は公開鍵を使って誰でもできるが、復号は秘密鍵を持つ受信者本人しかできない。

メッセージ送信者を特定するデジタル署名

メッセージ送信者であるAさんがメッセージ受信者であるBさんにメッセージを送るのだが、この時にデジタル署名を付与する。デジタル署名とは、元のメッセージを暗号化したもので、送信者にしか作成できないようになっている。

メッセージを受け取ったBさんは、メッセージに付与されたデジタル署名がAさんのものであることを確認し、このことから、送信者がAさんであると確信する。

受信者であるBさんは、デジタル署名の正当性を検証することはできても、デジタル署名を作成することはできない。「デジタル署名は送信者にしか作成できない」という点により送信者を特定する。

デジタル署名を使ったやり取り

  1. メッセージ送信者Aさんが、送信したいメッセージと公開鍵・秘密鍵を用意する。

    これら鍵を作成する側が、公開鍵暗号方式の場合と逆である。

  2. Aさんが、メッセージ受信者Bさんに公開鍵を渡す。
  3. Aさんは、秘密鍵を使ってメッセージを暗号化する。

    この、メッセージを暗号化したものがデジタル署名である。署名の作成方法は、暗号化とは異なる計算方法である場合もある。

    この、Aさんしか作ることのできない暗号文を署名として活用する。

  4. Aさんは、メッセージとデジタル署名をBさんに送信する。
  5. Bさんは、先に受け取った公開鍵を使ってデジタル署名を復号する。
  6. Bさんは、復号したメッセージと、一緒に受け取っていた元のメッセージが一致することを確認し、送信者を特定する。

デジタル署名は暗号の意味を成さない

秘密鍵を持つAさんしか暗号化できないが、ここで暗号化したもの(デジタル署名)は、「公開鍵を使って誰でも復号できる暗号文」である。つまりデジタル署名に関しては、暗号としての意味を成していない。しかしながら、デジタル署名の作成者は秘密鍵を持つ者であると保証はされる。

メールのやり取りでの問題「なりすまし」「改ざん」「事後否認」

ある商品を購入しようとするAさんと、その商品の販売者であるBさんとのやり取り。

Bさんは、Aさんから「1万円で購入します。」というメールを受け取った。果たしてこのメールは本当にAさんが出したものだろうか。

メールの送信者を表す「From:」の欄は偽ることができる為、悪意ある第三者がなりすましている可能性がある。

Aさんが出したメールに間違いなかったとしても、メールの内容は果たしてこうだったのか。途中で改ざんされた可能性は残る。

この内容のメールをAさんが確かに送信していたとしても、後で気が変わったAさんは「そんなメールは出していない。」と否認する可能性もある。

メールの仕組みは、セキュリティの観点からすると脆弱なもの。この、メールでの欠点を補うのがデジタル署名となる。

デジタル署名による「認証」から「改ざんの検知」「否認防止」へ

そのメッセージは、本来の送信者により作成されたものかを認証することが、改ざんの有無を知ることになり、後の否認を防ぐことになる。

Aさんが発信する公開鍵で復号できる暗号文は、(その公開鍵に対する秘密鍵を所有する)Aさん本人にしか作れない為、メッセージ送信者はAさんであると特定できる。・・・認証

メッセージ作成者がAさんであると特定する、つまりAさんが作成したメッセージであると確認することで、そのメッセージは「改ざんされていない」という保証にもなる。・・・改ざんの検出

送信者が特定されるということは、事後の言い逃れを防ぐことになる。・・・否認防止

デジタル署名での問題点

メッセージ受信者Bさんは、デジタル署名を用いたやり取りであることから、メッセージ送信者がAさんだと信じ込んでいる。でも実際、これら送信された情報は、Aさんを騙る悪意ある第三者が作成したものである可能性は残ってしまう。

デジタル署名における問題の原因

デジタル署名での公開鍵暗号方式において、公開鍵には作成者情報が一切含まれておらず、公開鍵が誰のものなのか分からない。よって、公開鍵がすり替えられた可能性、または送信された公開鍵、メッセージとデジタル署名が、Aさんを騙る誰かが作成したものである可能性が残る。

「実際の所、送信者は不明」というこの問題を解決する手段がデジタル証明書になる。

メニュー