PHP nasıl bir DKIM imza doğrularım?

2 Cevap php

Ben anahtar doğrulama çok usta değilim itiraf edeceğiz. Ne var bir POP3 sunucusundan mesajları indirir, ve ben PHP DKIM imzalarını doğrulamak için çalışılıyor bir betik. Zaten vücut hash (bh) doğrulama denetimi anladım, ama ben başlık doğrulama anlamaya olamaz.

http://www.dkim.org/specs/rfc4871-dkimbase.html#rfc.section.6.1.3

Aşağıda benim ileti başlıkları bir örnektir. Perl'de imzayı doğrulamak için Posta :: DKIM paketi kullanmak mümkün oldum, bu yüzden iyi biliyorum. Ben sadece RFC talimatları anlamaya ve PHP kodu içine çevirmek için görünmüyor olabilir.

 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: <EF.CC.24859.F1DCA9B4>
 From: DKIM Tester <noreply@angrychimp.net>
 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]

Ben sadece iyi benim DNS gelen ortak anahtar ayıklamak, ve ben doğru başlıkları standart hale inanamıyorum, ama sadece imza geçerliliği alınamıyor. Benim anahtar hazırlamak veya doğru imza doğrulama işlem sanmıyorum.

Bu mümkün (ben armut uzantıları falan gerek?) Veya elle sadece mümkün değil, PHP bir DKIM imza doğrularken bir şey mi?

2 Cevap

Posta :: DKIM diğer kütüphaneleri aşağıdaki bağımlılıklar vardır:

  • Crypt :: OpenSSL :: RSA
  • Digest :: SHA
  • Mail :: Adresi (MailTools paketinin bir parçası)
  • MIME :: Base64
  • Net :: DNS

Tüm bu aynı zamanda PHP mevcut olmalıdır. Yani elle PHP validatity kontrol edilebilir kontrol edin. Mail :: DKIM bu kütüphanesini "elle" imza doğrularken edilir. Belki Mail kaynağı haline bir tepe var :: DKIM?

Ek olarak "OpenDKIM Library (libopendkim)" kullanılabilir. Diğer insanların PHP içine vb OpenSSL'yi, cURL, entegre gibi bu kütüphane etrafında bir PHP-modül oluşturabilirsiniz.

Belki bazı test verileri ile doğrulamak-fonksiyonunun kodu sağlayabilir, böylece herkes ona bir göz atabilirsiniz?

HTH & Saygılarımızla

Michael

Harici bir araç veya başka bir dil ile birlikte çalışan deneyin.

Bunu yapmak veya DKIM ile çalışmak için daha iyi destek var C kütüphanesini kullanmak için harici bir araç adapte düşünebilirsiniz. Ayrıca, Perl veya Python ile entegre deneyebilirsiniz.