Tìm hiểu về DMARC, DKIM, SPF trong email server

quachhuy1703

New Member
09/01/2023
0
4 bài viết
Tìm hiểu về DMARC, DKIM, SPF trong email server
Xin chào các bạn, hôm nay mình sẽ cùng các bạn tìm hiểu về DMARC, DKIM, SPF trong email server nhé.

DMARC​

1675074687878.png

DMARC Là Gì?

  • DMARC (Domain-based Message Authentication, Reporting & Conformance) là một giao thức sử dụng Sender Policy Framework (SPF) và DomainKeys Identified Mail (DKIM) để xác định tính xác thực của một email message.
  • DMARC giúp Nhà cung cấp dịch vụ internet (ISP) dễ dàng ngăn chặn các hoạt động email độc hại. Chẳng hạn như giả mạo domain để lừa đảo lấy thông tin cá nhân của người nhận.
  • Về cơ bản, nó cho phép người gửi email chỉ định cách xử lý các email không rõ nguồn gốc bằng SPF hoặc DKIM. Người gửi có thể chọn gửi những email đó vào thư mục rác hoặc chặn tất cả chúng. Bằng cách làm như vậy, ISP có thể xác định tốt hơn những kẻ gửi thư rác. Đồng thời ngăn chặn email độc hại xâm nhập hộp thư đến của bạn. Ngoài ra, DMARC cũng giảm thiểu các xác thực giả và cung cấp báo cáo xác thực minh bạch hơn trên thị trường.
dmarc-la-gi.png
DMARC record được xuất bản cùng với DNS record, bao gồm:
  • SPF
  • A-record
  • CNAME
  • (DKIM)
  • PTR Record (tham khảo thêm tại đây)

DMARC Hoạt Động Như Thế Nào?​

  • DMARC hoạt động dựa trên hai chính sách là SPF và DKIM.
dmarc-dkim.png
  • 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:
dkim_gsuite.png

Tại Sao Cần Sử Dụng DMARC?​

dmarc-la-gi-3.jpg
  • Ngày này, các vấn đề bảo mật thông tin trên internet đang được đặt lên hàng đầu. Việc các hacker hoặc công ty, tổ chức, doanh nghiệp sử dụng gián điệp, tấn công, chiếm đoạt thông tin người dùng đã không còn xa lạ.
  • Các thông tin về họ tên, tuổi tác, địa chỉ, số điện thoại, tài khoản ngân hàng… Tất cả đều có thể trở thành miếng mồi ngon cho những kẻ hoạt động ngầm và có ý đồ xấu. Chính vì vậy, các biện pháp kỹ thuật nhằm bảo vệ thông tin người dùng cũng được phát triển. DMARC là một trong những biện pháp quan trọng và được sử dụng phổ biến nhất hiện nay.
  • Notes:
  • Không phải tất cả các server nhận sẽ thực hiện kiểm tra DMARC trước khi chấp nhận tin nhắn. Nhưng tất cả các ISP chính đều thực hiện và triển khai nó.

DKIM​

1675074876396.png

DKIM Là Gì?​

DKIM là viết tắt của DomainKeys Identified Mail, một kỹ thuật xác thực email cho phép người nhận kiểm tra xem email có thực sự được gửi và được ủy quyền bởi chủ sở hữu miền đó hay không. Điều này được thực hiện bằng cách cung cấp cho email một chữ ký điện tử. Chữ ký DKIM là một tiêu đề được thêm vào thông điệp và được bảo vệ với mã hóa.
Sau khi người nhận (hoặc hệ thống nhận) xác định rằng email được ký bằng chữ ký DKIM hợp lệ, thì chắc chắn rằng các phần của email mà nội dung thư và tệp đính kèm chưa được sửa đổi. Thông thường, chữ ký DKIM không hiển thị cho người dùng cuối, việc xác thực được thực hiện ở cấp máy chủ.

1675059462553.png

Cách Hoạt Động Của DKIM​

  • DKIM có bản chất là một phương thức để xác thực, chứ không phải là phương thức để chống Spam do DKIM có hỗ trợ chức năng ngăn chặn thư giả mạo, lừa đảo hay có chứa mã độc, nên người dùng thường cho rằng DKIM chính là để chống Spam.
  • DKIM hoạt động theo 2 phần riêng biệt bao gồm: chữ ký và xác minh. Đặc biệt, một trong số chúng có thể được xử lý bởi một module của tác nhân chuyển thư (MTA). Ngoài ra, tùy thuộc vào hệ thống Mail server khác nhau thì sẽ có những hướng dẫn khác nhau về cấu hình DKIM, thông thường đều phải thực hiện qua các bước sau:
    • Đối với bên gửi:
      • Bước 1: Đầu tiên hãy tạo ra cặp khóa private/public khi đó phần mềm OpenSSL có hỗ trợ.
      • Bước 2: Sau đó, chuyển khóa Public lên khai báo bản ghi TXT trên DNS, ứng đúng với domain gửi email.
      • Bước 3: Tiếp theo hãy cấu hình Mail server sử dụng khóa Private để ký vào email trước khi gửi email (Lưu ý: Khóa này chỉ lưu trên Mail server nên không thể là khóa giả).
    • Đối với bên nhận:
      • Bước 1: Khi nhận được email từ bên gửi hãy kiểm tra email có thông điệp được mã hóa do cấu hình DKIM.
      • Bước 2: Tiếp theo, Query DNS để lấy khóa Public của Domain bên gửi sau đó giải mã, nếu giải mã đúng thì xác nhận nguồn gửi và email đảm bảo, trường hợp khi giải mã không đúng thì có thể từ chối hoặc vẫn nhận email phụ thuộc vào chính sách bên nhận

