E-mailek aláírása DKIM segítségével

5 éve írta David Grudl  

A DKIM (DomainKeys Identified Mail) egy technológia az e-mailek hitelességének növelésére, amely segít a hamisított üzenetek felderítésében is. Az elküldött üzenetet az SMTP-kiszolgáló a feladó domainjének privát kulcsával írja alá, és ezt az aláírást az e-mail fejlécében tárolja. A címzett szervere összehasonlítja ezt az aláírást a domain DNS-rekordjaiban tárolt nyilvános kulccsal. Ha az aláírás megegyezik, az bizonyítja, hogy az e-mail valóban a feladó domainjéből származik, és hogy az üzenetet nem módosították a továbbítás során.

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

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

$mailer = new Nette\Mail\SendmailMailer; // vagy 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 egy tetszőleges alfanumerikus, kisbetűs string, amely a DNS-rekord része.

A privát és nyilvános kulcsot generálhatja online szolgáltatásokkal (pl. easydmarc) vagy helyileg az openssl segítségével:

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

Tegye közzé a nyilvános kulcsot egy TXT rekord létrehozásával a domain DNS-ében, amelynek neve a szelektor, a ._domainkey. string és a domain összekapcsolása lesz. A példánkban ez lovenette._domainkey.myweb.com lenne. Néhány adminisztrációs felületen a domain már előre ki van töltve.

A rekord értéke a v=DKIM1;t=s;k=rsa;p= string és a nyilvános kulcs összekapcsolása lesz, amelyet másoljon ki a dkim.pub fájlból. Távolítsa el a körülvevő -----BEGIN PUBLIC KEY----- kommenteket, és fűzze össze a sorokat egyetlen hosszú sorba:

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

A DKIM beállításainak ellenőrzéséhez használhatja például a MailTester szolgáltatását.

David Grudl Open-source creator and AI specialist who opens doors to the world of artificial intelligence. His projects including Nette and Texy! power websites you visit daily. He contributes to Uměligence and La Trine while hosting Tech Guys. Through AI workshops, he champions technology that genuinely improves people's lives.