Bosh sahifa Wiki Signature

Signature

Signature — raqamli muhitda xabar yoki hujjatning ma’lum private key egasi tomonidan tasdiqlanganini va imzolangandan keyin mazmun o‘zgarmaganini tekshirishga xizmat qiluvchi kriptografik qiymat. Raqamli imzo algoritmi odatda private key bilan signature yaratadi, public key bilan esa tekshiradi. U qo‘lda yozilgan imzoning tasviri emas va oddiy checksumdan farqli ravishda hujumchiga yangi haqiqiy qiymat yaratishni qiyinlashtiradigan maxfiy kalitga tayanadi.

Yaratish va tekshirish

Imzolash algoritmi xabarni kriptografik hash funksiyasi bilan qisqa digestga aylantiradi va private key asosida signature hosil qiladi. Ko‘p zamonaviy sxemalarda hash va kodlash qoidasi algoritmning tarkibiy qismidir. Tekshiruvchi xabar, signature va public keyni oladi. Xabar bir bitga o‘zgarsa ham tekshiruv muvaffaqiyatsiz chiqishi kerak.

RSA-PSS, ECDSA va EdDSA keng tarqalgan imzo sxemalaridir. Ularning kalit o‘lchami va signature formati bir xil emas. “RSA bilan imzolangan” degan tavsif padding va hashni ko‘rsatmasa yetarli aniqlik bermaydi. Eski RSA PKCS#1 v1.5 ayrim protokollarda mavjud, yangi dizaynda ko‘pincha RSA-PSS tanlanadi.

Nonce talabi

ECDSA kabi algoritmlarda har signature uchun ishlatiladigan maxfiy nonce noyob va oldindan topib bo‘lmaydigan bo‘lishi kerak. Ayni private key bilan nonce takrorlansa yoki qisman oshkor bo‘lsa, algebra orqali private keyni hisoblash mumkin. Deterministik ECDSA nonce’ni private key va xabar hashidan standart usulda hosil qilib, zaif random generator xavfini kamaytiradi. EdDSA ham deterministik tuzilishga ega, lekin implementatsiya side-channel va fault hujumlaridan baribir himoyalanadi.

Public keyga ishonch

Signature matematik jihatdan to‘g‘ri bo‘lishi faqat u taqdim etilgan public keyga mosligini ko‘rsatadi. Bu kalit kimga tegishli ekanini alohida ishonch tizimi belgilaydi. PKIda certificate authority public keyni domen yoki tashkilot identifikatori bilan bog‘laydigan sertifikat imzolaydi. Software release’da maintainer kaliti oldindan ishonchli kanal orqali tarqatilishi yoki transparency logda qayd etilishi mumkin.

Kalit muddati, bekor qilinishi va ruxsat etilgan foydalanish maqsadi tekshiriladi. Eski kalit buzilsa, yangi kalit bilan keyingi artefaktlarni imzolash mumkin, ammo ilgari yaratilgan signaturelarning qachon yaratilganini ishonchli timestamp bo‘lmasa aniqlash qiyin. Code signing tizimlari timestamp authoritydan foydalanishi mumkin.

Signature va MAC

HMAC kabi message authentication code bitta umumiy secret bilan yaratiladi va tekshiriladi. Sirga ega har bir tomon bir xil MAC yaratishi mumkin, shuning uchun uchinchi tomonga aynan qaysi tomon yaratganini isbotlash qiyin. Raqamli imzoda esa yaratish private key egasiga, tekshirish public keyga ega istalgan tomonga ajratiladi. Bu software distributsiyasi va hujjat tasdiqlashda qulay.

Non-repudiation faqat algoritm xususiyati bilan avtomatik ta’minlanmaydi. Private key kim nazoratida bo‘lgani, qurilma himoyasi, sertifikat siyosati, vaqt dalili va yuridik jarayon ham ahamiyatga ega. O‘g‘irlangan private key bilan yaratilgan signature matematik to‘g‘ri bo‘lishi mumkin.

Kanonik ko‘rinish

JSON yoki XML kabi ma’lumotlarda bir xil semantik mazmun turli byte ketma-ketlikda yozilishi mumkin. Signature aynan byte’lar ustida hisoblanadi, shu sababli tomonlar kanonik serializatsiya yoki imzolanadigan aniq qismni kelishadi. Whitespace, maydon tartibi yoki encoding farqi tekshiruvni buzishi mumkin. Xabar bilan signaturega algoritm identifikatori, key ID va kontekstni bog‘lash cross-protocol ishlatishning oldini oladi.

Bog‘liq tushunchalar

Digital signature, Public key, Private key, Hash function, ECDSA, EdDSA, Code signing