電子メールの危険性 ~ SMTP-AUTHSMTPS・STARTTLSとは ~

子メールは、送信と受信が異なるプロトコルでやり取りされているということを前項で学習しました。送信のプロトコルは「SMTP」で、受信のプロトコルは「POP」です。

自分宛の電子メールを読むためには、自分のメールサーバ(POPサーバ)からメールをダウンロードして来なければなりません。

この時(受信時)のプロトコルがPOPになりますが、

POPでメールを受け取る場合には「認証」が必要になる

仕組みになっています。

POPも、FTPとは で学習したFTPと同じように、認証しなければPOPサーバに接続することはできません。

ただし、これは当然のことで、自分のメールを認証なくして誰でも受信することができたら、それこそ問題なのです。POPの認証は、メールサーバにある自分のメールボックスを開ける鍵になります。銀行の暗証番号のようなものです。

ところが、

SMTPでメールを送信する場合には「認証」機能がない

のです。

なぜかというと、SMTPは古いシンプルなプロトコルであり、メーラーから送信されたメールを転送するだけで、認証を必要とする考え方がなかったからのようです。

そのため、送信されたメールはメールサーバ(SMTPサーバ)をただ通過するだけになります。銀行でお金を引き出す時には認証が必要で、振り込む時には誰でも振り込めるのと同じです。

こうした仕組みのもとで電子メールが利用されているために、様々な問題が起こってきました。

下図は、15年ほど前にWindows Vistaが標準搭載していたメーラー「Windowsメール」の設定画面です。

Windowsメールのサーバ情報画面のイメージ

「受信メールサーバー」のところに、ユーザー名(アカウント)とパスワードを指定する欄があります。

ここで入力する「ユーザー名」と「パスワード」は、契約したプロバイダ等から送られてきます。プロバイダ等のPOPサーバに登録されているユーザー名とパスワードと、入力したユーザー名とパスワードが一致すれば認証が完了します。

メーラーに設定しておけば、起動と同時にメールの送受信が行われるため、POP認証も自動的で行われます。

ところが「送信メールサーバー」のところには認証情報を入力する欄がありません。(赤線の「このサーバーは認証が必要」については後述します)

こうした仕組みのために、多くのトラブルが起こるようになりました。

誰でも他人のSMTPサーバにアクセスしてメールを送信できる

からです。

そのため、スパムメール(営利目的の広告やダイレクトメールといった迷惑メール)やウイルスメールなどが無差別にばら撒かれる要因となったのです。

しかも、もし自分のSMTPサーバから送信されてしまうと、自分が送ったメールになってしまいます。知らないうちに第三者によって、SMTPサーバがスパムメール配信の「踏み台」にされてしまう可能性があるのです。

さらに、簡単に他人になりすますこともできます。この「なりすまし」によって、クレジットカード等の暗証番号を入手しようとするフィッシング詐欺も問題となりました。

そこで、様々な方法が考えられるようになります。

まずは、

POP before SMTP(ポップ ビフォア エスエムティーピー)

という方法です。

直訳すると「SMTPの前にPOP」です。これは、

メールを送信(SMTPサーバに接続)する前に受信(POPサーバに接続)して認証を行う

という方法です。

POP before SMTP方式は単純な仕組みですが、これだけでユーザー認証を行うことができます。既存システムのままで設定を変更する必要がないことから、ほどんどのプロバイダで採用されました。ユーザー側もメーラーの起動と同時にメールを受信してくる(認証を行う)ので、特に意識することもありません。

とは言うものの、やはりこれだけでは不十分でした。POP before SMTP方式をもう少し詳しく説明すると、POP認証が行われた後の一定期間だけメールの送信を許可するという仕組みです。

一定期間というのはプロバイダによって異なりますが、数分から十数分程度です。そのため、逆に言えばこの間は認証なしでメールが送れることになります。

さらに、IPアドレスとは(2) で学習したNATによるIPアドレス変換が行われている場合は、ネットワークでIPアドレスを共有するため、一人のユーザー認証によってネットワーク内のすべてのユーザーが認証できてしまうといった問題もありました。

また、メールの受信(メーラーの起動)から数分間経過すると、再度POP認証を受けないとメールを送信することができなくなり、ユーザーからメールが送信できないといった問い合せがプロバイダへ数多く寄せられるようになりました。

やはり、SMTPにも認証機能を持たせることが望まれたのです。

そして登場したのが、

SMTP-AUTHSMTP認証)

という機能です。

AUTH(オウス)は「authentication」の略で「認証」の意味です。AUTHを日本語にして「SMTP認証」と呼ばれることもあります。

これは文字どおり、

SMTPに認証機能を持たせた拡張規格

です。

POPと同様に、メール送信時にSMTPサーバでユーザーIDとパスワードによる認証を行います。

