Code signing — executable, script, paket, firmware yoki boshqa dasturiy artefaktga publisherning private keyi bilan raqamli imzo qo‘yish jarayonidir. Tekshiruvchi public key va trust chain yordamida artefakt imzodan keyin o‘zgarmaganini hamda tasdiqlangan kalit egasi tomonidan chiqarilganini aniqlaydi. Imzo kodning xatosiz yoki zararli emasligini o‘zi isbotlamaydi.
Imzolash jarayoni
Build artefaktining digest’i olinadi va private key bilan signature yaratiladi. Signature, signer sertifikati, algoritm va zarur metadata fayl ichiga yoki alohida sidecar sifatida joylanadi. Verification digestni qayta hisoblaydi, signature’ni public key bilan tekshiradi va sertifikat zanjirini ishonch ildizigacha baholaydi.
Signing imkoni boricha yakuniy immutable artefaktga qo‘llanadi. Imzodan keyin binaryni compress qilish, metadata qo‘shish yoki qayta paketlash signature’ni yaroqsiz qilishi mumkin. Pipeline qaysi bosqich artefaktning yakuniy baytlarini hosil qilishini aniq belgilaydi.
Sertifikat va timestamp
Code-signing sertifikati public keyni tashkilot yoki publisher identity bilan bog‘laydi. Trust store qaysi Certificate Authority yoki enterprise rootga ishonishni belgilaydi. Self-signed sertifikat cryptographic yaxlitlik beradi, lekin public key oldindan ishonchli kanal bilan tarqatilmasa publisher identityni bermaydi.
Trusted timestamp imzo sertifikat amal qilgan paytda qo‘yilganini tasdiqlaydi. Sertifikat keyin expire bo‘lsa ham policy tarixiy imzoni qabul qilishi mumkin. Key revocation sababi komprometatsiya bo‘lsa timestampning o‘zi xavfsizlikni avtomatik tiklamaydi; verifier policyga amal qiladi.
Kalitni himoyalash
Signing private key oddiy CI environment variable yoki repository faylida saqlanmaydi. HSM yoki boshqariladigan signing service kalitni non-exportable qiladi. Pipeline workload identity bilan qisqa muddatli ruxsat olib, faqat tasdiqlangan repository, branch va release uchun signing chaqiradi.
Release approval va signing vakolatini ajratish bitta komprometatsiyalangan accountning zararli artefakt chiqarishini qiyinlashtiradi. Har imzo artefakt digest, requester, policy va vaqt bilan audit qilinadi. Rate va g‘ayrioddiy signing so‘rovlari monitoring qilinadi.
Tekshiruvchi siyosati
Verifier faqat “signature mathematically valid” bilan to‘xtamaydi. Signer identity, key usage, certificate validity, revocation, artefakt turi va minimum versionni tekshiradi. Unknown signer uchun foydalanuvchiga tushunarsiz warning berishdan ko‘ra tashkilot policy aniq allow yoki deny qarorini belgilaydi.
Update tizimida rollback attack haqiqiy imzolangan eski versiyani qayta berishi mumkin. Monotonic version va expiry metadata imzo bilan himoyalanadi. Delegated keylar platforma yoki kanal bo‘yicha blast radiusni ajratadi.
Supply chain o‘rni
Imzo storage yoki mirror komprometatsiyasida bayt almashtirilganini aniqlaydi. Ammo signingdan oldin build worker buzilgan bo‘lsa, zararli artefakt qonuniy imzolanadi. Reproducible build, provenance, review va isolated builder code signingni to‘ldiradi.
Key komprometatsiyasida sertifikat revoke, yangi key provision va ta’sirlangan artefakt inventari talab qilinadi. Trust store yangilanishi ham xavfsiz kanal orqali yetkaziladi; aks holda eski kalitga ishonch davom etadi.
Ko‘p platformali release
Har platforma signature container, certificate policy va notarization bo‘yicha boshqa talab qo‘yishi mumkin. Bitta source release uchun Windows executable, macOS bundle va mobile paket alohida imzolash bosqichiga ega. Platforma-specific keylarni ajratish bitta komprometatsiyaning barcha ekotizimga ta’sirini kamaytiradi.
Package ichidagi nested binarylar ham to‘g‘ri tartibda imzolanadi: avval ichki komponent, keyin tashqi bundle. Universal yoki multi-architecture binary signature’dan keyin qayta birlashtirilmaydi. Verification test faqat pipeline’dagi buyruq muvaffaqiyatini emas, toza trust storega ega consumer muhitida install va loadni tekshiradi. Release arxivida signature verification bo‘yicha foydalanuvchi ko‘rsatmasi beriladi.
Bog‘liq tushunchalar
Digital signature, Code-signing certificate, Timestamping, Hardware Security Module, Software provenance, Reproducible build, Trust store