Lý Do Nên Sử Dụng DKIM​

Nên sử dụng DKIM do một lá thư gửi tới mà không có chữ ký DKIM thường sẽ bị hiểu nhầm là thư Spam, vì vậy những lý do nên sử dụng DKIM bao gồm:
  • DKIM là một phương pháp để xác thực mà không phải là một phương pháp để chống Spam. Tuy nhiên DKIM có hỗ trợ việc ngăn chặn Spam bởi DKIM có thể đảm bảo thư nhận là giả hay thật thông qua xác minh: địa chỉ người gửi, tên miền gửi thư,… trong khi mà hầu hết các thư Spam đều mạo tên giả.
  • DKIM được phát triển từ phương pháp DK của Yahoo và phương pháp IM của Cisco, sau đó đã được cơ quan IETF cấp tư cách Standards Track nên DKIM sở hữu tiềm năng phát triển vô cùng mạnh mẽ mặc dù nó chỉ là một phương thức xác nhận email non trẻ nhất. Ngoài ra, DKIM tập trung vào xác định nội dung hơn là phần vỏ bọc bên ngoài (trong trường hợp phần bên ngoại bị thay đổi ví dụ thư được forward từ đường chuyển thư phức tạp,…). Đặc biệt, DKIM giúp cho những lá thư có cơ hội sống sót cao hơn so với các phương pháp xác thực địa chỉ server khác như là SPF hay SIDF.o được triển khai trên server hơn là trên client đồng thời không đòi hỏi một hạ tầng khóa công khai phức tạp, DKIM vô cùng đơn giản, gọn gàng hơn so với các phương pháp xác thực từ đầu đến cuối như là S/MIME hay PGP. Lưu ý, ý nghĩa xác thực DKIM nhẹ hơn nên không thể thay thế hoàn toàn cho các phương pháp khác.
1675059730450.png

SPF​

1675075042441.png

DMARC – SPF (Sender Policy Framework) Là Gì?​

    • SPF (Sender Policy Framework) hoạt động với nguyên tắc xác thực một email server có được gửi email dưới tên một domain nào đó. Trong trường hợp nhận diện được email mới đến từ một địa chỉ IP không phù hợp, email sẽ được chuyển đến hộp thư Spam.
    • Về nguyên lý hoạt động SPF sẽ yêu cầu lập hệ thống tên miền, khai báo các máy chủ có thể gửi thư từ một miền cụ thể. Khi nhận mail, người nhận sẽ thông qua truy vấn DNS để xác thực lại địa chỉ người gửi và địa chỉ IP có phù hợp hay không, để đưa ra kết luận địa chỉ thật hay giả và có nên nhận mail hay không.
    • DMARC Record là gì?
      • DMARC reccord là gì? Đó là bản ghi nơi các bộ quy tắc DMARC được xác định. Bản ghi này thông báo cho các ISP (như Gmail, Microsoft, Yahoo!, v.v.) nếu một miền được thiết lập để sử dụng DMARC.
    • DMARC record phải được đặt trong DNS của bạn. Tên bản ghi TXT phải là “_dmarc.yourdomain.com.” trong đó “yourdomain.com” được thay thế bằng tên miền thực của bạn (hoặc miền phụ).
      1675059817044.png
    • Bạn có thể xem DMARC report bằng cách nhập <dig txt _dmarc.sendgrid.net> vào terminal của bạn. Bạn cũng có thể truy cập https://www.valimail.com/để xem DMARC record cho bất kỳ domain nào nếu chúng đã được gửi đi.
      Ý Nghĩa Của DMARC Record:
      “v = DMARC1
      • Version – Đây là lệnh nhận dạng mà server nhận sẽ tìm kiếm khi nó quét DNS records cho domain mà nó nhận được thông báo. Nếu domain không có txt record nào bắt đầu bằng v = DMARC1, server nhận sẽ không chạy kiểm tra DMARC.
      • “p = none”
    • Policy – Chính sách bạn chọn trong DMARC record của mình sẽ cho serveremail người nhận biết phải làm gì với mail không vượt qua SPF và DKIM. Trong trường hợp này, chính sách được đặt thành “none”. Có 3 loại chính sách bạn có thể đặt:
      • p = none – Yêu cầu người nhận không thực hiện bất kỳ hành động nào đối với mail không đủ tiêu chuẩn. Nhưng vẫn gửi báo cáo email đến mailto: trong DMARC record nếu có bất kỳ vi phạm nào.
      • p = quarantine – Yêu cầu người nhận cô lập mail không đủ tiêu chuẩn (có thể là gửi đến thư mục thư rác).
      • p = reject – Yêu cầu người nhận từ chối hoàn toàn bất kỳ mail không đủ tiêu chuẩn nào cho domain. Khi bật tính năng này, chỉ những thư được xác minh là 100% được domain của bạn đăng ký mới có cơ hội vào hộp thư đến. Bất kỳ thư nào không vượt qua đều bị từ chối thẳng mà không được trả lại.
      • rua = mailto: [email protected]
    • Phần này cho server nhận biết nơi gửi báo cáo tổng hợp về các lỗi DMARC. Báo cáo tổng hợp được gửi hàng ngày đến quản trị viên của domain có DMARC record. Chúng bao gồm thông tin cấp cao về các sự cố của DMARC. Nhưng không cung cấp chi tiết cụ thể về từng sự cố. Đây có thể là bất kỳ địa chỉ email nào bạn chọn.
    • Phần này cho server nhận biết nơi gửi báo cáo về các lỗi DMARC. Các báo cáo này được gửi theo thời gian thực tới quản trị viên của domain mà có DMARC record. Đồng thời có chứa thông tin chi tiết về từng lỗi riêng. Địa chỉ email này phải từ domain mà MARC record được gửi đi.
      • “rf = afrf”
    • Định dạng báo cáo. Phần này cho server nhận biết loại báo cáo mà chủ sở hữu chính sách muốn. Trong trường hợp này rf = afrf có nghĩa là định dạng báo cáo lỗi tổng hợp.
      • pct = 100″
    • Percent – Phần này cho server nhận biết bao nhiêu mail của họ phải tuân theo các thông số của chính sách DMARC. Bạn có thể chọn bất kỳ số nào từ 1-100. Trong trường hợp này, nếu p = được set thành reject, 100% thư không đạt DMARC sẽ bị từ chối.
    • Có một số cơ chế khác có thể được đưa vào DMARC record. Một số điều đáng chú ý bao gồm:
      • “sp =“​

      • “adkim =“​

      • “ri =“​

