คู่มือนี้มีไว้เพื่ออะไร?
- เป็นคู่มือที่จำเป็นสำหรับผู้ที่พัฒนา สนับสนุน และดูแลรักษาแอปพลิเคชันที่ส่งอีเมล
- ช่วยให้อีเมลไปถึงกล่องจดหมายเข้าของผู้รับ แทนที่จะไปอยู่ในโฟลเดอร์สแปม
- อธิบายวิธีปกป้องโดเมนจากอาชญากรไซเบอร์และผู้ส่งสแปม
ทำไมควรเลือกคู่มือนี้?
- อธิบาย SPF, DKIM และ DMARC ให้เข้าใจง่ายด้วยคำอธิบายและตัวอย่างที่เรียบง่ายชัดเจน
- โฮสต์อยู่บน GitHub และเข้าถึงข้อมูลได้อย่างรวดเร็วโดยผสานเข้ากับสภาพแวดล้อมการพัฒนา
- เป็นเอกสารที่ชุมชนสามารถอัปเดตและดูแลรักษาได้อย่างต่อเนื่อง
คู่มือนี้ไม่ได้มีไว้เพื่ออะไร?
- ไม่ครอบคลุมหัวข้อขั้นสูง เช่น การตั้งค่าเซิร์ฟเวอร์อีเมล การเข้ารหัส หรือ secure email gateway
อธิบาย SPF, DKIM, DMARC แบบสั้น ๆ
SPF (Sender Policy Framework)
- SPF: เหมือนรายชื่อเพื่อนที่ได้รับอนุญาตให้ส่งอีเมลได้
- SPF record: เก็บรายชื่อเพื่อนนี้ไว้ใน DNS TXT record
- ตัวอย่าง:
v=spf1 ip4:123.123.123.123 ~all
DKIM (DomainKeys Identified Mail)
- DKIM: เหมือนการใส่โน้ตลับไว้ภายในอีเมล
- DKIM record: เก็บ public key ไว้ใน DNS TXT record เพื่อให้ผู้รับตรวจสอบความถูกต้องของอีเมลได้
- ตัวอย่าง:
v=DKIM1; k=rsa; p=NICfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBolTXCqbxwoRBffyg2efs+Dtlc+CjxKz9grZGBaISRvN7EOZNoGDTyjbDIG8CnEK479niIL4rPAVriT54MhUZfC5UU4OFXTvOW8FWzk6++a0JzYu+FAwYnOQE9R8npKNOl2iDK/kheneVcD4IKCK7IhuWf8w4lnR6QEW3hpTsawIDAQ0B
DMARC (Domain-based Message Authentication, Reporting & Conformance)
- DMARC: เหมือนการนำกฎของ SPF และ DKIM มารวมกันเป็นสมุดกฎเล่มใหญ่
- DMARC record: เก็บสมุดกฎนี้ไว้ใน DNS TXT record เพื่อกำหนดว่าผู้รับจะจัดการอีเมลอย่างไร
- ตัวอย่าง:
v=DMARC1; p=none; rua=mailto:postmaster@example.com
ตัวอย่างการใช้งาน SPF, DKIM, DMARC ในโลกจริง
- แอปมือถือ: เมื่อแอปฟิตเนสหรือแอปธนาคารส่งอีเมล ก็ใช้ SPF, DKIM, DMARC เพื่อให้อีเมลไปถึงกล่องจดหมายเข้าแทนที่จะเป็นโฟลเดอร์สแปม
- ผู้ให้บริการอีเมล: Gmail, Yahoo, Outlook และรายอื่น ๆ ใช้ SPF, DKIM, DMARC เพื่อยืนยันตัวตนอีเมลขาเข้า
- แพลตฟอร์มโซเชียลมีเดีย: LinkedIn, Facebook, Twitter และรายอื่น ๆ ใช้ SPF, DKIM, DMARC เมื่อส่งอีเมลแจ้งเตือน
- องค์กรธุรกิจ: เมื่อส่งอีเมลโปรโมชัน จะใช้ SPF, DKIM, DMARC เพื่อไม่ให้อีเมลถูกมองว่าเป็นสแปม และป้องกันไม่ให้โดเมนถูกใช้สำหรับ email spoofing
- หน่วยงานภาครัฐ: เมื่อส่งการแจ้งเตือนไปยังประชาชน จะใช้ SPF, DKIM, DMARC เพื่อป้องกันการโจมตีแบบ phishing
แล้วตอนนี้ควรทำอะไรต่อ?
- ระบุที่อยู่อีเมลและโดเมน: ตรวจสอบว่าแอปของคุณใช้ที่อยู่อีเมลและโดเมนใดบ้าง
- ตรวจสอบสถานะปัจจุบัน: ตรวจดูว่ามี SPF, DKIM, DMARC record อยู่แล้วหรือไม่ และตั้งค่าไว้อย่างถูกต้องหรือไม่
- สิทธิ์การเข้าถึงโดเมน: ตรวจสอบว่าคุณมีสิทธิ์แก้ไข DNS record หรือไม่
- ติดตาม DMARC: เฝ้าดูรายงาน DMARC เพื่อตรวจสอบว่าไม่มีปัญหา และแก้ไขเมื่อจำเป็น
ตรวจสอบสถานะ SPF, DKIM, DMARC
- MXToolbox:
- เข้าไปที่ https://mxtoolbox.com/
- ใช้เครื่องมือ 'SPF Record Lookup', 'DKIM Record Lookup', 'DMARC Record Lookup'
- DMARCTester:
FAQ's with SPF, DKIM and DMARC
- ที่อยู่อีเมลสำหรับรายงาน DMARC: แนะนำให้ใช้ shared mailbox ที่หลายคนสามารถตรวจสอบได้
- ความแตกต่างของ ~all, -all, ?all, +all ใน SPF record:
- ~all (SoftFail): ยอมรับอีเมลจากเซิร์ฟเวอร์ที่ไม่อยู่ในรายการได้ แต่ถือว่าน่าสงสัย
- -all (Fail): ปฏิเสธอีเมลจากเซิร์ฟเวอร์ที่ไม่อยู่ในรายการ
- ?all (Neutral): จัดการอีเมลโดยไม่มีคำสั่งเฉพาะ
- +all (Pass): อนุญาตอีเมลจากทุกเซิร์ฟเวอร์
- สามารถตั้งค่า DMARC โดยไม่มี SPF ได้หรือไม่: ทำได้ แต่ไม่มีประสิทธิภาพ แนะนำให้ใช้ SPF ร่วมกับ DKIM
- เมื่อเห็น SPF fail หลายรายการและบาง SPF pass ใน email header: ควรเชื่อถือการตรวจสอบ SPF ที่เกี่ยวข้องกับโดเมนของคุณเอง
สรุป
- SPF, DKIM, DMARC คือฮีโร่เบื้องหลังของความปลอดภัยอีเมล
- ทั้งสามอย่างนี้มีบทบาทสำคัญในการรักษาความน่าเชื่อถือของอีเมล
ความเห็นของ GN⁺
- ความสำคัญของความปลอดภัยอีเมล: อีเมลเป็นช่องทางการสื่อสารที่สำคัญ จึงต้องให้ความสำคัญกับความปลอดภัยอย่างมาก
- ความจำเป็นของ SPF, DKIM, DMARC: เทคโนโลยีทั้งสามนี้จำเป็นอย่างยิ่งในการป้องกัน email spoofing และการโจมตีแบบ phishing
- สิ่งที่ควรพิจารณาเมื่อนำไปใช้: ต้องมีการตั้งค่าและติดตามตรวจสอบ และการตั้งค่าที่ผิดพลาดอาจทำให้เกิดปัญหาในการส่งอีเมลได้
- เครื่องมือที่เกี่ยวข้อง: เครื่องมืออย่าง MXToolbox และ DMARCTester ช่วยให้ตรวจสอบสถานะการตั้งค่าได้ง่าย
- มาตรฐานอุตสาหกรรม: เพื่อเสริมความปลอดภัยของอีเมล SPF, DKIM, DMARC ได้กลายเป็นมาตรฐานของอุตสาหกรรมไปแล้ว
3 ความคิดเห็น
ดูเหมือนว่าตอนนี้ SPF, DKIM และ DMARC จะกลายเป็นสิ่งที่สำคัญมากแล้ว
พอได้ใช้ Google Workspace หรือ SES ก็เริ่มมีการตั้งค่าเพิ่มขึ้นทีละอย่างนอกจาก MX record อย่าง SPF, DKIM เป็นต้น แต่จริง ๆ แล้วก็ไม่ได้คิดจะไปค้นหาดูนัก แค่คิดประมาณว่าคงมีอะไรสักอย่างทำงานได้ดีอยู่ที่ไหนสักแห่งนั่นแหละ ขอบคุณครับ! :D
ความเห็นจาก Hacker News
ประสบการณ์ของผู้ดูแลระบบไอที: ทำงานดูแลไอทีในบริษัทขนาดเล็กและขนาดกลาง และมักได้รับคำขอให้ช่วยปล่อยอีเมลที่ถูกกักกันเพราะตั้งค่า SPF record ผิดพลาด จึงช่วยแก้ไข SPF record แทนการใช้ whitelist และเขียนสคริปต์ด้วยภาษา Racket เพื่อทำให้กระบวนการนี้เป็นอัตโนมัติ
แนะนำหนังสือ: Michael W. Lucas กำลังเตรียมหนังสือชื่อ "Run Your Own Mail Server" ซึ่งครอบคลุมรายละเอียดการตั้งค่า SPF/DKIM/DMARC อย่างลึกซึ้ง เคยฟังทั้งทutorialและการบรรยายของเขาที่ BSDCan และขอแนะนำหนังสือเล่มนี้
ความจำเป็นของคู่มือ SPF/DKIM/DMARC: ต้องการคู่มือ SPF/DKIM/DMARC สำหรับนักพัฒนาแอปที่ส่งอีเมลผ่านโดเมนอื่น เพราะระบบ ticket จำนวนมากและแพลตฟอร์มการตลาดหลายแห่งยังไม่เข้าใจแนวคิดนี้
ความสำคัญของระบบอัตโนมัติ: กำลังทำสตาร์ตอัปที่ทำระบบอัตโนมัติสำหรับการตั้งค่า SPF/DKIM/DMARC และมองว่าคู่มือนี้มีคุณภาพสูง แต่เพราะผู้ใช้มักเจอปัญหานี้เพียงครั้งเดียว จึงยากที่จะทำความเข้าใจระยะยาว ทำให้ระบบอัตโนมัติมีความสำคัญมาก
แนะนำเครื่องมือดีบัก: แชร์ลิงก์เครื่องมือที่ดีสำหรับดีบักปัญหา DMARC
แนะนำเครื่องมือทดสอบ: แนะนำ mail-tester.com และเวอร์ชันฟรีของ eu.dmarcian.com เป็นเครื่องมือทดสอบ และยังแชร์ลิงก์บล็อกเพื่อช่วยทำความเข้าใจ DKIM
ปัญหาสแปม: แม้จะตั้งค่าอีเมลได้สมบูรณ์แล้ว บางครั้ง Gmail ก็ยังจัดเป็นสแปม ลงแรงไปหลายร้อยชั่วโมงก็ยังแก้ไม่ได้ สุดท้ายจึงหันไปใช้บริการโฮสต์จากบุคคลที่สามอย่าง iCloud
ความจำเป็นของความหลากหลายในอีเมล: ไม่ควรพึ่งพาบริการอีเมลของบริษัทใหญ่ เช่น Apple, Google, Microsoft มากเกินไป และควรใช้เมลเซิร์ฟเวอร์ของตัวเองเมื่อเป็นไปได้
บริการมอนิเตอร์ DMARC ฟรี: บริการชื่อ Postmark มีบริการมอนิเตอร์ DMARC แบบฟรี
ผลลัพธ์การตั้งค่า SPF/DKIM/DMARC: แชร์ผลลัพธ์ของโดเมนตัวอย่างที่ผ่านการตั้งค่า SPF, DKIM และ DMARC ทั้งหมด