インターネットで日常的に使われるメールですが、残念ながら「なりすましメール」や「フィッシング詐欺メール」などの迷惑メールも多く存在します。DKIM(ディーキムと読みます)は、こうした悪意のあるメールから私たちを守るための重要な技術の一つです。
DKIMは「DomainKeys Identified Mail」の略で、「送信ドメイン認証」と呼ばれる技術の一つです。簡単に言うと、メールを送った人が本当にその人(ドメイン)なのか、そしてメールの内容が途中で書き換えられていないかを確認するための「電子署名」の仕組みです。
この技術を使うことで、受信者は受け取ったメールが信頼できる送信元から送られたものか、途中で改ざんされていないかを確認できるようになります。これにより、迷惑メールや詐欺メールに騙されるリスクを減らすことができます。
DKIMは、同じく送信ドメイン認証技術であるSPF(Sender Policy Framework)やDMARC(Domain-based Message Authentication, Reporting, and Conformance)と組み合わせて使われることが多く、より強力なメールセキュリティ対策を実現します。特に2024年2月以降、Gmailなど大手メールサービスでは、一定数以上のメールを送信する送信者に対してSPFとDKIMの設定、そしてDMARCの導入を義務付ける動きがあり、その重要性はますます高まっています。
DKIMの仕組み:どうやってメールの正当性を確認するの?
DKIMは「公開鍵暗号方式」という技術を使って、メールの正当性を証明します。少し難しく聞こえるかもしれませんが、流れは以下のようになっています。
- 送信者側の準備(鍵の作成と設定)
- まず、メールを送信する人(ドメイン管理者)は、「秘密鍵」と「公開鍵」というペアの鍵を作成します。
- 秘密鍵は、送信者だけが知っている鍵で、メールサーバーに大切に保管されます。
- 公開鍵は、誰でも見られるように、ドメインのDNSサーバーという場所に「TXTレコード」として登録・公開されます。
- メール送信(電子署名の付与)
- 送信者がメールを送る際、メールサーバーは「秘密鍵」を使ってメールの内容(ヘッダーや本文の一部)から計算した特別なデータ(これが「電子署名」です)を作成します。
- この電子署名は、「DKIM-Signature」というヘッダー情報としてメールに追加されます。このヘッダーには、署名に使ったドメインや鍵の情報(セレクタ)も含まれます。
- メール受信と検証
- メールを受け取った受信側のメールサーバーは、メールヘッダーにある「DKIM-Signature」を見つけます。
- 署名に使われたドメインとセレクタの情報をもとに、送信者のDNSサーバーに問い合わせて「公開鍵」を取得します。
- 取得した「公開鍵」を使って、受信したメールの電子署名を検証します。
- 同時に、受信側でも送信者と同じようにメールの内容から署名を計算します。
- 受信側で計算した署名と、公開鍵で復号した送信者の署名が一致すれば、「認証成功(DKIM Pass)」となり、そのメールは正当な送信者から送られ、途中で改ざんされていないことが証明されます。
- もし署名が一致しない、または検証できない場合は、「認証失敗(DKIM Fail)」となり、なりすましや改ざんの疑いがあると判断されます。
このように、秘密鍵を持っている送信者しか正しい電子署名を作れないこと、そしてその署名を公開鍵で検証することで、メールの送信元が本物であることと、内容が改ざんされていないことを確認できるのがDKIMの仕組みです。
DKIMの主な構成要素
DKIMを理解する上で重要な要素をいくつか紹介します。
要素 | 説明 |
---|---|
秘密鍵 (Private Key) | 送信者だけが保持する鍵。メールに電子署名を作成するために使用されます。外部には絶対に公開しません。 |
公開鍵 (Public Key) | 秘密鍵とペアになる鍵。DNSサーバーにTXTレコードとして公開され、受信者が電子署名を検証するために使用します。 |
DKIM-Signature ヘッダー | メールに追加されるヘッダー情報。電子署名そのものや、検証に必要な情報(使用したドメイン、セレクタ、署名アルゴリズムなど)が含まれます。 |
セレクタ (Selector) | DKIM-Signatureヘッダーに含まれる情報で、DNSサーバーに登録されている複数の公開鍵の中から、どの公開鍵を使えば良いかを特定するための目印です。送信者は鍵ペアを作成する際にセレクタを決定します。 |
ドメイン (Domain) | DKIM-Signatureヘッダーに含まれる情報で、署名を行った送信者のドメイン名です。受信者はこのドメイン名のDNSサーバーに公開鍵を問い合わせます。 |
DNSレコード (TXTレコード) | ドメインのDNSサーバーに登録される情報の一種。DKIMでは、公開鍵をTXTレコードとして登録します。受信者はこのレコードを参照して公開鍵を取得します。 |
DKIM署名の種類
DKIM署名には主に2つの種類があります。
- 作成者署名 (Author Signature): メール作成者(通常はFromヘッダーに表示されるドメイン)のドメインで署名する方法です。自社のドメインで署名するため、最も信頼性が高い方法とされ、DMARC認証を成功させるためにも推奨されます。設定には自社DNSサーバーへのレコード登録が必要です。
- 第三者署名 (Third-Party Signature): メール作成者のドメインとは異なるドメイン(例えば、利用しているメール配信サービスのドメインなど)で署名する方法です。メール配信サービス側で設定を行ってくれる場合が多く、導入は比較的簡単ですが、Fromヘッダーのドメインと署名ドメインが一致しないため、DMARCのアライメント(整合性チェック)に失敗する可能性があります。
DKIMのメリット
DKIMを導入することには、以下のようなメリットがあります。
- なりすましメールの防止: 送信元ドメインが偽装されたメールを検知しやすくなります。
- メール内容の改ざん検知: 送信途中でメールの内容が不正に書き換えられていないかを確認できます。SPFではメール内容の改ざんまでは検知できませんが、DKIMはこの点で優れています。
- メールの到達率向上: DKIM認証に成功することで、受信側のメールサーバー(GmailやOutlookなど)からの信頼度が上がり、迷惑メールフォルダに入れられたり、受信拒否されたりする可能性が低くなります。
- 送信者(ドメイン)の信頼性向上: 正当な送信者であることを証明できるため、自社ドメインのブランドイメージや信頼性を高めることができます。
DKIMの設定方法(概要)
DKIMの設定は、専門的な知識が必要になる場合がありますが、基本的な流れは以下の通りです。利用しているメールサーバーやサービスによって具体的な手順は異なります。
- 鍵ペア(秘密鍵と公開鍵)の生成: メールサーバーソフトウェアやオンラインツールを使って、DKIM用の鍵ペアを作成します。このとき、セレクタも決定します。
- メールサーバーの設定: 生成した秘密鍵をメールサーバーに設定し、送信メールにDKIM署名を付与できるようにします。
- DNSへの公開鍵の登録: 生成した公開鍵を、指定された形式(例:
セレクタ名._domainkey.あなたのドメイン名
)のTXTレコードとして、あなたのドメインのDNSサーバーに登録します。 - 設定の確認: 設定が正しく行われたか、DKIM検証ツールを使ったり、テストメールを送ってヘッダー情報を確認したりします。Gmailなどでメールを開き、「メッセージのソースを表示」などの機能でヘッダーを確認し、「dkim=pass」となっていれば成功です。
DKIMの設定や運用は、特に自社でサーバーを管理している場合、手間や専門知識が必要になることがあります。メール配信サービスやホスティングサービスを利用している場合は、サービス提供者がDKIM設定をサポートしているか確認し、手順に従って設定を進めるのが一般的です。
まとめ
DKIMは、電子署名を使ってメール送信者のなりすましやメール内容の改ざんを防ぐための重要な送信ドメイン認証技術です。SPFやDMARCと組み合わせることで、メールのセキュリティを大幅に向上させることができます。
特にビジネスでメールを利用する場合や、大量のメールを送信する場合には、DKIMの設定は不可欠と言えるでしょう。設定は少し複雑かもしれませんが、メールの信頼性を高め、受信者に安心してメールを届けるために、ぜひ導入を検討してみてください。