Cách Tạo DMARC Record​

Bước 1: Tạo Bản Ghi​

Có thể bắt đầu bằng cách tạo 1 bản ghi như sau:
_dmarc.domain.com TXT v=DMARC1; p=none; pct=100; rua=mailto:[email protected];
  • Trong đó, “none” sẽ cho biết đây là chế độ test mode. Mail Server bên nhận sẽ kiểm tra từng message được gửi đến nhưng chỉ gửi về các report mà không thực hiện bất kì hành động nào.
  • Việc làm này giúp ta thu thập thông tin về các địa chỉ mail server gửi đến trước khi quyết định đưa ra hành động phù hợp.

Bước 2: Phân Tích DMARC Report​

  • DMARC Report hay một báo cáo về thông tin thu thập được. Từ đó xác định kết quả là pass hay fail. Có 3 thống kê quan trọng bạn cần lưu ý:
    • 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 tục, kiểm tra đến 2 trường Trusted sourcesUnknown/Threats:
  • Trusted sources: Các địa chỉ email server bao gồm cả domain và IP đã pass cả SPF và DKIM.
  • Unknown/Threats: Những địa chỉ email server không pass đượ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 việc sử dụng DKIM hoặc SPF. Vì vậy, sẽ dẫn đến việc thực thi DMARC trở nên vô cùng nhạy cảm.

Bước 3: Chuyển Tất Cả Địa Chỉ Hợp Lệ Để Gán DMARC​

  • Sau khi đã thu thập được những địa chỉ hợp lệ, chúng ta sẽ tạo một danh sách cho chúng và với mỗi địa chỉ mới lại đối chiếu với danh sách này. Mục đích cuối cùng của DMARC là kiểm tra việc pass cả DKIM và SPF, trong những trường hợp đặc biệt như email forwarding, trong đó Return-path bị thay đổi và SPF failed nhưng có DKIM nó vẫn được xem là email hợp lệ.

Bước 4: Áp Dụng Vào Thực Tế​

  • Bước cuối cùng chính là áp dụng vào thực tế, khi đã thu thập được các đối tượng hợp lệ. Bạn tiến hành chuyển bản ghi sang chế độ giám sát chặt chẽ hơn “p=quarantine”.
  • Đối với các email gửi đến nhưng ở dạng failed sẽ được chuyển vào thư mục Spam hoặc Junk. Cuối cùng, chúng ta sẽ đặt nó ở chế độ khắt khe nhất “p=reject”. Mục đích là đảm bảo loại bỏ hoàn toàn tất cả những email gửi đến nhưng bị failed.
    Bạn có thể tham khảo cách dựng mail server Zoho tại đây

 
Chỉnh sửa lần cuối bởi người điều hành:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Thẻ
dkim dmarc spf
Bên trên