Semnați e-mailurile cu DKIM

acum 4 ani De la David Grudl  

DKIM (DomainKeys Identified Mail) este o tehnologie de e-mail de încredere care ajută, de asemenea, la detectarea mesajelor false. Mesajul trimis este semnat de serverul SMTP cu cheia privată a domeniului expeditorului, iar această semnătură este stocată în antetul e-mailului. Serverul destinatarului compară această semnătură cu cheia publică stocată în înregistrările DNS ale domeniului. Prin compararea semnăturii, se demonstrează că e-mailul provine de fapt din domeniul expeditorului și că mesajul nu a fost modificat în timpul transmiterii acestuia.

Nette\Mail acceptă DKIM începând cu versiunea 3.1. Utilizarea este foarte simplă:

$options = [
	'domain' => 'myweb.com',
	'selector' => 'lovenette',
	'privateKey' => file_get_contents('dkim.priv'),
//	'passPhrase' => '****',
	'testMode' => true,
];

$mailer = new Nette\Mail\SendmailMailer; // or SmtpMailer
$mailer->setSigner(new Nette\Mail\DkimSigner($options));
$mailer->send($mail);

Sau puteți utiliza fișierul de configurare:

mail:
	dkim:
		domain: myweb.com
	    selector: lovenette
	    privateKey: %appDir%/cert/dkim.priv
	    passPhrase: ...
	    testMode: ...

Selectorul este orice șir alfanumeric minuscul care face parte din înregistrarea DNS.

Puteți genera o pereche de chei private și publice folosind openssl:

openssl genrsa -out dkim.priv 1024
openssl rsa -in dkim.priv -pubout > dkim.pub

Publicarea cheii publice se face prin crearea unei înregistrări TXT în DNS pentru numele de gazdă creat prin concatenarea selectorului, a șirului literal ._domainkey. și a numelui de domeniu. Folosind exemplul nostru, acesta ar fi lovenette._domainkey.myweb.com. În unele administrații, domeniul este deja precompletat.

Valoarea înregistrării TXT poate fi creată prin concatenarea șirului literal v=DKIM1;t=s;k=rsa;p= și a cheii publice pe care o copiați din fișierul dkim.pub. Îndepărtați liniile din jurul -----BEGIN PUBLIC KEY----- și înglobați cheia într-o singură linie lungă:

v=DKIM1;t=s;k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDi5y95Mi8FZ8LOSmi7nA/EFhn4a4/Zq3BnnmPFdu1IvduDwMGRrRW5V9FKjXvr4AnUq7eMLRtEdWYRpR9BXLdCWiJ2N4yKJG7SEEir8DMYOGGeqJZoR/kWFiG++GW++sdhfukFflPusJjrWr+4Pc4/qxMSrqUk/rVdsSlTDDRy/QIDAQAB

Puteți utiliza MailTester service pentru a verifica setările DKIM.