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
静的解析で実現した効率的なi18n対応の仕組みづくり
minako__ph
2
300
The Rise of LLMOps
asei
9
1.8k
Storybook との上手な向き合い方を考える
re_taro
5
1.8k
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
330
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
130
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.7k
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
A Tour of Anti-patterns for Functional Programming
guvalif
0
120
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
2
240
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
180
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
160
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
10
1.4k
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Side Projects
sachag
452
42k
Designing for Performance
lara
604
68k
A better future with KSS
kneath
238
17k
Being A Developer After 40
akosma
87
590k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
The Language of Interfaces
destraynor
154
24k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
How to train your dragon (web standard)
notwaldorf
88
5.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