メールは、自分の手元から相手の受信箱にプッシュで送信されます。Webのようにリクエストを投げる仕組みではないので、セキュリティに関する技術も多少異なります。
この記事ではメール送受信に関連するセキュリティ技術を、各カテゴリーごとに紹介します。
なりすまし防止
メールの送信元を偽装する、いわゆる「なりすまし」を防止する技術です。基本的にDNSに設定します。
SPF (Sender Policy Framework)
SPFは、メールの送信元ドメインを認証する技術です。メールの送信元ドメインが正しいかどうかを確認して、なりすましメールを防止します。DNSでSPFレコードを設定することで実現します。
たとえば以下はSPFレコードの例です。
v=spf1 a mx ip4:192.0.2.0/24 include:_spf.example.com -all
DKIM (DomainKeys Identified Mail)
DKIMは、メールの内容が改ざんされていないことを認証する技術です。メールのヘッダーや本文に署名を付与して、受信側で検証します。DNSでDKIMレコードを設定することで実現します。
DKIMは公開鍵、非公開鍵を使って署名を行います。公開鍵はDNSに公開され、非公開鍵は送信側で保持します。送信側ではメールごとに署名を行い、受信側では公開鍵を使って検証します。
以下はDKIMレコードの例です。
_domainkey.example.jp IN TXT "v=DKIM1;k=rsa;p=MIF...QAB";
DMARC (Domain-based Message Authentication, Reporting, and Conformance)
DMARCはSPFとDKIMの結果を判断し、不正なメールの扱いを規定する技術です。SPFやDKIMの設定が正しく行われているかを確認し、不正なメールをフィルタリングします。
そして、不正なメールに対する取り扱いをDMARCレコードで設定します。以下はDMARCレコードの例です。
v=DMARC1; p=quarantine; adkim=s; aspf=s;
BIMI (Brand Indicators for Message Identification)
BIMIは企業やサービスのブランドを保証する技術です。SPF/DKIM/DMARCの導入を基本とし、さらに企業ブランドの国際的商標取得した上で、DNS上に設定を行います。
GmailなどがBIMIに対応していますが、設定されているとメールを受け取った際に、右上にブランドロゴが表示されます。これによって、メールの信頼性を高められます。
ネットワーク上のセキュリティ
メールは何も行わないと、平文でネットワーク上を流れます。そのため、不正なアクセスポイントに繋いだり、中間者攻撃を受けたりする可能性があります。そのため、ネットワーク上のセキュリティを強化する技術があります。基本はHTTPSと同じです。
TLS/SSL (Transport Layer Security/Secure Sockets Layer)
TLS/SSLは通信を暗号化するためのプロトコルです。TLS/SSLを使うことで、盗聴や改ざんを防ぐことができます。メールサーバーとメールクライアントの間でTLS/SSLを使って通信し、メールのセキュリティを向上させます。
SMTPの場合、デフォルトでは25番を使います。それに対して、587番ポートがTLSをサポートした通信に用いられます。465番ポートもSMTPS(SSL over SSL)に割り当てられていましたが、今では非推奨のポートです。この他に2525番ポートもよく聞きますが、こちらは587番の代わりに使われるようです。
MTA-STS (Mail Transfer Agent-Strict Transport Security)
MTA-STSは、メールサーバー間の通信を暗号化するための技術です。メールサーバーがMTA-STSポリシーを公開し、メールサーバー間の通信を暗号化することを要求します。これによって、中間者攻撃や盗聴を防ぐことができます。
MTA-STSはメール受信側が設定します。STARTTLSとTLS 1.2以上を強制し、かつ証明書が有効でないとメールを受信しません。これにより、メールサーバー間の経路を暗号化し、セキュリティを向上させます。
IMAP/POP over SSL
IMAP/POP over SSLは、メールクライアントとメールサーバーの間の通信を暗号化する技術です。IMAP/POP over SSLを使うことで、メールの受信を安全に行うことができます。
通常のPOP3は110番ポート、IMAPでは143番ポートを利用します。これに対して、POP3S(SSL over POP3)は995番ポート、IMAPS(SSL over IMAP)は993番ポートを使います。
STARTTLS
STARTTLSはSMTPやPOP3、IMAPなどのプロトコルを暗号化するための技術です。通信開始時に暗号化を開始するため、プレーンテキストで通信することを防ぎます。
STARTTLSを有効にしていると、25番ポートなど従来のポートでも暗号化通信が可能になります。これによって、メールのセキュリティを向上させることができます。なお、受信側と送信側の両方がSTARTTLSをサポートしている必要があります。
E2E暗号化
E2E暗号化は、メールの送信者と受信者の間での通信を暗号化する技術です。E2E暗号化を使うと、メールの内容が第三者に漏洩するのを防止できます。あらかじめ公開鍵を交換しておく必要がありますが、それさえできていれば安全なメールの送受信が可能です。
PGP/GnuPG/OpenPGP
PGP(Pretty Good Privacy)は、E2E暗号化を実現するための技術です。PGPを使うことで、メールの内容を暗号化して送信することができます。GnuPG(Gnu Privacy Guard)やOpenPGPなどがPGPのオープンソース実装として使われます。
各端末で公開鍵・秘密鍵を生成して、公開鍵を相手に送信します。相手は公開鍵を使ってメールを暗号化し、送信します。受信側は秘密鍵を使ってメールを復号します。
S/MIME (Secure/Multipurpose Internet Mail Extensions)
S/MIMEもPGPと同様にE2E暗号化を実現する技術です。S/MIMEを使うことで、メールの内容を暗号化して送信することができます。S/MIMEはX.509証明書を使って暗号化を行うのがポイントです。
つまり、S/MIMEを使うためには外部の認証機関で証明書を取得しなければなりません。証明書は有料のところもあれば、無料で取得できるところもあります。
ユーザー保護
ここでは、ユーザーが受け取る(または受け取るであろう)メールを保護する技術を紹介します。
SEG(Secure Email Gateway)
SEGはメールの受信時のセキュリティを強化する技術です。メールの受信時にスパムやウイルス判定を行い、不正なメールをフィルタリングします。SEGを使うことで、ユーザーはそもそも不正なメールを目にすることがなくなります。
たとえば以下のようなサービスがあります。
- Kaspersky Secure Mail Gateway
- FortiMail
- Clearswift SECURE Email Gateway
- Cloud Email Security | Cloudflare
アンチスパム/アンチウイルス
個別のメールクライアントにインストールできるアンチスパム、アンチウイルスソフトウェアもあります。多くの場合、ウイルス対策ソフトウェアとして提供されています。
まとめ
メールはインターネットの黎明期から使われているので、昔ながらの牧歌的なプロトコルから始まっています。そして、徐々にセキュリティやプライバシーを保護する技術が開発、導入されています。
今なおビジネスの現場ではメールが主流であり、日々多くのメールが送受信されています。Emotetのように突然脅威が現れる可能性もあります。常に最新情報にアップデートし、セキュリティを強化しましょう。
ブラストエンジン(blastengine)では、利用者・受信者が安全にメールを送受信できるようセキュリティ対策を常に行っています。ぜひご利用ください。