Public key — asymmetric cryptography tizimida ochiq tarqatilishi mumkin bo‘lgan kalit. U private key bilan matematik bog‘langan bo‘ladi, lekin public keydan private keyni amaliy jihatdan hisoblab topish mumkin emas.
Public key encryption, digital signature, TLS certificate, SSH, PKI va identity verification tizimlarida ishlatiladi.
Vazifasi
Public key quyidagi vazifalarni bajaradi:
- ma’lumotni private key egasi ocha oladigan qilib shifrlash;
- digital signature’ni tekshirish;
- server yoki foydalanuvchi identity’sini tasdiqlash;
- certificate ichida trust model yaratish;
- secure key exchange jarayonida qatnashish;
- SSH va TLS kabi protokollarda authenticationga yordam berish.
Masalan, server certificate ichida public key bo‘ladi. Browser shu public key va certificate chain orqali serverni tekshiradi.
Public key qanday ishlaydi?
Public key private key bilan juftlikda ishlaydi.
Asosiy model:
- private key maxfiy saqlanadi;
- public key boshqalarga beriladi;
- public key bilan shifrlangan ma’lumot private key bilan ochiladi;
- private key bilan yaratilgan signature public key orqali tekshiriladi.
Public key ochiq bo‘lgani uchun uni foydalanuvchi, browser, server yoki boshqa tizimlar olishi mumkin.
Private key bilan bog‘liqligi
Public key private keyning jufti hisoblanadi. Ular asymmetric key pair deb ataladi.
Bog‘liqlik:
- public key ochiq bo‘lishi mumkin;
- private key maxfiy bo‘lishi kerak;
- public key private keyni oshkor qilmaydi;
- ikkalasi bitta key pairga tegishli bo‘ladi;
- biri bilan yaratilgan kriptografik natija ikkinchisi bilan tekshiriladi yoki ochiladi.
Private key yo‘qolsa yoki oshkor bo‘lsa, public keyga asoslangan ishonch buzilishi mumkin.
Encryptionda ishlatilishi
Asymmetric encryptionda public key ma’lumotni shifrlash uchun ishlatilishi mumkin.
Jarayon:
- foydalanuvchi yoki client public keyni oladi;
- ma’lumot public key bilan encrypt qilinadi;
- ciphertext private key egasiga yuboriladi;
- private key egasi ma’lumotni decrypt qiladi.
Bu modelda faqat private key egasi ciphertextni ochishi kerak.
Digital signature’da ishlatilishi
Digital signature jarayonida public key signature’ni tekshirish uchun ishlatiladi.
Jarayon:
- private key egasi ma’lumotni imzolaydi;
- signature hosil bo‘ladi;
- public keyga ega tomon signature’ni tekshiradi;
- signature to‘g‘ri bo‘lsa, ma’lumot private key egasi tomonidan imzolangan deb qaraladi.
Bu model software package, certificate, JWT va document signing tizimlarida ishlatiladi.
Certificate ichidagi public key
TLS certificate ichida server public keyi bo‘ladi. Certificate Authority bu public keyni domain bilan bog‘lab imzolaydi.
Certificate ichida odatda:
Browser certificate chain orqali public keyga ishonch hosil qiladi.
SSH public key
SSH’da public key foydalanuvchini serverga parolsiz yoki kuchli authentication orqali ulash uchun ishlatiladi.
SSH modelida:
- foydalanuvchida private key bo‘ladi;
- serverda public key saqlanadi;
- login vaqtida server challenge yuboradi;
- client private key bilan javob beradi;
- server public key orqali tekshiradi.
Bu usul serverga parol yubormasdan authentication qilish imkonini beradi.
Public key formatlari
Public key turli formatlarda bo‘lishi mumkin:
- PEM;
- DER;
- OpenSSH format;
- JWK;
- X.509 certificate ichidagi public key.
Format ishlatilayotgan protokol va kutubxonaga bog‘liq.
Public key va secret
Public key maxfiy qiymat hisoblanmaydi. Uni boshqalarga berish mumkin.
Public key haqida muhim faktlar:
- ochiq tarqatilishi mumkin;
- private keyni oshkor qilmaydi;
- identity verificationda ishlatiladi;
- certificate ichida bo‘lishi mumkin;
- noto‘g‘ri public keyga ishonish xavfli bo‘lishi mumkin.
Public keyni himoyalashdan ko‘ra, uning haqiqiyligini tekshirish muhim.
Trust
Public keyga ishonish uchun uning kimga tegishli ekanini tekshirish kerak. Bu trust muammosi deb qaraladi.
Trust quyidagilar orqali ta’minlanishi mumkin:
- certificate authority;
- fingerprint solishtirish;
- SSH known_hosts;
- PKI;
- web of trust;
- oldindan berilgan public key.
Agar hujumchi soxta public keyni haqiqiy deb ko‘rsatsa, xavfsizlik buzilishi mumkin.
Fingerprint
Fingerprint — public key yoki certificate’dan olingan qisqa hash qiymat. U public keyni tekshirish uchun ishlatiladi.
Fingerprint quyidagilarda uchraydi:
- SSH server tekshiruvi;
- certificate tekshiruvi;
- software signing;
- key verification;
- secure messaging.
Fingerprint public keyning qisqa identifikatori sifatida ishlatiladi.
Dasturlashdagi o‘rni
Public key asymmetric cryptography tizimining ochiq kaliti hisoblanadi. U encryption, digital signature verification, TLS certificate, SSH authentication va PKI tizimlarida muhim rol o‘ynaydi.
Bog‘liq tushunchalar
Private key, Asymmetric encryption, Digital signature, Certificate, TLS, SSH, PKI, Fingerprint, Encryption, Security