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
3.7k
送信ドメイン認証の現状
2019/09/07 DNS温泉6 in 下呂 で利用したスライドです。
内容的にマズい部分は改変してあります。
時間的に古いものですので、現在と相違がある部分もあります。
Nonogaki Hiroshi
February 10, 2023
Tweet
Share
More Decks by Nonogaki Hiroshi
See All by Nonogaki Hiroshi
総務担当者のOSINT
hinono
0
590
OSINTから得られる組織評価
hinono
0
130
総務担当者のOSINT
hinono
1
460
RFC 5322 に浸かろう
hinono
1
290
Other Decks in Technology
See All in Technology
データ分析力を高めるSQL研修サービス『SQL Everyone』
hikarut
1
370
PhpStorm超絶技巧40分集中講義 #phpconkagawa
yusuke
4
710
AWSの生成AI入門書を執筆しました🎉
minorun365
PRO
0
130
Google Cloudを組織(企業)で運用する時のベストプラクティス × 健康の環境分離戦略 #まるクラ勉強会
yasumuusan
0
150
The depthes of profiling Ruby - RubyKaigi 2024
osyoyu
0
100
DevRelによる信頼構築とデータ駆動で変わるエンジニア採用 / DevRel Trust Building to Data Driven Engineering Hiring
bobtani
1
120
SWC Transformerから見るTypeScript関数記述ベストプラクティス
fujiyamaorange
1
170
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
0
2k
LLM評価の落とし穴~開発者目線で気をつけるポイント~
rishigami
10
3.1k
ハードウェアを動かすTypeScriptの世界
9wick
3
1.2k
Step by Stepで学ぶ、ADT(代数的データ型)、モナドからEffect-TSまで
leveragestech
1
2.6k
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
16
6.7k
Featured
See All Featured
Infographics Made Easy
chrislema
238
18k
Fireside Chat
paigeccino
22
2.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
Gamification - CAS2011
davidbonilla
77
4.6k
Creatively Recalculating Your Daily Design Routine
revolveconf
211
11k
Testing 201, or: Great Expectations
jmmastey
30
6.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
8
3.5k
Ruby is Unlike a Banana
tanoku
96
10k
Docker and Python
trallard
35
2.7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
20
1.8k
Typedesign – Prime Four
hannesfritz
36
2.1k
How to train your dragon (web standard)
notwaldorf
75
5.2k
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