[SMTP] DKIM 域名金鑰辨識郵件 (DomainKeys Identified Mail)

Intro

DomainKeys Identified Mail - Wikipedia

DKIM 搭配寄件者原則架構 (SPF) 和基於網域的郵件驗證、報告和一致性 (DMARC),讓攻擊者更難以透過這種方式冒充網域。未通過 DKIM 和 SPF 的電子郵件被標記為「垃圾郵件」或不會被電子郵件伺服器傳送。


原理

DKIM 主要有兩個層面:

  1. DKIM 記錄(儲存在網域的 Domain Name System (DNS) 記錄中)
  2. DKIM 標頭(附加至來自網域的所有電子郵件)。

DKIM 使用以公用金鑰加密法為基礎的數位簽章配置來驗證電子郵件的來源。寄件者簽署訊息使用私密金鑰,收件者用公用金鑰驗證簽章。

電子郵件提供者產生公用金鑰和私密金鑰。將公用金鑰提供給網域擁有者以儲存在 DNS 記錄(DKIM 記錄)中。寄件時使用私密金鑰簽署數位簽章於標頭。收件的電子郵件伺服器可以檢查 DKIM DNS 記錄、取得公用金鑰,以及使用公用金鑰驗證數位簽章。

DKIM 標頭範例

# Sender's header
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=example.com; s=your-selector; t=1697443282;  bh=lBFPQM+Co+tNLmBxzfXGr+cYkpDQjnYPaHJUazOv7VU=; h=Subject:To:Date:From:From; b=AX....==
# Receiver's authentication result
dkim=pass header.i=@example.com header.s=your-selector header.b=FfOLSax0;

DNS Record

DKIM Verification - DNS record format - Wikipedia

How to add DKIM and SPF records for your domain in cPanel

Type Host Value
TXT [selector]._domainkey.[domain] v=DKIM1; p=[public-key]
TXT default._domainkey.example.com v=DKIM1; p=76E629F05F709EF665853333EEC3F5ADE69A2362BECE40658267AB2FC3CB6CBE

Selector

selector 是由該網域電子郵件服務提供者發佈的專用值,會包含在 DKIM 標頭中讓對象電子郵件伺服器做 DKIM DNS 查詢。._domainkey. 為 DKIM 記錄 pattern。

Sender specifies DKIM selector -> Receiver uses that selector to quiery DKIM DNS record

References

Leave a Reply

Your email address will not be published. Required fields are marked *