2016.09.09 システム
メールの暗号化と復号化(その2)
システムエンジニアの大貫です。
前回は暗号化メールのやりとりについて触れて、
暗号化することで、情報漏えいする危険性が少なくなる
というお話をしました。
今回は、「受信側に成りすまして、公開鍵と秘密鍵を作ったらどうなるか?」
と「受信した側は、本当の相手からメールが届いたか判断できるか?」について
お話ししたいと思います。
まず「受信側に成りすまして、公開鍵と秘密鍵を作ったらどうなるか?」についてですが、
メール送信の経路の中に悪意を持った「クラッカー」がいたらどうでしょうか?
<メール送信の流れ>
例)Aさんが、Bさんにメールを送信しようとして、Zさんにクラッキングされた場合
①[メール送信者:Aさん]Bさんのメールサーバへ「公開鍵B」を要求。
②[クラッカー :Zさん]通信経路上で、Bさんのメールサーバへ「公開鍵B」を要求。
③[メール受信側:Bさん]「公開鍵B」を、Aさんへ渡す。
④[クラッカー :Zさん]通信経路上で、偽装した「公開鍵Z」をAさんへ渡す。
⑤[メール送信者:Aさん]「公開鍵Z」を元に、「共通鍵A」を暗号化し、Bさんへ送信。
⑥[クラッカー :Zさん]通信経路上で、暗号化された「共通鍵A」を、「秘密鍵Z」で復元。
⑦[クラッカー :Zさん]通信経路上で、「公開鍵B」を元に、「共通鍵Z」を暗号化し、Bさんへ送信。
⑧[メール受信者:Bさん]暗号化された「共通鍵Z」を、「秘密鍵B」で復元。
⑨[メール送信者:Aさん]「共通鍵A」で、メールを暗号化してBさんへ送信。
⑩[クラッカー :Zさん]通信経路上で、「共通鍵A」を元に、Aさんのメールを復号化して、メールを読んだり、改ざんしたり。
⑪[クラッカー :Zさん]「共通鍵Z」で、改ざんしたメールを暗号化してBさんへ送信。
⑫[メール受信者:Bさん]「共通鍵Z」を元に、改ざんされたAさんのメールを復号化して、メールを読む。
なんだか、ややこしくて分かりにくいですが・・・ようするに、せっかくメールを暗号化しているのに
AさんはBさんにメールを送っているつもりで、Zさんにメールを、傍受されたり、改ざんされてしまうわけです。
これは、中間者攻撃(man-in-the-middle attack)というもので、AさんもBさんも
傍受されていることや改ざんされていることには気づけないという攻撃です。
公開鍵の暗号化方式は、鍵が公開されているだけに、鍵を発行したのが、正しい相手なのかを
証明できないという弱点があります。
じゃぁ、どうすれば、こういったことを防げるのでしょうか?
これを防ぐために考えられたのが、「公開鍵基盤(PKI)」です。
「公開鍵基盤(PKI)」とは、「信頼できる第三者機関」で「公開鍵」の正当性を証明(保証)してもらう方法のことです。
よく、サイトのSSL証明書は、シマンテックやグローバルサインなどで購入すると思いますが、
これが、「公開鍵基盤(PKI)」です。
「信頼できる第三者機関」で証明された「公開鍵」(厳密には公開鍵証明書)を使うことで、
通信経路上に悪さをしようとする人がいたとしても、気付くことが出来るということになります。
<メール送信の流れ>
例)Aさんが、Bさんにメールを送信しようとして、Zさんにクラッキングされた場合
①[メール送信者:Aさん]Bさんのメールサーバへ「公開鍵証明書B」を要求。
②[クラッカー :Zさん]通信経路上で、Bさんのメールサーバへ「公開鍵証明書B」を要求。
③[メール受信側:Bさん]「公開鍵証明書B」を、Aさんへ渡す。
④[クラッカー :Zさん]通信経路上で、偽装した「公開鍵証明書Z」をAさんへ渡す。
⑤[メール送信者:Aさん]「公開鍵証明書Z」が正しい証明書か、認証局の公開鍵で復号化
→復号化出来ないので、不正な通信と判断。
機密情報をメールで、どうしても送らなくてはいけないという場合は、証明書を購入して
導入することをお勧めいたします。
サイトやメールなど、セキュリティに不安がございましたらマリンロードへ是非ご相談ください。