Szóval minden úgy kezdődött, hogy kaptam egy feladatot:
http://hup.hu/node/137107
Háromféle digitális aláírás került a látókörömbe: OpenPGP, S/MIME és DKIM.
Ezek közül csak az első kettő minősül end-to-end digitális aláírásnak, vagyis csak erre a kettőre igaz, hogy az aláírást a levél feladójának számítógépe, az aláírás ellenőrzését pedig a címzett számítógépe végzi. A DKIM esetében a titkos kulcs a feladó tartomány kimenő levélszerverein van (azokon, amelyekre a tartomány SPF rekordjai mutatnak), itt történik az aláírás is. Az aláírás ellenőrzését a címzett tartomány leveleit fogadó szerverek (amelyekre a tartomány MX rekordjai mutatnak) végzik. Éppen ezért a DKIM nem end-to-end aláírás, már csak azért sem, mert nem felhasználónként, hanem tartományonként van egy-egy külön titkos-nyilvános kulcspár. A titkos kulcsot természetesen nem adja ki az SMTP szerver, a nyilvános kulcsot viszont egy TXT típusú DNS bejegyzésben teszi közzé a tartomány adminisztrátora. A levelet befogadó SMTP szerver egy Authentication-Results nevű mail headert hoz létre, amiben feltünteti, hogy milyen eredménnyel járt a levél DKIM aláírásának (és egyéb authentikációs jellemzők) ellenőrzése. A küldő szerver a DKIM aláírásí művelet paramétereit, és magát az aláírást a DKIM-Signature nevű mail headerben helyezi el. A DKIM nem csak abban különbözik a másik két digitális aláírási szabványtól, hogy nem biztosít end-to-end védelmet, hanem abban is, hogy nem a levél törzsében, hanem a fejlécében található, és nem csak a levél törzsét, hanem néhány fejlécmezőt (pl. from, to, subject, date, message-id, user-agent, stb.) is aláír. Ez alapján azt is gondolhatnánk, hogy nagyobb biztonságot, ad, de egyrészt nem tudja lekezelni a levél törzsének semmilyen változását, ami a levél befogadása után történik, másrészt nem találtam olyan levelezőklienst, amely képes lenne a DKIM aláírás ellenőrzésére. Csak a levél forrásának manuális ellenőrzésére (pl. az Authentication-Results mező átnézésére) hagyatkozhatunk. Ha azonban ezt kiegészítjük azzal, hogy a Google levelezőrendszere semmilyen módon nem teszi lehetővé, hogy a levél feladója meghamisítsa a saját email címét, akkor már egy viszonylag elfogadható biztonsági megoldást kapunk.