PR

インフラエンジニアがガチでメール関連技術に挑んでみた:急 (BIMI)

carrier pigeon セキュリティ
この記事は約6分で読めます。

※ この記事は 2024/03/20 に投稿され、 2024/03/21 に内容が更新されています

実装が難しい送信メール周りのお話

前回はメール送信の比較的新しい規格 MTA-TSTMail Transfer Agent Strict Transport Security / TLS-RPTTransport Layer Security Reporting について解説しました。
メール送信で利用されている SMTP は規格が古く、 その脆弱な部分を DNS サーバでカバーして安全性を担保している状況というのはお伝えしたとおりです。

本記事では、DNS レコードだけでは設定でできない、なかなか実装が面倒な BIMI に規格に焦点を当てていきます。

BIMI (Brand Indicators for Message Identification) とは

規格

BIMI は、RFC 8676 で定義された、最近注目されているメール送信者認証の新興規格です。

この規格は、メール受信者に対して、メールの送信元が認証されたブランドであることを示すための仕組みを提供します。

具体的には、BIMI はメールの送信元が正当であることを証明するために、既存の DMARC 認証技術と統合され、 DMARC 認証が Pass された場合のみ、送信者のブロンドロゴを表示します。

送信者は正規のロゴをメールに含め、受信者にメッセージの信頼性を証明することができます。これにより、フィッシング詐欺やスプーフィング攻撃からの保護が向上します。

  • 送信者メリット
    • ロゴを表示することで自社のブランドを強化し、フィッシング詐欺などのセキュリティ脅威からの保護を向上することができる
  • 受信者メリット
    • ロゴを確認することで、信頼できるメール送信者からのメール送信であることを、より簡単に識別できるようになる

Gmail など BIMI に対応している環境では以下のようにロゴが表示されます。

BIMI 利用ありBIMI 利用なし
AppleLINEMO

どちらが信頼できるかは一目瞭然ですよね。
メールの送受信者双方にメリットがあり、今までの技術と違い、ログやヘッダを見なくてもいいという新しいならではの面白い規格です。
※ Softbank 系がクズなのは、今も昔も同じですね。
  Softbank と楽天だけは信用してはいけない

設定方法

  1. SPF または DKIM 、 および DMARC を設定する
  2. DMARC のポリシーを quarantine もしくは reject にする
  3. ロゴを SVG 形式で作成する
  4. SVG 形式のファイルを Web サーバーにアップロードする
  5. ブランドのロゴを商標登録する ※オプション
  6. 認証局で証明書 (VMC) を取得する ※オプション
  7. 証明書 (VMC) ファイルを公開サーバーにアップロードする ※オプション
  8. BIMI レコードを DNS サーバに追加する

MTA-STS も DNS サーバだけではなく、Web サーバが必要でしたが、認証局で証明書を取得する際に、ロゴが商標登録されている必要があるとなると、かなり敷居がお高いですね。
とても個人や個人事業主では対応できません。

ただし、オプションと書いているように、規格上は推奨されているものの、証明書は必須ではありません。証明書がないロゴをどう取り扱うかは、メールサービスやメールクアイアントの裁量次第となります。
Gmail の場合は、 BIMI を設定したとしても、証明書がないとロゴマークを表示してくれません。

Gmail は無理でも、他のサービスなどでは表示される可能性もあることから、設定されていないよりはいいというスタンスで設定方法のご紹介です。

DMARC 設定の見直し

DMARC は設定されているものとして、ポリシーが none で運用されている環境も多いと思うので、ポリシーを quarantine もしくは reject にしましょう。
私は DMARC: Pass にならないメールを送信するつもりはないので p=reject 指定しています。

ロゴを SVG 形式で作成する

企業であればロゴファイルを持っているでしょうが、なければ作成してください。SVG 形式が難しければ PNG 形式などで大丈夫です。注意点は以下のとおり。

  • 正方形で作成すること
    • Gmail のように丸くトリミングされて表示されることがあるので、意識して中央に小さめに作成
  • 背景に透明やグラデーションを利用するのは非推奨
  • SVG 形式のプロファイルは SVG Tiny PS で作成すること

SVG Tiny PS のプロファイルについては、Adobe Illustrator あたりであれば対応しているかもしれませんが、現状フリーウェアで対応することはできません
おすすめの方法は PNG 形式などでロゴを作成し、Convert your logo to BIMI friendly SVG を利用して、SVG 変換に変換することです。こういうサイトがあるとありがたいですね。

作成して SVG 形式に変換したロゴは Web サーバにアップロードしておきましょう。
アップロード先は MTA-STS と同じように、 HTTPS が必須となっています。
注意しなければいけないのはその点だけで、サブドメインや配置ディレクトリ、ファイル名は自由です。

後で使うので、アップロードした SVG ファイルの URL は控えておきましょう。

BIMI レコード追加

いよいよ BIMI レコードの追加です。書式は以下となります。

default._bimi.[ドメイン]  IN  TXT  v=BIMI1; l=[ロゴのURL];
パラメータ内容
vバージョン番号。現在は BIMI1 で固定
lアップロードしたロゴファイルの URL
※ 本当は a= で証明書ファイルを指定できますが、オプションのため省略しています

ドメインパート exsample.com に対し、アップロードした URL が https://www.exsample.com/bimi.svg だった場合の例は以下となります。

default._bimi.example.com  IN  TXT  v=BIMI1; l=https://www.example.com/bimi.svg;

default._bimi および BIMI1 は固定値なので、特に難しいことはないですね。
BIMI で一番難しいのは、ロゴ作成なんじゃないかと思います。
※ もちろん証明書 (VMC) 対応したければ、それが一番敷居が高いです

以上で、 BIMI の設定ができました。

まとめ

三回に渡ってメール送信周りの技術についてお届けしましたが、いかがだったでしょうか。
最近は SPF / DKIM / DMARC だけが注目されていますが、その他にも新しい規格と技術が出て来ています。

企業ですらやっていないのに、個人でそこまでやるの?というのはありますが、自分のドメインを所持しているのであれば、スパマーから守るべきだと思います。

設定が難しいものもありますが、ぜひチャレンジしてみてください。

コメント