Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
古い技術について—SMTP現代事情つまみ食い—
Search
azumakuniyuki
February 10, 2024
Technology
11k
33
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
古い技術について—SMTP現代事情つまみ食い—
YAPC::Hiroshima 2024
azumakuniyuki
February 10, 2024
More Decks by azumakuniyuki
See All by azumakuniyuki
SMTP RELIABILITY ENGNEERING
azumakuniyuki
1
2.2k
Other Decks in Technology
See All in Technology
ALBのLCU予約とトラフィックの波によるプロダクト理解 / Understanding ALB LCU and Traffic Spikes
mito201
1
120
Snowflake でできることが増えたら、 ABAC が必要になった
kaeton
0
130
AIに任せられるFlutterコードベースを作る 〜仕様をコードで表し、ハーネスで守る〜
myohei
1
600
re:Inventで、人生は変わったのか? / growth-builders-hub-1-reinvent-2026
mhrtech
2
190
2拠点SRE活動始めてみた | sogaoh's LT @ ホンマでっかSRE勉強会 #3
sogaoh
PRO
0
230
デザインレビューは自動化できるのか?─ Flutter × Figma で UI 品質保証を考える
techiro
2
720
攻撃 3 時間 vs 復旧 10 時間。アクセスキー流出の非対称性を体感するために CTF を作った話
kazzpapa3
1
130
Agent Loopを組み込んだ アンビエントなAI機能を実現する / Ambient AI fetures with Agent Loop
nekorush14
0
120
reInvent2026stby LT00 "Change your life!"
shinichirokawano
1
520
Agent 活用環境の構築・運用のための AWS サービスのご紹介/agentcore-for-building-and-operating-agents
ren8k
1
310
[General] 개발자로 해외 기업에서 일하기
skydoves
1
250
Autonomous AI Lakehouse - Live AI Hubから始めるセキュアなAIデータ活用 -
oracle4engineer
PRO
2
180
Featured
See All Featured
How to make the Groovebox
asonas
2
2.5k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
550
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
550
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Producing Creativity
orderedlist
PRO
348
41k
Believing is Seeing
oripsolob
1
260
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Transcript
@azumakuniyuki YAPC::Hiroshima2024 | 02/10(土) 広島国際会議場さん 古い技術について SMTP 代 情 現
事 つまみ食い
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki YAPC::Hiroshima 2024 | 02/10(土)
広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 自己紹介 @azumakuniyuki Cubicroot Co. Ltd. 2 libsisimai.org nyaan.jp
ネコ紹介 3 道綱 「ニャーン」 YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki
古い技術について SMTP 代 情 現 事 つまみ食い
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 5 SMTP(RFC821) 1982/08 SMTP(RFC2821)
2001/04 SMTP(RFC5321) 2008/10 STARTTLS(RFC2487) 1999/01 SPF(RFC4408) 2006/04 DKIM(RFC4871) 2007/05 ARC(RFC8617) 2019/07 DMARC(RFC7489) 2015/03 List-Unsubscribe(RFC8058) 2017/01 BIMI(DRAFT) 2019/08 SMTPUTF8(RFC5336) 2008/09 2000 2020 1980 2010 1990 MTA-STS(RFC8461) 2018/09 TLS-RPT(RFC8460) 2018/09 RRVS(RFC7293) 2014/07 DANE(RFC6698) 2012/08 NullMX(RFC7505) 2015/06 HTTP/1.0(RFC1945) 1996/05 IDとしての側面が強くなる傾向 Sendmail(1983) Postfix(1998) Exim(1995) Courier(2000) qmail(1998) OpenSMTPD(2013)
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 6 SMTP(42) /MA(?:IL|LE)/ RFC821
Aug. 1982
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 7 SMTP(42) /MA(?:IL|LE)/ RFC821
Aug. 1982 厄 年
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 8 Envelope Header エンベロープ
ヘッダー と
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 9 Envelope (?:From|To) *
SMTPの通信における送信者と受信者 * $ telnet mx.example.jp 25⏎ * MAIL FROM: <このメールアドレス> = 送信者 * RCPT TO: <このメールアドレス> = 受信者 * /var/log/maillogに現れるメールアドレス * from=<
[email protected]
>, … * to=<
[email protected]
>, … エンベロープ
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 10 Header (?:From|To): *
メールのヘッダーに書かれているメールアドレス * 送信者 = From: “雉虎” <
[email protected]
> * 受信者 = To: “道綱” <
[email protected]
> * MUAで表示される「差出人」と「宛先」 * アプリによっては”From: 雉虎”しか出ないかも * “From:”は必須ヘッダー(RFC5322) * “To: undisclosed-recipients:;”ってのもある ヘッダー
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 11 Envelope エンベロープ In
Email Headers Return-Path: <
[email protected]
> Received: from mx (m.example.com [192.0.2.1]) with ESMTPS id 4Tx3c… for <
[email protected]
>; Thu, 2 Feb Envelope-From Envelope-To
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 12 Domain Auth. SPF,
DKIM, DMARC, ARC, BIMI
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 13 SPF, DKIM Return-Path:
<
[email protected]
> Received: from mx2 (mx.example.com [192.0.2.25]) … DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/ d=example.com; s=neko22; h=Date:From:To:Subject; Date: 2 Feb 2018 18:30:22 +0900 To: 道綱 <
[email protected]
> From: キジトラ <
[email protected]
> Subject: ニャーン 集会のお知らせですニャン SPF DKIM Sender Policy Framework DomainKeys Identified Mail
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 14 DMARC(alignment) Return-Path: <
[email protected]
>
Received: from mx2 (mx.example.com [192.0.2.25]) … DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/ d=example.com; s=neko22; h=Date:From:To:Subject; Date: 2 Feb 2018 18:30:22 +0900 To: 道綱 <
[email protected]
> From: キジトラ <
[email protected]
> Subject: ニャーン 集会のお知らせですニャン SPF DKIM DMARC SPFアライメント DKIMアライメント Domain-based Message Authentication, Reporting and Conformance
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 15 DMARC 1. DMARC認証失敗時のメール処理方法を指示
* p=(?:reject|quarantine|none) 2. レポート(*.xml.gz)が来る 3. From:ヘッダーのドメインを認証する Domain-based Message Authentication, Reporting and Conformance
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 16 DMARC=FAIL Return-Path: <
[email protected]
>
Received: from mx2 (mx.example.com [192.0.2.25]) … DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/ d=example.com; s=neko22; h=Date:From:To:Subject; Date: 2 Feb 2018 18:30:22 +0900 To: 道綱 <
[email protected]
> From: アマゾン <
[email protected]
> Subject: ネコ缶(鯛味)モニター当選のお知らせですニャン 当選したネコ缶は二条城まで受け取りに来てくださいニャン SPF DKIM DMARC SPFアライメント DKIMアライメント Domain-based Message Authentication, Reporting and Conformance
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 17 DMARC=FAIL Return-Path: <
[email protected]
>
Received: from mx2 (mx.example.com [192.0.2.25]) … DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/ d=example.com; s=neko22; h=Date:From:To:Subject; Date: 2 Feb 2018 18:30:22 +0900 To: 道綱 <
[email protected]
> From: アマゾン <
[email protected]
> Subject: ネコ缶(鯛味)モニター当選のお知らせですニャン 当選したネコ缶は二条城まで受け取りに来てくださいニャン SPF DKIM DMARC SPFアライメント DKIMアライメント Domain-based Message Authentication, Reporting and Conformance 不一致 不一致
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 18 _dmarc.amazon.com $ dig
-4 TXT _dmarc.amazon.com “v=DMARC1; p=quarantine; …”
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 19 DMARC=PASS !? Return-Path:
<
[email protected]
> Received: from mx2 (mx.example.com [192.0.2.25]) … DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/ d=example.com; s=neko22; h=Date:From:To:Subject; Date: 2 Feb 2018 18:30:22 +0900 To: 道綱 <
[email protected]
> From: 【アマゾン】
[email protected]
<
[email protected]
> Subject: ネコ缶(鯛味)モニター当選のお知らせですニャン 当選したネコ缶は二条城まで受け取りに来てくださいニャン SPF DKIM DMARC SPFアライメント DKIMアライメント Domain-based Message Authentication, Reporting and Conformance
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 20 DMARC=PASS !? Return-Path:
<
[email protected]
> Received: from mx2 (mx.example.com [192.0.2.25]) … DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/ d=example.com; s=neko22; h=Date:From:To:Subject; Date: 2 Feb 2018 18:30:22 +0900 To: 道綱 <
[email protected]
> From: 【アマゾン】
[email protected]
<
[email protected]
> Subject: ネコ缶(鯛味)モニター当選のお知らせですニャン 当選したネコ缶は二条城まで受け取りに来てくださいニャン SPF DKIM DMARC SPFアライメント DKIMアライメント Domain-based Message Authentication, Reporting and Conformance これ„
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 21 BIMI iPhoneではメールアドレスが出ない BIMIなどに関する説明ページが開く
Brand Indicators for Message Identification
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 22 BIMI $ dig
-4 TXT default._bimi.amazon.com⏎ "v=BIMI1; l=https://d3***_logo.svg; ロゴ画像 a=https://d3f***4.pem” 証明書(VMC) ↑まぁまぁ高い(〜30万円とか) EVと同じく組織の実在証明とか要る ↓商標登録されている必要あり Brand Indicators for Message Identification
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 23 Email Forwarding @EXAMPLE.COM
192.0.2.25 配信サーバー @NYAAN.JP 203.0.113.2 @GMAIL.COM example.com. IN TXT “v=spf1 ip4:192.0.2.0/24 -all” nyaan.jp. IN TXT “v=spf1 ip4:203.0113.2 -all” EHLO mx.nyaan.jp MAIL FROM: <
[email protected]
> RCPT TO: <
[email protected]
> DATA Subject: [neko-ml:0022] 集会のお知らせ From: キジトラ <
[email protected]
> To: 道綱 <
[email protected]
> DKIM-Signature: …; d=exmaple.com; … Reply-To: 近所ネコML <
[email protected]
> 集会ですニャン spf=fail dkim=fail REJECT
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 24 SRS @EXAMPLE.COM 192.0.2.25
配信サーバー @NYAAN.JP 203.0.113.2 @GMAIL.COM example.com. IN TXT “v=spf1 ip4:192.0.2.0/24 -all” nyaan.jp. IN TXT “v=spf1 ip4:203.0113.2 -all” EHLO mx.nyaan.jp MAIL FROM: <
[email protected]
> RCPT TO: <
[email protected]
> DATA Subject: [neko-ml:0022] 集会のお知らせ From: キジトラ <
[email protected]
> To: 道綱 <
[email protected]
> DKIM-Signature: …; d=example.com; … Reply-To: 近所ネコML <
[email protected]
> 集会ですニャン spf=pass dkim=fail Envelope Fromを 転送元ドメインに 書き換える Sender Rewriting Scheme
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 25 ARC @EXAMPLE.COM 192.0.2.25
配信サーバー @NYAAN.JP 203.0.113.2 @GMAIL.COM example.com. IN TXT “v=spf1 ip4:192.0.2.0/24 -all” nyaan.jp IN TXT “v=spf1 ip4:203.0113.2 -all” MAIL FROM: <
[email protected]
> RCPT TO: <
[email protected]
> DATA ARC-Authentication-Results: i=1; mx.n… spf=pass; dkim=pass; dmarc=pass; … ARC-Message-Signature: i=1; d=nyaan.jp; ARC-Seal: i=1; d=nyaan.jp; s=neko22; … DKIM-Signature: …; d=example.com; … Subject: [neko-ml:0022] 集会のお知らせ From: キジトラ <
[email protected]
> To: 道綱 <
[email protected]
> spf=fail dkim=fail arc=pass 「うちのサーバーで受け 取った段階ではSPFも DKIMもDMARCも全て PASSでしたよ」 「ARCのとこに書 いておきますので 確認してね」 Authenticated Received Chain
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 26 Domain Protection SPF,DKIM,DMARC,NullMX
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 27 SPF/Shadow MTA #
grep ‘from=<‘ /var/log/maillog⏎ …, from=<
[email protected]
>, …, to=<
[email protected]
>, … …, from=<
[email protected]
>, … …, from=<admin@www5>, … Webサーバーが勝手に 直接メールを外部に 送ってるやん!? www5.example.jp. IN TXT “v=spf1; +a:www5 …” www5用の SPFが必要 FQDNになっ てませんなぁ
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 28 SPF/NullMX $ dig
-4 TXT libsisimai.org “v=spf1 -all” $ dig -4 MX libsisimai.org 0 . メールは 送らない MXの優先度は0, ホスト名は”.”のみ メールは 受け取らない
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 29 SPF/Hard Fail (-all)
- “v=spf1 +mx +ip4:192.0.2.0/24 ~all” + “v=spf1 +mx +ip4:192.0.2.0/24 -all” DMARC導入でメールの出所は全て把握するし やれるはず
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 30 Encryption STARTTLS, MTA-STS,
TLS-PRT
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 31 STARTTLS @NYAAN.JP 203.0.113.2
@GMAIL.COM EHLO mx.nyaan.jp ⏎ … 250-STARTTLS … STARTTLS ⏎ 220 2.0.0 Ready to start TLS MAIL FROM: <
[email protected]
> ⏎ RCPT TO: <
[email protected]
> ⏎ DATA … よし 話せ 盗聴防止を 「暗号回線に切り替えてくれ」「よし」
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki mjl-/mox (Go) stalwartlabs/mail-server (Rust)
Sendmail 8.17.1 (Experimental) Postfix + mta-sts-resolver $smtp_tls_policy_maps version: STSv1 mode: enforce mx: gmail-smtp-in.l.google.com mx: *.gmail-smtp-in.l.google.com max_age: 86400 32 MTA-STS, TLS-RPT @NYAAN.JP 203.0.113.2 @GMAIL.COM _mta-sts.gmail.com. IN TXT "v=STSv1; id=20190429T010101;" GET https://mta-sts.gmail.com/.well-known/mta-sts.txt Gmail「うちは MTA-STSを使っ てるで」 MTA-STSの ポリシー確認 するか! うちとこTLS 1.2 以上でSTARTTLS が必須やねんわ STARTTLS 証明書ちゃん と見てな? STARTTLSの強制とレポート _smtp._tls.gmail.com. IN TXT "v=TLSRPTv1;rua=mailto:…” アカンかったらレ ポート送ってな? SMTP MTA Strict Transport Security SMTP TLS Reporting
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 33 Delivery Reputation, List-Unsubscribe
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 34 Relay Service ?
* 自前サーバー OR 配信サービスか * 月間配信数と費用しだい(要見積) * 月に5000万通とか1億通とか送るなら自前 * 4コアCPU+8GBメモリ x 2台ぐらいで行ける * 二者択一ではない * 宛先次第で配信サービスに投げるとか * $fallback_relay =
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 35 Reputation * 送信者ドメインとIPアドレスの評判
* Postmaster Tools, Microsoft SNDS * CISCO TALOS, SenderScore(30日分ある) * だいたい3段階か4段階(悪・低・中・高) * もちろん従来のDNSBLも気にする必要あり * SMTP的な日ごろの行い * Googleのガイドラインを各社が採用(たぶん)
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 36 List-Unsubscribe: レピュテーションが高い状態でのみでる(らしい)
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 37 Warming-Up @NYAAN.JP 203.0.113.2
@GMAIL.COM DAY1: 100通 DAY2: 120通 DAY3: 150通 DAY30: 2000通 大量配信実績のないIPアドレスとドメイン Postmaster Toolsで毎日 確認 Microsoft宛 ならSNDS Outlook Postmaster
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 38 Warming-Up @NYAAN.JP 203.0.113.2
@GMAIL.COM DAY1: 100本 DAY2: 120本 DAY3: 150本 DAY30: 2000本 商取引と考える・コツコツやる ネギ 買って! いきなり来た 初日で2000本 も!? 今日は100 本だけやな 2000本!
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 39 お好み What you
like
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 40 「SMTPは好き?」 「ほどほどでございます」
終