溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

DKIM Selector的原理及用法是什么

發(fā)布時(shí)間:2021-12-23 09:05:40 來(lái)源:億速云 閱讀:136 作者:柒染 欄目:網(wǎng)絡(luò)安全

DKIM Selector的原理及用法是什么,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

DKIM selector 是什么?

DKIM selector,又名 DKIM 選擇子或 DKIM 選擇器,是一個(gè)被郵件發(fā)送服務(wù)器用來(lái)確定私有密鑰來(lái)對(duì)郵件簽名的字符串。在郵件接收服務(wù)器上,它被用來(lái)在 DNS 中獲取公有密鑰來(lái)驗(yàn)證郵件的完整性。

每創(chuàng)建一個(gè)私有/公有密鑰對(duì)時(shí),將會(huì)產(chǎn)生一個(gè) { selector, 私有密鑰, 公有密鑰 } 元組,其中 selector 被用來(lái)獲取私有密鑰和公有密鑰。

如何選擇 DKIM selector?

當(dāng)用戶為郵件發(fā)送服務(wù)(例如 SendGrid)創(chuàng)建一個(gè)私有/公有密鑰對(duì)時(shí),需要指定一個(gè) DKIM selector,該 DKIM selector 可以是任何字符串。

為什么需要多個(gè) DKIM selectors?

基于以下的理由,需要有多個(gè)私有/公有密鑰對(duì):

DKIM key rotation,下面將會(huì)解釋;

在單一的域名上為多個(gè)郵件發(fā)送服務(wù)設(shè)置 DKIM;每個(gè)服務(wù)可以有自己?jiǎn)为?dú)的 selector,這樣每個(gè)服務(wù)的簽名/驗(yàn)證不會(huì)干擾其他服務(wù)。

每當(dāng)一封郵件發(fā)送/驗(yàn)證的時(shí)候,只有一對(duì)密鑰會(huì)被用到。這時(shí)候 DKIM selector 就會(huì)派上用場(chǎng):該 DKIM selector 被簽名服務(wù)器用來(lái)在密鑰對(duì)中獲取私有密鑰,驗(yàn)證服務(wù)器則用同一個(gè) DKIM selector 來(lái)獲取公有密鑰。

DKIM selector 在 DKIM 驗(yàn)證中如何工作?

一旦簽名服務(wù)器確定了 DKIM selector,該服務(wù)器就用它來(lái)找到對(duì)應(yīng)的密鑰,來(lái)計(jì)算簽名。一旦簽名計(jì)算完畢,該 DKIM selector 被插入到郵件頭部的 s=標(biāo)簽中,然后發(fā)送該郵件。

例如,假定選擇的 selector 是 s1,該標(biāo)簽就是 s=s1。再次提醒一下,該 selector 可以是任何字符串,像 thisismyselector1234,只要它指向一個(gè)有效的私有/公有密鑰對(duì)就可以了。

這是一個(gè)實(shí)際的 DKIM 簽名頭域例子:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dmarcly.com; h=content-transfer-encoding:content-type:from:mime-version:subject: x-feedback-id:to; s=s1; bh=jCC0oQBCKfJ10bCI3PCG52Zwowyeh2haGJPACkWN9F4=; b=GzLBVZ0M1hMt1Y7hVT+ajaNrswTv+/FFVMrcaixD70hpTJwAmNwZUKJIzLslSC+iWHby 9gm+yfx6Z1qnXIL6qgBPnlZD4zwyK4D3Umd1je82jniuD7RJWYDqJH0zL+EevCDdoVZGmT IlxzZB6v95bws6539z/5qee+Xmu5KYe4Y=

上述 DKIM 簽名所用的 DKIM selector 是 s=s1。

當(dāng)郵件抵達(dá)接收服務(wù)器時(shí),服務(wù)器檢查郵件頭域來(lái)找到 s=標(biāo)簽。如果該標(biāo)簽存在,服務(wù)器從中抽取 selector,然后在 DNS 的以下位置尋找公有密鑰:

s1._domainkey.example.com

如果公有密鑰被找到,服務(wù)器用它來(lái)檢查郵件的完整性。如果檢查通過(guò),DKIM 驗(yàn)證成功,否則失敗。

如果無(wú)法找到公有密鑰,DKIM 驗(yàn)證失敗。

DKIM key rotation 是什么?

DKIM 已經(jīng)證明是用來(lái)驗(yàn)證郵件完整性的有效手段。但是 DKIM 也有自身的弱點(diǎn)。如果保存 DKIM 的私有密鑰的系統(tǒng)被入侵的話,安全性將大打折扣。因此,為了最小化被破解的風(fēng)險(xiǎn),應(yīng)該定期改變 DKIM 密鑰對(duì)。這叫 DKIM key rotation (DKIM 密鑰輪換)。

每次密鑰輪換的時(shí)候,一個(gè)新的 {selector, 私有密鑰, 公有密鑰} 元組將被產(chǎn)生。然后公有密鑰將被發(fā)布在 DNS 中,你需要重新配置郵件發(fā)送服務(wù)器來(lái)使用新的私有密鑰。完成以后,該服務(wù)器將會(huì)使用新的私有密鑰來(lái)對(duì)所有即將被發(fā)送的郵件簽名。

原來(lái)的密鑰應(yīng)當(dāng)繼續(xù)保存7天,然后就可以安全地移除。原因是在郵件發(fā)送以后和到達(dá)接受服務(wù)器之間可能會(huì)有延遲。如果在接受服務(wù)器上有臨時(shí)錯(cuò)誤的話,這樣的延遲可能長(zhǎng)達(dá)幾天。為了讓 DKIM 驗(yàn)證通過(guò),接收服務(wù)器必須能夠在 DNS 中找到對(duì)應(yīng)的公有密鑰。

只有當(dāng)你運(yùn)行自己的郵件發(fā)送服務(wù)器的時(shí)候,你才需要手工做 DKIM 密鑰輪換。如果你使用類似 SendGrid, Office 365, 或者 GSuite 等服務(wù)來(lái)發(fā)送郵件的話,你無(wú)需做任何事 -- DKIM 密鑰輪換是自動(dòng)完成的。

DKIM selector VS DKIM 記錄

如果你在類似 SendGrid 的郵件發(fā)送服務(wù)中設(shè)置 DKIM 的話,它將會(huì)為你創(chuàng)建 CNAME 類型的 DKIM 記錄。下面是一條 CNAME 類型的 DKIM 記錄:

s1.domainkey.u5022280.wl431.sendgrid.net

你需要在 DNS 中發(fā)布類似的記錄,使得接收服務(wù)器可以訪問(wèn)。留意上面記錄中的 s1部分:這是 DKIM selector,被接收服務(wù)器用來(lái)獲取公有密鑰,然后將其用來(lái)驗(yàn)證 DKIM 簽名。

如何用 DKIM selector 來(lái)檢查 DKIM 記錄

如果你需要檢查某個(gè)域名上的 selector 是否有 DKIM 記錄,可以用這個(gè) 免費(fèi) DKIM 記錄檢查器.

輸入需要檢查的域名和 selector 即可。

看完上述內(nèi)容,你們掌握DKIM Selector的原理及用法是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI