MIMEとは

今でこそ、電子メールは皆が利用するサービスとなりましたが、電子メール自体は、インターネットの初期の頃からあるサービスで、その歴史は長いものとなっています。
元々、英語圏で誕生したシステムであるため、英語での使用が前提となっています。そのため、今でもメールは全てテキストでなければやり取りすることができません。
メールで使用する文字コードは、英語圏で使用される文字セット体系であるASCIIコードを使用するようになっています。ASCIIコードは8ビット内、下位7ビットまでしか使用しないことから、7ビットコードとも呼ばれています。
ASCIIコードの文字コードしか使用できないのに、どうして日本語のテキストや表計算や写真などの添付してメールを送信できるのでしょうか?
それは、MIMEという仕組みがあるからです。MIMEという仕組みが登場してから、メールで日本語やバイナリデータが扱えるようになりました。MIMEは、「Multipurpose Internet Mail Extension」の略で、電子メールで様々なフォーマットを扱えるようにする拡張規格です。
主に以下のことが取り決められています。
①音声、画像などのバイナリデータの送受信の取り扱い
②アジア圏など、2バイト文字の扱いなども含めた国際的な文字のサポート
SMTPは、電子メールを7ビットのテキストデータとしてしか処理できないので、バイナリファイルなどのデータをそのままでは、送ることができません。
そこで、MIMEで以下の処理を行います。
①送信側のメーラーで、バイナリデータ部分をテキストコードにエンコード(変換)する。
②テキストメールの一部としてメールを送信する。
③受信側のメーラーで、元のバイナリデータにデコード(復元)する。
そうすることで、バイナリデータが含まれていても、あたかもテキストデータであるかのように扱えるようになります。
MIMEによるコード化には、Base64などのエンコード方式が使われています。
インターネットはセキュリティに脆い
インターネットを利用する際には、常に以下のリスクが付きまといます。
- 盗聴
- なりすまし
- 改ざん
インターネットは、不特定多数の人が利用する巨大ネットワークです。たくさん利用する人がいれば悪いことをする人も、たくさんいます。
現実の世界で考えれば理解し易いと思います。毎日のようにニュースや新聞で、殺人、強盗、窃盗、などの凶悪事件が報道されています。
インターネットにおいても接続する人の全てが健全な利用者であるとは限らないというわけです。インターネットにおける悪事と言えば、「盗聴」「なりすまし」「改ざん」です。
インターネットに接続すれば、インターネットに接続している世界中の端末と通信できるというメリットががありますが、逆にいうと世界中の人から見られているということになります。
そもそも、インターネットは、情報を公開することを目的としたオープンなネットワークです。皆に見られることを前提に作られたものですから、セキュリティに脆いという側面があります。
インターネットを利用するということは、この3つのリスクが潜在するということを忘れてはなりません。
盗聴
通信するデータは、誰かに覗き見られる可能性があります。インターネットはオープンな世界です。暗号化をしない限り、通信するデータは、基本的に平文で流れています。悪意のある利用者に通信パケットを傍受され、閲覧される可能性があります。
なりすまし
なりすましとは、第三者があたかも本人であるかのようなふりをしてネットワーク上で活動することです。
他人になりすましされると、差出人が本来のものとは違うように詐称した電子メールが送られてきたり、内容を読まれたり、勝手に名前を使われて掲示板に書き込みされたり、ネットショッピングで勝手に買い物をされたりします。
改ざん
改ざんとは情報を管理者の許可を得ずに書き換える行為のことです。メールの中身を書き換えられたり、HPの内容を書き換えられたり、不正侵入の証拠を隠滅するためにサーバのログを書き換えられたりします。
電子メールの暗号化と電子署名
上の「インターネットはセキュリティに脆い」で説明したように、インターネットは、情報を公開することを目的としたオープンなネットワークなのでセキュリティに脆い性質があります。
インターネットを経由して配信する電子メールも例外ではなく、「盗聴」「なりすまし」「改ざん」の脅威が付きまとうことになります。 このリスクを回避して安全に電子メールのやり取りを行うには、以下の対処方法があります。
暗号化することで「盗聴」に対処する
メールの中身が見られてしまうのであれば、メッセージを暗号化してしまえばよいのです。そうすれば、たとえ盗聴されたとしても、元のメッセージの内容は分かりません。暗号化の強度が高ければ、高い程、簡単に元の内容を解析されてるリスクが低くなります。
電子署名を付けることで「なりすまし」に対処する
紙の契約書でも実印による押印と印鑑証明書が付されていれば、その契約書は真正であることを証明することができます。電子メールにおいても電子署名を付けて送ることで、差出人を偽る「なりすまし」に対処することができます。電子署名が行われていれば、その電子メールの作成者を特定することができるからです。
電子署名を付け暗号化することで「改ざん」に対処する
暗号化しておけば、元のメッセージを読み取ることができません。読み取ることができなければ、文脈にあった内容に書き換えることは困難です。
さらに、電子署名を付けておけば、差出人を偽ることができません。また、電子署名の中には電子メール本体から作成されたメッセージダイジェストが入っており、相手先は送られてきたメッセージダイジェストと送られてきた電子メール本文から作成したメッセージダイジェストを比較することで、改ざんされたかどうかが、分かるようになります。
このメッセージダイジェストは、メール本体が少しでも変わるとメッセージダイジェストも変わるようになっているので改ざんが行われているれば検出できるようになっています。
S/MIMEとPGP
メールの暗号化と電子署名には、一般的に、S/MIME(Secure/Multipurpose Internet Mail Extensions)とPGP(Pretty Good Privacy)が利用されています。これら2つには暗号化と署名の機能があり、共通鍵暗号方式、公開鍵暗号方式、メッセージダイジェスト関数とを組み合わせることで、この機能を実現しています。