EメールのプライバシーとTLSについて

EメールのプライバシーとTLSについて

この記事は The Myth of Opportunistic TLS and Email Privacy の抄訳です。

SendGridは、この6月にお客様の通信内容を監視から守るための活動に参加し、TLSによる日和見暗号化に対応しました。

このことでお客様のプライバシーを守ることはある程度可能ですが、完全ではありません。TLSの日和見暗号化により、もちろん平文でそのままメールを送信することよりは安全性が高まりますが、TLSに対応していないドメインに対するハイジャックを防ぐことはできません。攻撃者は、そのドメインを乗っ取り、トラフィックをキャプチャし、正しいメールサーバに届けることで、メールの内容を傍受することが可能です。

Enfoced TLS(強制的にTLSで通信する)を利用することで、メールのプライバシーを完全に守ることが可能となります。Enforced TLSを利用するとTLSに対応していないサーバに対してのメールは配信されなくなってしまうので、SendGridでは日和見暗号化がデフォルトとなっています。この機能を利用するかどうかはお客様にてお選びください。

Enforced TLS

先に述べたとおり、Enforced TLSを利用するかどうかはお客様が選択することが可能です。メールが配信されるかどうかよりも、プライバシーのほうが重要だとお考えであれば是非ご利用ください。ちなみにSendGridから送信されるメールの92%がTLSを利用して送信されています。多くのサーバが暗号化に対応し始めたので、以前の調査よりもTLSの利用率は大きく上昇しています。

TLSを利用することにより安全性は高まりますが、日和見暗号化にはSSL認証エラーのハンドリングに関わる欠点があります。TLSを利用して送信されるメールのうち、約3%が何らかのSSL認証エラーとなっています。エラーの原因は、自己署名の証明書であったり、有効期限切れの証明書であったり様々です。もし、そういったエラーが発生した時に、ユーザにどのように対処するか確認することができればよいのですが、日和見暗号化では、そのまま送るという仕様になっています。

Enforced TLSによってこの挙動をコントロールすることが可能になります。require_valid_certパラメータをtrueにすると、問題のある証明書だった場合にはそのメールは遅延状態になります(Deferred)。この設定はrequire_tlsパラメータがtrueになっていたときのみ有効になります。

Enforced TLSはWebAPI v3を利用して設定可能です。以下のようにリクエストすることにより、現在の設定情報を取得可能です。

GET api.sendgrid.com/v3/user/settings/enforced_tls
{
"require_tls": false,
"require_valid_cert": false
}

Enforced TLSを有効にするには、以下のAPIをご利用ください。

PATCH api.sendgrid.com/v3/user/settings/enforced_tls
Header: “Content-Type: application/json”
{
"require_tls": true,
"require_valid_cert": true
}

この設定を有効にすることにより、
・受信側のサーバがTLS接続に対応していること
・正当なTLS証明書を利用していること
の両方を満たさない場合は、メールはドロップされ以下のレスポンスとともにBlockイベントが発生します。

500 TLS require but not supported

DroppedやDeferredについての詳細(どのサーバにメールを送れなかったのか等)は、Event WebhookやEmail Activityを利用して確認することが可能です。
※Enforced TLSについてはAPIマニュアルをご確認ください。(会員登録が必要です)

最後に

この機能を有効にする前にどれくらいの影響がありうるのかを確認するため、ログデータを調査しました。その結果、TLSに対応していないサーバについて興味深い結果を得ることができました。日本やヨーロッパの大規模なサービスや、米国の家庭用ISPの多くがTLSに対応していなかったのです。この情報を公開することにより、それらのサービスがプライバシーを守るための一歩を踏み出すきっかけとなれば幸いです。

参考: