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.1k
送信ドメイン認証の現状
2019/09/07 DNS温泉6 in 下呂 で利用したスライドです。
内容的にマズい部分は改変してあります。
時間的に古いものですので、現在と相違がある部分もあります。
Nonogaki Hiroshi
February 10, 2023
Tweet
Share
More Decks by Nonogaki Hiroshi
See All by Nonogaki Hiroshi
メールサーバ管理者のみ知る話
hinono
1
120
送信ドメイン認証の現状(2024年版) DNS温泉10
hinono
0
21
総務担当者のOSINT
hinono
0
980
OSINTから得られる組織評価
hinono
0
180
総務担当者のOSINT
hinono
1
530
RFC 5322 に浸かろう
hinono
1
380
Other Decks in Technology
See All in Technology
Application Development WG Intro at AppDeveloperCon
salaboy
0
190
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
Why does continuous profiling matter to developers? #appdevelopercon
salaboy
0
190
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
The Role of Developer Relations in AI Product Success.
giftojabu1
0
120
Terraform Stacks入門 #HashiTalks
msato
0
350
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
190
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
430
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
2
350
Platform Engineering for Software Developers and Architects
syntasso
1
520
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
750
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Code Reviewing Like a Champion
maltzj
520
39k
How to Ace a Technical Interview
jacobian
276
23k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Music & Morning Musume
bryan
46
6.2k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
What's new in Ruby 2.0
geeforr
343
31k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
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