デジタル署名と証明書
デジタル署名は、文書やソフトウェアの作成者を確認し、作成後に内容が改ざんされていないことを検証するための仕組みである。デジタル証明書は、公開鍵が特定の組織や利用者のものであることを認証局が保証する電子的な証明書であり、署名の検証を実用的にするための土台となる。
電子署名の作成と検証の仕組み
送信者は、署名鍵、通常は送信者の秘密鍵を使って電子署名を作成し、メッセージに付加する。受信者は送信者の公開鍵で署名を検証し、その署名が対応する秘密鍵で作られたことを確認する。署名の作成者が秘密鍵の持ち主に限られるため、なりすましを防ぐ効果がある。
実際の方式では、メッセージ全体ではなくそのハッシュ値に対して署名を行うことが一般的である。検証に成功すれば、署名が本人によるものであること、そして文書の内容が署名後に改ざんされていないことを確認できる。
一方、署名は内容の機密性を守るものではない。署名付きの文書は公開鍵で検証できるため、内容は関係者以外にも読めてしまう。機密性が必要な場合は、受信者の公開鍵による暗号化を別途行う必要がある。
公開鍵証明書と認証局の役割
公開鍵証明書は、公開鍵と所有者の情報を結び付けて、認証局が署名したものである。受信者は、認証局の公開鍵で証明書の署名を検証することで、証明書が正当な認証局によって発行されたことを確かめる。この連鎖により、初めて接する相手の公開鍵であっても、認証局という信頼の起点をたどって確認できる。
認証局の公開鍵の役割は、証明書の署名を検証することに限られる。利用者のデータを暗号化する用途には使わないため、役割の違いを取り違えないようにする。
証明書の種類と用途の判断
証明書は用途によって種類が分かれる。サーバ証明書は、通信相手のサーバを認証しTLS通信を保護するために使う。クライアント証明書は、接続してくる利用者や端末を相手に示すために使う。EV SSL証明書は、Webサイト運営組織の実在性を厳格に審査して示すために使う。コードサイニング証明書は、ソフトウェアに付された署名者を確認するために使う。
実務で判断する際は、何を確認したいのかを先に定めることが大切である。接続先のサーバの身元を確かめるのか、接続してくる利用者を確かめるのか、ソフトウェアの発行元を確かめるのかで、選ぶ証明書が変わる。
この節の続き
- ソフトウェアの発行元確認
- 失効確認とOCSP
- XML署名の特徴
- 試験で問われやすい区別
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む