スカイスナッグ・ブログ
DKIMとは
DKIMは電子メールの認証方法で、受信サーバーは電子メールが送信され、電子メールのドメインの所有者によって承認されたかどうかをチェックすることができます。電子メールには、メッセージに追加されるヘッダーであるデジタル署名が付与され、暗号化によって保護されます。
電子メールが有効なDKIM署名で署名されている場合、最初に送信されてから受信トレイに届くまで、メッセージ本文や添付ファイルが一切変更されていないことが保証されます。つまり、受信者が有効なDKIM署名をチェックするとき、メッセージのすべての部分の完全性を確認することができます。エンドユーザーはDKIM署名を見ることはできません。
DKIMの歴史
DomainKeys Identified Mail (DKIM)標準は、2007年にAOL、グーグル、マイクロソフト、ヤフーを含む組織連合によって開発された。DKIMは公開鍵暗号を使用して、電子メールメッセージが送信中に改ざんされておらず、送信者のドメインから発信されたものであることを検証します。DKIMは、メッセージの真正性を検証するために使用できるデジタル署名を各メールメッセージに追加することでこれを実現します。
2012年には インターネット技術タスクフォース(IETF) DomainKeys Identified Mailを公式規格として発表 (RFC 6376).それ以来、Eメール・メッセージのセキュリティと完全性を確保するための手段として、Eメール・サービス・プロバイダー(ESP)やその他の組織で広く採用されている。
DKIMの仕組み
各DKIM署名付き電子メールメッセージは、以下の情報を含むDomainKeys Identified Mail-Signatureヘッダーフィールドを含む:
- 送信者のドメイン名
- メッセージの署名に使われるDKIMキーのセレクタ。 (例:"dkim "または "20170914")
- 使用される署名アルゴリズム (例:"rsa-sha256")
- 送信者の秘密鍵を使用して生成された暗号署名。
メッセージを受信すると、受信メールサーバーはDKIM-Signatureヘッダーフィールドの 情報を使用してメッセージの信頼性を検証できる。これを行うには、DNSレコード(TXTレコードと呼ばれる)から、セ レクタと送信者ドメインに対応する公開鍵を取得する必要がある。公開鍵が手に入れば、それを使ってメッセージの署名を検証し、メッ セージが改ざんされていないことを確認できる。
なぜDKIMを使うのか?
DKIMは、電子メールのなりすましに対抗するための重要なツールです。なりすましとは、正規の送信者から送信されたように見せかけて、実際には異なる送信元からの電子メールを送信するサイバー攻撃の一種です。電子メールのなりすましは、フィッシング攻撃やマルウェアの拡散など、さまざまな悪意のある目的に使用される可能性があります。
DomainKeys Identified Mailは、各メールメッセージの真正性を検証することで、なりすましメール攻撃から受信者を保護するのに役立ちます。各メッセージが改ざんされておらず、送信者のドメインから発信されたものであることを検証することで、DKIMは受信者がなりすましメールに騙されないようにすることができます。
DKIMは、なりすましメールから受信者を保護するだけでなく、組織のメール配信能力の向上にも役立ちます。これは、多くのESPがDomainKeys Identified Mailを使用して次のような検証を行っているためです。
DKIMヘッダーの構文
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=skysnag.com;
s=brisbane;
t=1217574938; bh=KWSe46TZS2+p7aR67F1kVb6nXyo4=;
h=Received:Mime-Version:Date:Message-ID:Subject:From:To:Content-Type;
i=joe@football.example.com;
b=dzdVyOfAKCdLXdJOc9G2q8LoXSlEniSbav+yuU4zGeeruW+s4U4VgFyL2ckaVzRp
SeAgiU6p4T+YGmJ3fWZA4kZBVTBQ5Vq3kR5YDw7x5fg+oZ6+V1R+nYZ4pZBXNK3+
qkjxqhw4kXlBYjYwvSpYrcYtYC1Q4E1dWotZHUZSo=
DKIM-Signatureヘッダーのフィールドは以下のように定義されている:
タグ | 説明 |
V | バージョン現在のバージョンは1です。 |
a | 使用する署名アルゴリズム。本文書ではrsa-sha256アルゴリズムのみを定義する。 |
c | 使用される署名正規化アルゴリズム。本文書では "simple "と "relaxed "の2つの署名正規化アルゴリズムを定義する。 |
d | 署名ドメイン。メッセージ送信者のドメイン。 |
s | セレクタ。署名ドメインに関連付けられた DomainKeys Identified Mail 公開鍵レコードを識別する文字列。 |
t | 署名のタイムスタンプ。署名のタイムスタンプは、署名が計算された1970年1月1日からの秒数である。 |
ベー | ボディ・ハッシュ。メッセージ本文のハッシュ。 |
h | 署名ヘッダーフィールド。署名アルゴリズムに提示されるヘッダーフィールドを識別するコロン区切りのリスト。 |
i | 署名のID。文字列を使用して、署名者がメッセージに対して持つ管理範囲を示す。(これは、たとえば企業ユーザーが、彼/彼女が雇用上の権利と責任の範囲内で行動していることを主張するために使用される)。 |
z | 署名末尾ヘッダーフィールド。コロンで区切られたリストで、シグネチャの後に現れるヘッダフィールド、つまりシグネチャの末尾ヘッダを識別する。 |
b | 署名データ。署名は、" で指定されたアルゴリズムによって生成される。a"タグを付けている。 |
x | 署名の有効期限タイムスタンプ。署名の有効期限 |
要約すると、DKIM-Signatureヘッダーは、DKIM検証のためにメッセージに 署名するために使用される。このヘッダーは、使用されているDomainKeys Identified Mailのバージョン、ハッシュを生成するために使用されるアルゴリズム、送信ドメインの正規化姿勢、公開DKIMキーのセレクタ、メッセージに署名した電子メールドメイン、署名者のアイデンティティ、ボディハッシュの値、および先行するすべての情報の暗号署名を含む。
DKIM検証
DKIMの検証は、バージョン番号がDomainKeys Identified Mailの仕様に合致していること、送信者のドメインの身元が署名で設定されたドメインに合致していること、そして "h=" タグはFromヘッダーフィールドを含む。これらがすべてチェックアウトされると、受信サーバーは "d=" そして "s=" のタグがある。
また、無料のDKIMレコードチェッカーツールを 使用して、レコードをチェックし、検証することもできます。
公開鍵は、メッセージとともに送られた暗号化されたハッシュを復号化するために使われる。その後、受信メール・サーバーはメッセージのハッシュを計算する。もし2つのハッシュが一致すれば、メッセージは許可される。
DKIMはなりすましを防ぐか
DKIMだけではなりすましを防ぐことはできません。DKIMとDMARCは 連携してなりすましを防ぎます。DomainKeys Identified Mailは、公開鍵暗号方式を使用して、秘密鍵でメッセージに署名します。この署名は、メッセージ送信者のDNSレコードから取得した公開鍵で検証されます。これにより、秘密鍵の所有者のみが、メッ セージ送信者のドメインから来たように見えるメッセージを送信できるようになる。DMARCは、DKIMとSPFのチェック結果を使用して、メッセージが配信されるべきかどうかを判断する。DKIMまたは SPFが失敗した場合、DMARCは受信メールサーバーにメッセージの拒否、隔離、または配信を指示することができます。
配信性におけるDKIMの役割
DomainKeys Identified Mailを使用する主な利点は、メールを認証できることです。メールを認証することで、そのメールが他の誰からのものでもなく、あなたからのものであることを受信者に伝えることができます。これは、メールの配信性を向上させるために重要です。
メールが認証されると、迷惑メールフォルダではなく、受信トレイに届く可能性が高くなります。なぜなら、認証はISPがメールを受信トレイに配信すべきかどうかを判断するための要素のひとつだからです。
DomainKeys Identified Mailを使用するもう一つの利点は、スパムフィルターを回避できることです。というのも、多くのスパムフィルターは、DomainKeys Identified Mailを使用して、メールがスパムかどうかを判断するからです。メールが認証されていない場合、スパムとしてマークされる可能性が高くなります。
最後に、DKIMを使用することで、ISPとのより良い評判を築くことができます。というのも、ISPはしばしばDKIMを使って送信者の評判を判断するからです。
SPF、DKIM、DMARCの関係
SPFと DMARCは 、電子メールの送信者を認証するために使用されます。DKIMは、電子メールメッセージの認証に使用されます。
SPFは、送信者のIPアドレスが、送信者のドメインへのメール送信が許可されているIPアドレスと一致するかどうかをチェックします。
DKIMは、電子メールメッセージを認証するために暗号署名を使用します。署名はメッセージのヘッダーに追加され、受信者はその署名を使用して、メッセージが送信中に変更されておらず、許可された送信者によって送信されたことを確認することができます。
DMARCは、メッセージのSPFとDomainKeys Identified Mailの認証結果をチェックし、送信者が設定したポリシーに基づいて、メッセージを配信するか、隔離するか、拒否するかを決定する。
DKIMキーの設定方法
DomainKeys Identified Mailのセットアップは、どのESPやメールサーバーを使用しても同じです。秘密鍵を安全に保管し、ドメインのDNSレコードで公開鍵を共有する必要があります。SPFと同様に、DKIMは特別な形式のDNS TXTレコードを使用します。
一般に、DKIMキーを定期的にローテーションするのがベストプラクティスとされている。DKIM標準では、四半期ごとにキーをローテーションすることを推奨しており、ローテーションの一環として古いDKIMキーを取り消すことも推奨している。これを管理する最も簡単な方法は、新しいキーを追加し、数日後にDNSレコードから古いキーを削除することです。Skysnagは、新しい公開鍵が伝播する間、古い秘密鍵をアクティブな状態に保つことで、この管理を容易にする唯一のESPの1つです。
ドメインのメールを保護する最善の方法は、SPFとDMARCを組み合わせてDomainKeys Identified Mailを使用することです。これらのプロトコルがどのように連携してドメインを保護するかについては、他のガイドをご覧ください。
結論
Skysnagの自動DKIMソリューションは、スパム、フィッシング、その他の有害な電子メールの量を削減するために、電子メールメッセージの発信元とコンテンツを検査しながら、DKIMレコードを検査および検証するのに役立ちます。これと連動して、Skysnag自動化ソフトウェアはお客様のDKIMレコードが正しく設定されていることを確認します。 今すぐSkysnagの無料トライアルに お申し込みください。