SMTP-AUTHは、サーバ(プロバイダ)とクライアント(メーラー)が双方とも対応している必要があり、どちらかでも対応していない場合は、POP before SMTP方式を利用することになります。

現在では、ほとんどのサーバとメーラーが対応していますが、先ほどの図の「このサーバは認証が必要」という赤線の箇所がこの設定になります。

下図は、Outlookの設定画面になります。「送信サーバ(SMTP)は認証が必要」にチェックが入っています。

Outlookの「送信サーバー」画面のイメージ

多くのSMTPサーバでは、上図と同様にPOPサーバと同じユーザーIDとパスワードで認証できます。「メールを送信する前に受信メールサーバーにログオンする」が、POP before SMTPのことです。

具体的なメーラーの設定方法については、基本操作 メール編 で解説していますが、SMTP-AUTHでは「587番」ポートを使用します。多くのプロバイダでは、スパムメール対策としてそれまでSMTPサーバで使用していた「25番ポート」を閉じて、587番や465番にポートを変更しました。(465番については後述します)

ポートとは、TCP/IPとは で学習したIPアドレスの下のサブアドレスのことです。IPアドレスである番地の建物(パソコンやサーバ)の、ポート番号は部屋(アプリケーションソフト)を指定します。ここで言うポートは、サーバ側のウェルノウンポートのことです。

こうして電子メールは、受信時も送信時も認証を行うことで、誰もが安全に利用できるサービスになったと言いたいところですが、まだ完璧ではありませんでした。

なぜなら、電子メールはインターネット上で、

プレーンテキスト(平文)でやり取りされる仕組み

だからです。

プレーンテキストと平文(ひらぶん)という用語は次項以降も出てきます。どちらも同じ意味で、暗号化されていないファイルをあらわす用語です。広い意味では、テキストファイルだけでなく暗号化されていない他の形式のファイルも含まれます。

つまり、郵便ハガキと同じように文章が「丸見え」なのです。盗聴された場合は容易に内容を読み取ることができます。さらに、内容だけならまだしも平文での通信で致命的なのは、IDやパスワードも丸わかりになってしまうことです。

なぜかというと、

認証パスワードも平文で送られていた

からです。

POP認証はもちろん、SMTP認証でも暗号化できる一部の規格(メーラーやプロバイダによって採用している認証規格が異なる)を除いて、平文でやり取りされていました。

下図のように、メーラーのパスワードの入力欄は「●●●」や「***」と表示され、まるで暗号化されているように見えますが、実際には平文で送られていたのです。

Windowsメールのサーバ情報画面のイメージ

そこで、まずはPOP認証でパスワードを暗号化する仕組みが開発されました。

それが、

APOP(エーポップ)

です。

APOPは「Authenticated Post Office Protocol」の略になります。プロトコルの名が付いているとおり、APOPPOPのセキュリティ機能を高めたプロトコルです。

APOPSMTP-AUTHと同様に、サーバ(プロバイダ)とクライアント(メーラー)が双方とも対応している必要がありますが、パスワードを暗号化して認証することができます。

ただし、2007年にAPOPに脆弱性(ぜいじゃくせい:セキュリティ上の欠陥のこと)が発見され、ほとんど使用されなくなりました。そして、SMTP認証の暗号化規格にも脆弱性が発見され、安全とは言えなくなっています。

またこれらは、

認証時のパスワードが暗号化されるだけでメール本文は暗号化されない

のです。

そのため、次に認証パスワードもメール本文も暗号化する技術が開発されるようになります。

POPサーバとのやり取りをすべて暗号化する、

POP over SSL/TLSPOP3S

SMTPサーバとのやり取りをすべて暗号化する、

SMTP over SSL/TLSSMTPS

という技術です。

POP over SSL/TLS(ポップ オーバー エスエスエル/ティーエスエス)は、POP3S(ポップスリーエス)とも呼ばれ、SMTP over SSL/TLS(エスエムティーピー オーバー エスエスエル/ティーエルエス)は、SMTPS(エスエムティーピーエス)とも呼ばれています。

POP3Sは「POP3 over SSL/TLS」の略で、SMTPSは「SMTP over SSL/TLS」の略になります。

またIMAPの場合は、

IMAP over SSL/TLSIMAPS

になります。

IMAP over SSL/TLS(アイマップ オーバー エスエスエル/ティーエスエス)は、IMAPS(アイマップエス)とも呼ばれます。IMAPSは「IMAP over SSL/TLS」の略になります。

SSL/TLSについては次項から詳しく学習していきますので本項では割愛しますが、SSL/TLSという強固な暗号化技術を用いて、POP3Sは受信時に、SMTPSは送信時に、パスワードもメール本文もサーバとのやり取りをすべて暗号化して送受信する技術です。

