E-mailek aláírása DKIM-mel

5 éve A címről David Grudl  

A DKIM (DomainKeys Identified Mail) egy megbízható e-mail technológia, amely segít a hamisított üzenetek felismerésében is. Az elküldött üzenetet az SMTP-kiszolgáló a feladó tartományának magánkulcsával írja alá, és ezt az aláírást az e-mail fejlécében tárolja. A címzett szervere ezt az aláírást összehasonlítja a tartomány DNS-bejegyzésében tárolt nyilvános kulccsal. Az aláírás összevetésével kimutatható, hogy az e-mail valóban a feladó tartományából származik, és hogy az üzenetet nem módosították az üzenet továbbítása során.

A Nette\Mail a 3.1-es verzió óta támogatja a DKIM-et. A használat nagyon egyszerű:

$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);

Vagy használhatja a konfigurációs fájlt:

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

A szelektor bármely alfanumerikus kisbetűs karakterlánc, amely a DNS-rekord része.

A privát és nyilvános kulcspárt az openssl segítségével hozhatja létre:

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

A nyilvános kulcsot úgy teszi közzé, hogy a DNS-ben TXT rekordot hoz létre a szelektor, a ._domainkey. szó szerinti karakterlánc és a tartománynév összekapcsolásával létrehozott hosztnévhez. A példánkat használva ez a lovenette._domainkey.myweb.com lenne. Egyes rendszergazdáknál a tartomány már előre ki van töltve.

A TXT rekord értéke a v=DKIM1;t=s;k=rsa;p= szó szerinti karakterlánc és a dkim.pub fájlból másolt nyilvános kulcs összekapcsolásával hozható létre. Távolítsa el a környező -----BEGIN PUBLIC KEY----- sorokat, és a kulcsot egyetlen hosszú sorba csomagolja:

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

A "MailTester szolgáltatás:https://www.mail-tester.com/spf-dkim-check " segítségével ellenőrizheti a DKIM-beállításokat.