メールのなりすましは、悪意のある者がスパムやフィッシングメールを正当なものに見せかけるための手法の一つです。要するに、メールのなりすましは、銀行やお気に入りの製品、上司などの信頼できるソースからのメールのように見せかけるために、悪意のあるエージェントが使用します。

メールプロトコルは非常に長い間存在しています。シンプルメール転送プロトコル(SMTP)は、メール通信の基盤となる主要なプロトコルで、1981年に登場しました。インターネットはかなり変わりましたが、残念ながらメールはあまり変わっていません。メールが作成された当時は、今日のユーザーのほんの一部しかいませんでした。その頃は、偽のメールを送ることにあまり害はありませんでした。しかし今では、メールはほぼすべてのデジタルサービスで使用されており、技術も徐々に追いついてきています。

まず、メールの仕組みについて話しましょう。これはメールの仕組みを極端に単純化したものですが、セキュアなプロセスを説明するのに役立ちます。大まかに言うと、誰かがメールを送信すると、次のようになります:

  1. Alice (hi@alice.com)がBob (hi@bob.com)にメールを書きます。
  2. Aliceはそのメールを配信のために自分のメールサーバーに送信します。
  3. AliceのメールサーバーはBobのメールサーバーを見つけて、メールを転送します。
  4. Bobが自分のメールサーバーに接続すると、新しいメッセージを要求し、Bobの受信トレイに新しいメールが表示されます。

メールの流れの図

簡単ですね!しかし、メールを送信する過程で多くのことが間違う可能性があります。詳しく見ていきましょう!

送信者ポリシーフレームワーク(SPF)

そう、インターネットは恐ろしいことがいっぱいです。悪意のある人物、ChuckがBobを騙してHarvestのパスワードを送らせようとしていると想像してみてください。

悪意のあるメールの例

その通り、通常のSMTPでは、メールを送信している人物が本当にその人物であるかどうかはわかりません。

この種の攻撃からメールを保護するために、送信者ポリシーフレームワーク(SPF)を使用できます。メールサーバーが新しいメールを受信すると、送信元ドメインに対して、送信者がその名義でメールを送信することを許可されているかどうかを確認します。これがSPFの役割です。Bobのメールサーバーがalice.comから来たとされるメールを受信すると、最初にalice.comに対して、実際の送信者であるchuck.comがその名義で何かを送信できるかどうかを尋ねます。

DNSリクエストの図

上の画像では、BobのサーバーがDNSリクエストを実行している様子がわかります。この技術と、このブログ記事の他のすべての技術は、このプロトコルに基づいています。Bobのメールサーバーがalice.comに情報を求めるということは、特定のレコードを探すためにalice.comにDNSリクエストを送信することを意味します。

もしalice.comchuck.comを許可された送信者としてリストしていなければ、Bobのメールサーバーはスパムとしてそのメールにタグを付ける可能性があります。そう、可能性があるということです。Bobのサーバーが最終的な判断を下すので、最終決定を下す前に他のチェックも行われます。

ドメインキー識別メール(DKIM)

これでメールは安全になったと思いますか?実は...完全ではありません。Chuckが自分のサーバーから偽のメールを送るのを防ぎましたが、もし彼が転送中のメールを傍受する方法を見つけたらどうなるでしょう?Aliceのメッセージの内容を変更できたら?SPFは送信者が彼女の名義でメールを送信することを許可されているかどうかを確認するだけで、受信者に届くまでの過程で何が起こるかについては何も言っていません。

デジタル署名の図

これは署名を使用するのに最適なシナリオです。デジタルの世界では、署名は配信される内容が変更されていないことを保証し、確認するためのメカニズムです。AliceがBobにメールを送信すると、Aliceのメールサーバーはメールの内容に署名を追加します。もし誰かがそのメッセージのビットを一つでも変更したら、Bobはそれを知ることができます。さらに、Aliceのメールサーバーだけがこれらの署名を作成する方法を知っています。他の誰も受信者に気づかれずにそれを行うことはできません。

これがまさにドメインキー識別メール(DKIM)の役割です。実際には、DKIMの設定はAliceのメールサーバーで始まります:

  • 通常、送信されたメールの「認証を開始する」方法があります。これは通常、DKIMを有効にすることを意味します。
  • メールサーバーは、DNSにいくつかの暗号的な言葉を公開するように求めます。それがあなたの署名の公開鍵です。平たく言えば、公開鍵は他の人が受け取った署名が有効であり、メッセージが転送中に変更されていないことを確認することを可能にします。サーバーは秘密鍵を保持し、それだけが署名を作成できる唯一の存在です。
  • 公開鍵が公開されると、メールサーバーは新しいメールごとに署名を送信し始めます。

署名はどのように役立つのでしょうか?Bobのメールサーバーが署名付きのメールを受信すると、その署名が正しいかどうかを検証できます。そのためには、サーバーは公開鍵とメールの内容を取得する必要があります。この2つだけで、サーバーは不要な変更があったかどうかを検出できます。

ドメインベースのメッセージ認証、報告、適合(DMARC)

これでBobはメールが信頼できるソースから来ていることをかなり確信できるようになったと思いますよね?そうですよね?... もしそれがそんなに簡単なら...悪役のChuckは、メールの内容を変更し、DKIM署名を取り除くことができます。誰がそれを必要とするのでしょうか?否定的なチェックよりも中立的なチェックがある方が良いです。

しかし、すべてが失われたわけではありません。Bobのメールサーバーに設定されたセキュリティ対策を伝え、どれかが失敗した場合に何をすべきかを定義するポリシーが必要です。最後の略語に行きましょう:ドメインベースのメッセージ認証、報告、適合 (DMARC)

DMARCを使用すると、Bobのメールサーバーは受信したメールに対して何をすべきかを定義する公開情報ポイントを持ちます。具体的には、DMARCレコードは次のことを説明します:

  • 受信メールにSPFまたはDKIMが適用されているかどうか
  • 監視目的のための報告用メールアドレス
  • チェックが失敗した場合に何をすべきかを決定するポリシー。3つの異なるポリシーがあります:
    • ポリシーなし - DMARCチェックの結果は無視されます。ただし、メールサーバーはさらなる分析のためにレポートを送信します。これは、DMARCを設定している間に、期待通りに機能しているかどうかを確認するためによく使用されます。
    • 隔離 - DMARCチェックに失敗したメールは受信者のスパムフォルダーに送信されます。
    • 拒否 - DMARCチェックに失敗したメールは受信者に届きません。

DMARCは私たちのツールボックスの最後のピースであり、非準拠のメールを破棄するようにメールサーバーに具体的に指示する唯一のものです。

結論

Harvestがこれらの技術を使用してメールを保護していることをお知らせできることを嬉しく思います。私たちは、今の状態に至るまで数ヶ月間学び、データを収集しました。他の誰かが私たちを偽装し、Harvestの評判を損なうことを非常に難しくしました。これは、私たちの顧客に良い影響を与える素晴らしい成果です。