DMARC là gì?
DMARC là gì?
DMARC là một tiêu chuẩn để chặn spammer khỏi việc sử dụng domain của người sở hữu mà không được sự cho phép của họ mà ta hay gọi nó là spoofing. Thực tế, khi sử dụng mail, bất kỳ ai cũng có thể giả mạo địa chỉ tại trường “From” trong mail gửi đi một cách dễ dàng. DMARC sẽ đảm bảo những mail giả mạo này sẽ bị chặn trước khi chúng đến được mailbox của người nhận và hơn thế nữa, chỉ những mail hợp lệ mới được chấp nhận vào hệ thống.
DMARC hoạt động như thế nào?
DMARC được xây dựng ở phía trên của DKIM và SPF. Vậy trước tiên, ta sẽ xem DKIM và SPF là gì?
DKIM (Domainkeys Identified Mail)
DKIM là một phương thức để xác thực tính hợp lệ của một email. Mỗi mail khi gửi đi được gắn 1 khóa private key và sau đó được xác thực bên phía mail server nhận bằng một khóa public key được setup trong bản ghi DNS. Quá trình này đảm bảo rằng mail gửi đi không bị thay đổi trên đường tới phía bên nhận. Nói cách khác, nó ngăn chặn ai đó có thể can thiệp vào email của bạn, thay đổi nó và sau đó gửi đi với nội dung mới. Bản chất của nó giống hệt như giao thức SSH mà ta vẫn hay dùng hàng ngày.
DKIM còn giúp các ISP sử dụng những thông tin đó để đánh giá mực độ tin cậy của domain bằng một thông số ta vẫn thường nghe là “reputation“. Việc thực hiện gửi mail một cách lành mạnh với tỉ lệ SPAM và bounces ít, tỉ lệ chấp nhận cao sẽ tự nhiên làm tăng độ tin cậy và xác thực của domain đó đối với các ISP
Đây là cách setup DKIM trong DNS mà ta vẫn thường thấy với public key:
pm._domainkey.domain.com IN TXT k=rsa\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOCTHqIIQhGNISLchxDvv2X8NfkW7MEHGmtawoUgVUb8V1vXhGikCwYNqFR5swP6UCxCutX81B3+5SCDJ3rMYcu3tC/E9hd1phV+cjftSFLeJ+xe+3xwK+V18kM46kBPYvcZ/38USzMBa0XqDYw7LuMGmYf3gA/yJhaexYXa/PYwIDAQAB
SPF (Sender Policy Framework)
SPF là một cách thức để xác nhận một email server có được phép gửi email dưới tên một domain nào đó không. Chẳng hạn như muốn email từ domain @1hosting.com.vn chỉ có giá trị khi gửi từ địa chỉ IP 123.345.456.789, còn các mail server có IP khác mà gửi các mail có đuôi @1hosting.com.vn đều là giả mạo và không được phép thì SPF sẽ thực hiện điều này. Khi đó mail server phía nhận sẽ tự động loại bỏ tất cả các email gửi dưới dạng @1hosting.com.vn từ các địa chỉ không phải IP 123.345.456.789. Tất nhiên mail server phía nhận phải có chức năng kiểm tra SPF này, còn không kiểm tra thì có cấu hình cũng bằng thừa.
DMARC kết hợp DKIM và SPF
DMARC tiến một bước xa hơn so với DKIM và SPF khi nó cho ta quyền thiết lập một policy để loại bỏ (reject) hay cách ly (quarantine- thường hành động là cho mail này vào SPAM folder) một email từ một nguồn không rõ ràng hoặc không có độ tin cậy dựa trên kết quả của DKIM và SPF.
DMARC cho phép ta nói với các Mail server phía bên nhận cách thức xử lý khi SPF hay DKIM failed hoặc không có. Dưới đây là môt mô tả cách thức SPF và DKIM cùng làm việc với DMARC.
DMARC policy được setup trong DNS và trông giống như sau:
_dmarc.domain.com TXT v=DMARC1\; p=reject\; pct=100\; rua=mailto:[email protected]\;
Bản ghi trên tạo 1 policy để reject (p=reject) 100% (pct=100) các email không pass DKIM hay SPF. Bên cạnh đó, bản ghi còn cho biết lý do từ chối sẽ được gửi vào mail (rua=mailto:[email protected]) để người quản trị phía domain.com được biết.
Triển khai DMARC trên domain như thế nào?
Cấu hình DMARC cho một domain là phần vô cùng nhậy cảm và sẽ mất nhiều thời gian vì sẽ có rủi ro trong quá trình thực hiện. Rủi ro đó là khi cấu hình DMARC sẽ có thể loại bỏ cả những mail hợp lệ. Để tránh điều này, ta cần thực hiện theo trình tự quan sát rồi áp dụng sau (áp dụng ngay sẽ khiến gặp rất nhiều vấn đề)
Bước 1: Tạo một bản ghi DMARC để bắt đầu theo dõi
Chẳng hạn ta tạo 1 bản ghi như sau:
_dmarc.domain.com TXT v=DMARC1\; p=none\; pct=100\; rua=mailto:[email protected]\;
Bản ghi này giống như ví dụ trên nhưng khác ở chỗ “p=none” thay vì “p=reject”. “none” cho biết đây là chế độ test mode. Các mail server nhận sẽ check từng message gửi đến nhưng nó chi gửi về các report mà không thực hiện hành động nào cụ thể. Điều này cho phép ta thu thập được thông tin chi tiết về các địa chỉ mail server gửi đến trước khi có quyết định thực hiện một hành động cụ thể.
Lúc này ta cần một công cụ để thu thập những số liệu thống kê này và http://dmarc.postmarkapp.com là công cụ không thể bỏ qua
Bước 2: Phân tích DMARC report để xác định kết quả pass hay fail
Ta sẽ cần một thời gian tương đối dài để dữ liệu thu thập được có giá trị thống kê như ở trên
Có 3 thống kê ta cần xem:
. Processed: Số lượng message đã đc gửi report
. Fully Aligned: Số lượng message đã pass cả SPF và DKIM
. Failed: Số lượng message failed tại SPF hoặc DKIM
Tiếp theo ta sẽ xem ở 2 trường quan trọng:
. Trusted sources: Đây là những địa chi email server bao gồm cả domain và IP mà đã pass cả SPF và DKIM
. Unknown/Threats: là những địa chi email server mà không pass qua được SPF hoặc DKIM. Trong nhiều trường hợp, Unknown là những source hợp lệ đang gửi email nhưng không bao gồm sử dụng DKIM hoặc SPF. Chính vì điều này sẽ dẫn tới việc thực thi DMRAC trở nên vô cùng nhạy cảm.
Bước 3: Chuyển tất cả các địa chỉ đã biết (xác định là hợp lệ) để gán DMARC
Sau khi đã có được những địa chỉ được coi là hợp lệ ta sẽ tạo danh sách cho nó và đối với mỗi địa chỉ mới, ta sẽ đối chiếu lại với danh sách này. Mục đích cuối cùng của DMARC vẫn là kiểm tra cho việc pass cả DKIM và SPF, trong một số trường hợp đặc biệt đó là email fowarding, ở đó Return-path bị thay đổi và SPF failed nhưng nếu có DKIM, nó vẫn được chấp nhận như một email hợp lệ.
Bước 4: Thực thi thực tế
Một khi đã nắm được tương đối các địa chỉ hợp lệ, bước tiếp theo là chuyển bản ghi DMARC sang chế độ chặt chẽ hơn, đó là với “p=quarantine”. Việc cách ly sẽ đặt các mail gửi đến mà nằm ở dạng failed vào thư mục SPAM/JUNK. Và cuối cùng, qua thời gian ta sẽ đặt nó ở chế độ chặt chẽ nhất “p=reject”, loại bỏ hoàn toàn các thư gửi đến bị failed.
Tóm lại, DMARC là một chuẩn cao hơn trên cơ sở kết hợp giữa DKIM và SPF. Tuy chưa phổ biến nhưng DMARC sẽ rất có giá trị trong tương lai.