Kod imzosi siyosati
Kod imzosi — faylni kim chiqarganini va yuklab olingandan keyin o‘zgarmaganini Windows’ning o‘zi tekshira oladigan raqamli muhr. bitg uni SignPath Foundation’ning ochiq kodli loyihalar uchun bepul dasturi orqali oladi. Holat: hamma narsa tayyorlangan, ariza hali topshirilmagan — hozirgi relizlar imzosiz.
Code signing policy
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
Yuqoridagi inglizcha qator — SignPath Foundation talab qiladigan rasmiy matn: imzo xizmatini SignPath.io beradi, sertifikat SignPath Foundation nomiga chiqarilgan. Imzo yoqilgach, Windows nashriyotchi sifatida SignPath Foundation ni ko‘rsatadi, dtwinuz’ni emas — dastur shunday ishlaydi.
Kod imzosi nima uchun kerak?
- SmartScreen ogohlantirishi kamayadi. Imzosiz MSI ochilganda «Windows kompyuteringizni himoya qildi» oynasi chiqadi. Imzolangan faylda nashriyotchi nomi ko‘rinadi.
- Fayl o‘zgarmagani tekshiriladi. Imzodan keyin bitta bayt o‘zgarsa ham imzo buziladi va Windows buni ko‘rsatadi.
- Microsoft Store. Store MSI o‘rnatuvchini faqat ishonchli sertifikat bilan imzolangan bo‘lsa qabul qiladi.
Nima imzolanadi?
Faqat shu repodan GitHub Actions yig‘gan Windows reliz fayllari. Bitta so‘rov o‘rnatuvchini va uning ichidagi har bir dastur faylini qamraydi:
| Fayl | Vazifasi |
|---|---|
bitg-<versiya>-x64.msi | o‘rnatuvchi (GitHub Release’dagi fayl) |
bitg-settings.exe | tray va sozlamalar oynasi |
bitg.exe | buyruq qatori |
bitg_tsf.dll (64 va 32 bit) | klaviatura (Windows matn xizmati) |
Linux .deb paketlari (apt omborining o‘z kaliti bor), macOS .pkg, Telegram bot va sayt bu sertifikat bilan imzolanmaydi. Begona dasturlarning fayllari ham imzolanmaydi.
Imzo qanday qo‘yiladi?
- Maintainer versiya tegini qo‘yadi. Tegni faqat ko‘rib chiqilgan pull request orqali
main’ga tushgan kodga qo‘yish mumkin. - GitHub’ning o‘z serverida (GitHub-hosted runner) MSI manba kodidan yig‘iladi.
- MSI SignPath’ga yuboriladi. SignPath fayl aynan shu ochiq repodan, GitHub Actions’da yig‘ilganini tekshiradi.
- Approver so‘rovni SignPath’da qo‘lda tasdiqlaydi — har relizda.
- SignPath MSI ichidagi exe va dll’larni, keyin MSI’ning o‘zini imzolaydi (SHA-256, vaqt tamg‘asi bilan).
- Imzolangan MSI’ga SLSA provenance va SBOM attestation yoziladi, tekshiriladi va shundan keyingina reliz chiqadi.
Jamoa rollari
| Rol | Kim |
|---|---|
Committers (o‘zgarishni main’ga qo‘shadi) | @XakimovNosirbek, @leverow |
| Reviewers (har pull request’ni ko‘rib chiqadi) | yuqoridagi ikki maintainer va @wonmors |
| Approvers (har imzo so‘rovini tasdiqlaydi) | @XakimovNosirbek, @leverow |
Har o‘zgarish, jumladan yig‘ish skriptlari va CI sozlamalari, muallifidan boshqa odam tomonidan ko‘rib chiqiladi. Hamma hisoblarda ikki bosqichli kirish (2FA) yoqilgan. Batafsil: GOVERNANCE.md.
Dastur internetga nima yuboradi?
Klaviatura (bitg_tsf.dll) va buyruq qatori (bitg.exe) internetga umuman ulanmaydi: o‘girish kompyuteringizda bo‘ladi, yozgan matningiz saqlanmaydi va yuborilmaydi. Tray ilovasi (bitg-settings.exe) faqat quyidagi hollarda ulanadi:
| Qachon | Nima ketadi | O‘chirish mumkinmi? |
|---|---|---|
| Yangilanish tekshiruvi: ishga tushgandan 30 soniya keyin, so‘ng kuniga bir marta | bitg.uz/update/stable.json faylini o‘qiydi. Server har so‘rovdagidek IP manzil va dastur versiyasini ko‘radi. Matn, sozlama yoki identifikator yo‘q. | Ha: Sozlamalar → Qoidalar → Ilova → «Yangilanishlarni tekshirish» |
| Yangilanishni o‘rnatish | faqat siz tugmani bossangiz, MSI GitHub’dan yuklanadi va hajmi hamda SHA-256 xeshi tekshiriladi | so‘ramasangiz hech narsa yuklanmaydi |
| «Xabar berish» shakli | faqat siz yuborsangiz: yozgan matningiz, ixtiyoriy aloqa va rasm, versiya, tasodifiy o‘rnatish raqami; «Texnik ma’lumot qo‘shish» yoqilgan bo‘lsa — Windows yig‘ilishi va kalitlar holati (oldindan ko‘rsatiladi) | yubormasangiz hech narsa ketmaydi |
Bundan boshqa hollarda SignPath shablonidagi so‘z bilan aytganda: dastur foydalanuvchi yoki uni o‘rnatgan va boshqarayotgan odam so‘ramaguncha boshqa tarmoq tizimlariga hech qanday ma’lumot yubormaydi. Sozlamalar oynasi Windows tarkibidagi Microsoft Edge WebView2’dan foydalanadi — uning ma’lumotlari Microsoft maxfiylik bayonoti bilan tartibga solinadi. Sayt va server jurnallari: Maxfiylik.
Imzoni qanday tekshirish mumkin?
Oddiy usul: MSI faylni o‘ng tugma bilan bosing → Xususiyatlar (Properties) → Raqamli imzolar (Digital Signatures). Imzo egasi SignPath Foundation bo‘lishi kerak.
PowerShell’da:
Get-AuthenticodeSignature .\bitg-*-x64.msi | Format-List Status, SignerCertificate, TimeStamperCertificate
signtool verify /pa /all /v .\bitg-*-x64.msi
Status qiymati Valid bo‘lishi kerak. O‘rnatilgan fayllarni ham tekshirish mumkin:
Get-ChildItem 'C:\Program Files\bitg' -Recurse -Include *.exe, *.dll | Get-AuthenticodeSignature | Format-Table Status, Path
Imzo bilan birga faylning GitHub Actions’da shu repodan yig‘ilganini alohida isbotlash ham mumkin (SECURITY.md):
gh attestation verify .\bitg-*-x64.msi -R dtwinuz/bitg
Muammo sezsangiz
SignPath Foundation sertifikati bilan imzolangan bitg fayli siyosatni buzayotganini sezsangiz, SECURITY.md orqali bizga va support@signpath.io ga yozing.
Yangilangan: