SE基本情報に出るIT用語

ディジタル署名とは?改ざん・なりすましがされていないことを証明するサイン

ディジタル署名とは、改ざん・なりすましがされていないことを証明するためのサインです。

さらにシンプルに言うと、「受信者が、送信者本人であることを確認するサイン、ハンコ」のこと。

たとえば、Aさんがお友達のBさんにメールで、Excel(=添付ファイル)を送るとき。

Bさんは、「送信者がAさんの添付ファイル付きのメール」を受け取ります。

ただ、添付ファイルを使って、悪だくみ(改ざんやなりすまし)をする人も多いのがこの世の中。

Bさんは、「この添付ファイルは本当にAさんが送ったものなのか?」が気になって、怖くてメールの添付ファイルを開くことができません。

そこで、ディジタル署名の登場。

Aさんは、「俺が作ったものだから、俺専用の鍵をかけておくね。Bさんは、Aだとわかる鍵で復号してね。できたら、俺が作ったって確認ができるよね!」的なことをするのが、ディジタル署名です。

スポンサーリンク

ディジタル署名とは、改ざん・なりすましがされていないことの確認

ディジタル署名とは、改ざん・なりすましがされていないことの確認をするためのサインです。

メールの添付ファイルにディジタル署名をするのが、いちばん身近というかイメージしやすいかと。

本人確認をするのが目的

試験的には、「(メールの)受信者が送信者を確認」なんて言ったりするけど、要するに「本人確認をするためのサイン」的なもの。

「クレジットカードでお買い物をするときに、4桁の暗証番号かサインを求められるのと同じこと」と思えばよしです(受信者=お店、送信者=お客さん)。

ディジタル署名の目的に関して言えば、「暗号化すること」(暗証番号とサイン)は手段であり、「本人確認」が目的です。

改ざんされたところの特定はできない

「本人確認をした結果、別人であることがわかりました」となった場合に、どこが改ざんされているかまではわかりません。

「あっ!このメールは、送信者がニセモノだ!」となるだけです。

スポンサーリンク

基本情報技術者試験では、公開鍵暗号方式を使ってディジタル署名を作成

基本情報技術者試験的には、公開鍵暗号方式を使ってディジタル署名を作成します。

※これから書く内容は「秘密鍵で暗号化して送信者の公開鍵で復元」ということになるのだけど、厳密に言うとウソです(参考記事)。ただ、基本情報技術者試験レベルでは、100%の理解は求められないのと、ディジタル署名の目的と、ざっくりとした復元の考え方がわかれば十分なので、気になる人は試験後に勉強してくださいまし(*´ω`)。

実際の試験(H29R1)をみて、いろいろと事情があるのを察してもらえばと思います(-_-;)。

公開鍵暗号方式とは?

ここでいう「鍵(かぎ)」というのは、ファイルを暗号化したり、復号化したりするのに使う鍵のことです。

あまり難しいことは考えずに、宝箱にカギをかけるイメージをもってください。

公開鍵(こうかいかぎ)暗号方式とは、

  • 自分だけがもつ鍵(秘密鍵)と、みんなが自由に使える鍵(公開鍵)の2つをペアに
  • 送信者の公開鍵で鍵をかけて(暗号化して)、送信者の秘密鍵で鍵をはずす(復号する)
  • あるいは、送信者の秘密鍵で鍵をかけて(暗号化して)、送信者の公開鍵で鍵をはずす(復号する)

方法のこと。

例えば、Aさんは、自分だけがもつ鍵(秘密鍵)で、鍵をかけたとします。

そして、Aさん以外の人は、みんなが自由に使えるAさんの鍵(公開鍵)を持っています。

Aさんの秘密鍵でかけた(暗号化した)鍵は、Aさんの公開鍵を使えば、外すことができる(復号できる)状態。

この状態で、Aさんが自分の秘密鍵で鍵をかけて、添付ファイル付きのメールを送信したとします。

ディジタル署名とは

受信者は、Bさん・Cさん・Dさんの3人と仮定。

3人は、「Aさんがどうやって鍵をかけたかは知らないけど、Aさんがかけた鍵を外す方法」を知っている状態です。

というのも、Aさんの公開鍵があるので、それを使えば、Aさんが秘密鍵でかけた鍵を外せるはず。

ひとまず、公開鍵暗号方式は、

  • Aさんの公開鍵でかけた鍵を、Aさんの秘密鍵を使えば外せる方式
  • あるいは、「Aさんの秘密鍵でかけた鍵を、Aさんの公開鍵を使えば外せる方式

と思えばよしです(今回大事なのは、後者)。

Aさんの秘密鍵でかけた鍵は、Aさんの公開鍵で外せるのがミソ

繰り返しになるけど、Aさんの秘密鍵でかけた鍵は、Aさんの公開鍵で外せるのがミソです。

仮に、XさんがAさんになりすましてファイルを送れば、Aさんの秘密鍵はAさんしかもっていないので、ファイルをAさんの公開鍵で復号化はできません。

Xさんが、Aさんのファイルの中身を変えて送ろうとしても、Aさんの秘密鍵でもう一度、暗号化する必要があります。

※「そもそも、鍵がニセモノだった」的な話は、「中間者攻撃」と呼ばれたりするけど別問題。

ただ、XさんはAさんの秘密鍵を持っていません。

なので、Xさんが改ざんしたファイルもやはり、Aさんの公開鍵で復号化はできません。

送信者の公開鍵で復元できれば、本人確認(ディジタル署名の確認)が完了

「え?公開鍵の話になってるけど、ディジタル署名はどこいった?」となってると思いますが、結論はシンプル。

送信者の公開鍵で復号化(もとどおりに)できれば、本人確認(ディジタル署名の確認)が完了です。

この場合で言えば、受信者のBさん・Cさん・DさんがAさんの公開鍵を使って復号化できれば、

  • Aさんが送ったもの(なりすましではない)
  • 改ざんされていないもの

の2つがわかります。

Aさん以外のだれか(例えば、Xさん)が、改ざん・なりすましで送ったものであれば、Aさんの公開鍵での復号化はできないので・・・。

『Aさんの公開鍵で復号化できた』=『送信者がAさんであること』の証明になるから、公開鍵暗号方式をディジタル署名のようにしましょう」というお話です。

まとめ

ディジタル署名ときたら、改ざん・なりすましがされていないことを証明するためのサインのこと。

言ってしまえば、本人確認をするサインのことです。

本人であることを証明する方法の1つとして、公開鍵暗号方式が使われています。

Excelなどのファイルをやり取りするときに、送信者が秘密鍵をかけて暗号化。受信者が、送信者の公開鍵で復号化できれば、本人確認が完了。

送信者からすれば、「俺専用の鍵(秘密鍵)をかけておくね。他の人は、俺だとわかる鍵(公開鍵)で復号してね。できたら、俺が作ったって確認ができるよね!」的なことをするのが、ディジタル署名だと思ってくださいまし(-_-;)。

▼この記事がいいと思ったら、下の画像をクリックしてくれたら励みになります!

にほんブログ村 IT技術ブログ システムエンジニアへ
スポンサーリンク
ひよこSEのつぶやきブログ

コメント

タイトルとURLをコピーしました