見出し画像

メールセキュリティ

1 メールの構成要素

メールの送受信時に動作するプログラム
・メール送信時、ユーザはMUA(メールソフト)を使ってメールを作成する
・作成したメールはMUAからメールサーバ内のMSAに送られて認証される
・認証OKの場合、メールはMTAに中継され、別のメールサーバに送り出される。
(昔は認証なしでMUAからMTAを使ってメールを送信することもできたが、現在はMSAによって認証を行う方式が主流)
・メール受信時、メールサーバのMTAがメールを受信する
・MTAは受信したメールをMDAに渡し、MDAがメールボックスにメールを格納する
MRAMUAからの受信要求に応じてメールボックスからメールを取り出し、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の集計レポートの送り先を定義


この記事が気に入ったらサポートをしてみませんか?