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 ご清聴ありがとうございました