Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SPF と DKIM だけで大丈夫? 本当は怖いドメイン名と E メール @ TwoGate Tech Meeting

SPF と DKIM だけで大丈夫? 本当は怖いドメイン名と E メール @ TwoGate Tech Meeting

Naoki Ikeguchi

December 19, 2020
Tweet

More Decks by Naoki Ikeguchi

Other Decks in Programming

Transcript

  1. SPF と DKIM だけで大丈夫?
    本当は怖いドメイン名と E メール
    Naoki Ikeguchi
    @ TwoGate Tech Meeting

    View Slide

  2. 自己紹介
    • 豊田高専 3 年(中退予定)
    • PHP / TypeScript / C# / Rust
    • Symfony / Angular / ASP.NET
    • 三度の飯より JetBrains が好き
    • きのこの山 / Vim
    • Hire me!
    • https://github.com/siketyan
    • https://twitter.com/siketyan_dev

    View Slide

  3. E メール
    SMTP
    SMTP
    IMAP
    POP
    MTA MTA
    MDA
    MUA MUA

    View Slide

  4. E メールとドメイン名
    • MTA は @ 以降のドメイン名の MX レコードから
    送信先の MTA を特定する
    • twogate.com. IN MX 300 aspmx.l.google.com. 1
    • 複数設定されている場合は Priority の高い順に使用される
    • SMTP には送信元の MTA を検証する機能がない
    [email protected] 名義でメールを送信することも可能
    • 社員を騙ることができてしまう
    [email protected]

    View Slide

  5. SPF (Sender Policy Network)
    • 送信元としてあり得
    るノードを指定する
    • include で指定し
    たドメイン名から再
    帰的に取り込む
    • ~ は softfail
    • - は fail
    • これで十分?
    twogate.com 300 IN TXT "
    v=spf1
    include:_spf.google.com
    include:amazonses.com
    include:sendgrid.net
    ~all
    "

    View Slide

  6. DKIM (Domain Keys Identified Mail)
    • 公開鍵を DNS で公開しておく
    • MTA はメールに秘密鍵で署名をつけて送る
    • 受信した MTA は DNS のレコードをもとに署名を検証
    google._domainkey.twogate.com 300 IN TXT "
    v=DKIM1;
    k=rsa;
    p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A...
    "

    View Slide

  7. Q. SFP や DKIM の検証に失敗
    したメールはどうなる?

    View Slide

  8. A. 場合による

    View Slide

  9. DMARC
    (Domain-based Message Authentication, Reporting & Conformance)
    • SPF や DKIM の検証に失敗時の動作を決める
    • 検証結果のレポートを送る
    twogate.com 300 IN TXT "
    v=DMARC1;
    p=quarantine; // none, reject
    pct=100; // ポリシーの適用割合
    rua=mailto:[email protected]
    "

    View Slide

  10. 疑問: DNS は信頼できるのか

    View Slide

  11. DNS を守る技術
    • DNSSEC (Domain Name System Security Extensions)
    • ゾーンのレコードセット (RRset) を親ゾーンが署名する
    • 問い合わせした側は親ゾーンの DS RRset で検証する
    • DNS over TLS
    • DNS over HTTPS
    • キャッシュサーバとの DNS 通信を暗号化する
    • ドメイン名による検証は DNS の信頼のもとに存在する

    View Slide

  12. まとめ
    • E メールアドレスは容易に偽装できる
    • SPF で IP アドレスによる検証をしよう
    • DKIM で電子署名による検証をしよう
    • DMARC で検証失敗時の動作を指定しよう
    • DNS は絶対的に信頼できるものではない
    この資料は Speaker Deck で閲覧できます:
    https://speakerdeck.com/siketyan

    View Slide

  13. 参考文献
    • SPF, DKIMの特徴と違い | SendGrid 公式ブログ
    https://sendgrid.kke.co.jp/blog/?p=10121
    • インターネット 10 分講座: DNSSEC – JPNIC
    https://www.nic.ad.jp/ja/newsletter/No43/0800.html
    • DNSに対する脅威とその分類~DNSセキュリティを考えるにあたって~
    https://www.nic.ad.jp/ja/materials/iw/2014/proceedings/t7/t7-morishita.pdf
    • 送信ドメイン認証(SPF / DKIM / DMARC)の仕組みと、なりすまし
    メール対策への活用法を徹底解説 - エンタープライズIT [COLUMNS]
    https://ent.iij.ad.jp/articles/172/

    View Slide

  14. 参考文献
    • Domain-based Message Authentication, Reporting, and
    Conformance (DMARC)
    https://tools.ietf.org/html/rfc7489
    • DNS security | Cloudflare UK
    https://www.cloudflare.com/en-gb/learning/dns/dns-security/
    • Sender Policy Framework (SPF) for Authorizing Use of
    Domains in Email, Version 1
    https://tools.ietf.org/html/rfc7208

    View Slide