Υπογραφή μηνυμάτων ηλεκτρονικού ταχυδρομείου με DKIM

5 χρόνια πριν Από το David Grudl  

Το DKIM (DomainKeys Identified Mail) είναι μια αξιόπιστη τεχνολογία ηλεκτρονικού ταχυδρομείου που βοηθά επίσης στον εντοπισμό παραποιημένων μηνυμάτων. Το μήνυμα που αποστέλλεται υπογράφεται από τον διακομιστή SMTP με το ιδιωτικό κλειδί του τομέα του αποστολέα και η υπογραφή αυτή αποθηκεύεται στην κεφαλίδα του ηλεκτρονικού ταχυδρομείου. Ο διακομιστής του παραλήπτη συγκρίνει αυτή την υπογραφή με το δημόσιο κλειδί που είναι αποθηκευμένο στις εγγραφές DNS του τομέα. Με την αντιστοίχιση της υπογραφής, αποδεικνύεται ότι το μήνυμα ηλεκτρονικού ταχυδρομείου προέρχεται πράγματι από τον τομέα του αποστολέα και ότι το μήνυμα δεν τροποποιήθηκε κατά τη διάρκεια της μετάδοσης του μηνύματος.

Το Nette\Mail υποστηρίζει το DKIM από την έκδοση 3.1. Η χρήση είναι πολύ απλή:

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

Ή μπορείτε να χρησιμοποιήσετε το αρχείο ρυθμίσεων:

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

Ο επιλογέας είναι οποιαδήποτε αλφαριθμητική συμβολοσειρά με πεζά γράμματα που αποτελεί μέρος της εγγραφής DNS.

Μπορείτε να δημιουργήσετε ένα ζεύγος ιδιωτικού και δημόσιου κλειδιού χρησιμοποιώντας το openssl:

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

Το δημόσιο κλειδί δημοσιεύεται με τη δημιουργία μιας εγγραφής TXT στο DNS για το όνομα κεντρικού υπολογιστή που δημιουργείται από τη συνένωση του επιλογέα, της κυριολεκτικής συμβολοσειράς ._domainkey. και του ονόματος τομέα. Χρησιμοποιώντας το παράδειγμά μας, αυτό θα ήταν lovenette._domainkey.myweb.com. Σε ορισμένες διοικήσεις ο τομέας είναι ήδη προσυμπληρωμένος.

Η τιμή της εγγραφής TXT μπορεί να δημιουργηθεί με τη συνένωση της κυριολεκτικής συμβολοσειράς v=DKIM1;t=s;k=rsa;p= και του δημόσιου κλειδιού που αντιγράφετε από το αρχείο dkim.pub. Αφαιρέστε τις περιβάλλουσες γραμμές -----BEGIN PUBLIC KEY----- και τυλίξτε το κλειδί σε μία μόνο μεγάλη γραμμή:

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

Μπορείτε να χρησιμοποιήσετε την υπηρεσία "MailTester service:https://www.mail-tester.com/spf-dkim-check " για να ελέγξετε τις ρυθμίσεις DKIM.

Τελευταίες θέσεις