これまで、〇over△という名称は何度も登場してきました。この場合も、POPSMTPプロトコルでSSL/TLSによる暗号化通信を行えるようにした技術という意味になります。

POP3Sのポートは「995番」、SMTPSのポートは「465番」を使うのが一般的です。

下図はOutlookの設定画面です。

Outlookの「詳細設定」画面のイメージ

同様に、契約しているプロバイダのサーバとメーラーが対応している必要がありますが、POPサーバとSMTPサーバともにウェルノウンポートを指定し、SSL/TLSを使用して暗号化接続する設定になっています。

こうしてSMTP-AUTHの脆弱性を補い、パスワードも本文も暗号化することができるようになりました。

さらに、

STARTTLS(スタート ティーエルエス)

という技術も登場しました。

これも「TLS」の文字があるとおり、SSL/TLSによる暗号通信を行うもので、

平文の通信を暗号化通信に切り替える

という技術です。

POP3SSMTPSと同じように、SSL/TLSによる暗号化通信ですが、STARTTLSはSMTPPOPだけでなく、FTPなどのメール関係以外のプロトコルでも利用することができるようになっています。

ただ、ほとんどの場合はSMTP通信で利用されており、多くのメーラーではSMTPサーバとの通信設定でSTARTTLSが利用できるようになっています。

SMTPSとの違いは、SMTPSSSL/TLSによる暗号化通信が確立してからSMTPで通信を行うのに対し、STRATTLSは、SMTPサーバがSTARTTLSに対応しているかどうか判断してから暗号化通信を行うという違いがあります。

具体的には、SMTPサーバがSTARTTLSに対応しているかどうかの確認を通常のSMTP通信(平文)で行い、対応していることが確認できたら、その後の通信はSSL/TLSによる暗号化通信を行うというものです。対応していなければ、平文のまま通信します。

STARTTLSのSTARTは「最初は平文で通信」の意味です。

POP3SSMTPSは、暗号化通信を確立するために専用ポートが必要になりますが、STARTTLSは既存のポートで暗号化が可能になるため、現在使用している「25」や「587」をそのまま使うことができます。

ただし、暗号化通信を開始する前の平文の通信を盗聴されるリスクがあること、専用ポートがないために、暗号化通信が行われているのか、平文で通信されているのか判断ができないというデメリットもあります。

こうして現在では、SMTP-AUTHPOP3SSMTPS、STARTTLSが混在した状態になっています。

プロバイダによって、

SMTPSMTP-AUTHSMTPSまたはSMTP-AUTH+STARTTLS

POPPOP3S

といった組み合せが一般的となっています。

Outlookの「詳細設定」画面のイメージ

さて、これでようやくメールは誰もが安全にやり取りできるようになったと言いたいのですが、十分と言えるでしょうか?

じつは、これでもまだ十分ではないのです。

なぜなら、送信者のメーラーと送信者のメールサーバまでのやり取りはすべて暗号化されますが、

メールサーバ同士の通信まで保証するものではない

からです。

どういうことかと言うと、自分のサーバから送信相手のサーバまでの転送経路が暗号化されているかどうかはわからないということです。送信相手のサーバが暗号化に対応しているかどうか送信者にはわかりません。

つまり、サーバ同士は平文で通信している可能性があるのです。

これは、インターネットの中にまだ暗号化に対応していないサーバも存在しているためで、IPアドレスとは(2) で学習したように、IPv6にすべて変更できないのと同じです。サーバ間の通信まで保証できないのです。

現在では多くのサーバが対応しているので、すべて平文でやり取りされるわけではありませんが、STARTTLSはこうした仕組みに合っているため、SMTPサーバ間の通信でよく利用されています。

それでも、通信経路の途中に暗号化に対応していないサーバがあれば、平文のまま流れる可能性があります。

送信相手のパソコンへ届くまでのすべてのルートで暗号化しなければ安全とは言えない

ということです。

別項で学習しますが、こうしたサーバの対応状況に関わらず、相手のパソコンに届くまで電子メールを暗号化する「S/MIME」という仕組みがあります。

それを理解するために、まずは次項から、暗号化通信の基礎をじっくりと学習していきましょう。

更新履歴

2008年11月24日
ページを公開。
2009年5月19日
ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
2018年1月30日
ページをSSL化によりHTTPSに対応。
2023年2月17日
内容修正。

参考文献・ウェブサイト

当ページの作成にあたり、以下の文献およびウェブサイトを参考にさせていただきました。

文献
図解入門 インターネットのしくみ
メールを暗号化する シニアのためのセキュリティ教室
http://www.seniorit.info/kojin/kojin02.htm
各プロトコルの安全性
https://rat.cis.k.hosei.ac.jp/article/security/protocol.html#na-4
SMTP AUTHと認証の種類
https://bb.watch.impress.co.jp/cda/bbword/8859.html