Secret key — kriptografik amalni bajarish va uning xavfsizligini ta’minlash uchun faqat vakolatli tomonlar bilishi kerak bo‘lgan maxfiy qiymat. Simmetrik shifrlashda ayni kalit ma’lumotni shifrlash va deshifrlashda, HMACda esa xabar autentifikatsiya kodini yaratish va tekshirishda ishlatiladi. “Secret key” API key, parol yoki private key bilan ba’zan umumiy tilda aralashadi, ammo ularning vazifasi va himoya modeli turlicha.
Kalitning xususiyatlari
Kriptografik kalit oldindan taxmin qilib bo‘lmaydigan entropiyaga ega bo‘lishi kerak. Odam tanlagan so‘z, vaqt tamg‘asi, UUIDning noto‘g‘ri turi yoki oddiy random funksiyasi kuchli kalit bermaydi. Kalit kriptografik xavfsiz tasodifiy generator orqali algoritm talab qilgan uzunlikda yaratiladi. Masalan, AES-256 uchun 256 bitlik tasodifiy kalit ishlatiladi; uzun matn avtomatik ravishda shuncha xavfsizlik bermaydi.
Paroldan kalit olish zarur bo‘lsa, parol bevosita AES kaliti sifatida qo‘llanmaydi. Argon2, scrypt yoki PBKDF2 salt va ish parametrlaridan foydalanib key derivation bajaradi. HKDF esa allaqachon yuqori entropiyali umumiy sirni turli kontekstlar uchun mustaqil subkeylarga ajratishda qo‘llanadi.
Hayot sikli
Kalit hayot sikli yaratish, tarqatish, saqlash, ishlatish, rotation, arxiv va yo‘q qilish bosqichlarini qamrab oladi. Kalitning identifikatori va versiyasi ciphertext bilan birga saqlanishi mumkin, lekin kalitning o‘zi shu ma’lumot yonida ochiq turmaydi. Rotation yangi ma’lumotni yangi versiya bilan shifrlaydi; eski ciphertextni o‘qish uchun avvalgi kalitlar nazorat ostida vaqtincha saqlanadi yoki re-encryption bajariladi.
Compromise aniqlansa, faqat konfiguratsiyadagi qiymatni almashtirish yetmaydi. Qaysi ma’lumot va tizim kalitdan foydalangani aniqlanadi, aktiv tokenlar bekor qilinadi, zarur ma’lumot qayta shifrlanadi va audit qilinadi. Kalitni o‘chirib yuborish ayrim ciphertextni doimiy tiklab bo‘lmas holga keltirishi mumkin; backup va retention siyosati shu oqibatni hisobga oladi.
Saqlash va foydalanish
Source code, Docker image, mobil ilova paketi va ochiq repository secret saqlash joyi emas. Server dasturi kalitni secret manager yoki key management service orqali runtime’da oladi. Environment variable faylga yozilgan sirdan qulayroq bo‘lishi mumkin, lekin process dump, diagnostika yoki noto‘g‘ri log orqali sizish ehtimoli saqlanadi.
HSM yoki himoyalangan kalit xizmati ayrim amallarni kalit materialini dasturga bermasdan o‘z ichida bajaradi. Envelope encryptionda data encryption key ma’lumotni shifrlaydi, u esa key encryption key bilan o‘raladi. Bu katta ma’lumotni tez simmetrik algoritm bilan qayta ishlash va markaziy master key nazoratini birlashtiradi.
Kalitlarni ajratish
Bitta secret keyni shifrlash, HMAC, test va production kabi turli maqsadlarda ishlatish xavfni kengaytiradi. Key separation har vazifa va muhit uchun mustaqil kalit ajratadi. Tenantlar kesimida alohida kalit ishlatilsa, bitta kalit compromise’i boshqa mijoz ma’lumotiga ta’sir qilmaydi. Kalitga kirish ham least privilege asosida servis identitysiga beriladi.
Secret logga, xato xabariga, tracing atributiga yoki URLga yozilmaydi. Dastur tokenni maskalashdan tashqari, uni umuman log pipeline’iga bermasligi yaxshiroq. Xotiradagi secretni foydalanishdan keyin o‘chirish ayrim past darajali muhitlarda mumkin, biroq garbage-collected tillarda nusxalar ustidan to‘liq nazorat qiyin; jarayon izolyatsiyasi va dump himoyasi ham kerak.
Kalit backupi production ma’lumotini tiklash uchun zarur bo‘lsa, u asosiy ombordan alohida access siyosati va shifrlash bilan saqlanadi. Backupni hech qachon restore qilib ko‘rmaslik kalit mavjud, lekin amalda yaroqsiz formatda qolish xavfini tug‘diradi. Recovery mashqi kalit materialini keraksiz ko‘paytirmaydigan nazoratli muhitda bajariladi.
Bog‘liq tushunchalar
Symmetric encryption, AES, HMAC, Key derivation function, Key management system, HSM, Key rotation