Admitiré que no soy muy hábil en la verificación de claves. Lo que tengo es un script que descarga mensajes de un servidor POP3, y estoy intentando verificar las firmas DKIM en PHP. Ya he averiguado la comprobación de validación de hash de cuerpo (bh), pero no puedo entender la validación de encabezado.¿Cómo verifico una firma DKIM en PHP?
http://www.dkim.org/specs/rfc4871-dkimbase.html#rfc.section.6.1.3
A continuación se muestra un ejemplo de mis encabezados de los mensajes. He podido usar el paquete Mail :: DKIM para validar la firma en Perl, así que sé que es bueno. Simplemente no puedo entender las instrucciones en el RFC y traducirlas al código 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]
puedo extraer la clave pública de mi DNS muy bien, y creo que estoy canonizan las cabeceras correctamente, pero simplemente no puede conseguir la firma validada. No creo que estoy preparando mi clave o calculando la validación de la firma correctamente.
Es esto algo que es posible (¿necesito extensiones de pera o algo?) O está validando manualmente una firma DKIM en PHP no es factible?
Pongo los encabezados en etiquetas de código, si no te gusta, puedes retroceder pero creo que es más fácil de leer. –
Gracias. Pensé que había hecho eso, pero creo que arruiné algo. – angrychimp
¿Ya entendiste esto? – Xeoncross