Vì vậy thư điện tử đã được trang bị nhiều phương thức để mở rộng tiện ích, an toàn, bảo mật cho người dùng thư điện tử. Trong đó, tiêu chuẩn khóa xác định thư điện tử cho miền (DomainKeys Identified Mail - DKIM) là một phương thức thông báo, xác thực mới được sử dụng phổ biến những năm gần đây nhằm xác thực hòm thư được sử dụng trong bản ghi DNS của miền.
_h1.jpg)
Hình 1: Giới thiệu về DKIM
Bản ghi DKIM phức tạp hơn bản ghi SPF một chút, bản ghi SPF (Sender Policy Framework) hay khung chính sách người gửi là cơ chế mặc định trong khai báo DNS của miền, nó giúp miền có thể xác nhận địa chỉ IP nào có thể truyền thông báo với miền của nó, đây là một tiêu chuẩn/bản ghi phổ biến khi triển khai thư điện tử cho mỗi miền riêng và mang tính bắt buộc cao. DKIM cũng được biết đến là một công nghệ xác thực email miễn phí hay một phương pháp thêm con dấu miền chống giả mạo vào một phần email ra đời từ năm 2005. Cụ thể, DKIM sử dụng một phương pháp được gọi là “mật mã khóa công khai” để xác minh rằng một thư email được gửi từ một máy chủ thư được ủy quyền, nhằm phát hiện giả mạo và ngăn chặn việc gửi email có hại như thư rác. DKIM cung cấp cho email một tiêu đề chữ ký được thêm vào email và được bảo mật bằng cặp khóa bí mật/công khai. Việc ký DKIM này hoạt động giống như một hình mờ cho email để người nhận email có thể xác minh rằng email thực sự đến từ miền mà nó cho biết là có và không bị giả mạo. Mỗi chữ ký DKIM chứa tất cả thông tin cần thiết để máy chủ email xác minh rằng chữ ký đó là thật và nó được mã hóa bằng một cặp khóa DKIM. Máy chủ email gốc có cái được gọi là “khóa bí mật”, có thể được xác minh bởi máy chủ thư nhận hoặc ISP bằng nửa còn lại của cặp khóa, được gọi là “khóa công khai”. Khóa công khai tồn tại trong bản ghi DKIM trong DNS miền dưới dạng tệp văn bản. Để kết nối và giải mã các chữ ký được mã hóa này, người thiết lập bản ghi DKIM sẽ sử dụng bộ chọn DKIM.
Tổng quan về DKIM
Thư được nhận dạng DomainKeys (DKIM) cho phép một người, vai trò hoặc tổ chức yêu cầu một số trách nhiệm đối với thư bằng cách liên kết tên miền với thư mà họ được phép sử dụng. Đây có thể là một tổ chức của tác giả, một cơ quan tiếp sức hoạt động hoặc một trong những đại lý của họ. Việc xác nhận trách nhiệm được xác thực thông qua chữ ký mật mã và bằng cách truy vấn trực tiếp miền của Người ký để truy xuất khóa công khai thích hợp. Quá trình truyền thông điệp từ tác giả đến người nhận thông qua các rơle thường không tạo ra thay đổi đáng kể nào đối với nội dung thông báo và do đó giữ nguyên chữ ký DKIM. Một thông báo có thể chứa nhiều chữ ký, từ các tổ chức giống nhau hoặc khác nhau liên quan đến thông điệp.
Cách tiếp cận do DKIM thực hiện khác với các cách tiếp cận trước đây đối với việc ký tin nhắn:
- Chữ ký thư được viết dưới dạng trường tiêu đề thư để khi không phải con người nhận thư, hoặc do phần mềm (Mail User Agent) nhận trách được nhầm lẫn bởi nội dung liên quan đến chữ ký xuất hiện trong phần nội dung của thư;
- Không có sự phụ thuộc vào các cặp khóa công khai và khóa riêng tư được phát hành bởi các tổ chức cấp chứng chỉ đáng tin cậy, nổi tiếng;
- Không có sự phụ thuộc vào việc triển khai bất kỳ giao thức hoặc dịch vụ Internet mới nào để phân phối hoặc thu hồi khóa công khai; xác minh chữ ký thất bại không buộc từ chối thông báo;
- DKIM có sử dụng mã hóa trong việc tạo mã nhưng mã hóa không phải là cách thức triển khai bao trùm;
- Lưu trữ tin nhắn không phải là một mục tiêu thiết kế.
Do đó DKIM được xây dựng:
- Tương thích với cơ sở hạ tầng email hiện có và minh bạch đến mức tối đa có thể;
- Yêu cầu cơ sở hạ tầng mới tối thiểu;
- Có thể được thực hiện độc lập với khách hàng để giảm thời gian triển khai;
- Có thể được triển khai từng bước;
- Cho phép ủy quyền ký kết cho bên thứ ba.
Và bản thân chữ ký DKIM:
- Không xác thực hoặc xác minh nội dung của tiêu đề hoặc nội dung thư, chẳng hạn như trường “thông tin mà người gửi giới thiệu xuất phát từ đâu”, ngoài việc xác nhận tính toàn vẹn của dữ liệu giữa thời điểm ký và thời điểm xác minh.
- Không đưa ra bất kỳ khẳng định nào về hành vi của người ký.
- Không quy định bất kỳ hành động cụ thể nào để người nhận thực hiện khi xác minh chữ ký thành công.
- Không cung cấp sự bảo vệ sau khi xác minh chữ ký.
- Không bảo vệ chống lại việc gửi lại (phát lại) một tin nhắn đã có chữ ký đã được xác minh; do đó, người trung gian chuyển tiếp hoặc người nhận có thể đăng lại tin nhắn - nghĩa là đăng nó dưới dạng tin nhắn mới - với chữ ký ban đầu vẫn có thể xác minh được, mặc dù (những) người nhận mới có thể khác với những người ban đầu do tác giả chỉ định.
Thành phần của bản ghi DKIM
Dưới đây là ví dụ các thành phần có trong một bản ghi DKIM:
- DKIM-Signature là tiêu đề được đăng ký cho các tin nhắn đã ký có trong DKIM record.
- v=1; là phiên bản DKIM record đang được máy chủ gửi sử dụng.
- a=rsa-sha256; là thuật toán được sử dụng để tạo hàm băm cho khóa bí mật/công khai. Có hai thuật toán chữ ký được hỗ trợ chính thức cho hàm băm này là: rsa-sha1 và rsa-sha256.
- c=relaxed/relaxed; là đặt tư thế chuẩn hóa cho miền gửi. Điều này điều chỉnh những thay đổi về khoảng trắng và dòng văn bản trong một tin nhắn. Có hai tư thế được chuẩn hóa, trong đó ’simple’ là không cho phép bất kỳ thay đổi nào và ’relax’ cho phép các thay đổi phổ biến đối với khoảng trắng và dòng tiêu đề. Quá trình chuẩn hóa trong tiêu đề và nội dung có thể được quản lý riêng lẻ và sử dụng định dạng tiêu đề hay nội dung.
- s=20130519032151pm; là để chỉ bộ chọn DKIM được sử dụng trong DKIM record để xác minh.
- d=mic.gov.vn; là Miền email đã ký thư. Điều quan trọng là chữ ký DKIM record của người dùng phải sử dụng tên miền ở đây vì điều này củng cố danh tiếng miền với các ISP khi một thành viên gửi email hợp lệ, bất kể Nhà cung cấp dịch vụ email mà thành viên này sử dụng là gì.
- From:Date:Subject:MIME-Version:Content-Type Content-Transfer-Encoding:To:Message-ID; là các tiêu đề đi kèm với thư khi nó được ký bằng mật mã.
• bh=vYFvy46eesUDGJ45hyBTH30JfN4= ; là giá trị của một băm nội dung được tạo trước khi tiêu đề thư được ký.
• b=iHeFQ+7rCiSQs3DPjR2eUSZSv4i/Kp+sipURfVH7BG. . . . . . . . . . . . = ;
là Chữ ký mật mã của tất cả các thông tin trước đó từ trường DKIMSignature. Mục nhập này được coi là một chuỗi trống trong quá trình xác minh.
Bộ chọn DKIM
Bộ chọn DKIM được chỉ định trong tiêu đề DKIM-Singature và cho biết nơi phần khóa công khai của cặp khóa DKIM tồn tại trong DNS. Máy chủ nhận sử dụng bộ chọn DKIM để định vị và truy xuất khóa công khai để xác minh rằng email là xác thực và không bị thay đổi. Bộ chọn DKIM được chỉ định khi cặp khóa bí mật/công khai được tạo theo DKIM được thiết lập cho miền email (hoặc người gửi email) và nó có thể là bất kỳ chuỗi văn bản tùy ý nào. Miền có thể có nhiều khóa DKIM công khai và giá trị bộ chọn đảm bảo máy chủ người nhận đang sử dụng đúng khóa công khai. Bộ chọn DKIM được chèn vào tiêu đề của DKIM-Singature trong email dưới dạng thẻ s = khi email được gửi.
Thuật toán SHA trong DKIM
DKIM hỗ trợ nhiều thuật toán ký số. Tuy nhiên thì trong đặc tả kỹ thuật chính thức, DKIM đã giới thiệu sử dụng RSA. Hai thuật toán được giới thiệu trong đặc tả kỹ thật về khóa DKIM tại SFC 6376 xuất bản năm 2011 là rsa-sha1 và rsa- sha256. Trong đó nhấn mạnh người ký phải thực hiện và nên ký bằng rsa-sha256. Người xác minh phải triển khai cả rsa-sha1 và rsa-sha256. Mặc dù rsa-sha256 được khuyến khích sử dụng, tuy nhiên một số người gửi có thể thích sử dụng rsa-sha1 hơn khi cân bằng sức mạnh bảo mật với hiệu suất, độ phức tạp hoặc các nhu cầu khác (rsa-sha1 thì tốc độ tạo và giải mã nhanh hơn rsa-sha256). Tuy nhiên đến năm 2020, rsa-sha1 gần như bị loại bỏ do thời gian bị bẻ gãy, tấn công đã nhanh hơn trước rất nhiều nhờ sự phát triển của máy móc kỹ thuật. Một hàm khác có thể sử dụng là rsa-sha512, đối với rsa-sha512 thì mức độ an toàn cao hơn nhưng nhược điểm là lại ít được hỗ trợ hơn. Vì vậy rsa-sha256 trở thành mặc định trong định dạng cấu trúc của DKIM.
Các mối đe dọa thúc đẩy triển khai DKIM
Để xây dựng và triển khai hiệu quả DKIM, nhóm công tác tại IETF đã xây dựng tài liệu về những kịch bản có thể xảy ra và từ những kịch bản này là căn cứ thúc đẩy việc xây dựng, triển DKIM trong hệ thống thư điện tử hiện nay.
Đối với mối đe dọa được đánh giá là có những hành động xấu. Ở mức thấp nhất là những kẻ xấu có thể chỉ gửi email, có thể bằng cách sử dụng một trong nhiều công cụ thương mại có sẵn mà người nhận không muốn nhận. Những công cụ này thường cho phép người ta làm sai lệch địa chỉ gốc của các thông điệp, và trong tương lai, chúng cũng có thể tạo ra các chữ ký thông báo giả.
Ở cấp độ tiếp theo là những người được coi là "chuyên nghiệp" gửi email không mong muốn. Những kẻ tấn công này sẽ triển khai cơ sở hạ tầng cụ thể, bao gồm đại lý chuyển thư (MTA), các miền đã đăng ký và mạng của các máy tính bị xâm nhập để kết thúc thư và trong một số trường hợp là thu thập địa chỉ để gửi. Những người gửi này thường hoạt động như các doanh nghiệp thương mại và gửi tin nhắn thay mặt cho các bên thứ ba.
Những kẻ xấu muốn lấy các thông tin của người dùng thường tạo ra những tin nhắn tinh vi, chẳng hạn như từ một kế hoạch lừa đảo dựa trên email. Những kẻ tấn công này có thể sử dụng tất cả các cơ chế trên và ngoài ra có thể tấn công chính cơ sở hạ tầng Internet, bao gồm cả các cuộc tấn công nhiễm độc bộ nhớ cache DNS và các cuộc tấn công định tuyến IP.
Một số hướng triển khai, sử dụng thực tế với DKIM
Dưới đây là một số hướng triển khai, sử dụng thực tế cụ thể đối với DKIM:
- Sử dụng DKIM như một phần của Đánh giá độ tin cậy: DKIM tham gia vào việc nâng cao định hướng tin cậy cho dịch vụ email của Internet, để tạo điều kiện thuận lợi cho các quyết định xử lý thư, chẳng hạn như gửi và hiển thị nội dung. Việc xử lý thông điệp theo định hướng tin cậy có sự khác biệt đáng kể so với các phương pháp tiếp cận được thiết lập lâu đời hơn xem xét thông điệp dưới góc độ rủi ro và lạm dụng. Với sự tin tưởng, có sự trao đổi hợp tác giữa một người sẵn sàng tham gia dọc theo đường gửi và một người sẵn sàng tham gia tại địa điểm người nhận. Ngược lại, mô hình rủi ro đòi hỏi hành động độc lập, đơn phương của trang web người nhận, đối mặt với một người gửi có khả năng không xác định, thù địch và lừa đảo. Điều này chuyển thành một sự khác biệt rất cơ bản về kỹ thuật: đối mặt với hành động đơn phương của người nhận và thậm chí cả những nỗ lực chống đối của người gửi, các cơ chế định hướng rủi ro dựa trên phương pháp phỏng đoán. Đoán cho ra kết quả thống kê với kết quả giả vờ sai thông tin và giả vờ đúng thông tin. Đối với các trao đổi dựa trên niềm tin, mục tiêu là trao đổi thông tin xác định. Đối với DKIM, thông tin đó là một số nhận dạng đại diện cho một luồng thư mà một đánh giá độc lập được tìm kiếm (bởi người ký).
- Chọn một Thẻ DKIM cho phần mã đánh giá định danh: Người ký thông báo cần có khả năng cung cấp dữ liệu chính xác và biết dữ liệu đó sẽ có ý nghĩa gì khi gửi cho Người đánh giá. Nếu có sự không rõ ràng trong sự lựa chọn sẽ được thực hiện từ phía người nhận, thì người gửi sẽ không thể biết cơ sở nào để đánh giá sẽ được sử dụng. DKIM có ba giá trị chỉ định thông tin nhận dạng và rất dễ nhầm lẫn khi sử dụng chúng, mặc dù chỉ một giá trị xác định đầu vào và đầu ra chính thức của DKIM, hai giá trị còn lại được sử dụng cho các mục đích hỗ trợ và hoạt động của giao thức nội bộ, chẳng hạn như kiểm tra và gỡ lỗi.
- Chọn tên miền ký: Chữ ký DKIM có thể phục vụ các vai trò khác nhau, chẳng hạn như tác giả của nội dung, nhà điều hành dịch vụ thư hoặc nhà điều hành một dịch vụ danh tiếng cũng cung cấp dịch vụ ký thay mặt cho khách hàng của mình. Trong các vai trò khác nhau này, cơ sở để phân biệt giữa các phần của lưu lượng truy cập email có thể khác nhau.
- Đánh giá dựa trên thông tin người nhận: DKIM cung cấp cho Người đánh giá danh tính của trang web người nhận một số nhận dạng có thể xác minh được để sử dụng cho phân tích. Mặc dù cơ chế không đưa ra tuyên bố rằng người ký là “Diễn viên Tốt” hay “Diễn viên Xấu”, nhưng nó có thể biết rằng việc sử dụng số nhận dạng là hợp lệ. Điều này trái ngược rõ rệt với các chương trình không có xác thực.
- Lọc: Mỗi một thẻ DKIM sẽ được gắn một mã số nhận dạng, việc lọc được trao cho bộ lọc xử lý được xác định bởi các chính sách cụ thể, theo một loạt các yếu tố và trọng số khác nhau có khả năng xảy ra. Bởi vì tên miền được xác thực đại diện cho một chuỗi cộng tác giữa người ký và người đánh giá, các hành động đôi khi có thể bao gồm việc liên hệ với người ký một cách hợp lý.
Kết luận
Trong bài viết này, tiêu chuẩn khóa xác định thư điện tử cho miền (DKIM) được giới thiệu đến bạn đọc một cách cơ bản từ tổng quan đến một số tình huống triển khai. Đây là một tiêu chuẩn được sử dụng phổ biến trên thế giới khi việc gửi thư điện tử và thư dịch vụ từ các bên thứ ba đã tiềm tàng nhiều rủi ro mất an toàn an ninh. Tại Việt Nam, DKIM mới được áp dụng chỉ mới một vài năm gần đây và sự hình thành ngày một nhiều các nhà cung cấp dịch vụ mail bên thứ ba (thứ tư) như hiện nay thì việc khai báo DKIM là hoàn toàn cần thiết.
Thông qua việc giới thiệu tiêu chuẩn này, bài đọc đưa ra các cơ sở tri thức từ tổng quan, lợi ích đến những chú ý cơ bản trong triển khai DKIM cho việc thiết lập xác thực thư điện tử. Việc thiết lập này sẽ là cần thiết khi các hệ thống thư điện tử của cơ quan nhà nước đang có sự mở rộng kết nối với tổ chức, doanh nghiệp.
Vũ Cao Minh Đức
Tài liệu tham khảo
- D. Crocker (Brandenburg InternetWorking), T. Hansen (AT&T Laboratories), M. Kucherawy (Cloudmark), RFC 6376, September 2021, DomainKeys Identified Mail (DKIM) Signatures, ISSN: 2070 - 1721.