Funktionsweise von DomainKeys
Die Basis von DomainKeys bildet eine asymmetrische Verschlüsselung. Jede E-Mail wird mit einer digitalen Signatur ausgestattet. Im Domain Name System (DNS) der sendenden Domäne ist ein öffentlicher Schlüssel vorhanden, mithilfe dessen die Signatur verifiziert werden kann. Wenn diese Verifizierung fehlschlägt, können der Mail Transfer Agent (MTA) oder das E-Mail-Programm des Empfängers die Annahme der betreffenden E-Mail verweigern oder diese alternativ aussortieren. Wichtig für die korrekte Funktion des Verfahrens ist es, dass der MTA des Senders die E-Mail im DomainKey-Signature-Header mit der nötigen digitalen Signatur ausstattet.Die Erzeugung der für die Signatur notwendigen Hashwerte kann mit den Hashfunktionen SHA-1 und SHA-256 erfolgen. Beide werden von DKIM akzeptiert. Vorzugsweise sollte jedoch SHA-256 verwendet werden. Aus dem Hashwert wird mittels Verschlüsselung im Verfahren RSA schließlich die Signatur erzeugt. Diese wird mit Base64 kodiert, damit die Darstellung im für den E-Mail- Versand notwendigen ASCII-Zeichensatz erfolgen kann.
Geht die E-Mail beim Empfänger ein, wird die Signatur zunächst wiederum mit Base64 dekodiert. Anschließend erfolgt eine Entschlüsselung mit dem öffentlichen Schlüssel der angeblich sendenden Domäne und dabei wird der Hashcode der E-Mail neu berechnet. Stimmen nun der gelieferte und entschlüsselte, sowie der selbst entschlüsselte Hashcode überein, dann erkennt DKIM, dass die E-Mail tatsächlich vom angeblichen Absender stammt. Hierzu erfolgt eine Publizierung der öffentlichen Schlüssel im DNS-Eintrag der sendenden Domain. Der DNS fungiert also in diesem Fall als Zertifizierungsstelle. Mittels DKIM kann also zweifelsfrei festgestellt werden, ob die im Absender angegebene Domäne tatsächlich der Sender der eingegangenen E-Mail ist. Zusätzlich wird durch das Verfahren sichergestellt, dass die E-Mail während des Versands nicht verändert wurde.