DKIM — DomainKeys Identified Mail
Κρυπτογραφική υπογραφή στα emails που εξακριβώνει ότι όντως στάλθηκαν από το domain.
Τι είναι το DKIM
Το DKIM (DomainKeys Identified Mail) προσθέτει μια κρυπτογραφική υπογραφή στα emails που στέλνεις. Ο receiving server παίρνει το δημόσιο κλειδί σου από το DNS, επιβεβαιώνει την υπογραφή, και ξέρει ότι (α) το email όντως προέρχεται από τον server που υπέγραψε για το domain σου και (β) δεν τροποποιήθηκε καθ’ οδόν.
Σε αντίθεση με το SPF που ελέγχει IP διευθύνσεις, το DKIM ελέγχει το ίδιο το περιεχόμενο του μηνύματος.
Πώς λειτουργεί
- Δημιουργείς ένα ζεύγος κλειδιών (public/private) στον mail server σου.
- Δημοσιεύεις το public key ως TXT record στο DNS, σε διεύθυνση
{selector}._domainkey.{domain}. - Όταν στέλνεις email, ο server το υπογράφει με το private key και προσθέτει την υπογραφή σε header
DKIM-Signature. - Ο receiver κατεβάζει το public key από το DNS, επαληθεύει την υπογραφή.
Παράδειγμα DKIM record
selector1._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUA..."
Στοιχεία:
v=DKIM1— έκδοση πρωτοκόλλουk=rsa— αλγόριθμος (RSA· σπάνια Ed25519)p=...— Base64-encoded public keyselector1— όνομα της συγκεκριμένης κλειδαρμοιβής (έχεις πολλαπλά selectors για rotation)
Selector rotation
Οι περισσότεροι πάροχοι (Google, Mailgun, SendGrid) χρησιμοποιούν διαφορετικά selectors
(google, mailgun, s1, s2...) και τα εναλλάσσουν περιοδικά για
ασφάλεια. Όταν αλλάζεις provider, μην σβήνεις τα παλιά selectors αμέσως — άφησέ τα μέχρι να
σταματήσει η κίνηση μέσω αυτών.
Συχνά λάθη
- Λάθος μέγεθος κλειδιού: 1024 bit θεωρείται πλέον αδύναμο. Χρησιμοποίησε 2048.
- TXT τιμή μεγαλύτερη των 255 χαρακτήρων: σπάσε σε πολλαπλά strings.
- Λείπει το
p=ή είναι κενό — σημαίνει «το κλειδί αυτό ανακλήθηκε». - Μόνο DKIM χωρίς DMARC — receivers δεν ξέρουν τι να κάνουν στα fails.