Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
送信ドメイン認証の現状
Search
Nonogaki Hiroshi
February 10, 2023
Technology
7
4.2k
送信ドメイン認証の現状
2019/09/07 DNS温泉6 in 下呂 で利用したスライドです。
内容的にマズい部分は改変してあります。
時間的に古いものですので、現在と相違がある部分もあります。
Nonogaki Hiroshi
February 10, 2023
Tweet
Share
More Decks by Nonogaki Hiroshi
See All by Nonogaki Hiroshi
メールヘッダーを見てみよう
hinono
0
300
RFC 5322 に浸かろう 続編
hinono
0
250
メールサーバ管理者のみ知る話
hinono
1
210
送信ドメイン認証の現状(2024年版) DNS温泉10
hinono
0
150
総務担当者のOSINT
hinono
0
1.4k
OSINTから得られる組織評価
hinono
0
250
総務担当者のOSINT
hinono
1
580
RFC 5322 に浸かろう
hinono
1
450
Other Decks in Technology
See All in Technology
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
2
610
使いたいMCPサーバーはWeb APIをラップして自分で作る #QiitaBash
bengo4com
0
380
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
310
Fabric + Databricks 2025.6 の最新情報ピックアップ
ryomaru0825
1
150
登壇ネタの見つけ方 / How to find talk topics
pinkumohikan
5
540
mrubyと micro-ROSが繋ぐロボットの世界
kishima
2
350
なぜ私はいま、ここにいるのか? #もがく中堅デザイナー #プロダクトデザイナー
bengo4com
0
480
より良いプロダクトの開発を目指して - 情報を中心としたプロダクト開発 #phpcon #phpcon2025
bengo4com
1
3.1k
GitHub Copilot の概要
tomokusaba
1
140
Leveraging Open-Source Tools for Creating 3D Tiles in the Urban Environment
simboss
PRO
0
110
第9回情シス転職ミートアップ_テックタッチ株式会社
forester3003
0
260
ひとり情シスなCTOがLLMと始めるオペレーション最適化 / CTO's LLM-Powered Ops
yamitzky
0
440
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
For a Future-Friendly Web
brad_frost
179
9.8k
Building an army of robots
kneath
306
45k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
710
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.3k
The Cult of Friendly URLs
andyhume
79
6.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Designing for Performance
lara
609
69k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Writing Fast Ruby
sferik
628
62k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Transcript
送信ドメイン認証 の現状 野々垣裕司 2019/09/07 DNS温泉6 in 下呂 1 KEYTEC
自己紹介 • 野々垣 裕司 (ののがき ひろし) • COBOLer (間接的にゲームソフトウェア開発に関わる) •
1996年からインターネットに携わる。IPv6は2001年から。 • 元々ISPを立ち上げたが、技術提供する方向に転換。 • SNS • Twitter xplntr • Facebook nonogaki • Tumblr https://memorandum.hn.to/ • 得意技? ルーティング(鉄道)、両声類 2019/09/07 DNS温泉6 in 下呂 2 KEYTEC
送信ドメイン認証とは • 送信されたメールが詐称されていないか • 技術 • SPF (Sender Policy Framework)
RFC 7208 • Sender ID RFC 4406, RFC 4407 • DKIM (DomainKeys Identified Mail) RFC 6376 • DMARC (Domain-based Message Authentication,Reporting, and Conformance) RFC 7489 2019/09/07 DNS温泉6 in 下呂 KEYTEC 3
SPF • 送信元のIPアドレスで判断する • MAIL FROMのホスト名、HELOのホスト名 • -all Fail 一致していないとREJECT
• ~all Softfail 信頼できないが受信する • DNS参照は最大10回まで • 設定したら必ず確認しましょう。 2019/09/07 DNS温泉6 in 下呂 KEYTEC 4 keytec.jp. 86400 IN TXT “v=spf1 include:spf.keytec.jp -all” spf.keytec.jp. 86400 IN TXT "v=spf1 ip6:2001:f58:2003:1::/126 ip6:2001:f58:2003:1::a ip4:202.124.214.192/30 ip4:202.124.214.202 ~all"
SPF py.spf を使いましょう To check an incoming mail request: %
python spf.py [-v] {ip} {sender} {helo} % python spf.py 127.0.0.1
[email protected]
mta.example.jp % spf.py 127.0.0.1 keytec.jp helo # pkg install mail/py-pyspf 2019/09/07 DNS温泉6 in 下呂 KEYTEC 5
SPF pyspfで検証 • トレンドマイクロ、エン・ジャパン、アマゾン、TKCグループ 2019/09/07 DNS温泉6 in 下呂 KEYTEC 6
% spf.py 127.0.0.1 support.trendmicro.com helo result: ('permerror', 550, 'SPF Permanent Error: No valid SPF record for included domain: _spf- prod.supportspace.com: include:_spf-prod.supportspace.com') None % spf.py 127.0.0.1 en-japan.com helo result: ('permerror', 550, 'SPF Permanent Error: Too many DNS lookups') None % spf.py 127.0.0.1 amazon.co.jp helo result: ('permerror', 550, 'SPF Permanent Error: No valid SPF record for included domain: amazon- spf.mrs.mpub.ne.jp: include:amazon-spf.mrs.mpub.ne.jp') None % spf.py 127.0.0.1 tkcnf.or.jp helo result: ('permerror', 550, 'SPF Permanent Error: No valid SPF record for included domain: ess- spf.cloud.nifty.com: include:ess-spf.cloud.nifty.com') None
Sender ID • なにそれ 2019/09/07 DNS温泉6 in 下呂 KEYTEC 7
DKIM • ヘッダーの情報が改ざんされていないか判断 • To, From, Subject, Message-id, Date 等のヘッダー電子署名をして、その情報をヘッ
ダに付加する • 公開鍵はDNSのTXTレコードに記述する • 受信側では、電子署名された内容を検証する 2019/09/07 DNS温泉6 in 下呂 KEYTEC 8
DKIM 2019/09/07 DNS温泉6 in 下呂 KEYTEC 9 201904-keytec-jp._domainkey.keytec.jp. 86400 IN
TXT "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7TwxCiKSIUIgcGr6jv3QJFDOEmVT6K3OL 8/4kHNteOps60JvS7wxeW0qDQ4wTCVgY7c6M8eJssCH0l6ynlad4o5M8wSZwybfAnfiSM0EOIhCe7ks UEm3FMZN4Yl2tqtjeZbsvJEVR6oxR9153r1fI/MDY/QONaIBiiH2PmquRpQIDAQAB" DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=keytec.jp; s=201904-keytec-jp; t=1566553811; bh=gTOsRESkMCdTkD90+Y3LDMYBkoESvv6Ropgh9zF8KZI=; h=Date:From:Reply-To:Subject:To:List-Id:List-Post:List-Owner: List-Help:List-Unsubscribe:Resent-From:Resent-To:Resent-Date; b=f7lzWU9LDT9gm3lt7z37cFjF4cdiY22yptf0skTBszFYI9SHL0KQAMnnjsrGfJ/Dh R//7rB37AX4r8ATsJG8Gy3bv4IRS/1qZyjMZjj7Z4UZqP0pu0LWoflh96tuDev5DTM GQUt3UlJ/R0KkD1j78OWneHlvSn5wUGapJS0bdvc=
DKIM • 設定間違いは少ない • 受信側のヘッダーにて直ぐに確認できるため • 鍵の生成と更新が面倒 • 複数のセレクタを使って複数の鍵が作れる •
鍵の更新をやっている人見たことない(更新を推奨されている) • 運用の問題 • メーリングリストでひっかかる → ML側で署名を削除する • 作成者署名でなくても可 • 第三者署名ができる →詐称可能 / DMARC導入できない • G suiteでは作成者署名もできるが、デフォルトは第三者署名 2019/09/07 DNS温泉6 in 下呂 KEYTEC 10
DMARC • SPFとDKIMの結果で判断する • TXTレコード v=DMARC1 記述する (Fromヘッダのメールアドレス) • p=none
なにもしない(実態) • p=quarantine 隔離 • p=reject 拒否 • DMARCレポート • 受信先からDMARC認証結果レポートを送ってくれる(受信報告書) • rua=メールアドレス にて記述する 2019/09/07 DNS温泉6 in 下呂 KEYTEC 11 _dmarc.keytec.jp. 3600 IN TXT "v=DMARC1; fo=1; p=reject; aspf=s; rua=mailto:postmaster_rua◦×△@keytec.jp"
DMARC DMARCレポート 受信先からDMARC認証結果レポートを 送ってくれる 正しく動作しているか確認できる 詐称や改ざんされたメールがどこから発信され ているかわかる 2019/09/07 DNS温泉6 in
下呂 KEYTEC 12
困ったDMARCレポート 2019/09/07 DNS温泉6 in 下呂 KEYTEC 13
困ったDMARCレポート2 2019/09/07 DNS温泉6 in 下呂 KEYTEC 14
困ったDMARCレポート2 ◦×△@verificationsacc-3.com ◦×△@service.alibaba.com ◦×△@apjcomm.com ◦×△@dmarc.ers.trendmicro.com ◦×△@raksul.com ◦×△@service.aliyun.com ◦×△@service.alibaba.com ◦×△@chinaemail.cn ◦×△@email.00001w.cn
◦×△@yahoo.com ◦×△@hayatabi.jp ◦×△@ml.mlit.go.jp ◦×△@bautger.com 2019/09/07 DNS温泉6 in 下呂 KEYTEC 15 ◦×△@koizumig.co.jp ◦×△@google.com ◦×△@biz-shopping.com ◦×△@bildy.jp ◦×△@businesscontact360.com ◦×△@jtbcom.co.jp ◦×△@mail.kfc.co.jp-all ◦×△@polaris.net.id ◦×△@redvalidator.com ◦×△@samsung.com ◦×△@microsoft.com ◦×△@ciudad.com.ar
困ったDMARCレポート3 2019/09/07 DNS温泉6 in 下呂 KEYTEC 16
送信ドメイン認証は有用なのか • 無いよりはやりましょう • 設定間違いが多い (特にG suite利用者) • DMARCまでは無理としてもDKIMはやりましょう •
他の方法でチェックした方が明快 2019/09/07 DNS温泉6 in 下呂 KEYTEC 17
MTAに仕組む • ヘッダーチェックする • 日付チェック • 古すぎるメーラー • Message-ID •
SPF • Temperror = 200 → 450 • Permerror = 200 → 550 • キャリアメールはPassしか通さない • opendmarc • RFCチェックさせる(Date,From必須なのであるか?) • Helo • FQDNしかダメ • gTLD第一レベルチェック 2019/09/07 DNS温泉6 in 下呂 KEYTEC 18
現状での結論 • DNSが正しく設定できていないので、送信ドメイン認証も正しく設定でき る訳がない。間違いに気づかない。 • SPFは比較的普及してきていると思うが、設定していないところはキャリア メール宛メールを送らないのか? • DKIM導入済みだとしても、作成者署名が無さすぎる。G suiteは第三者署名
なのでとりあえずあるだけ。 • DNSもMTAもSPFもDKIMも全て正しく設定できないと、DMARCの運用なん てとても無理。 • RFC違反メールを弾いて正しい設定しようと少しずつ啓蒙した方が良い。 2019/09/07 DNS温泉6 in 下呂 KEYTEC 19