DKIM - DomainKey Indentified Mail là gì? | Chia sẽ kiến thức Linux/Unix

728x90 AdSpace

Nổi bật
Saturday, October 14, 2017

DKIM - DomainKey Indentified Mail là gì?

DKIM - DomainKey Indentified Mail là gì?
I. Khái niệm về DKIM.
DKIM (DomainKeys Indentified Mail) là phương thức xác thực e-mail bằng chữ ký số của tên miền gửi thư, trong đó khóa công khai thường được công bố trên DNS dưới dạng một TXT record. Nó được phát triển từ phương pháp DK của Yahoo và IM của Cisco bằng cách gắn thêm “DKIM Signature” được mã hóa(thường bằng phương pháp mã hóa đối xứng) và header của các email trước khi gửi đi.
II. Cách thức hoạt động DKIM.
DKIM hoạt động với 3 bước chính sau:
Bước 1: Chỉ định thành phần trong email được đưa vào DKIM Signature
Hệ thống bên gửi phải xác định thành phân nào trong email được phép tham gia vào quá trình tạo DKIM Signature. Có thể chọn tất cả thành phần trong email (header + body) hoặc một vài thành phần trong header của email. Tuy nhiên, những thành phần được chọn phải không bị thay đổi trong quá trình gửi email nếu không DKIM Signature sẽ bị xác thực là sai.

Ví dụ: Khi email có kèm DKIM Signature được gửi đến một người nhận có thiết lập tự động chuyển tiếp email (Auto Forward) sang một tài khoản khác thì việc xác thực đối với email vừa nhận dựa trên phương pháp DKIM sẽ bị đánh dấu là không hợp lệ trên hộp mail được chuyển tiếp nếu như bên gửi chỉ định toàn bộ nội dung trong header để đưa vào DKIM Signature vì khi đó header trong email của bên nhận và bên được chuyển tiếp sẽ không hoàn toàn giống nhau. Tuy nhiên, nếu chọn một hoặc một vài trường trong header như From, To, Subject,…thay vì toàn bộ nội dung trong header thì email khi được tự động chuyển tiếp vẫn được xác thực là hợp lệ.
Bước 2: Tạo DKIM Signature và mã hóa
Khi DKIM được triển khai, thì hệ thống sẽ tự động tạo ra một đoạn mã băm (hash) dựa trên các thành phần đã được chỉ định ở bước 1

VD: Trường From và To được chỉ định để đưa vào DKIM Signature thì trường From và To trong email được gửi đi với nội dung như bên dưới sẽ được băm bằng thuật toán MD5 để tạo ra một đoạn mã băm (hash code) và kết hợp với một số thông tin khác để tạo thành DKIM Signature

FROM: [email protected]

TO: [email protected]

==> HASH: e362bfe734dn6d49ae20d5a83bce961850

Đoạn mã băm sẽ được mã hóa bằng khóa Private trước khi gắn vào header của email và gửi đi. Các khóa Private và Public được tạo ra dựa trên sự kết hợp giữa Selector, Domain của bên gửi và thuật toán mã hóa của phương mã hóa bất đối xứng. Khóa Private sẽ được giữ riêng cho hệ thống của bên gửi và khóa Public sẽ được công khai bằng TXT Record trên DNS quản lý Domain của bên gửi.

Lưu ý:

– Selector là một chuỗi ký tự nhưng tùy thuộc vào hệ thống mail đang sử dụng mà chuỗi ký tự sẽ được chỉ định hay được tạo ngẫu nhiên bằng các công cụ tạo DKIM Signature

– Khóa Public trên DNS sẽ có dạng:

+ Loại record: TXT Record

+ Tên record: selector._domainkey.yourdomain.com – VD: 1489906397._domainkey.sharelinux.top (1489906397 là Selector được chọn và sharelinux.top là domain đang tạo DKIM Signature)

+ Nội dung record: v=Phiên_bản_DKIM; k=Thuật_toán_mã_hóa; p=Khóa_Public; – VD: v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDnME FGQ4MbQTRliIGa9nBQ1siw7MxFyNtvh8PxhVXUjn+4AnbkaBFAk2wqsRFf3hReS0uawqK5THLQKlFiyP2ErPH2PIAhrskyTqEXnljNZnmQ85Fd4LjovQJ5shu7ilgXekVpfkmOaf+Sjx014GeiHj1v0y0mEf1WX2aHBJYwYwIDAQAB;

– Ngoài đoạn mã băm thì DKIM Signature còn kèm theo một số thông tin cho phép bên nhận sử dụng để tạo ra đoạn mã băm dựa phục vụ cho việc so sánh như thuật toán băm, các thành phần được băm
Bước 3: Giải mã và xác thực DKIM Signature
Hệ thống của bên nhận khi phát hiện email có chứa DKIM Signature trong header sẽ tiến hành giải mã bằng cách truy vấn đến DNS quản lý Domain của bên gửi để lấy Public key, Selector và thuật toán mã hóa. Các thành phần vừa truy vấn được sẽ kết hợp để giả mã DKIM Signature và lấy về đoạn mã băm của bên gửi. Dựa vào thuật toán băm, thông tin về các thành phần được băm trong DKIM Signature, bên nhận sẽ tiến hành băm các thành phần được chỉ định trên email vừa nhận với thuật toán tương tự như bên gửi và so sánh 2 đoạn mã băm với nhau để xác định email có giả mạo hay không.

VD: Sau khi giải mã DKIM Signature, bên nhận sẽ có đoạn mã băm (e362bfe6113d49ae20d5a83bce961850), thuật toán băm (MD5) và thông tin về các thành phần được băm (From, To) thì bên nhận sẽ lấy nội dung của trường From và To trong email vừa nhận và kết hợp với thuật toán MD5 để tạo ra một đoạn mã băm của bên nhận. Bên nhận sẽ so sánh đoạn mã băm của bên nhận và bên gửi. Nếu 2 đoạn mã băm giống nhau nghĩa là việc xác thực email là hợp lệ và ngược lại thì việc xác thực email là không hợp lệ.
DKIM - DomainKey Indentified Mail là gì? Reviewed by HAPPY on 9:08 AM Rating: 5 DKIM - DomainKey Indentified Mail là gì? I. Khái niệm về DKIM . DKIM (DomainKeys Indentified Mail) là phương thức xác thực e-mail bằng...

No comments:

Copyright © 2017 - 2027 Chia sẽ kiến thức Linux/Unix All Right Reserved
Thiết kế bởi HAPPY
Scroll to Top