Atslēga tiek izveidota tavā pārlūkā, nevis uz mūsu servera
Atslēgu pāri izveido tavs pārlūks, tāpēc šai lapai vajadzīgs JavaScript. Uz mūsu servera netiek ģenerēts nekas, un privātā atslēga pie mums nenonāk.
DKIM privātā atslēga ir noslēpums, ar kuru tiek parakstīts tavs pasts. Ikviens, kam ir tās kopija, var parakstīt vēstules, kuras saņēmēji uzskatīs par tavām. Tāpēc ģenerators, kas atslēgu izveido uz sava servera, lūdz uzticēt svešiniekam tieši to, ko tu centies pasargāt. Pat ar vislabākajiem nodomiem atslēga ceļotu pa tīklu, cauri tīmekļa serverim un nonāktu atmiņā uz mašīnas, kuru tu nekontrolē.
Šī lapa tā nedara. Atslēgu pāri izveido tavs pārlūks ar WebCrypto, to pašu saskarni, ar kuru tas veido TLS atslēgas, un privātā puse cilni nepamet. Nav pieprasījuma, kas to nestu, tāpēc nav arī nekā, ko mums žurnalēt, kešot vai rezervēt, un nav nekā, ko mēs varētu izsniegt, ja to kāds prasītu. Tāpēc lapai vajadzīgs arī JavaScript: darbs notiek tavā pusē, un servera puses aizvietotāja nav ar nodomu.
Atslēga glabājas tikai atmiņā. Aizverot lapu, tā pazūd, tāpēc nokopē privāto atslēgu, pirms ej prom. Ja tā tomēr pazūd, nekas nesalūzt: izveido jaunu pāri un publicē jauno ierakstu.
Kam kalpo katra puse
DKIM strādā ar pāri. Publisko pusi publicē DNS, lai to var izlasīt jebkurš saņēmējs pasaulē, un privātā paliek uz mašīnas, kas sūta tavu pastu.
- Publiskā atslēga nonāk TXT ierakstā selektors._domainkey.example.lv formā v=DKIM1; k=rsa; p= un pati atslēga aiz tā.
- Privātā atslēga nonāk uz pasta servera failā, ko drīkst lasīt tikai pasta serveris.
- Selektors ir tikai vārds. Tas ļauj vienam domēnam publicēt vairākas atslēgas vienlaikus, pa vienai katram servisam, kas sūta tā vārdā.
Ieraksta publicēšana pati par sevi neko nemaina. Vēstules paraksta sūtošais serveris, tāpēc, kamēr tam nav norādīta privātā atslēga, nav arī paraksta, ko pārbaudīt, un publicētā atslēga vienkārši stāv neizmantota.
Kur liek privāto atslēgu
Privāto atslēgu saglabā kā failu uz mašīnas, kas paraksta. Faila īpašnieks ir lietotājs, ar kuru darbojas parakstīšanas serviss, un neviens cits to lasīt nedrīkst. Uz Linux tas nozīmē chmod 600 un pareizu īpašnieku. Tai nav vietas git repozitorijā, atbalsta pieteikumā, čatā vai koplietotā diskā.
OpenDKIM uz failu norāda ar KeyFile vai ar KeyTable, ja viens serveris paraksta vairākiem domēniem, un blakus tiek norādīts selektors. Rspamd DKIM parakstīšanas iestatījumos pieņem ceļu katram domēnam. Mākoņa pasta servisā parasti nav kur atslēgu ielīmēt: tas pats izveido savu pāri un iedod ierakstu, ko publicēt, un tad šī lapa nav tas, kas tev vajadzīgs.
Privātā atslēga šeit ir PKCS#8 PEM formā, kuru OpenDKIM, rspamd un citi uz OpenSSL būvēti parakstītāji lasa tieši. Rīku, kas pieprasa veco formātu ar galveni BEGIN RSA PRIVATE KEY, apmierina fails, kas pārveidots ar openssl rsa.
To pašu atslēgu ar openssl
Atslēgā nav nekā, kas būtu saistīts tieši ar šo lapu. Ja gribi to izveidot savā datorā vai tev tā vajadzīga skriptā, pietiek ar trim komandām:
openssl genrsa -out mail.private 2048 chmod 600 mail.private openssl rsa -in mail.private -pubout -outform der | openssl base64 -A
Pirmā komanda izveido privāto atslēgu, otrā liedz pārējiem uz tās mašīnas to lasīt, bet trešā izdrukā base64 virkni, kas DNS ierakstā stāv aiz p=. Ieliec to v=DKIM1; k=rsa; p= un publicē kā TXT ierakstu.
Publicēšana, pārbaude un vēlāka nomaiņa
Kad ieraksts ir publicēts, nogaidi, līdz tas nonāk pie resolveriem, un izlasi to atpakaļ ar DKIM ieraksta pārbaudi. Tā ir šī darba otra puse: šī lapa atslēgu izveido, tā izlasa to, ko pasaule tiešām redz, un tikai otrā var pateikt, vai ieraksts pārdzīvoja ielīmēšanu vadības panelī.
Veiksmīgi pārbaudīts paraksts pats par sevi vēl nav aizsardzība. DKIM pierāda, ka vēstule parakstīta ar atslēgu, kas publicēta zem kāda domēna, un tikai DMARC pasaka, ka redzamajā From adresē esošajam domēnam jābūt tam pašam, kas parakstīja. Pārbaudi, kas tev ir, ar SPF ieraksta pārbaudi un DMARC ieraksta pārbaudi, pirms sāc stingrāku politiku.
Nomaiņa notiek tādā pašā secībā un nekad otrādi. Izveido pāri ar jaunu selektoru, publicē jauno ierakstu, nogaidi, līdz tas ir redzams, pārslēdz pasta serveri uz jauno privāto atslēgu un tikai tad noņem veco ierakstu. Vēstules, kas jau ir ceļā, ir parakstītas ar veco atslēgu, un tām tā vēl ir vajadzīga.