DKIM har bir chiquvchi xatga raqamli imzo qo'yadi: pochta serveri xatni maxfiy kalit bilan imzolaydi, qabul qiluvchi esa DNS'dagi ochiq kalit orqali imzoni tekshiradi. Agar imzo to'g'ri bo'lsa, xat yo'lda o'zgartirilmagani va haqiqatan ham domeningiz ruxsat bergan serverdan chiqqani tasdiqlanadi. Ko'p kompaniyalar DKIM'ni bir marta sozlab, yillar davomida o'sha kalit bilan ishlayveradi. Vaqt o'tishi bilan kalit eskiradi, uni ko'rgan xodimlar almashadi, server ko'chiriladi va kalitning sizib chiqish ehtimoli oshadi. Shu sababli kalitni rejali almashtirib turish, ya'ni rotatsiya qilish to'g'ri amaliyot hisoblanadi.
Selektor nima va nega rotatsiya aynan unga tayanadi
Bir domen bir vaqtning o'zida bir nechta DKIM kalitiga ega bo'lishi mumkin. Ularni bir-biridan ajratish uchun selektor ishlatiladi. Ochiq kalit selektor._domainkey.domen nomli TXT yozuvda saqlanadi, xat sarlavhasidagi DKIM-Signature ichida esa s= tegi qaysi selektor ishlatilganini ko'rsatadi. Qabul qiluvchi server shu selektor bo'yicha DNS'dan kerakli kalitni oladi.
DKIM-Signature: v=1; a=rsa-sha256; d=example.uz; s=mail2025; c=relaxed/relaxed; ...
Rotatsiyaning asosiy g'oyasi shu yerda: eski kalitni o'chirib, o'rniga yangisini qo'yish o'rniga, yangi kalit yangi selektor bilan alohida e'lon qilinadi. Bir muddat ikkala kalit ham DNS'da turadi, server esa yangisi bilan imzolashga o'tadi. Shu tufayli birorta xat ham imzo xatosi bilan rad etilmaydi.
Kalitni qachon almashtirish kerak
Rejali almashtirish uchun aniq majburiy muddat yo'q, lekin ko'plab pochta xavfsizligi bo'yicha tavsiyalar kalitni kamida yiliga bir marta, faol yuboruvchilar uchun esa tez-tez almashtirishni maslahat beradi. Rejadan tashqari almashtirish esa quyidagi holatlarda shart bo'ladi:
- serverga ruxsatsiz kirish yoki maxfiy kalit sizib chiqqanidan shubha paydo bo'lganda;
- kalitga kirish huquqi bo'lgan tizim administratori yoki pudratchi bilan hamkorlik tugaganda;
- pochta boshqa serverga yoki boshqa xizmatga ko'chirilganda;
- eski 1024 bitli kalitdan 2048 bitli kalitga o'tish kerak bo'lganda.
Oxirgi holat ayniqsa muhim. 1024 bitli RSA kalit bugungi kunda zaif deb hisoblanadi, shuning uchun yangi kalitni 2048 bit uzunlikda yaratish tavsiya etiladi. 4096 bitli kalitlar ham mavjud, lekin ular DNS yozuvida juda uzun bo'ladi va ba'zi tizimlar bilan muammo chiqarishi mumkin.
Yangi kalit juftini yaratish
Agar pochta serverini o'zingiz boshqarsangiz, kalitni OpenSSL bilan yaratish mumkin. Selektor nomiga sana qo'shish qulay, shunda qaysi kalit qachon yaratilgani darhol ko'rinadi:
openssl genrsa -out mail2026.private 2048
openssl rsa -in mail2026.private -pubout -outform der | openssl base64 -A > mail2026.pub
OpenDKIM o'rnatilgan serverlarda opendkim-genkey buyrug'i kalitni ham, tayyor DNS yozuvini ham bir vaqtda yaratadi:
opendkim-genkey -b 2048 -d example.uz -s mail2026
# natija: mail2026.private va mail2026.txt
Maxfiy kalit faylini faqat pochta xizmati o'qiy oladigan qilib qo'ying, masalan chmod 600 bilan, va uni hech qachon pochta orqali yubormang yoki ochiq repozitoriyga joylamang. Hosting panelida ishlasangiz, odatda bu ishni panelning o'zi bajaradi: domen uchun DKIM'ni qayta yaratish yoki yangi selektor qo'shish imkoniyati bo'ladi.
Rotatsiya bosqichlari
To'g'ri rotatsiya to'rt bosqichdan iborat va ularning har biri orasida vaqt bo'lishi kerak. Shoshilish odatda imzo xatolariga olib keladi.
- Yangi ochiq kalitni e'lon qilish.
mail2026._domainkeynomli TXT yozuvni qo'shing va DNS tarqalishini kuting. Eski yozuvni hali o'chirmang. - Tekshirish. Yangi yozuv barcha nom serverlarida ko'rinayotganini
digbilan tasdiqlang. - Imzolashni almashtirish. Pochta serveri sozlamasida selektor va maxfiy kalit yo'lini yangisiga o'zgartiring va xizmatni qayta yuklang.
- Eski kalitni bekor qilish. Bir necha kundan keyin eski selektor yozuvini bo'sh kalit bilan qoldiring yoki o'chiring.
mail2026._domainkey.example.uz. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
dig +short TXT mail2026._domainkey.example.uz
Eski kalitni darhol o'chirmaslikning sababi oddiy: navbatda turgan yoki kechikib yetkazilayotgan xatlar hali eski imzo bilan yuradi, ba'zi tizimlar esa imzoni xat kelgandan keyin ham qayta tekshiradi. Eski kalitni bekor qilishda p= qiymatini bo'sh qoldirish standartda kalit bekor qilinganini bildiradi:
mail2025._domainkey.example.uz. IN TXT "v=DKIM1; p="
2048 bitli kalit va TXT yozuv uzunligi
2048 bitli ochiq kalit taxminan 400 belgidan iborat, bitta TXT satri esa 255 belgidan oshmasligi kerak. Shu sababli uzun kalit bir nechta qo'shtirnoqli bo'laklarga bo'linadi va DNS server ularni birlashtirib beradi. Ko'pchilik DNS panellari buni avtomatik bajaradi, lekin zona faylini qo'lda tahrirlasangiz, bo'laklar orasida bo'sh joy yoki qator uzilishi qolishiga e'tibor bering. Kalit ichida tasodifiy bo'sh joy yoki yo'qolgan belgi imzoni butunlay buzadi va bunday xatoni ko'z bilan topish qiyin.
mail2026._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu5..."
"...QIDAQAB" )
Misol: Samarqanddagi xususiy klinika
Samarqanddagi xususiy klinika bemorlarga tahlil natijalarini va qabul eslatmalarini elektron pochta orqali yuboradi. Klinikaning pochtasini avval tashqi pudratchi sozlagan va DKIM kaliti 1024 bit uzunlikda bo'lgan. Pudratchi bilan shartnoma tugagach, klinika yangi administratoriga kalitni almashtirishni topshiradi. Administrator clinic2026 selektori bilan 2048 bitli kalit yaratadi, uni DNS'ga qo'shadi va bir kun kutadi. Keyin serverda imzolashni yangi selektorga o'tkazadi va o'zining Gmail qutisiga sinov xati yuborib, "Asl nusxani ko'rsatish" bo'limida DKIM natijasi muvaffaqiyatli ekanini va s=clinic2026 turganini ko'radi. Bir haftadan keyin eski selektor bekor qilinadi.
Almashtirishdan keyingi tekshiruv
Rotatsiya tugagach, xat sarlavhalarida Authentication-Results qatorini ko'rib chiqing. Unda dkim=pass va yangi selektor nomi turishi kerak. Agar DMARC hisobotlari yoqilgan bo'lsa, keyingi kunlarda ularda DKIM muvaffaqiyatsizliklari ko'paymaganini tekshiring. Muvaffaqiyatsizliklar ortsa, ehtimol qaysidir tizim, masalan alohida server orqali ishlaydigan sayt formasi, hali eski kalit bilan imzolayapti yoki umuman imzolamayapti.
sayt.uz hostingida korporativ pochta uchun DKIM yozuvi kabinetdagi DNS bo'limida ko'rinadi, shuning uchun yangi selektor qo'shilganda uning to'g'ri e'lon qilinganini o'sha yerda va dig buyrug'i bilan solishtirib ko'rish mumkin.