【ネットワークスペシャリスト試験 令和6年度 春期 午後2 問2 設問3】なりすましメール対策-DKIM

ネットワークスペシャリスト試験 令和6年度 春期 午後2 問2

【出典:ネットワークスペシャリスト試験 令和6年度 春期 午後2 問2(一部、加工あり)】

[Y社が導入しているDKIMの概要]
 DKIMは、送信側のメールサーバでメールに電子署名を付与し、受信側のメールサーバで電子署名の真正性を検証することで、送信者のドメイン認証を行う。電子署名のデータは、メールの(g)及び本文を基に生成される。
 DKIMでは、送信者のドメインのゾーン情報を管理する権威DNSサーバを利用して、電子署名の真正性の検証に使用する鍵を公開する。鍵長は、2,048ビットより大きな鍵を利用することも可能である。しかし、DNSをトランスポートプロトコルである(h)で利用する場合は、DNSメッセージの最大長が(i)バイトという制限があるので、(i)バイトに収まる鍵長として、一般に2,048ビットの鍵が利用される。
 DKIMの電子署名には、第三者認証局(以下、CAという)が発行した電子証明書を利用せずに、各サイトの管理者が生成する鍵が利用できる。
 Y社では、Y社のネットワーク運用管理者が生成した鍵などのDKIMで利用する情報(以下、DKIMレコードという)を、外部DNSサーバYにTXTレコードとして登録している。
 Y社が登録しているDKIMレコードを図5に、DKIMレコード中のタグの説明を表2に示す。


 DKIMにおける送信側は、電子署名データなどを登録したDKIM-Signatureヘッダーを作成して送信するメールに付加する処理(以下、DKIM処理という)を行う。DKIMでは、一つのドメイン中に複数のセレクターを設定することができ、セレクターごとに異なる鍵が使用できる。セレクターは、DNSサーバに登録されたDKIMレコードを識別するためのキーとして利用される。
 DKIM-Signatureヘッダー中のタグの説明を表3に示す。ここで、DKIM-Signatureヘッダーの構成図は省略する。


 Y社は、顧客宛てのサポートメールに対するDKIM処理を、メール中継サーバY1及びY2で行っている。Y社では、ドメイン名がy-sha.comでセレクター名がsel.yshaのセレクターを設定している。Y社が送信するメールのDKIM-Signatureヘッダー中のsタグには、図5中に示したセレクター名のsel.yshaが登録されている。
 Y社が導入しているDKIMによる送信ドメイン認証の流れを次に示す。
(ⅰ)サポート担当者は、送信元メールアドレスがsupport@y-sha.comにセットされたサポートメールを、顧客宛てに送信する。
(ⅱ)サポートメールは、社内メールサーバYからメール中継サーバY1又はY2を経由して、顧客のメールサーバに転送される。
(ⅲ)メール中継サーバY1又はY2は、サポートメールに付加するDKIM-Signatureヘッダー中に電子署名データなどを登録して、顧客のメールサーバに転送する。
(ⅳ)顧客のメールサーバは、DKIM-Signatureヘッダー中のdタグに登録されたドメイン名であるy-sha.comとsタグに登録されたセレクター名を基に、DNSを利用して、当該ドメインのゾーン情報を管理する外部DNSサーバYに登録されているDKIMレコードを取得する。
顧客のメールサーバは、⑤取得したDKIMレコードに登録された情報を基に、電子署名の真正性を検査する
(ⅵ)正当なメールサーバから送信されたメールなので、なりすましメールではないと判断してメールを受信する。なお、正当でないメールサーバから送信されたメールは、なりすましメールと判断して、受信したメールの隔離又は廃棄などを行う。

【ネスペR6午後2問2】徹底解説!(3) ~電子署名DKIMでメールの信頼性を担保せよ~

前回は、送信元の「IPアドレス」を検証するSPFについて学びました。しかし、SPFだけでは防げない攻撃もあります。そこで登場するのが、メールに「電子署名」というハンコを押すことで、送信者の正当性とメッセージの完全性を保証するDKIMです。

SPFが「どこから来たか(送信元サーバ)」を保証するのに対し、DKIMは「誰が送ったか、そして中身は改ざんされていないか」を保証する、いわばデジタル版の封蝋(ふうろう)のような技術です。

✅ DKIMってどうなってるの?基本をおさらい

DKIMの仕組みは、少し複雑ですが「公開鍵暗号」がベースになっています。

  • 送信側(Y社のメール中継サーバ)
    1. メールのヘッダーや本文からハッシュ値(内容の要約データ)を計算します。
    2. Y社だけが持つ「秘密鍵」で、このハッシュ値を暗号化します。これが「電子署名」です。
    3. 電子署名などの情報を「DKIMヘッダー」としてメールに付与し、送信します。
  • 受信側(顧客のメールサーバ)
    1. メールのDKIMヘッダーから、ドメイン名(y-sha.com)とセレクター(鍵を識別するための名前、例: sel.ysha)を読み取ります。
    2. ドメイン名とセレクターを使い、DNSに問い合わせて「公開鍵」を取得します。この公開鍵は、送信側の秘密鍵とペアになっています。
    3. 取得した公開鍵で電子署名を復号し、元のハッシュ値(ハッシュ値A)を取り出します。
    4. 受信したメール本体から、送信側と同じ方法でハッシュ値(ハッシュ値B)を再計算します。
    5. ハッシュ値Aとハッシュ値Bが一致すれば、「正規の送信者から送られ、途中で改ざんされていない」と証明できます。

