基本的な知識を復習しつつAP対策するシリーズ。
今回は暗号化技術についてまとめます。
共通鍵暗号方式
いま、送信者から受信者にデータを送信することを考えます。
このときデータをそのまま(暗号化せずに)送ると送っている途中で盗聴されたり改ざんされたりしてしまいます。
そこで送信側と受信側では同じ「鍵」を持っておくことにします。
そして送信側でこの鍵を使ってデータをロックし、受診側ではこの鍵を使ってデータをアンロックします。
ちなみにこの鍵は他の人に知られてはいけないので秘密鍵と言います。
実際にはこの秘密鍵はビット列で、それを使ってある決まった複雑な計算を行うことを暗号化と言います。
このように、お互いが同じ秘密鍵を持って暗号化する方式を共通鍵暗号方式と言います。
共通鍵暗号方式にはDESやAESといったものがあります。
公開鍵暗号方式
共通鍵暗号方式では、受信側と送信側であらかじめ秘密鍵を決めておく必要がありました。
ただサーバが不特定多数のクライアントとやり取りするような場面ではこの方式ではクライアントごとに鍵を用意しなければならないので大変です。
このようなケースでは公開鍵暗号方式を使います。
公開鍵暗号方式では、秘密鍵と公開鍵というものを用意します。
秘密鍵で暗号化したものは公開鍵で復号化でき、公開鍵で暗号化したものは秘密鍵で復号化できます。
秘密鍵はサーバだけが持っておきます。公開鍵を全てのクライアントに同じものを渡しておきます。
例えばクライアントからサーバに重要な情報(クレジットカードの情報とか)を送りたいときには、公開鍵で暗号化してから送ります。
公開鍵で暗号化されたデータは秘密鍵でしか復号化できません。
すなわちこのデータはサーバでしか復号化できないため安全です。
デジタル署名
デジタル署名は、送信者から受信者に送られてきたデータが確実に送信者からのものであることを受信者側で証明できる仕組みです。
送信者はまず、送信するデータのハッシュ値を求め、そのハッシュ値を暗号化します。
そしてこの暗号化したハッシュ値を元のデータと一緒に送ります。
受信者側では、まず暗号化されているハッシュ値を復号化します。
それと同時に送られてきたデータのハッシュ値を求めます。
この二つのハッシュ値が一致すれば、このデータが確かに送信者からのものであることが証明されます。
この仕組みをデジタル署名といいます。
認証局
デジタル署名により、秘密鍵と公開鍵を使えばデータが確かに送信者からのものであることが確認できました。
ただ、そもそもこの秘密鍵と公開鍵を送信者になりすました別人が作成していたらこの仕組みは機能しません。
つまり、受信側が受け取った公開鍵が確かに送信者により作られたことを証明する仕組みが必要です。
これが認証局です。
仕組みとしてはまず送信者が秘密鍵と公開鍵を作成し、公開鍵を認証局に登録します。
このとき、認証局は送信者が確かに送信者であることを何らかの方法で確認します。
認証局に公開鍵を登録すると認証局から「証明書」を受け取れます。
この証明書には登録した公開鍵などが含まれており、かつ認証局の署名がされています。
次のこの証明書を受信側に送付します。
この証明書には認証局の署名がされているので、受信側ではこの証明書の公開鍵を作ったのが確かに送信者であることを確認できます。
過去問
参考
過去問は下記のサイトのものを使わせていただいております。
www.ap-siken.com