添付ファイル付き電子メールの基本
ここでの添付ファイルとは、通常のテキストメールにおいて、メール本文とは独立した画像ファイルや文書ファイルを、メールとともに送受信するファイルのことです。
HTMLメールやWebメールでは、添付ファイルは、画像のタグとりこみ、他HTML文書へのリンクとして実現します。ここでの添付ファイルとは異なるので対象にしません。
添付ファイル付き電子メールの基本的な仕組み
添付ファイルはメール本文とは別ファイルのように見えますが、メールソフトによる送受信では一つのファイルとして扱われます。
- MIME(Multipurpose Internet Mail Extensions)
- そもそもの電子メールシステムは、ASCII文字コードだけを想定していました。MIMEは、各種の文字コードやバイナリデータをASCIIコードに変換して電子メールで送信できるようにし,受け取ったASCIIテキストを元の形式に逆変換するプロトコルです。
- マルチパート(multipart)
- そもそもメール本文と添付ファイルは独立した2つのファイルです。マルチパートは、MIMEの拡張仕様の一つで、本文を複数の部分(パート)に分割し、それぞれ独立した異なる内容(添付ファイルの内容)を一つの本文のように取り扱える機能です。すなわち、添付ファイルの内容もMIMEでの変換が行われます。
ほとんどのメールソフトはMIMEやマルチパートに対応しています。それで、私たちは、意識せずに件名や本文に日本語文字コードを使うことができますし、簡単なメールソフトの操作で、添付ファイルを添付できるのです。
受信メールが「文字化け」していることがあります。その原因として、送信側のMIMEで元ファイルの文字コードを正しく認識せずに誤変換したこと、受信側のメールがMIMEの古い版を使用しており、逆変換ができなかったことなどが考えられます。
添付ファイルの制約
添付ファイルには容量や種類の制約があります。この制約を満足できないときは、無理して添付ファイルにするのではなく、ファイル転送サービスや共有ファイルサービスなどの利用を選択すべきでしょう。
容量制限/圧縮
画像や音声などのファイルを添付ファイルにすると、大容量になり受信者のパソコンに容量がない、受信に長時間かかることになります。それを予防するために、受信者がメールソフトに容量制限(3MBなど)の設定をするのが通常です。
受信者が、スマートフォンのような場合には、そもそも添付ファイルを送信するのは避けるべきです。
多数の画像を同時に送ると容量制限を超えることがよくあります。それを避けるために、何度にも分けて送信するのは煩わしいことです。
これを避けるためには、添付ファイルをZIPなどの圧縮・解凍ソフトを用いて小容量に圧縮します。これらのソフトは複数のファイルをまとめて一つの圧縮ファイルにする(アーカイブファイル)にすることができます。(参照:圧縮・解凍ソフトウェア)
添付ファイルの拡張子
受信者端末の環境を考慮して添付ファイルの種類を選択する必要があります。
- パソコンでも、Wimdows、MAC、LINUXでは扱える種類(拡張子)が異なることがあります。
- Word や Excel でも古いバージョンのパソコンは、最新バージョンの添付ファイルは扱えないこともあります。
セキュリティの観点から、多くのメールソフトでは、.exe(実行可能ファイル)、.app(実行可能アプリケーション)、.js(JavaScript ソース コード)など、マルウェアを内蔵しそうな拡張子ファイルを拒否するように初期設定しています。
それをかいくぐるために、他の拡張子に偽造するのは、もってのほかです。そもそもこのような機能をもつファイルの提供には、添付ファイル以外の手段を考えるべきです。
添付ファイルの暗号化
S/MIME(Secure MIME)による暗号化
電子メールの暗号化方式の標準です。添付ファイルもMIMEでのマルチパートにより、本文と一体化しているので、暗号化・復号ができます。
共通鍵暗号と公開鍵暗号を組み合わせたハイブリッド暗号方式です。すなわち、受信者は発信者が本人であること、通信経路上で内容が改ざんされていないことを確認できます。
S/MIMEでは、送信者と受信者の双方がデジタル署名の証明書をもっていることが必要です。多くのメールソフトはS/MIMEに対処しており、それを介して比較的容易に認証を得ることができます。
ZIP圧縮による暗号化
S/MIMEでは、送信者と受信者の双方がデジタル証明書をもっている必要があり、個人ベースでたまたま添付ファイルを送りたいという場合には面倒です。そのような用途では「ZIP圧縮による暗号化」があります。
添付ファイルを、圧縮ソフト(この目的ではZIPが用いられることが多い)で圧縮するときに、展開するのに必要なパスワードを設定できます。その添付ファイルはMIMEマルチパートにより本文(平文)とともに送信されます。その本文にパスワードを記述したのでは、暗号化の意味がないので、別の電子メールでパスワードを送ります。これなら、通信自体は通常の平文で行われるので、面倒さは回避できます。
この方法は「Password(パスワード)付きZIP暗号化ファイルを送る」「Passwordを送る」という「Aん号化(暗号化)」の「Protocol(プロトコル)」を略したPPAPとも呼ばれます(揶揄した用語)。
ZIP圧縮暗号化の欠陥
PPAP方式は簡単ですが、重要な欠陥があることが指摘され(PPAP問題)、禁止しようという動向になっています。
- 一般に添付ファイルによるウイルス感染のリスクは大きいのですが、暗号化されら添付ファイルのウイルス発見は困難です。
- 本来の受信者が添付ファイルを得るには、2回のメールが正しく送信される必要があります。誤送信や経路トラブルのリスクが大きくなります。
- 悪意の第三者がファイルが添付されたメールを盗み見ることができた場合、パスワードが書かれたメールが送信されることが明白で、それも盗み見できるはずです。それを防ぐには、パスワードを電話や手紙など他の媒体手段によることになります。
- ここでのパスワードの強度は弱いのが通常です。総当たり攻撃での短時間で破られます。
- もし、固定したパスワードを用いていたならば、同様の添付ファイルが全て解読されるだけでなく、なりすましをして、そのパスワードで暗号化した偽添付ファイルを送り付けられることにより。標的型攻撃のリスクが増大します。