เชิงเทคนิค · คำตอบพร้อมแหล่งอ้างอิง
การยืนยันตัวตนอีเมลคืออะไร: อธิบาย SPF, DKIM และ DMARC
การยืนยันตัวตนอีเมลคือชุดโปรโตคอลที่อิง DNS ใช้ยืนยันตัวตนผู้ส่งข้อความอีเมล ป้องกันการปลอมแปลงโดเมนและฟิชชิงด้วยการให้เมลเซิร์ฟเวอร์ผู้รับตรวจสอบได้ว่าเซิร์ฟเวอร์ผู้ส่งได้รับอนุญาตให้ส่งเมลแทนโดเมนที่ระบุในเฮดเดอร์ From
Sender Policy Framework (SPF)
SPF คือเรคคอร์ด DNS ที่ระบุที่อยู่ IP และโดเมนทั้งหมดที่ได้รับอนุญาตให้ส่งอีเมลแทนโดเมนหนึ่ง ๆ เมื่อเซิร์ฟเวอร์ได้รับข้อความ จะตรวจสอบเรคคอร์ด SPF ของโดเมนที่พบในที่อยู่ Return-Path หาก IP ของเซิร์ฟเวอร์ผู้ส่งไม่อยู่ในเรคคอร์ด SPF ข้อความอาจถูกทำเครื่องหมายเป็นสแปมหรือถูกปฏิเสธตาม qualifier ของเรคคอร์ด
DomainKeys Identified Mail (DKIM)
DKIM ให้ลายเซ็นเข้ารหัสสำหรับอีเมล ผู้ส่งใช้ private key ลงลายเซ็นเฮดเดอร์และเนื้อหาข้อความ และผู้รับใช้ public key ที่เผยแพร่ในเรคคอร์ด DNS ของโดเมนเพื่อตรวจสอบลายเซ็น ช่วยให้แน่ใจว่าเนื้อหาอีเมลไม่ถูกดัดแปลงระหว่างทาง และยืนยันความเป็นเจ้าของข้อความของโดเมน
การยืนยันตัวตน การรายงาน และความสอดคล้องของข้อความตามโดเมน (DMARC)
DMARC เชื่อม SPF และ DKIM เข้าด้วยกันด้วยการให้คำสั่งแก่เซิร์ฟเวอร์ผู้รับว่าจะจัดการข้อความที่ไม่ผ่านการยืนยันตัวตนอย่างไร กำหนดให้ที่อยู่ From ที่มองเห็นต้องมี alignment กับโดเมน SPF หรือ DKIM นโยบาย DMARC ตั้งเป็น none (เฝ้าดู) quarantine (ส่งเข้าสแปม) หรือ reject (บล็อกทั้งหมด) ได้
การติดตั้งและการตรวจสอบ
การติดตั้งการยืนยันตัวตนต้องเพิ่มเรคคอร์ด TXT ที่ผู้ให้บริการ DNS ของคุณ นักพัฒนาควรตรวจสอบให้แน่ใจว่าบริการส่งของบุคคลที่สามทั้งหมดรวมอยู่ในเรคคอร์ด SPF และหมุนเวียนคีย์ DKIM เป็นระยะ คุณใช้เครื่องมือฟรีของ SendHQ (https://sendhq.cc/tools) ตรวจสอบว่าเรคคอร์ด DNS มีรูปแบบถูกต้องและใช้งานอยู่
คำถามที่ทีมมักถาม
SPF มาแทน DKIM หรือไม่
ไม่ SPF ตรวจสอบ IP ของเซิร์ฟเวอร์ผู้ส่ง ส่วน DKIM ตรวจสอบเนื้อหาข้อความและต้นทางด้วยการเข้ารหัส ต้องใช้ทั้งสองอย่างจึงจะยืนยันตัวตนได้สมบูรณ์
จะเกิดอะไรขึ้นหากไม่ได้ตั้งค่า DMARC
หากไม่มี DMARC เซิร์ฟเวอร์ผู้รับยังใช้ SPF และ DKIM ได้ แต่ไม่มีคำสั่งชัดเจนว่าจะปฏิเสธหรือกักข้อความที่ไม่ผ่านหรือไม่
โดเมนเดียวมีเรคคอร์ด SPF หลายรายการได้หรือไม่
ไม่ โดเมนต้องมีเรคคอร์ด SPF เพียงรายการเดียว ผู้ส่งที่ได้รับอนุญาตหลายรายต้องรวมไว้ในเรคคอร์ด TXT เดียวโดยใช้ mechanism แบบ include