2012-05-22 42 views
2

我爲我的後綴設置了opendkim,現在所有發出的郵件都有DKIM-Signature標題。我想要做的是手動驗證,包括DNS和外部實用程序,最好只使用openssl,以便消息得到正確的簽名。 所以作爲輸入數據,我有:如何使用openssl從電子郵件中驗證DKIM簽名?

  • 電子郵件的DKIM簽名頭
  • DKIM選擇,DKIM域名
  • DKIM私鑰
  • DKIM公共簽名如果記錄的形式,我需要投入DNS

問題是如何使用類似openssl的CLI工具解密和/或驗證DKIM公共簽名的DKIM簽名?

回答

0

它可以做到,但它是複雜的實用程序是最好的方式,但如果你堅持,這是如何做到這一點。

  1. 準備,你需要驗證頭,並在末尾添加 DKIM簽名不實際的簽名中的散列。

  2. 根據所使用的規範化算法對標頭進行標準化。

  3. 如果爲身體設置了一個限制,則需要將其切開,然後將其規範化爲。

  4. 計算主體散列,如果它與dkim簽名中的散列相同,則繼續。

  5. 使用OpenSSL通過提供以下參數,以驗證報頭散列:

    一個。標題哈希。

    b。標準化標題。

    c。公鑰

    d。使用散列算法(SHA1或SHA256)。

我無法爲您提供示例命令,因爲我使用了PHP的openssl_verify()函數來執行此操作。

如果您告訴我,如果您已經完成了這項操作以及如何操作,我將不勝感激。

+0

感謝您的操作步驟,我會盡量在某一天實施,但現在我們認爲使用整個堆棧會更有效(更快) - 這意味着使用DNS服務器和Amavist作爲我們的郵件流。它稍微減慢了驗證,但確保DKIM將使用真正的驗證服​​務。 –

+0

你認爲OpenDKIM?這是一個Linux應用程序,您可以安裝並傳遞電子郵件進行驗證。 – transilvlad