デジタル署名と電子証明書
デジタル署名は、文書やソフトウェアに対して署名者だけが持つ秘密鍵を使って作る電子的な署名である。電子証明書は、その署名に使われる公開鍵が特定の主体のものであることを確認するための仕組みである。この二つを組み合わせることで、作成者の確認と、署名後に改ざんされていないことの確認を行える。
デジタル署名の検証の仕組み
署名者は秘密鍵で署名を作成し、受信者は対応する公開鍵で署名を検証する。 実際には文書の内容から求めたハッシュ値に対して署名を行うため、検証の結果によって、署名後に文書が変更されたかどうかを判断できる。
検証が成功すれば、文書ファイルが改ざんされていないことと、デジタル署名が署名生成鍵に対応する形で作られたことを確認できる。 一方、検証で確認できるのは文書と署名の組全体の整合性であり、文書中のどの部分が改ざんされたかを特定する機能はない。 検証に失敗した場合も、文書と署名のどちらが変更されたかまでは判別できない。
デジタル署名の検証は、文書の完全性と署名者の正当性を確かめるものであり、マルウェアへの感染の有無を調べる仕組みではない。
ハッシュ関数の一方向性と署名
暗号学的ハッシュ関数の原像計算困難性は、ハッシュ値が与えられたとき、そのハッシュ値を出力するメッセージを見つけることが計算量的に困難であるという一方向性の性質である。 署名は文書そのものではなくハッシュ値に対して行われるため、この性質が文書の偽造を難しくする土台になる。同じハッシュ値を出す別の入力を見つけにくい衝突困難性とは、区別して理解する必要がある。
電子証明書の種類と用途
ソフトウェアの発行元を確認するには、ソフトウェアに付されたデジタル署名を検証するコードサイニング証明書を使う。 インストール前に署名を確かめることで、発行元の確認と、署名後に改変されていないことを同時に行える。
EV SSL証明書は、Webサイトの運営組織を厳格に審査して発行されるものであり、ソフトウェアの発行元確認には用いない。 クライアント証明書は、利用者や端末を認証する目的で使われ、発行元を確かめる証明書ではない。
この節の続き
- 失効確認の仕組み
- 実務の場面
- 試験で問われやすい区別
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む