Я признаю, что не очень владею мастерством ключевой проверки. То, что я имею, является сценарием, который загружает сообщения с сервера POP3, и я пытаюсь проверить подписи DKIM в PHP. Я уже выяснил хеш тела (bh) проверка проверки, но я не могу выяснить проверку заголовка.
http://www.dkim.org/specs/rfc4871-dkimbase.html#rfc.section.6.1.3
Ниже пример моих заголовков сообщения. Я смог использовать Почту:: пакет DKIM для проверки подписи в Perl, таким образом, я знаю, что это хорошо. Я просто, может казаться, не выясняю инструкции в RFC и не перевожу их в код PHP.
DomainKey-Signature: q=dns; a=rsa-sha1; c=nofws;
s=angrychimp-1.bh; d=angrychimp.net;
h=From:X-Outgoing;
b=RVkenibHQ7GwO5Y3tun2CNn5wSnooBSXPHA1Kmxsw6miJDnVp4XKmA9cUELwftf9
nGiRCd3rLc6eswAcVyNhQ6mRSsF55OkGJgDNHiwte/pP5Z47Lo/fd6m7rfCnYxq3
DKIM-Signature: v=1; a=rsa-sha1; d=angrychimp.net; s=angrychimp-1.bh; c=relaxed/simple;
q=dns/txt; i=@angrychimp.net; t=1268436255;
h=From:Subject:X-Outgoing:Date;
bh=gqhC2GEWbg1t7T3IfGMUKzt1NCc=;
b=ZmeavryIfp5jNDIwbpifsy1UcavMnMwRL6Fy6axocQFDOBd2KjnjXpCkHxs6yBZn
Wu+UCFeAP+1xwN80JW+4yOdAiK5+6IS8fiVa7TxdkFDKa0AhmJ1DTHXIlPjGE4n5;
To: iptest@example.com
Message-ID:
From: DKIM Tester
Reply-To: noreply@angrychimp.net
Subject: Automated DKIM Testing (angrychimp.net)
X-Outgoing: dhaka
Date: Fri, 12 Mar 2010 15:24:15 -0800
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
MIME-Version: 1.0
Return-Path: noreply@angrychimp.net
X-OriginalArrivalTime: 12 Mar 2010 23:25:50.0326 (UTC) FILETIME=[5A0ED160:01CAC23B]
Я могу извлечь открытый ключ из своего DNS очень хорошо, и я полагаю, что канонизирую заголовки правильно, но я просто не мог проверить подпись. Я не думаю, что готовлю свой ключ или вычисляю проверку подписи правильно.
Это - что-то, что это возможно (мне нужны грушевые расширения или что-то?) или вручную проверяет подпись DKIM в PHP, просто не выполнимом?
Mail :: DKIM имеет следующие зависимости от других библиотек:
Все это также должно быть доступно в PHP. Так что вручную проверить валидность в PHP можно. Mail :: DKIM проверяет подпись "вручную" с помощью этих библиотек. Может быть, вы знакомы с исходным кодом Mail :: DKIM?
Доступна дополнительная " Библиотека OpenDKIM (libopendkim) ". Вы можете построить PHP-модуль на основе этой библиотеки, как другие люди интегрировали OpenSSL, cURL и т. Д. В PHP.
Может быть, вы можете предоставить код вашей функции verify с некоторыми тестовыми данными, чтобы каждый мог их увидеть?
HTH & С уважением
Майкл
Попробуйте взаимодействовать с внешним инструментом или другим языком.
Вы можете адаптировать для этого внешний инструмент или использовать библиотеку C, которая лучше поддерживает работу с DKIM. Вы также можете попробовать интегрироваться через Perl или Python.