送信者の確認と改ざんの検知を行うデジタル署名

学習の目的

  • 1.ハッシュについて

  • 2.デジタル署名とは

  • 3.認証局(CA)とは

データの改ざんやなりすましの検知を行う技術です。

まずは、デジタル署名で使用するハッシュについて学びます。

1.ハッシュについて

ハッシュとは、データを一定の長さの値(ハッシュ値)に変換する仕組みです。

この変換には、ハッシュ関数と呼ばれる特別な計算方法が使われます。


○ハッシュの特徴

①元のデータに戻せない

データをハッシュ値に変換することはできますが、ハッシュ値を元のデータに戻すことはできない。

②少しの変化で大きく変わる

元のデータが1文字、1ビット変わるだけで、ハッシュ値は大きく異なってくる。

③同じデータなら、同じ結果になる

ハッシュ関数にランダム性はなく、同じデータであれば、ハッシュ値も同じ値になる。


○ハッシュによる改ざんの検知

①【送信者】送信するメッセージのハッシュ値を求める。このハッシュ値を「メッセージダイジェスト」という。

②【送信者】メッセージを送信する。

③【送信者】メッセージダイジェストを送信する。

④【受信者】受け取ったメッセージのハッシュ値を求め、「メッセージダイジェスト」を作成する。

⑤【受信者】受け取ったメッセージダイジェストと比較をして、一致していたら改ざんが行われていない。

2.デジタル署名とは

デジタル署名とは、「誰が送ったか」と「途中で改ざんされていないか」を同時に確認するための仕組みです。

紙の文書における「サイン(署名)」のような役割をデジタルデータで行うため、デジタル署名と言います。

デジタル署名では、ハッシュによる改ざん検知に加え、公開鍵暗号方式を使用します。


○デジタル署名の流れ

デジタル署名の流れ図

①【送信者】送信するメッセージのハッシュ値を求める。このハッシュ値を「メッセージダイジェスト」という。

②【送信者】メッセージダイジェストを「送信者の秘密鍵」で暗号化する。このデータを「デジタル署名」という。

※送信者の秘密鍵で暗号化されたデータは、送信者の公開鍵でしか復号できません。

③④【送信者】メッセージとデジタル署名を送信する。

⑤【受信者】受け取ったメッセージのハッシュ値を求め、「メッセージダイジェスト」を作成する。

⑥【受信者】送信者の公開鍵を取得し、デジタル署名を復号して、「メッセージダイジェスト」にする。

⑦【受信者】メッセージダイジェストを比較し、一致したら改ざんされておらず、確かに送信者のものであると確認ができる。

色々複雑だ。

改ざんの検知は、ハッシュを使っているからできるはわかるんですが、送信者の確認はどのように行うんですか?

デジタル署名の復号に、送信者の公開鍵を使っています。

これで正しく復号できたのであれば、それが「送信者の秘密鍵で暗号化されたもの」だと言うことがわかるんです。

なるほどなぁ。

でも、それだけではまだ問題があるんです。

その公開鍵が、本当に送信者のものであるか、この確認が必要です。

そうか、なりすました人が、公開鍵もいつわる可能性があるんだ。

なので、それを解決するための第三者機関の「認証局」の力が必要になるんです。

3.認証局(CA)とは

認証局(CA : Certificate Authority)とは、「この公開鍵は本当にこの人(この組織)のものです」と保証する第三者機関です。

デジタル署名だけでは、「その公開鍵が本当に本人のもの」かまでは分かりません。その問題を解決するのが、認証局です。


認証局は次の役割を担っています。

・本人確認を行う

・公開鍵と持ち主を結びつける

・その正しさをデジタル署名で保証する

この情報をまとめたものを、デジタル証明書と言います。

デジタル署名を利用してデータを送る人は、デジタル証明書を認証局に申請をして取得する必要があります。

デジタル証明書は、以下のデータの組み合わせとなります。

・公開鍵

・持ち主の情報(組織名・サイト名など)

・有効期限

・認証局のデジタル署名

デジタル証明書の中に、公開鍵が含まれているんですね。

大事な情報が全部セットになっているんだ。

このデジタル証明書を送ることが、公開鍵を配布しているんですよ。

でも、偽物のデジタル証明書かもしれないですよね?

そうなんです。

なので、デジタル証明書の中には、認証局のデジタル署名が入っています。

認証局の公開鍵を取得することで、認証局のデジタル署名が正しいことを確認できます。

・・・うん。

認証局のデジタル署名が正しいことが確認できたら、そのデジタル署名は信頼できると言うことです。

「信頼の連鎖」ですね。

情 報 こ と ば キ ー ワ ー ド

ハッシュ

ハッシュ関数を使い、データからハッシュ値を求める。

デジタル署名

送られたデータが、「誰が送ったか」と「途中で改ざんされていないか」を同時に確認するための仕組み。

認証局

公開鍵が正しいかを保証する第三者機関。

デジタル証明書

認証局が発行する証明書。公開鍵も含まれる。

Well done!

次のステップに進みましょう!

次のステップに進む

← 前のステップにもどる