Gần đây công ty nhận được báo cáo về lỗ hổng email spoofing (giả mạo email) trên domain. Qua việc xử lý case này, mình muốn chia sẻ với mọi người về 3 công nghệ bảo mật email quan trọng: SPF, DKIM, và DMARC.
Đây không chỉ là kiến thức kỹ thuật mà còn giúp chúng ta hiểu rõ hơn về cách bảo vệ domain và uy tín công ty trong thời đại số.
Đây không chỉ là kiến thức kỹ thuật mà còn giúp chúng ta hiểu rõ hơn về cách bảo vệ domain và uy tín công ty trong thời đại số.
📋 SPF (Sender Policy Framework)
SPF là gì?
SPF là một bản ghi DNS giúp xác định máy chủ nào được phép gửi email thay mặt cho domain của bạn. Cách hoạt động:
- Bạn publish một bản ghi SPF trong DNS
- Khi ai đó nhận email từ domain của bạn, mail server sẽ check SPF record
- Nếu IP gửi email không nằm trong danh sách cho phép → email bị đánh dấu spam hoặc từ chối
v=spf1 a mx include:_spf.google.com -all
- v=spf1: Version SPF 1
- a: Cho phép IP của A record của domain
- mx: Cho phép IP của MX record của domain
- include:_spf.google.com: Cho phép Google Apps gửi email
- -all: Hard fail - từ chối tất cả email từ nguồn khác
- ~all (Soft fail): Đánh dấu nghi ngờ nhưng vẫn cho qua
- -all (Hard fail): Từ chối hoàn toàn - bảo mật cao hơn
🔐 DKIM (DomainKeys Identified Mail)
DKIM là gì?
DKIM sử dụng chữ ký số (digital signature) để xác thực email đến từ domain hợp lệ và nội dung không bị thay đổi. Cách hoạt động:
- Mail server gửi email sẽ tạo chữ ký số cho email
- Chữ ký này được thêm vào header của email
- Mail server nhận sẽ dùng public key (lưu trong DNS) để verify chữ ký
- Nếu verify thành công → email hợp lệ
selector1._domainkey.vnpro.org TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA..."
Lợi ích:
- Đảm bảo email không bị sửa đổi
- Xác thực nguồn gốc email
- Tăng độ tin cậy với email providers
🚨 DMARC (Domain-based Message Authentication, Reporting & Conformance)
DMARC là gì?
DMARC là "chỉ huy trưởng" của SPF và DKIM. Nó quyết định xử lý email như thế nào khi SPF hoặc DKIM fail.
Cách hoạt động:
- Check SPF và DKIM
- Áp dụng policy được định nghĩa trong DMARC record
- Gửi báo cáo về việc xử lý email
Ví dụ DMARC record:
v=DMARC1; p=reject; sp=none; pct=100; ri=86400; rua=mailto:admin@vnpro.org
- v=DMARC1: Version DMARC 1
- p=reject: Policy chính - từ chối email fail
- sp=none: Policy cho subdomain - không làm gì
- pct=100: Áp dụng policy cho 100% email
- ri=86400: Gửi report mỗi 24 giờ
- rua=mailto:admin@vnpro.org: Gửi aggregate report về email này
- p=none: Monitor only (chỉ thu thập dữ liệu)
- p=quarantine: Đưa vào spam folder
- p=reject: Từ chối hoàn toàn (bảo mật cao nhất)
📊 Tại sao cần cả 3 công nghệ?
| SPF | Xác thực IP gửi email | Không check nội dung email |
| DKIM | Xác thực nội dung email | Không check IP gửi |
| DMARC | Policy xử lý + báo cáo | Cần SPF/DKIM để hoạt động |
✅ Checklist bảo mật email cho mọi domain
Bước 1: Kiểm tra hiện tại
# Check SPF
nslookup -type=txt yourdomain.com
# Check DMARC
nslookup -type=txt _dmarc.yourdomain.com
# Hoặc dùng online tool: mxtoolbox.com
Bước 2: Thiết lập records
- SPF: Xác định mail servers được phép gửi
- DKIM: Thiết lập chữ ký số (thường do mail provider cung cấp)
- DMARC: Bắt đầu với p=none, sau đó tăng lên p=reject
- Theo dõi DMARC reports
- Điều chỉnh policy dần dần
- Đảm bảo không block email hợp lệ
🎯 Kết luận
Email security không chỉ là trách nhiệm của IT team mà là của cả công ty. Hiểu biết cơ bản về SPF, DKIM, DMARC giúp chúng ta:
- Bảo vệ thương hiệu khỏi email spoofing
- Tăng deliverability của email marketing
- Giảm rủi ro bị lừa đảo qua email
- Tuân thủ các yêu cầu bảo mật hiện đại
- ✅ Check email security của domain cá nhân/dự án
- ✅ Báo cáo nếu phát hiện email đáng ngờ từ domain công ty
- ✅ Share kiến thức này với team/bạn bè
📚 Tài liệu tham khảo
- RFC 7208 - SPF Specification
- RFC 6376 - DKIM Specification
- RFC 7489 - DMARC Specification
- Google Email Security Best Practices
- MXToolbox - Free Email Security Testing