PHP開発者が挑むDKIM導入: Googleガイドライン対応の実例と学び / phpcon2024
by
kazuki.uemura
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
© RAKUS Co., Ltd. PHP開発者が挑むDKIM導⼊: Googleガイドライン対応の実例と学び PHP Conference Japan 2024 株式会社ラクス 上村和輝 2024/12/22
Slide 2
Slide 2 text
⾃⼰紹介 ● 略歴 ○ 2016〜 中⼩開発会社 Webアプリ、Android ○ 2022/11〜 株式会社ラクス PHP使って機能開発 ● 趣味 ○ ドラムとギターと⽇本酒🍶 2 上村和輝
Slide 3
Slide 3 text
サービス紹介 ● 販売管理のSaaS ● PHP / PostgreSQL ● 15年続く歴史あるサービス 3 楽楽販売
Slide 4
Slide 4 text
4 本⽇のテーマ
Slide 5
Slide 5 text
5 去年、メール配信界隈で 話題になったコレ
Slide 6
Slide 6 text
ガイドラインが⾔ってること 6 Gmail宛にメール送信するときはこれを守るようにしてね ● 送信ドメイン認証を設定する ○ SPF‧DKIM‧DMARC ● ドメインの迷惑メール率を0.3%以下にする ● Gmailを送信元として設定しない ● メールの形式はRFC5322に準拠する ...などなど
Slide 7
Slide 7 text
7 メールを送るサービスは守るルールが めっちゃ増えた
Slide 8
Slide 8 text
8 しかも、2023/10に発表 2024/2から施⾏
Slide 9
Slide 9 text
9 楽楽販売も急いで対応🏃
Slide 10
Slide 10 text
話すこと ● 結局何をしたらいいんだ? ● 事業サイドにガイドラインを理解してもらうための取り組み ● OpenDKIMとPHPによる2段階でのDKIMリリース 10
Slide 11
Slide 11 text
この発表のゴール 11 メール送信システムに関わるフルスタックなエンジニアが ● メールセキュリティ周りで考えるべきことがなんとなく分かってい ること ● PJを進める上でのヒントが得られていること
Slide 12
Slide 12 text
話すこと ● 結局何をしたらいいんだ? ● 事業サイドにガイドラインを理解してもらうための取り組み ● OpenDKIMとPHPによる2段階でのDKIMリリース 12
Slide 13
Slide 13 text
(再掲)ガイドラインが⾔ってること ● 送信ドメイン認証を設定する ○ SPF‧DKIM‧DMARC ● ドメインの迷惑メール率を0.3%以下にする ● Gmailを送信元として設定しない ● メールの形式はRFC5322に準拠する ...などなど 13 Gmail宛にメール送信するときはこれを守るようにしてね
Slide 14
Slide 14 text
14 全部対応しなきゃいけない? ➡ サービス特性に依る
Slide 15
Slide 15 text
15 サービス特性 ● ⾃由にリレーショナルデータベースの構築が可能 ● データベースで管理している情報 × ノーコードツール で顧客業 務の⾃動化が可能 顧客ごとにカスタマイズ可能な販売管理サービス
Slide 16
Slide 16 text
16 サービス特性 ● 業務を補助するオプション的機能としてメール送信も可能 ● タイトル、メール本⽂、Toアドレス Fromアドレス、エンベロープFrom などがカスタマイズ可能 ● メール専⾨のサービスほどメールインフラは整っていない メール周りの特性
Slide 17
Slide 17 text
17 CS(カスタマーサクセス) ソフトウェア エンジニア(私) アドバイス インフラ エンジニア メール配信 サービス エンジニア 組織横断で要件別に対応⽅針を検討
Slide 18
Slide 18 text
楽楽販売が対応することにしたもの 18 ● 送信ドメイン認証を設定する ○ DKIM ● Gmailを送信元として設定しない ● メールの形式はRFC5322に準拠する
Slide 19
Slide 19 text
19 送信ドメイン認証を設定する(DKIM) ● 作成者署名を付与できるように ○ サービスの特性上、DKIMでのアライメントも提供したい ● リリース時に、顧客には作成者署名を設定頂くよう案内 サービスとしての対応⽅針
Slide 20
Slide 20 text
20 Gmailを送信元として設定しない ● FromアドレスにGmailアドレスは利⽤できないよう制限 ● 既にGmailアドレスを利⽤していた顧客が約300社 ○ 顧客ドメインを準備いただくようCSから各顧客へ依頼 サービスとしての対応⽅針
Slide 21
Slide 21 text
21 メールの形式はRFC5322に準拠する ● RFCに違反し得る実装がないか調査... ○ メールアドレスの制限が緩かった ● RFC違反アドレスは利⽤できないよう制限 ● 既にRFC違反アドレスを利⽤していた顧客が数社 ○ アドレスの変更をCSから各顧客へ依頼 サービスとしての対応⽅針
Slide 22
Slide 22 text
22 やることだいたい決まってきた
Slide 23
Slide 23 text
23 ここで問題が...
Slide 24
Slide 24 text
話すこと ● 結局何をしたらいいんだ? ● 事業サイドにガイドラインを理解してもらうための取り組み ● OpenDKIMとPHPによる2段階でのDKIMリリース 24
Slide 25
Slide 25 text
25 やることだいたい決まってきた
Slide 26
Slide 26 text
26 どの対応も顧客協⼒が⽋かせない ➡ CS協⼒が⽋かせない
Slide 27
Slide 27 text
27 CS ソフトウェア エンジニア(私) アドバイス CSの理解が追いついていない インフラ エンジニア メール配信 サービス エンジニア
Slide 28
Slide 28 text
28 CS ソフトウェア エンジニア(私) アドバイス CSの理解が追いついていない インフラ エンジニア メール配信 サービス エンジニア DKIM機能 作ります!
Slide 29
Slide 29 text
29 CS ソフトウェア エンジニア(私) アドバイス CSの理解が追いついていない インフラ エンジニア メール配信 サービス エンジニア DKIM機能 作ります! ??...OK! (DKIM?)
Slide 30
Slide 30 text
30 CS ソフトウェア エンジニア(私) アドバイス CSの理解が追いついていない インフラ エンジニア メール配信 サービス エンジニア DKIM機能 作ります! ??...OK! (DKIM?) Fromアドレスは独⾃ドメイン にしてもらって! 対象は300社です!
Slide 31
Slide 31 text
31 CS ソフトウェア エンジニア(私) アドバイス CSの理解が追いついていない インフラ エンジニア メール配信 サービス エンジニア DKIM機能 作ります! ??...OK! (DKIM?) やらないとどう なるの? Fromアドレスは独⾃ドメイン にしてもらって! 対象は300社です!
Slide 32
Slide 32 text
32 CS ソフトウェア エンジニア(私) アドバイス CSの理解が追いついていない インフラ エンジニア メール配信 サービス エンジニア DKIM機能 作ります! ??...OK! (DKIM?) やらないとどう なるの? なんか顧客問い合 わせ増えそう... Fromアドレスは独⾃ドメイン にしてもらって! 対象は300社です!
Slide 33
Slide 33 text
33 顧客に依頼するにはまずCSの理解が必須 何をして欲しいのか ● アプリ上での操作‧設定の⽅法 ● ただし、個別のケースだけを覚えても他のケースに対応できない ● ⼀段抽象化した理解が必要 なぜして欲しいのか ● ガイドラインのこの要件に対応したいから ● 対応しないとサービスの利⽤に影響がでるから
Slide 34
Slide 34 text
34 CSからの要望 ● 顧客から多くの問い合わせが来ることが予想される ● エンジニアにエスカレーションせずともCSで打ち返せるように なっておきたい
Slide 35
Slide 35 text
35 とはいえ、 そもそもの発端が技術的な話
Slide 36
Slide 36 text
36 CSにも伝わる表現だけで説明することが難しい 中途半端な説明では ● ⼀段抽象化した理解 ● CSが顧客問い合わせを打ち返せる状態 にはつながらない
Slide 37
Slide 37 text
CSにメールセキュリティの知識をもってもらう 37 ● DMARC、SPF、DKIM、電⼦署名の基礎知識 ● ガイドラインの要約と楽楽販売での対応 CS約50⼈に向けて講習を実施
Slide 38
Slide 38 text
メイン担当CSのキャッチアップ 38 CSから歩み寄りのおかげもあり、CS理解は進んだ エンジニアへの質問の蓄積、CS内で想定Q&Aの作成
Slide 39
Slide 39 text
39 よし、やること決まった(2023/12)
Slide 40
Slide 40 text
40 よし、やること決まった(2023/12)
Slide 41
Slide 41 text
当時の開発状況 41 2023/10 ガイドライン公布 2023/11 楽楽販売でガイドラインの調査開始 2023/12 楽楽販売でのガイドラインの要件整理完了 楽楽販売定期リリースポイント 2024/2 ガイドライン施⾏ 結構やることあ る💦 開発間に合わな い
Slide 42
Slide 42 text
当時の開発状況 42 2024/7 楽楽販売定期リリースポイント 2024/5 2024/3 OS切替、PostgreSQLのバージョンアップ対応 段階リリース この間、アプリのリリースはストップ 早くてアプリの リリースココ
Slide 43
Slide 43 text
43 ちょっと遅すぎる
Slide 44
Slide 44 text
44 より重要度が⾼いと思われる DKIMだけでも2⽉までに何とかしたい
Slide 45
Slide 45 text
話すこと ● 結局何をしたらいいんだ? ● 事業サイドにガイドラインを理解してもらうための取り組み ● OpenDKIMとPHPによる2段階でのDKIMリリース 45
Slide 46
Slide 46 text
ミドルウェアレイヤでの暫定対応 OpenDKIM 46 アプリ 署名したいドメインと鍵を登録 受信者 DKIM署名の付与‧検証ができる
Slide 47
Slide 47 text
楽楽販売におけるOpenDKIMのメリデメ 47 ⭕ 低コストで素早く第三者署名を導⼊できる ❌ 作成者署名の管理に運⽤負荷がかかる
Slide 48
Slide 48 text
第三者署名 48 楽楽販売の署名を⼀律で付与 アプリ 楽楽販売のドメインと鍵 受信者
Slide 49
Slide 49 text
作成者署名 49 ドメインごとに設定が必要 顧客問い合わせを受け付け、顧客のドメイン毎に対応 アプリ 顧客Aのドメインと鍵 受信者 顧客Bのドメインと鍵
Slide 50
Slide 50 text
暫定対応から正式対応へ 50 ● ミドルウェアレイヤの対応はあくまで暫定対応 ● 正式対応として、アプリで顧客が作成者署名を管理できる機能 を提供する
Slide 51
Slide 51 text
暫定対応から正式対応へ 51 2024/1 OpenDKIMで第三者署名付与 2024/2 ガイドライン施⾏ OpenDKIMで作成者署名付与(顧客ごとに対応) 2024/8 DKIMを含むガイドライン対応Verをリリース OpenDKIMの作成者署名情報をアプリに移⾏ 暫定対応しつつ、アプリで顧客が作成者署名を管理できる機能を開発
Slide 52
Slide 52 text
52 無事、ガイドライン対応完了🎉
Slide 53
Slide 53 text
その後 53 ● 現在もちらほらとDKIM周りの問い合わせは届いている ● CSおよびCSをアシストするエスカレーションエンジニアの⽅々に 対応いただいている 感謝です 顧客⽬線のインパクトは⼤きく...
Slide 54
Slide 54 text
54 まとめ
Slide 55
Slide 55 text
Googleガイドラインと向き合ってみて 55 ● サービス特性を考慮して、楽楽販売がとるべき対応を決めた ● メールセキュリティ周りは顧客協⼒が⽋かせない ○ DNSを調整してもらう ○ ドメインを取得してもらう ○ アプリに設定してもらう 動き出しは早めに
Slide 56
Slide 56 text
56 ● ⾮エンジニアに対応を理解してもらうために、思い切って専⾨的 な知識もがっつり学んでもらった ● 開発スケジュールと相談して暫定対応と正式対応を使い分けた Googleガイドラインと向き合ってみて
Slide 57
Slide 57 text
57 ご清聴ありがとうございました