KtK Solutions Support Center ケイティケイソリューションズサポートセンター

サポートサイトブログ

最近よく聞く【DMARC】なぁになぁに? #3

いつも弊社サービスをご利用いただき誠にありがとうございます。
ケイティケイソリューションズ  水谷です。

前回の送信サーバーのIPアドレスによってなりすましを検知する#2【SPF】については、いかがだったしょうか?

今回は、少し複雑ではありますがDMARCを知っていただくのに必要な電子署名を付与しなりすましやメールの改ざんを検知する【DKIM】についてご紹介させていただきます。

~今回ご案内する内容~
……………………………………………………………………………
【Topic3-1】電子署名は、電子の印鑑
……………………………………………………………………………
【Topic3-2】暗号化方式と署名
【Topic3-2-1】共通暗号化方式 (Common Key Cryptosystem)
【Topic3-2-2】公開鍵暗号方式 (Public Key Cryptography)
【Topic3-2-3】ハイブリッド暗号方式(Hybrid  Cryptosystem)
【Topic3-2-4】電子署名(デジタル署名)
……………………………………………………………………………
【Topic3-3】 DKIMの仕組み
……………………………………………………………………………
【Topic3-4】 DKIMがなりすましを検知する仕組み
……………………………………………………………………………
【Topic3-5】 DKIMが書き換えを検知する仕組み
……………………………………………………………………………

【Topic3】DKIM  電子のカギかけました!改ざん検知!

