メールセキュリティ
1 メールの構成要素
メールの送受信時に動作するプログラム:
・メール送信時、ユーザはMUA(メールソフト)を使ってメールを作成する
・作成したメールはMUAからメールサーバ内のMSAに送られて認証される
・認証OKの場合、メールはMTAに中継され、別のメールサーバに送り出される。
(昔は認証なしでMUAからMTAを使ってメールを送信することもできたが、現在はMSAによって認証を行う方式が主流)
・メール受信時、メールサーバのMTAがメールを受信する
・MTAは受信したメールをMDAに渡し、MDAがメールボックスにメールを格納する
・MRAはMUAからの受信要求に応じてメールボックスからメールを取り出し、MUAにメールを届ける
メール受信時のMUAとMRA間の通信:POPまたはIMAPが利用される
POP:メールボックスからメールをダウンロードするプロトコル。
標準的な仕様ではダウンロードしたメールはメールボックスからなくなり、別端末からメールを確認することができなくなる
IMAP:メールボックスからメールをダウンロードせずにメールサーバ側でメール管理を行うためのプロトコル。
標準的な仕様ではメールはメールサーバに存在するため、どの端末からメールサーバに接続してもメールを確認できるが、サーバ側に負荷がかかり、メールを保存するための十分なストレージを用意する必要がある
SMTP -AUTH:認証の仕組みを組み込んだSMTP
2 メールヘッダの構造
メールヘッダの構造:メールヘッダとメールボディで構成される。
メールには、エンベロープアドレスとヘッダアドレスの2種類のアドレスが存在する
SMTP(Simple Mail Transfer Protocol):電子メールを送信するためのプロトコルで、TCP25を利用する。現在はOP25Bの影響でサブミッションポートTCP587とSMTP-AUTHを利用して送信する方法が一般的である
エンベロープアドレス:郵便でいう封筒に記載する情報。メールの配送はエンベロープToの情報が参照され、メールが届かなかった場合には、エンベロープFromのアドレス宛にエラーメッセージが届く
ヘッダアドレス:郵便でいう便箋に書かれる情報。MUAで表示される情報はヘッダアドレスの情報。
ユーザが目にする差出人はヘッダFromの情報なので、ヘッダFromの情報が差出人だと思ってしまうが、ヘッダFromの情報は送信者が自由に設定できる情報のため、正しい情報とは限らない。エンベロープアドレスとヘッダアドレスの情報は一致させる必要はないので、攻撃者はヘッダFromの情報を変更することでなりすましを行い、フィッシングメールなどを送ってくることが多い
3 OP25B
OP25B(Outbound Port 25 Blocking):自分のネットワークから外部のネットワークへのポート番号25(SMTP)の通信を遮断することで、迷惑メールを送りにくい環境をつくる迷惑メール対策の一つ。
通常ISPなどで用意しているメールサーバは、一日に送れるメール容量を制限しており、攻撃者が送りたい膨大な量のメールを送信できないため、攻撃者は、外部ネットワークに公開されているメールサーバを使って大量の迷惑メールを送ろうと試みる。しかし、OP25Bを行なっているネットワークでは、外部ネットワークへのポート番号25の通信が遮断され、外部ネットワークのメールサーバを利用できなくなるため、自分のネットワークにあるメールサーバしか利用できなくなり、攻撃者にとって大量の迷惑メールを送りにくい環境をつくることができる
OP25Bのデメリットとその対策:自宅ネットワークから別ネットワークの会社のメールサーバを利用したい場合などは、正規のメールもOP25Bにより遮断されてします。そこで、サブミッションポートを利用し、正規の用途で外部メールサーバを利用する場合には、認証機能があるSMTPーAUTHを使って、メールサーバのポート番号587(サブミッションポート)に接続してメールを送信する。ポート番号587の通信はOP25Bの影響を受けないので、外部ネットワークのメールサーバを利用してメールを送信できる
OP25Bのメリット:スパムメールを送りにくくするだけではなく、セキュリティ対策としても機能する。例えば、マルウェアに感染してボット化したPCが勝手に外部のメールサーバと通信をしようとした場合、OP25Bによって通信を遮断できる
4 SPF
送信元ドメイン認証:メール受信時に送信元ドメインを認証する技術
SPF(Sender Policy Framework):送信元ドメイン認証技術の一つで、メールサーバのIPアドレスを利用して認証する。
送信ドメインが利用するメールサーバのIPアドレスは、DNSサーバからSPFレコードとして公開される。メール受信側は送信元ドメインのDNSサーバからSPFレコードを取得し、メールサーバのIPアドレスとSPFレコードのIPアドレスが一致するかを検証することで認証する
SPFレコードの書き方:SPFレコードは、DNSサーバにTXTレコードとして記載される。
例えば、v=spf1 +ip4:192.168.10.1 -allという記載の場合、
・v=spf1・・・SPFのバージョン1であることを表す
・+・・・認証された情報であることを表す
・ip4・・・利用するプロトコルを表す
・192.168.10.1・・・利用するIPアドレスを表す
・-all・・・192.168.10.1以外は不正なアドレスであることを表す。
また、SPFレコードで指定するIPアドレスは、ネットワークアドレスで指定することもできる。
v=spf4 +ip4:192.168.0.0/24 -allの場合、
192.168.0.0/24に含まれるIPアドレスからのメールはすべて正当なメールであることを表す。逆に、ドメイン内からメールを送らない場合は、-allのみを記載して、すべてが不正なメールであるとSPFレコードを記述することもできる
SMTP-AUTH:SPFに似た技術であり、メールの送信時に送信者の認証を行う。SPFは、メール受信時に送信元ドメインを認証するので、SMTP-AUTHと送信用ドメイン認証を両方行うことで、迷惑メール対策を強化できる。
5 DKIM
DKIM(DomainKeys Identified Mail):SPFと同じく送信元ドメイン認証の技術。SPFはメールサーバのIPアドレスによって認証していたが、DKIMはデジタル署名によって認証を行う。
公開鍵を作るためのPKIを整える必要があるため、導入のハードルは高い。
また、デジタル署名の検証は、単純にIPアドレスを検証するだけではないので、SPFと比べてサーバの負荷が高くなる
DKIMはSPFよりも信頼度が高い:
デジタル署名を使って検証するため、IPアドレスで検証を行うSPFよりも信頼度が高い。
デジタル署名はメールヘッダに格納される。デジタル署名を検証するための公開鍵は、DNSにDKIMレコードとして設定して公開する。
受信側のメールサーバはデジタル署名が付与されたメールを受信すると、送信側のDNSサーバに問い合わせを行い、DKIMレコードから公開鍵を入手してデジタル署名の検証を行う
DKIMレコード:大きく、名称、種類、本文、TTLで構成されている。本文のp= の後に公開鍵が記載される。また、DKIMレコードの有効期間はTTLによって定義され、通常数分である
6 DMARC
DMARC(Domain-based Message Authentication, Reporting, and Conformance):送信元ドメイン認証の一つで、SPFとDKIMによる送信元ドメイン認証が失敗したときに、そのメールをどう取り扱うかについて、送信側ドメインがポリシーをDNSサーバから公開する。受信側はSPFやDKIMによる送信元ドメイン認証に失敗した場合、送信側が公開しているDMARCの情報を参照する
DMARCの流れ:
・送信元ドメイン認証に失敗した場合、受信メールサーバは送信元ドメインのDNSサーバからDMARCレコードを取得して、ポリシーと呼ばれるメールの取り扱いに関する情報を取得する
・DMARCは検証失敗時のメールの取り扱い方法を定義するだけではなく、検証失敗時の集計レポートの送り先を定義していることもある
・送信側ドメインはレポートを受け取ることで、自分のドメインになりすましたメールがどれくらい発生しているのかを把握できる
DMARCのレコード例:
v=DMRC1;p=quaratine,rua=mailto:report@chifumi.co.jp;
v・・・バージョン番号
p・・・検証失敗時のメールの取り扱いポリシーを定義
non・・・特に何もせず受信メールボックスに格納する
quaratine・・・検証のために迷惑メールフォルダなどに隔離する
reject・・・メールの破棄
rua・・・DMARCの集計レポートの送り先を定義
この記事が気に入ったらサポートをしてみませんか?