ข้ามไปยังเนื้อหา
อีบุ๊ก Cloudflare Workers Playbook เปิดตัวแล้ว — อ่านตัวอย่างฟรีก่อนตัดสินใจ

MTA-STS: ปิดช่องโหว่การดักอีเมลด้วยไฟล์เดียว

SMTP ยังยอมให้ผู้โจมตี downgrade การเชื่อมต่อลงมาเป็น plaintext ได้ MTA-STS คือมาตรฐานที่บังคับให้เซิร์ฟเวอร์ปลายทางใช้ TLS เสมอ

เผยแพร่
21 สิงหาคม 2568
อ่าน
1 นาที
เขียนโดย
SSUSEMAN
MTA-STS: ปิดช่องโหว่การดักอีเมลด้วยไฟล์เดียว
security — SUSEMANMTA-STS · email

อีเมลเป็นโปรโตคอลที่ออกแบบมาตอนที่ยังไม่มีใครคิดถึงความปลอดภัย ผู้โจมตีที่ควบคุมเครือข่ายได้สามารถลบประกาศ STARTTLS แล้วทำให้การเชื่อมต่อกลับไปเป็น plaintext ได้อย่างเงียบ ๆ — นี่คือช่องโหว่ที่ MTA-STS ถูกสร้างมาเพื่อปิด

MTA-STS ทำงานอย่างไร

มีสองส่วนที่ต้องตั้ง:

  1. DNS TXT record ที่ _mta-sts.yourdomain.com บอกว่า "โดเมนนี้รองรับ MTA-STS และ policy id คือ ..."
  2. ไฟล์ policy ที่ https://mta-sts.yourdomain.com/.well-known/mta-sts.txt ซึ่งต้องเสิร์ฟผ่าน HTTPS ที่มี certificate ถูกต้อง
dns
_mta-sts.example.com. 300 IN TXT "v=STSv1; id=20250821T030000;"
text
version: STSv1
mode: testing
mx: aspmx.l.google.com
mx: alt1.aspmx.l.google.com
max_age: 604800

เริ่มที่ mode: testing เสมอ ระบบจะรายงานแต่ไม่บล็อกอีเมล แล้วค่อยเปลี่ยนเป็น enforce เมื่อดูรายงานแล้วว่าไม่มี MX ไหนหลุด

ทำไมต้องเริ่มที่ testing

ถ้าเปิด enforce ทันทีและมี MX เก่าที่ไม่รองรับ TLS อยู่ใน policy อีเมลจากคู่ค้าจะถูกปฏิเสธทั้งหมด ผมเคยเห็นเคสที่ลูกค้าเปิด enforce ก่อนตรวจ DNS แล้วสูญเสียอีเมลจากซัพพลายเออร์ สองวันเต็ม

บทเรียน: MTA-STS จะทำงานก็ต่อเมื่อ MX ใน policy ตรงกับ MX จริงแบบเป๊ะ ๆ รวมถึงตัวที่ตกค้างจากระบบเก่า

เช็กว่าตั้งถูก

bash
dig +short TXT _mta-sts.example.com
curl -s https://mta-sts.example.com/.well-known/mta-sts.txt
openssl s_client -connect mta-sts.example.com:443 -servername mta-sts.example.com </dev/null 2>/dev/null | openssl x509 -noout -dates

ถ้า certificate หมดอายุ ผู้รับจะถือว่า policy ใช้ไม่ได้และถอยกลับไปโหมดไม่บังคับ — ตั้ง monitoring บน endpoint นี้ด้วย

ต่อยอดด้วย TLS-RPT และ DMARC

  • TLS-RPT ให้รายงานว่าเซิร์ฟเวอร์ไหนเชื่อมต่อด้วย TLS ไม่สำเร็จ
  • DMARC จัดการ spoofing ของโดเมน ซึ่งเป็นอีกชั้นที่แยกจาก TLS โดยสิ้นเชิง
  • MTA-STS + DANE ให้การยืนยันสองชั้น แต่ DANE ต้องใช้ DNSSEC

ทำทั้งสามอย่างแล้ว โดเมนของคุณจะอยู่ในกลุ่มที่ป้องกันการดักฟังอีเมลได้จริง ซึ่งยังมีน้อยมากในบ้านเรา

S

เขียนโดย

SUSEMAN · วิศวกรโครงสร้างพื้นฐาน · นักเขียน

บันทึกวิศวกรรมคลาวด์และเว็บ · กรุงเทพฯ ประเทศไทย

เกี่ยวกับ →

จดหมายรายสัปดาห์

สรุปบทความใหม่ เครื่องมือที่ลองแล้ว และบทเรียนจากการ deploy — ส่งทุกวันพฤหัส ไม่มีสแปม

ไม่ส่งสแปม ยกเลิกได้ทุกเมื่อ

บทความที่เกี่ยวข้อง

ดูทั้งหมด →

บทความถัดไป

ประกอบคลัสเตอร์ WordPress ระดับองค์กรแบบที่ผมใช้จริง

→