SendGridは最近、顧客データが流出する可能性があるとして、特に顧客のプライベートDKIMキーについて顧客に連絡を取った。顧客データを保護するための対応の一環として、SendGridは可能な限り顧客に代わってDKIMキーを積極的にローテーションし、他の顧客には自発的にローテーションするよう推奨した。
この機会に、DKIMキーのローテーション、その実行方法、プロセスを自動化するメリットについてお話ししたいと思います。
DKIMキー・ローテーションの重要性
DKIMキーは、電子メールがサーバ間でルーティングされる間に改ざんされていないことを保証するデジタル署名です。DKIMが果たす役割の詳細については、DKIMの概要をご覧ください。
DKIMキーは一般に公開されているため、攻撃の標的になる可能性があります。すべての暗号化方法と同様、十分な時間とコンピュータの処理能力があれば、悪意のある行為者によって破られる可能性がある。定期的に古い鍵を新しい鍵に置き換えること(これを「鍵のローテーション」と呼ぶ) は、攻撃者が秘密鍵を漏洩させる可能性のある期間と、漏洩した鍵が有効である期間を 最小限に抑えるので、これを防御する効果的な方法である。
DKIMキーをローテートする頻度は、キーの長さに関係する。例えば、1024ビット長のキーは2048ビット長のキーよりも頻繁にローテートすべきである。(現在、2048 ビットのキーが実用的な最強の鍵長であると考えられている)。Messaging, Malware and Mobile Anti-Abuse Working Group (M3AAWG)は、DKIM Key Rotation Best Common Practicesでガイダンスを発表し、キーは6ヶ月ごとにローテートするよう推奨していキー
DKIMキーのローテーション作業
DKIMキーをローテーションするためには、特定の一連のアクションが発生する必要があります。
- 新しいDKIMキーを作成しなければならない。この結果、秘密鍵と公開鍵のペアができ、”DKIMキー “と呼ばれる。
- DKIMキーのプライベート部分は、DKIM署名を作成するソフトウェア(通常は電子メールを送信する電子メールサーバー)にインストールする必要があります。
- DKIMキーの公開部分は、署名が作成されるドメインのDNSで公開されなければなりません。
- 公開部分が公開されると、電子メールを送信する電子メールサーバーは、新しいDKIMキーを使用してDKIM署名を作成するために、インストールされた秘密鍵を使用し始めることができます。
上記のアクションを実行するには、さまざまな方法があります。例えば、あなたのインターネットドメインに代わって電子メールを送信するために雇われたベンダーによってDKIMキーが作成された場合、ベンダーはあなたのドメインのDNSにDKIMキーのパブリック部分を配置するように要求しなければなりません。逆に、あなたがDKIMキーを作成した場合、ベンダーがDKIM署名を作成するように電子メールソフトウェアを設定できるように、DKIMキーのプライベート部分をベンダーに提供しなければなりません。
DKIMキーの作成とローテーションが必要な場合に必要となる、潜在的な往 復作業を最小化するために、いくつかの方法が出現している。これらの異なる方法は、DNSの能力を利用し、DKIM鍵ローテーションの技術的 負担をDKIM署名に責任を持つ技術的運用者の近くに置くものである。
DKIMキーのローテーション方法
サブドメイン委任
サブドメイン委任は、ほとんどのドメイン所有者にとって最も簡単なキーローテーションの方法である。ドメイン所有者は、DKIMインフラストラクチャを管理する代わりに、ドメイン所有者に代わって電子メールの送信を担当するベンダーに専用のサブドメインを割り当てる(または管理を委任する)。このようにして、ドメイン所有者は、鍵のローテーションを含むDKIM管理の仕組みのすべてをベンダーに任せる。ドメイン所有者は、ベンダーがドメイン所有者に代わってメールを送信できなくなった場合に、委任されたサブドメインを取り戻す能力を常に持っている。
CNAME
CNAMEベースの委任とは、ドメイン所有者がCNAMEを使用して、ベンダが 管理するDKIMデータを指すことである。この方法では、ドメイン所有者はDKIM署名を作成するベンダを認可することができ、ベンダはDKIM署名の仕組みに責任を持つ。ドメイン所有者が認可を削除する必要がある場合、CNAMEを削除することで、ベンダとドメイン所有者の接続を効果的に切断することができる。
CNAMEを使用することの不利な点は、ベンダーがDKIM鍵をローテーションする前に、 複数のCNAMEベースのDKIM鍵を設定しなければならないことである。しかし、一旦設定すれば、ベンダはドメイン所有者と連絡を取ったり 同期を取ったりすることなく鍵をローテーションできる。
手動で
DKIMキーは、手動で新しいDKIMキーを作成し、DKIMキーのプライベート部分をメールサーバーに設定し、ドメイン所有者のDNSでDKIMキーのパブリック部分を公開することでローテーションできます。メールサーバー、DKIMキー、DNSエントリーの同期には、チームやシステム間で多くの調整が必要なため、手動設定は最後の手段となります。
DKIMキーの自動ローテーションの利点
手動でDKIMキーをローテーションするには、ツールを使って新しいキーを生成し、大きな文字列をドメイン管理ソフトウェアにコピー&ペーストする必要があるため、エラーが発生する可能性がある。このDKIMキーのローテーション方法は、特にセキュリティインシデントによりDKIMキーを緊急にローテーションする必要がある場合、調整が難しくなる傾向があるため、理想的とは言えません。
メールベンダーによるキーの自動ローテーションは、このようなエラーの追跡、トラブルシューティング、修正の調整に費やす時間を削減します。SendGridの例が示すように、SendGridの顧客は以前からSendGridによるDKIMキーの管理を有効にしていたため、SendGridはDKIMキーのローテーションを即座に行い、潜在的な侵害に迅速に対処することができました。もしSendGridがこの機能に投資していなかったら、SendGridとその顧客は、おそらく営業時間外や休日を利用して、セキュリティに敏感な状況で変更を行わなければならなかっただろう。キーの手動ローテーションが1つの役割に委ねられている場合、レスポンスタイムはさらに長くなり、そのポジションの入れ替わりがあれば、再対応が必要になる。
私たちがお手伝いします
Brandkeeperでは、メールセキュリティの専門家チームによるDMARCの導入から運用サポート及びコンサルテーション行っています。一旦はDMARCの導入をやってみたが運用を断念したお客様、または、導入時点でいくつものハードルであきらめた企業様のサポートも行っています。
お気軽にご連絡ください