この流れを頭に入れて、【設問3】に挑戦しましょう!


💡【設問3】DKIMの仕組みと効果を深く知る

【設問3】は、DKIMの技術的な詳細と、その効果に関する問題です。

(1) DKIMとDNSを支える技術要素

【問題】 本文中の (g) 〜 (i) に入れる適切な字句又は数値を答えよ。

【解答】 (g):ヘッダー 、(h):UDP 、(i):512

【解説】 一つずつ見ていきましょう。

  • (g)電子署名の元データ: 電子署名はメールが改ざんされていないことを保証するものです。メールは大きく分けて、宛先や送信元などの情報が書かれたヘッダー部分と、メッセージ本体である本文から構成されます。DKIMでは、この両方を保護の対象とします。
  • (h)(i)DNSのプロトコルとメッセージサイズ: DKIMは検証に必要な公開鍵をDNSを使って配布します。
    • (h)本文には「DNSをトランスポートプロトコルである (h) で利用する場合」とあります。 DNSの名前解決では、一般的に高速な通信が可能な UDP が利用されます。
    • (i)従来のUDPを使ったDNS通信では、メッセージの最大長は 512 バイトという制限がありました。 この制限があるため、DKIMで使う公開鍵の長さも、このサイズに収まるものが推奨される、という文脈ですね。

(2) DKIMレコードを読み解く!

【問題】 図5のDKIM レコードで指定されている暗号化方式のアルゴリズム名、及び表2中の (オ) に入れる適切な鍵名を答えよ。

【解答】 アルゴリズム名: RSA、(オ)鍵名: 公開鍵

【解説】 これはDKIMレコード(TXTレコード)のフォーマットに関する問題です。

  • アルゴリズム名: 図5のDKIMレコードを見てみましょう。sel.ysha.domainkey.y-sha.com. IN TXT "v=DKIM1; k=rsa; ..."
    kタグは「鍵の形式」を指定します。ここでは rsa と指定されているので、暗号化方式のアルゴリズム名は RSA です。
  • 鍵名 (オ): 表2のpタグの説明は「Base64でエンコードした (オ) のデータを指定する」となっています。このpタグに設定されるのは、受信者が電子署名を検証するために使う鍵です。公開鍵暗号方式では、誰もが使える公開鍵で検証を行います。秘密鍵は送信者(Y社)しか持っていません。したがって、(オ) に入るのは公開鍵です。

(3) なぜDKIMで「なりすましでない」と分かるのか?

【問題】 本文中の下線⑤について、電子署名の真正性の検査によって送信者がなりすまされていないことが分かる理由を、50字以内で答えよ。

【解答】 受信したメールが正規のメールサーバから送信されたものかどうかが分かるから
※公式解答は少し抽象的なので、以下のように補足するとより理解が深まります。
正規の管理者しか登録できないDNSの公開鍵で署名を検証できれば、対となる秘密鍵を持つ正規サーバから送信されたと証明できるから。

【解説】 この問題は【採点講評】で「正答率が低かった」と指摘されています。DKIMの信頼性の根幹をなす部分なので、しっかり押さえましょう。

なぜ、電子署名が本物だと確認できたら、なりすましでないと断言できるのでしょうか?

  1. 秘密鍵の所持者: 電子署名を作成できるのは、「秘密鍵」を持っているサーバだけです。この秘密鍵は、Y社の正規のメール中継サーバY1とY2にしか置かれていません。
  2. 公開鍵の信頼性: その署名を検証するための「公開鍵」は、Y社が管理するDNSサーバ (y-ns1) に登録されています。攻撃者はこのDNSサーバの情報を勝手に書き換えることはできません。
  3. 鍵のペア関係: 受信者がDNSから取得した「本物の公開鍵」で、メールに付いている電子署名を正しく検証できた、ということは、その署名が「本物の秘密鍵」によって作られたことを意味します。

このロジックにより、「このメールは、間違いなくY社の正規のサーバから送られてきたものだ」と証明できるのです。【採点講評】にある通り、「当該メールがY社のメールサーバから送信されたことが分かる」という点が核心です。


まとめ

今回は【設問3】を通して、電子署名を用いる「DKIM」の仕組みを学びました。

  • DKIMは、電子署名によって「送信者の正当性」と「メール内容の非改ざん性」を保証する。
  • 秘密鍵で署名し、DNSで公開した公開鍵で検証する、公開鍵暗号方式を利用している。
  • 秘密鍵は正規のサーバのみが保持し、公開鍵は正規のDNSサーバで公開されるため、署名を検証できれば送信元のサーバが正規であると証明できる。

SPFとDKIM、この2つの技術を組み合わせることで、メールセキュリティは格段に向上します。

さて、Y社はサポート業務をZ社に委託しようとしています。自社で完璧なセキュリティ対策をしても、委託先が絡むと新たな課題が生まれます。次回は【設問4】で、この「委託時のメール運用」という、より実践的なシナリオに挑みます!お楽しみに!