SPFと一緒に設定され現在、普及しつつある送信ドメイン認証としてDKIM(DomainKeys Identified Mailがあります。
DKIMは、比較的最近の2013年ごろインターネット標準となった規格です。

SPFは、送信サーバーのIPアドレスを登録する方法で送信サーバー側に特に対策が必要ない方式でしたが
DKIMは、電子署名を送信サーバーに用いてメールの送信元のドメインを認証する仕組みです。
DKIMはメール自体に電子署名を利用するため、送信ドメインを認証するだけはなくサーバー間においてメールが改ざんされたことを検知する事が可能となっています。

【Topic3-1】電子署名は、電子の印鑑

DKIMに付与する電子署名とは、現実世界における印鑑のようなものです。

電子署名にはいくつか種類がありますが他人に送信するデータに付与して、送信者の正当性やデータが改ざんされていないことを証明します。
※電子証明書は、この印鑑が正しい・正規な物である事を証明する印鑑証明書の様なものです。

DKIMによる送信元ドメイン認証では、電子署名をメールに添付することで実現します。
電子署名を実現するために用いられる仕組みが暗号化です。
※暗号化には共通鍵暗号方式と、公開鍵暗号方式の2種類とそれらを組み合わせたハイブリッド暗号方式あります。
DKIMとよく比べられるものにS/MIMEがあります。これは弊社サービスのSPIS-BOXで利用されている技術です。


電子署名は、以下に主に利用されます。

  • 「正規の送信者しか秘密鍵を持っていない」、「秘密鍵で暗号化したデータは公開鍵でしか復号できない」という特徴を利用して、送信者が本物であることを証明します。
  • 「秘密鍵で暗号化した内容」と「公開鍵で暗号化した内容」は、同じである特徴を生かして内容が変更されていない事を証明します。

【Topic3-2】暗号化方式と署名

【Topic3-2-1】共通暗号化方式 (Common Key Cryptosystem)

共通暗号化方式(common key cryptosystem)は、暗号化と復号に同じ鍵を利用する方式です。

仕組みとしては、

  1. 受信者が共通鍵を作成
  2. 共通鍵を送信者に何等かの方法で送付
  3. 送信者は入手した共通鍵でデータを暗号化
  4. 受信者は届いた暗号化されたデータを共通鍵で復号し元のデータを確認

と仕組みとしてはそれほど難しくありません。

ただ、暗号化も復号もできる鍵を相手に送付する事からこの鍵を不正利用者に入手されると簡単に復号され情報が入手されてしまう大きなリスクが存在します。

メリット・デメリットについては以下の通りです。

  • メリット
    • 構造がシンプルなため、処理が高速で大量のデータやり取りに優位
    • 高速なため、暗号化のレベルを複雑にする事が容易
  • デメリット
    • 鍵の受け渡しが必要で安全性を確保しなければいけない (漏えいのリスクが高い)
    • 相手の数だけ鍵を作る必要で管理が煩雑となる
    • 新たな鍵を渡すまでその鍵を利用し続けるため、総当たり攻撃をされやすい

この仕組みを利用した規格・仕様(アルゴリズム)としては以下の通りです。

  • 規格
    • DES (Data Encryption Standard)
      1977年にアメリカで採用された規格。脆弱性があるため、現在は推奨されておらず2023年以降は利用の禁止が提案されています。
    • AES (Advanced Encryption Standard)
      2000年にアメリカで標準化された規格。Wi-Fiや無線LANの暗号化やインターネット上の通信・圧縮ファイルの暗号化など、多くの製品に利用されています。
    • TSIG (Transaction Signature)
      2000年にRFC2845として登録されました。電子署名を付与することで、DNSメッセージの通信経路上での改ざんなどを防ぐ仕組みです。

【Topic3-2-2】公開鍵暗号方式 (Public Key Cryptography)

公開鍵暗号方式 (Public Key Cryptography)とは、暗号化と復号に別々のペアの鍵を作成し暗号化の鍵をだれでも入手できる状態にして、復号(暗号化も)ができる鍵を受信者が所有する方式です。

公開鍵暗号方式は、公開鍵秘密鍵のペアで構成されています。

公開鍵

  • その名の通り誰でも入手できるように公開する事が可能
  • 公開鍵を手に入れても暗号化された内容は復号する事が不可能

な鍵です。

密鍵は、

  • 受信者のみが所有・管理を行う
  • 暗号化も復号も可能で同じペアの公開鍵で暗号化された内容も復号が可能

な鍵です。

この特徴のため、相手が誰であっても利用する事ができ、鍵の受け渡しの問題もないため、安全に通信が可能です。

仕組みとしては、

  1. 受信者が秘密鍵公開鍵のペアを作成
  2. 公開鍵を送付(公開)
  3. 送信者は入手した公開鍵を利用して暗号化しデータを送付
  4. 受信者は、秘密鍵を利用して暗号化されたデータを復号しデータを確認

    という仕組みを採用しています。

    メリット・デメリットについては以下の通りです。

    • メリット
      • 公開鍵を入手されても復号はできないため、安全性が高い
      • 相手がだれでもいいため、鍵の管理が容易
      • 方式によって通信相手やデータの安全性も保障が可能
    • デメリット
      • 暗号化、復号ともに計算に時間がかかるため処理が遅い(大きなデータや頻繁な通信は不利)
      • 現在は安全性が保障されていますが数学的に解析が行われてしまった場合、損なわれる可能性を秘めています

    この仕組みを利用した規格・仕様(アルゴリズム)としては以下の通りです。

    • 規格
      • RSA (Rivest-Shamir-Adleman cryptosystem)
        1977年にロナルド・リベスト、アディ・シャミア、レオナルド・エーデルマンによって作られたものでそれぞれの名前の頭文字が規格の名前になっています。大きな2つの素数をかけた数を元に公開鍵を作成し、素数を元に秘密鍵を作成します。膨大な桁数の素因数分解はかなり難しい特徴を利用した規格です。現在は鍵の長さを主流の617桁(2048ビット)程に増やす事で通常の復号も時間がかかりますが安全性を保っています。主にインターネットのSSL証明書(httpsやSMTPs)など幅広く利用されています。
      • DSA (Digital Signature Algorithm)とECDSA(Elliptic Curve DSA)
        DSAは、1993年NISTにて規格化され以後改定を繰り返されています。離散対数問題というこちらも数学の素数に関する高度な問題を利用した規格となっています。電子文書に暗号化された特殊な電子データを付与する事で改変されていないことを証明する技術であるデジタル署名用に開発されました。2009年の改定の際に別の数学的問題を利用したECDSAも選択できるようになりました。内部で利用できるハッシュ関数としてSHA-1が当初利用されていましたが安全性に問題が発生しだしたため、SHA-2が利用されています。

    【Topic3-2-3】ハイブリッド暗号方式(Hybrid Cryptosystem)

    ハイブリッド暗号方式(Hybrid  Cryptosystem) は、セッション鍵方式とも呼ばれる方式です。

    上記の通り、暗号化の仕組みは大きく分けて2つあるのですが

    公開鍵暗号方式は、暗号化と復号に別々の鍵を利用し復号をする鍵を送信する必要がないため、危険性が低いがデータ処理(暗号化・復号)に時間がかかる。

    共通鍵暗号方式は、暗号化と復号に同じ鍵を利用するため復号ができる鍵を相手にも送るため、危険性が高いが(暗号化・復号)に時間はかからない。

    の特徴があります。この双方のメリット・デメリットを組み合わせ方式としてハイブリッド暗号方式ができました。

    仕組みとしては、

    1. 受信者が秘密鍵公開鍵のペアを作成
    2. 公開鍵を送付(公開)
    3. 送信者は共通鍵を作成します
    4. 送信者は入手した公開鍵を利用してこの共通鍵を暗号化します
    5. 送信者は送信したいデータを共通鍵を利用し暗号化します
    6. 送信者は「暗号化した共通鍵」と「暗号化したデータ」をそれぞれ送付します
    7. 受信者は、秘密鍵で共通鍵を復号します
    8. 「復号した共通鍵」を利用して「暗号化したデータ」を復号します

      という仕組みを採用しています。

      データ容量の多いファイルを共通鍵暗号化方式という処理の早い方式で行い、公開鍵暗号化方式でデータ容量の低い共通鍵を暗号化する事で安全性と高速性を保つ事ができるようになりました。

      また、共通鍵はその都度変更する事ができるのでセキュリティレベルを上げる事もできます。

      メリット・デメリットについては以下の通りです。

      • メリット
        • 公開鍵暗号化方式の安全性を保っており安全性が高い
        • データの暗号・復号の処理が共通鍵暗号化方式並みに早い
        • 共通鍵を定期的に変えることによりセキュリティレベルが高い
      • デメリット
        • 若干共通鍵暗号化方式よりも処理が遅い

      この仕組みを利用した規格・仕様(アルゴリズム)としては以下の通りです。

      • 規格
        • SSL(Secure Sockets Layer)/TLS(Transport Layer Security)
          1994年にネットエスケープコミュニケーションズ社によってSSLが開発されました。以後、3.0が開発された後、1999年にTLS1.0が定められて現在は、TLS1.3まで存在します。これは、インターネット上でデータのやり取りを行う際に通信相手の認証、通信内容の暗号化、改ざんの検出を行う事ができます。HTTPSやSMTPSなどが該当します。
        • S/MIME(Secure / Multipurpose Internet Mail Extension)
          1998年にRSA Security LLCによって開発された以後IETFによって改良が行われた規格です。これは、電子メール自体をメールソフト間で認証、通信文の完全性(改ざん防止)、発信元の否認防止(デジタル署名使用)、プライバシーとデータの機密保護(暗号化使用)を行う事ができます。この方式で認証や暗号化されたメールを受信した場合、対応しているメールソフトではリボンのマークが付き安全性を保っている事を保証しています。

      【Topic3-2-4】電子署名(デジタル署名)

      公開鍵暗号方式で作成された秘密鍵公開鍵において

      • 秘密鍵は、暗号化も復号も可能
      • 公開鍵は、暗号化のみが可能

      です。なお、それぞれ同じペアの場合、暗号化されたデータは同じ物が作成されます。

      この特徴を生かして以下の様な事を行います。

      1. 送信者がメールの一部(本文など)を抽出
      2. 秘密鍵でこの一部を暗号化
      3. 密鍵で暗号化されたファイル」を付与し相手に送付
      4. 受信者は届いたメールの一部を同じように抽出
      5. 公開鍵でこの一部を暗号化
      6. 密鍵で暗号化されたファイル」を抽出
      7. 密鍵で暗号化されたファイル」と「公開鍵で暗号化されたファイル」を比べて差が無いかを比較

      これにより送信中のメールが改ざんされていないと事が判明できます。

      【Topic3-3】 DKIMの仕組み

      DKIMは、メールに電子署名と呼ばれる印鑑をつけてメールの正当性と内容が変更されていない事を証明する方式です。
      では、どのように処理するのでしょうか。

      仕組みとしては以下の通りで

      1. 電子署名に利用する秘密鍵と対になる公開鍵を送信元ドメインのDNSサーバーにDKIM(レコード)を公開
      2. 送信サーバーには、秘密鍵を設定し送信時に付与できるように設定
      3. 送信時、秘密鍵を使って電子署名を行う (この際に、署名の付与とメール内容を暗号化(ハッシュ化)したものを付与します)
      4. 受信サーバーは、メールの送信者が正しいか、送信元ドメインのDNSサーバーに問い合わせを行う
      5. DNSから公開鍵を入手し電子署名を検証
      6. 正しいメールであればOK(pass)となり処理を行う

      という仕組みを採用しています。

      また、SPFでは、エンベロープFROMを利用して送信元ドメインを検証していましたが
      DKIMでは、ヘッダーFROMを利用して送信元ドメインを検証します。

      【Topic3-4】 DKIMがなりすましを検知する仕組み

      DKIMで利用する秘密鍵は正当な管理を行っている場合は、正しい送信サーバーにのみに存在するため

      不正な送信経路では、別の秘密鍵を利用するしか方法がありません。よって以下のようになります。

      1. 正規のメール経路の場合は、正しい鍵をつけてくるのでOK(pass)となる。
      2. 不正な送信経路の場合は、不正な鍵なのでNG(fail)となる。

      ※鍵がない場合は、(none)となる。

      【Topic3-5】 DKIMが書き換えを検知する仕組み

      DKIMは、電子メールのヘッダーおよびボディを電子証明書を使ってハッシュ(HASH)化にします。
      ※ハッシュ化とは、元のデータから一定の計算手順に従ってハッシュ値と呼ばれる規則性のない固定長の値を求め、
        その値によって元のデータを置き換えること。パスワードの保管などでよく用いられる手法。

      この値は、ヘッダー・ボディの1文字でも変更した場合、その証明書の暗号化の上限値以内の確立で
      同じになることはありません。
      よって、何らかの形で不正入手し書き換えた場合、ハッシュ化した値が変わってしまい
      書き換えを検知ができます。

      ※ハッシュ化の例
      これはテストです。 →

      E4B3C11978FCD525F6CD78A16BA5050B3B820D98E37FDBC4AA12CE52FDE5F6EDB0FE1F338589518D43F1A8E2C938F6FE06BBC50896391AED76E38FCBACE7A0E8

      コレはテストです。 →

      0009877FD0F18130375FD80A7B565A21429E44B36CA12DF5D3807C8CE37F9D6A89E77F9311CA46D594465A53B5597EECD818D701A0C36A96D6C4E53851A007E5

      詳しい仕組み

      1. 鍵(とハッシュ化した値)をつけてメールを送信
      2. 不正な送信者が何らかの経路で鍵のついたメールを入手
      3. 内容を書き換えて再送信
      4. 届いたメールの内容をハッシュ化しもともとの値と比べる。
      5. 値が異なるため、不正な行為が行われたとなる。

      ※現実に行われる行為とは若干異なります。

      最後に…

      今回は、DMARCについての  #3【DKIM(Domain Keys Identified Mail)】いかがだったしょうか?
      少し複雑ですがメッセージの書き換えの防止となりすましを防ぐ方法としては有効であるため導入が進んでいる状態です。

      次回は、これまでご説明したSPF/DKIMの弱点などを補強策定されたメールのドメイン認証 #4【DMARC(Domain-based Message Authentication,Reporting,and Conformance
      )】
      について解説します。ぜひ、ご期待ください。

      ※簡易的に説明する際に実際の動作とは厳密には異なる点や用語・図を省略・言い換えをしている点がありますのでご了承ください。
      さらに詳細をご確認いただく場合は、関連するRFCや各団体をご覧ください。

      • SPF
        • 技術仕様
          • Sender Policy Framework (SPF) for Authorizing Use of Domains in E-Mail, Version 1
            http://www.ietf.org/rfc/rfc4408.txt
      • DKIM
        • 技術仕様
          • RFC 6376 - DomainKeys Identified Mail (DKIM) Signatures
            https://tools.ietf.org/html/rfc6376
          • RFC 6377 - DKIM And Mailing Lists
            https://tools.ietf.org/html/rfc6377#ref-DKIM
        • 関連団体
          • DomainKeys Identified Mail (DKIM)
            http://www.dkim.org/
      • DMARC
        • 技術仕様
          • RFC7489: Domain-based Message Authentication, Reporting, and Conformance (DMARC)
            https://tools.ietf.org/html/rfc748
        • 関連団体
          • dmarc.org - Domain Message Authentication Reporting & Conformance
            https://dmarc.org/
      • BIMI
        • 技術仕様
          • Brand Indicators for Message Identification (BIMI)
            https://datatracker.ietf.org/doc/html/draft-brand-indicators-for-message-identification
        • 関連団体
          • BIMI Group
            https://bimigroup.org/
      • S/MIME
        • 弊社サービス
          • SPIS-BOX
            https://www.ktk-sol.co.jp/service/license/spis_box

      この記事をシェアする

      Twitter
      一覧に戻る

      サービス一覧

      クラウドセキュリティ

      • @SecuremailPlus
      • ActCLOUD DR Storage

      クラウドホスティング

      • ActCLOUD
      • Private Server

      セキュリティライセンス

      • SPIS-BOX
      • WithSecure
      • SSL証明書取得
      ISO/IEC27001
      jPRS PARTNER