- ホーム >
- 基礎知識 >
- インターネットの仕組み >
電子メールの拡張規格 ~ MIME・S/MIME ~
電子メールのセキュリティ編は多少難解でしたが、これからインターネットの世界に飛び込んでスキルを磨いていく方には必須の知識になります。
またPKIは、電子メールのみが対象ではなく、インターネット全体の安全の基盤です。それを先に理解しておくことは、以後の基礎知識の習得に非常に有利だと思います。したがって、それが理解できるレベルであれば、この項もそれほど難なく理解できると思います。
さて、もともとインターネットはアメリカで生まれたものなので、その要素の一つである電子メールも英語でのやり取りが前提となります。
もっとも、電子メールに限らずデジタルデータは、アナログデータとデジタルデータ で解説のとおり、0と1の2進数でやり取りされていますので、アルファベットなどの文字や記号も、数値と対応させた「コード」に変換してやり取りされています。
したがって電子メールも、文字コード というコード体系に置き換えられて送受信されます。この時に用いられる文字コードがアメリカで定められた文字コードになるのです。(文字コードについては、文字コードとは で詳しく解説します)
正確には、アメリカで定められたコードを使用することを前提としたシステム体系で電子メールはやり取りされているということなのですが、その基本となる文字コードは、1文字7ビットの
ASCII(アスキー)形式
と呼ばれる文字コードです。1文字7ビットということは、27=128文字を扱うことができます。ASCIIコードは、128種類の英数字と記号が定められています。
実際にはコンピュータは1文字に8ビットを用いて、256種類の文字を扱うことができます。(コンピュータが扱うデータの最小単位は、8ビットを1単位とする「1バイト」であるため。詳しくは、デジタルデータの単位 を参照)
このASCIIコードは、他の文字コードに大きな影響を与えたコードで、ASCIIコードをもとに様々な文字コードが誕生してきました。
つまり、文字コードはASCIIコード以外にも多数存在しますが、英数字の部分はこのASCIIコードをもとにつくられていて、残りの128文字分にその文字コード独自の文字を当てています。すべての文字コードがこのとおりではありませんが、日本語の文字コードでは、1文字に2バイト(16ビット)を使用するコード(Shift_JISなど)が使われています。
しかし、電子メールにおいては、ASCIIコードに代表される7ビット体系の文字コードでやり取りすることが基本的なルールとなっています。
したがって、ASCIIコード以外(正確には7ビットの文字コード以外)で、電子メールを送受信することはルール違反ということになります。
しかし、このASCIIコードでは半角英数字と記号しか扱うことができません。英数字なら128文字でも足りますが、日本語でのやり取りは無理です。なぜこのようなルールなのかというと、電子メールも米国生まれなので、英語の使用しか想定されていなかったためです。
日本語を扱うには、漢字を含めると8ビットの256文字でも到底足りません。前述のとおり、日本では私たちは通常、1文字を表現するのに2バイト(16ビット)以上を使用する文字コード(マルチバイトコード)を使用しています。
したがって、電子メールでは、
半角英数字以外の文章や添付ファイルは、そのままでは送受信できない
ということになります。そこで、ASCII形式以外の文字コードも扱えるように、既存の電子メールのシステムを拡張した規格が誕生しました。この規格を、
MIME(マイム)
と言います。MIMEは「Multipurpose Internet Mail Extension」の略で、
ASCII形式以外のデータも、送受信の際にASCII形式に変換する
というものです。つまり、送信時に日本語から半角英数字と記号からなるASCIIコードに変換して送信し、受信してから元に戻して表示するというわけです。
※ あくまでわかりやすくするための表現です。実際にはメールの本文はASCIIコードに変換する必要はありません。詳しくは、次項で解説します。
上図のとおり、ここで重要なポイントは、
MIMEによってASCIIコードに変換処理するのはメーラーであり、メールサーバではない
ということです。このことによって、電子メールはASCIIコード(7ビットコード)以外使用できない というルールから外れることなく、日本語で電子メールが利用できるのです。
そして、世界中にあるメールサーバは、ASCIIコードのみ(7ビットコード)に対応していればよいため、国や地域によってシステムを変更する必要もなく、既存のシステムのまま世界中で電子メールを利用することができます。
というよりも、そもそもこの7ビットルールのために、なんとか日本語等のマルチバイトコードを適用させようとして考えられた苦肉の策と言った方が正しいかもしれません。したがって、送受信どちらのメーラーもMIMEに対応していなければなりません。
もっとも、WindowsメールやOutlook Expressはもちろん、基本的に日本語をやり取りできるほどんどすべてのメーラーがMIMEに対応しているので問題ありませんし、普段我々が意識することもありません。
つまり、Windowsメールなどのメーラーによって、電子メールはASCIIコードに変換されてインターネットに送信され、相手のメーラーでそれが日本語文に復元されます。
下図は、実際のメールのプロパティです。日本語の部分が、半角英数字と記号に変換されていることがわかります。
上図の本文「MIMEとは~」が、下図の下のほうの赤線の文字列に変換されています。
上のほうの赤線「MIME-version:1.0」は、MIME形式で送受信されていることを示しています。
さて、このASCIIコードへの変換については次項で詳しく解説しますが、誤解を与えてはいけないので、ここで電子メールの原則についてもう一度説明します。それは、
電子メールは、7ビットの文字コードでやり取りすることが原則である
ということです。つまり、電子メールはASCIIコードしか送信できないのではなく、ASCIIコードしかなかった頃の、ASCIIコードでのやり取りしか想定していないメールサーバシステムが世界中で構築されているので、7ビットのコード体系を使用せざるを得ないということです。
上図の真ん中あたりに、「Content-Transfer-Ensoding: 7bit」とありますが、7ビットでやり取りされていることを表しています。
つまり、システム上は、ASCIIコードでなくても7ビットの文字コードであれば問題ありません。通常日本語は、2バイトのマルチバイトコードであり、それらを電子メールで扱うためには、7ビットの文字コードに変換しなければなりません。
そのためにMIMEのような仕組みが誕生したわけですが、実は、
電子メールの「本文」は、ASCIIコード以外の文字コードでやり取りされている
のです。本項では、わかりやすくするためにASCIIに統一しますが、本当は、「ISO-2022-JP」というASCIIと同種のコード(ASCIIの日本語版と考えればわかりやすいと思います)が使われます。上図でも、「ISO-2022-JP」という文字がところどころに見て取れます。したがって、
MIMEは主に添付ファイルの送受信のために使われる
ということになります。メール本文をMIMEでASCIIに変換することはできないこともありませんが、まずそのような方法は用いません。(メールのタイトル「件名」はMIMEで変換されます。複雑なので細かい解説は割愛します)
少し難解になりましたが、電子メールの基本原則は、「7ビットのコードしか用いない」ということです。この原則をクリアするために様々な方法が考えられているので、電子メールの仕組みを詳しく理解しようと思うとかなり厄介です。
とはいうものの、MIMEは画像などの添付ファイルも7ビットのASCIIに変換して送信できるので、電子メールにとって必要不可欠なものになっています。
ただし、添付ファイルのデータサイズが大きくなればなるほど、変換された文字列は膨大なものになって行きます。当然、処理時間がかかってしまいます。
このような拡張規格はMIMEの他にもありますが、MIMEが最も一般的です。そして、前項まで学習してきた「電子メールのセキュリティ」編の本丸である、電子メールの暗号化もMIMEを利用することで可能になります。
MIMEを利用してメールを暗号化するための方式を、
S/MIME(エス マイム)
と言います。S/MIMEは「Secure Multipurpose Internet Mail Extensions」略で、これまで「電子メールのセキュリティ」編で学習してきた、公開鍵暗号化方式 によって、メールを暗号化します。
つまり、電子メールをMIMEが規定する仕様でASCIIコードに変換し、その変換されたASCIIコードを公開鍵暗号化通信で送受信する方式が、S/MIMEです。
公開鍵暗号化方式ということは、S/MIMEでも当然、電子証明書によって公開鍵を証明する必要があります。つまり、PKIを利用するということです。
PKIは、電子メールのみを対象とはしていないと解説してきましたが、
S/MIMEは、電子メールのみに特化した方式
なので、S/MIMEを利用するには、S/MIMEに対応しているメーラーを設定するだけで良く、自動的に暗号化と復号化は行われるので特に暗号化を意識する必要はありません。必要なのは、対応しているメーラーと電子証明書だけです。
CAから電子メール用(S/MIME用)の電子証明書を購入し、WidowsメールやOutlook Expressなどの、S/MIMEに対応したメーラーにインストール(登録)して、メーラーの設定を多少変更するだけで準備完了となります。
つまり、CAから電子証明書を発行してもらうだけで、すぐにでもS/MIMEによる暗号通信を始めることができるのです。
S/MIMEの実際の利用方法、Windowsメール(Outlook Express)の設定方法は、応用操作 メール編 で詳しく解説しています。
電子メールの暗号化はS/MIME以外にも、電子メールのセキュリティ(1) でも触れた「PGP」でも可能ですが、PGPは電子メール以外のファイルやフォルダも暗号化して送信することができるのに対し、S/MIMEは電子メールに特化しており、電子メールの暗号化は、S/MIMEが最も一般的です。
ここまで学習してきた方には、S/MIMEはこれだけでもう十分理解できると思いますので、公開鍵暗号化方式とPKI、電子証明書の解説はここでは割愛します。
このように、MIMEとS/MIMEによって、英数字以外に日本語も送受信することができるようになり、暗号通信も行うことができるようになりました。
もう少し詳しく説明すると、MIMEとは、ASCIIコード以外のデータを送受信するための規格「様式」のことであり、言い換えれば手順書「マニュアル」のようなものです。
ASCIIコードへの変換の方式のことをMIMEと言うのではない
ので注意が必要です。つまり、ASCIIコード以外のバイナリファイル(添付ファイル)をやり取りするための規格、マニュアルのことをMIMEというのであって、ASCIIコードへの変換方法、変換の方式自体をMIMEというのではないのです。
したがって、MIMEというマニュアルに規定された、データのASCIIコードへの変換方法は数種類存在しています。
もっとも、MIMEのキモはそのASCIIコードへの変換の部分なのですが、その方式を説明する前に、用語の解説をしておきましょう。
まず、データを目的に応じたコード体系(ASCIIコードなど)に変換することを、
エンコード
と言い、逆に、エンコードされたデータをもとに復号化することを、
デコード
と言います。エンコードは「符号化」とも言い、エンコードする際にどういった規則でエンコードするのかを定めた方式を、エンコード方式(符号化方式)と言います。
つまり、電子メールは7ビットの文字コードで送受信しなければならないというルールに対応するため、添付ファイルなどのバイナリファイル(テキストファイル以外のファイル)は、7ビットの文字コード(ASCIIコード)に変換しなければなりません。こうしたデータ形式の変換のことを「エンコード」と言うのです。
エンコードとデコードという用語は、コンピュータの世界では、電子メールに限らず幅広く用いられる用語なので、覚えておきましょう。
さて、電子メールでは、ASCIIコードへのエンコード方式はいくつか種類がありますが、
BASE64(ベース ろくじゅうよん)
というエンコード方式が最も一般的です。BASE64は、添付ファイル(バイナリファイル)を7ビットの文字コード(テキストファイル)にエンコードする方式です。
このBASE64という方式で、電子メールの添付ファイル(実際はメールのタイトル「件名」も)は、ASCIIコードに変換されてインターネット上に送信されています。(メール本文はBASE64を使用しません。詳しくは次項で解説します)
つまり電子メールは、MIMEに規定されたBASE64という方式でASCIIコードにエンコードされて送信され、受信者のメーラーでもとにデコードされて表示されているというわけです。
さて、さらに詳しい解説は次項以降にします。しかしこれまでの学習で、電子メールの仕組み、また利便性と危険性を理解するとともに安全な暗号通信を行うための基盤であるPKIの整備とその重要性が理解できたことと思います。
現在では、電子メールの存在はインターネットの主要部分ということに限らず、ビジネスの世界では必要不可欠なツールになりました。その電子メールの基礎は、これまでの学習である程度のレベルまで網羅したと思います。
これで電子メール編は終了としたいところですが、最後に次項で電子メールの書式とマナーについて、また書式のさらに詳しい解説をします。
更新履歴
- 2008年11月24日
- ページを公開。
- 2009年6月8日
- ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
- 2014年5月21日
- 内容修正。
- 2018年1月30日
- ページをSSL化によりHTTPSに対応。
参考文献・ウェブサイト
当ページの作成にあたり、以下の文献およびウェブサイトを参考にさせていただきました。
- 文献
- 図解入門 インターネットのしくみ
- メールの構造を理解する:メールはなぜ届く
- http://pc.nikkeibp.co.jp/article/NPC/20070405/267493/
- 8bitメールは問題ないのか?
- http://www.securehtml.jp/utf-8/8bit.html
- 管理人のつぶやき
- Twitterのフォローお願いします!