Cum găsește DKIM cheia
O semnătură DKIM dintr-un mesaj specifică un domeniu (d=) și un selector (s=). Destinatarul le combină sub forma selector._domainkey.domain, citește înregistrarea TXT de acolo și folosește cheia publică din eticheta p= pentru a verifica semnătura. Un domeniu poate publica oricâte selectoare, astfel încât fiecare serviciu de trimitere să poată avea propria cheie, iar cheile să poată fi schimbate fără întreruperi.
Instrumentul de verificare are nevoie de selector deoarece DNS nu oferă nicio modalitate de a lista selectoarele unui domeniu. Nu există nimic de scanat, selectorul provine din semnătura unui mesaj real.
Ce face ca o cheie să fie slabă sau nefuncțională
RFC 8301 spune că cheile RSA trebuie să aibă cel puțin 1024 de biți și ar trebui să aibă 2048. Un verificator poate ignora o cheie mai scurtă, iar al nostru o ignoră, astfel că o cheie de 512 de biți este considerată ca lipsa completă a semnăturii. Cheile Ed25519 (RFC 8463) sunt scurte prin proiectare și sigure, dar nu toți destinatarii le verifică încă, de aceea sunt publicate de obicei alături de o cheie RSA, nu în locul acesteia.
Instrumentul de verificare decodează cheia în întregime, deoarece o înregistrare împărțită incorect între șiruri TXT sau un text base64 care nu poate fi decodat reprezintă o cheie pe care niciun destinatar nu o poate folosi. Un p= gol înseamnă că cheia a fost revocată intenționat. t=y marchează un domeniu care este încă în faza de testare, iar RFC 6376 §3.6.1 le cere verificatorilor să trateze mesajele sale exact ca pe cele nesemnate.
Întrebări
Cum găsesc selectorul DKIM și cum verific dacă DKIM este activat?
Trimite-ți un mesaj și deschide anteturile copiei primite. Prezența unui antet DKIM-Signature înseamnă că mesajul a fost semnat: selectorul este valoarea s=, iar domeniul este d=. Dacă antetul lipsește, serviciul prin care ai trimis nu semnează mesajele. Fiecare serviciu de trimitere semnează cu propriul selector, deci un newsletter și un mesaj din căsuța ta poștală pot avea selectoare diferite.
Cheia este corectă, dar DKIM eșuează cu „body hash did not verify”. De ce?
De obicei, mesajul a fost modificat după semnare, de exemplu prin adăugarea unui subsol de către o listă de distribuție sau prin rescrierea unui link de către un gateway de securitate. Cheia poate confirma doar conținutul care a fost semnat. Testul complet arată rezultatul efectiv al verificării mesajului tău.
Ghid complet: DKIM fail
Lungimea cheii DKIM: 1024 sau 2048 de biți?
O cheie de 1024 de biți este verificată peste tot, iar RFC 8301 o permite. Totuși, aceasta este lungimea minimă, așa că treci la 2048 de biți la următoarea rotație a cheilor.
Poate un domeniu să aibă mai multe înregistrări DKIM?
Da, câte una pentru fiecare selector, iar multe domenii au mai multe: una pentru furnizorul căsuței poștale și câte una pentru fiecare serviciu de newslettere sau facturare. Verifică-le pe rând. O cheie care a fost ștearsă din DNS face ca fiecare mesaj încă semnat cu ea să eșueze.
Cât de des ar trebui să rotesc cheile DKIM?
M3AAWG recomandă rotația cel puțin o dată la șase luni și imediat dacă este posibil ca o cheie privată să fi fost compromisă. Publică noua cheie sub un selector nou, treci semnarea la aceasta și șterge înregistrarea veche numai după ce mesajele semnate cu cheia veche nu mai sosesc. Expeditorii reîncearcă timp de patru până la cinci zile, așa că așteaptă aproximativ o săptămână.