DKIM là gì?

DKIM viết tắt của Domain Keys Identified Mail, là một phương thức giúp xác nhận các email thông qua chữ ký số của miền gửi thư, việc này giúp tránh email giả mạo, mục đích chính ban đầu của DKIM được thiết kế ra là để người nhận có thể xác định email đến từ tên miền cụ thể nào, tên miền đó thật không, có được ủy quyền hay không.

Bên cạnh đó, DKIM cũng có khả năng chặn các địa chỉ email giả mạo, chức năng được hữu ích được sử dụng rất nhiều ngày nay, nhất là đối với các dòng thư giả mạo, thư lừa đảo, email spam chứa các mã độc,…

  • Khóa công khai thường được công bố trên DNS dưới dạng một TXT record.
  • Khi gửi email, bộ ký thư sẽ chèn lên đầu thư một trường DKIM-Signature có nội dung đặc biệt.

DKIM hoạt động như thế nào?

Bản chất của DKIM là một phương thức để xác thực, chứ không phải là phương thức để chống Spam. Vì 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 mọi người thường nghĩ DKIM chính là để chống Spam.

DKIM hoạt động 2 phần riêng biệt: chữ ký và xác minh. 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).

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, tuy nhiên thông thường đều phải thực hiện qua các bước sau:

Ở bên gửi

Bước 1: Tạo ra cặp khóa private/public, phần mềm OpenSSL có hỗ trợ.

Bước 2: 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: 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ể giả mạo).

Ở bên nhận

Bước 1: Nhận email từ bên gửi và kiểm tra email có thông điệp được mã hóa do cấu hình DKIM.

Bước 2: Query DNS để lấy khóa Public của Domain bên gửi rồi giải mã, khi giải mã đúng thì xác nhận nguồn gửi và email đảm bảo, khi giải mã không thấy đúng thì phục thuộc vào chính sách bên nhận để từ chối hoặc vẫn nhận email.

Cấu hình của DKIM
Cấu hình của DKIM

Vì sao bạn nên sử dụng DKIM?

Nên dùng DKIM bởi vì một lá thư gửi tới mà không có chữ ký DKIM thường sẽ bị hiểu là thư Spam.

  • DKIM là một phương pháp xác thực, không phải là một phương pháp chống Spam. Tuy nhiên DKIM hỗ trợ việc ngăn chặn Spam bởi nó có thể đảm bảo thư nhận là 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ả.
  • Đượ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, DKIM sở hữu tiềm năng phát triển vô cùng mạnh mẽ dù chỉ là một phương thức xác nhận email trẻ nhất. DKIM tập trung vào xác định nội dung hơn là phần bên ngoài (trong trường hợp phần bên ngoại bị thay đổi ví dụ thư được forword từ đường chuyển thư vô cùng phức tạp,…). DKIM cho những lá thư 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 như là SPF hay SIDF.
  • Với việc triển khai trên server hơn là trên client, và không đòi hỏi một hạ tầng khóa công khai phức tạp, DKIM đơn giản, gọn 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. (Nhưng tất nhiên, ý nghĩa xác thực cũng nhẹ hơn, DKIM không thể thay thế hoàn toàn cho các phương pháp kia.)