Je vais admettre que je ne suis pas très habile à la vérification des clés. Ce que j'ai est un script qui télécharge des messages depuis un serveur POP3, et j'essaye de vérifier les signatures DKIM en PHP. J'ai déjà trouvé la vérification de validation du corps hash (bh), mais je ne peux pas comprendre la validation de l'en-tête.Comment vérifier une signature DKIM en PHP?
http://www.dkim.org/specs/rfc4871-dkimbase.html#rfc.section.6.1.3
Voici un exemple de mes têtes de message. J'ai été capable d'utiliser le paquet Mail :: DKIM pour valider la signature en Perl, donc je sais que c'est bon. Je ne peux pas sembler comprendre les instructions dans la RFC et les traduire en code 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; [email protected]; t=1268436255;
h=From:Subject:X-Outgoing:Date;
bh=gqhC2GEWbg1t7T3IfGMUKzt1NCc=;
b=ZmeavryIfp5jNDIwbpifsy1UcavMnMwRL6Fy6axocQFDOBd2KjnjXpCkHxs6yBZn
Wu+UCFeAP+1xwN80JW+4yOdAiK5+6IS8fiVa7TxdkFDKa0AhmJ1DTHXIlPjGE4n5;
To: [email protected]
Message-ID: <EF.CC.24859.F1DCA9B4>
From: DKIM Tester <[email protected]>
Reply-To: [email protected]
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: [email protected]
X-OriginalArrivalTime: 12 Mar 2010 23:25:50.0326 (UTC) FILETIME=[5A0ED160:01CAC23B]
je peux extraire la clé publique de mon DNS très bien, et je crois que je canonisant les en-têtes correctement, mais je ne peux pas obtenir la signature validée. Je ne pense pas que je prépare ma clé ou que je calcule correctement la validation de la signature.
Est-ce que c'est quelque chose qui est possible (ai-je besoin d'extensions de poire ou quelque chose?) Ou est-ce que valider manuellement une signature DKIM en PHP n'est pas faisable?
Je mets les en-têtes dans les étiquettes de code, si vous ne l'aimez pas, n'hésitez pas à revenir en arrière, mais je pense que c'est plus facile à lire. –
Merci. Je pensais que j'avais fait ça, mais je suppose que j'ai foiré quelque chose. – angrychimp
Avez-vous encore compris? – Xeoncross