DKIM(DomainKeys?Identified?Mail)是一種電子郵件驗證方法,用于幫助檢測電子郵件中的偽造和篡改行為,以此來提高郵件的安全性和信任度。這種技術允許發件人通過使用數字簽名來證明郵件確實是由其聲稱的發件域名所發送,并且郵件的內容沒有在傳輸過程中被篡改。以下是詳細解釋:
一、DKIM的核心作用
- 防偽造:
防止攻擊者偽造發件人域名(如冒充銀行發送釣魚郵件),保護用戶免受欺詐。 - 防篡改:
確保郵件內容(正文、附件、標題等)在傳輸過程中未被修改,維護郵件完整性。 - 提升可信度:
郵件服務商(如Gmail、Outlook)會優先展示通過DKIM驗證的郵件,減少被標記為垃圾郵件的概率。
二、DKIM的工作原理
- 生成密鑰對:
- 私鑰:由發件方服務器保管,用于對郵件內容生成數字簽名。
- 公鑰:以DNS記錄形式公開,供收件方服務器驗證簽名。
- 簽名郵件:
- 發件方服務器使用私鑰對郵件的特定部分(如頭部、正文)生成哈希值,并加密為簽名。
- 簽名以
DKIM-Signature
字段形式添加到郵件頭部。
- 驗證簽名:
- 收件方服務器通過DNS查詢獲取發件方域名的DKIM公鑰。
- 使用公鑰解密簽名,并與郵件內容重新計算的哈希值比對。
- 若一致,則驗證通過;否則標記為可疑郵件。
三、DKIM記錄的DNS配置
DKIM記錄需在域名的DNS管理面板中添加,格式如下:
類型:TXT |
主機名:_domainkey.example.com (或選擇器._domainkey.example.com,如default._domainkey.example.com) |
值:v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC…(公鑰內容) |
關鍵參數說明:
- v:DKIM版本(通常為
DKIM1
)。 - k:密鑰類型(常見為
rsa
)。 - p:Base64編碼的公鑰內容(長度可能超過255字符,需分多行或使用引號包裹)。
- s(可選):指定簽名算法(如
rsa-sha256
)。 - t(可選):簽名標記(如
y
表示嚴格測試模式)。
四、DKIM記錄的配置步驟
- 生成密鑰對:
- 使用工具(如OpenSSL、Postfix的
dkim-genkey
)生成私鑰和公鑰。 - 示例命令:
openssl genrsa -out private.key 2048 openssl rsa –in private.key -pubout -out public.key
- 使用工具(如OpenSSL、Postfix的
- 創建選擇器(Selector):
- 選擇器用于區分同一域名下的多個DKIM密鑰(如
default
、mail
)。 - 生成選擇器記錄:
選擇器._domainkey.example.com IN TXT “v=DKIM1; k=rsa; p=…”
- 選擇器用于區分同一域名下的多個DKIM密鑰(如
- 配置郵件服務器:
- 將私鑰上傳至郵件服務器(如Postfix、Exim),并配置簽名規則。
- 示例Postfix配置:
milter_default_action = accept milter_protocol = 6 smtpd_milters = unix:/var/run/opendkim/opendkim.sock non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock
- 發布DNS記錄:
- 在DNS管理面板中添加TXT記錄,內容為公鑰。
- 等待DNS記錄生效(通常需數分鐘至48小時)。
- 測試驗證:
- 使用工具(如
dig TXT selector._domainkey.example.com
)檢查DNS記錄是否正確解析。 - 發送測試郵件至驗證工具(如Mail-Tester),檢查DKIM簽名狀態。
- 使用工具(如
五、常見問題與解決
- DNS記錄未生效:
- 檢查主機名是否正確(如漏寫
_domainkey
前綴)。 - 確認TXT記錄值未被截斷(超過255字符需分多行或使用引號)。
- 檢查主機名是否正確(如漏寫
- 簽名驗證失敗:
- 確保郵件服務器配置了正確的選擇器和私鑰。
- 檢查郵件內容是否被修改(如通過代理服務器轉發)。
- 多密鑰管理:
- 為不同郵件服務(如營銷郵件、事務郵件)配置獨立選擇器,便于輪換密鑰。
- 與SPF/DMARC協同:
- DKIM需與SPF(驗證發件服務器IP)和DMARC(定義未通過驗證郵件的處理方式)配合使用,構建完整郵件認證鏈。
注冊域名需要選擇專業的域名服務商-域名頻道。
域名批量查詢、離線注冊、自動續費,自由操作轉出過戶 一鍵鎖定和隱私保護,輕松搞定域名管理。
域名的購買并不是永久無期限,到期后要及時續費,才能正常使用,為了避免域名失效,一定要牢記域名有效期或者經常登陸域名管理后臺查看有效期,我司也會及時通知到你域名續費。
越來越多的公司選擇使用域名頻道的域名和備案服務,購買鏈接?http://www.sirendai.cn/domain/