Bilik bazası Başlıq altında
Quraşdırmanın yoxlanılması
Açıq mənbə yalnız işlətdiyiniz kod əvvəlki koddursa kömək edir nəşr edilmişdir. Nymchat deterministik şəkildə qurulub ki, içəridən özünüz yoxlayasınız proqramdan və ya terminaldan.
Bu səhifə rahatlıq üçün maşın tərəfindən tərcümə edilmişdir. İngilis orijinalı tətbiq olunan versiyadır.
Təkrarlana bilən quruluşlar
Tətbiqin qurulması a build-manifest.json mənbə öhdəliyini ehtiva edən, a
Hər təqdim edilən HTML, JavaScript və CSS aktivinin SHA-256 hash və tək
bundleHash bütün aktiv dəsti üzərində.
Çıxış yalnız mənbə məzmunundan asılıdır - hətta qeydə alınmış tikinti vaxtı belədir
Quraşdırmanın başa çatdığı andan deyil, öhdəliyin vaxt damğası - buna görə də hər kəs eyni şeyi yenidən qurar
commit bayt-eyni faylları alır və eyni bundleHash.
GitHub Fəaliyyəti sonra hər bir öhdəliyi müstəqil şəkildə yenidən qurur və tikinti sübutunu imzalayır
hash və manifest üçün attestations, belə ki, tying imzalanmış rekord var
bundleHash deyil, başqa bir şey tərəfindən istehsal edilən depoda bir öhdəliyə
yerləşdirmə.
Haqqında dialoq nəyi yoxlayır
Haqqında başlıqda yoxlama canlı olaraq brauzerinizdə aparılır.
O, səhifənin əslində işlədiyi hər bir aktivi yenidən gətirir, onu Web Crypto API ilə hash edir və
manifestlə müqayisə edir. Sonra - və bu vacib olan hissədir - bu
yenidən hesablayır bundleHash hashlardan o -dən deyil, sadəcə hesablanıb
açıq-aşkar iddia etdiyi hər şeyi və deponun imzalanmış sertifikatlarına baxır
GitHub API vasitəsilə.
Bu, yerləşdirmənin özünə zəmanət verməsini dayandıran şeydir: dəyişdirilmiş fayllarla birlikdə xidmət göstərmək uyğun manifest hələ də uğursuz olur, çünki yenidən hesablanmış hashın təsdiqi yoxdur.
| Vəziyyət | deməkdir |
|---|---|
| &yoxlayın; Doğrulanmış rəsmi proqram (n/n) | Hər bir aktiv uyğun gəlir, yenidən hesablanmış paket hashı repozitoriya tərəfindən təsdiqlənir, və səhifə rəsmi domendən xidmət göstərir. |
| ⚠ Təsdiqlənmiş quruluş · rəsmi proqram deyil | Kod orijinaldır və təsdiqlənmişdir, lakin bu, başqa domendə güzgüdür. Güzgü yoxlamadan keçmədən bu xəbərdarlığı silə bilməz. |
| ✗ Uyğunsuzluq | Aktiv manifestdə deyilənlərə uyğun gəlmir. |
| ✗ Qeyri-rəsmi quruluş | Yenidən hesablanmış paket hashının anbardan heç bir təsdiqi yoxdur — özü tərəfindən hazırlanmış manifest. |
| ⚠ Mənşəyi əldə etmək mümkün deyil | GitHub API-yə çatmaq mümkün olmadı, buna görə də attestasiyanı hər iki yolla yoxlamaq mümkün olmadı. |
Bunu özünüz yoxlayın
Haqqında dialoq adlarını yerinə yetirməyi yenidən qurun və müqayisə edin:
git clone https://github.com/Spl0itable/NYM
cd NYM
git checkout <commit shown in the About dialog>
npm ci
npm run build # prints "Build hash: <bundleHash>"
Çap edilmiş hash həm Haqqında dialoq qutusunda, həm də həmin öhdəlikdəki ilə uyğun olmalıdır qurma mənşəli qaçış xülasəsi. İmzanı birbaşa GitHub CLI ilə yoxlaya bilərsiniz:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Android və iOS proqramları
Yuxarıdakı yoxlama veb-tətbiq yoxlamasıdır və səbəbi açıq şəkildə ifadə etməyə dəyər: yerli proqram özünə eyni şeyi edə bilməz. Telefonunuzda işləyən kod deyil, tərtib edilmiş maşın kodudur mənbə depodadır və proqramın cihazda hesablaya biləcəyi heç bir şey onunla əlaqəli deyil başqa.
Android növbəti ən yaxşı şeyi edə bilər. Quraşdırılmış .apk proqramın oxuya biləcəyi fayldır
və hash və hər dərc edilmiş buraxılışın hashı artıq açıqdır: nəşriyyat
Zapstore
APK-nın SHA-256 və onun imza sertifikatının SHA-256-nı daşıyan Nostr hadisəsini imzalayır. Belə ki,
Android Haqqında dialoq işlədiyi APK-nı hesh edir, imzalananları gətirir
hadisələr, yalnız tərtibatçının açarı ilə imzalananları saxlayır və müqayisə edir. İkisini göstərir
heshlər də var, beləliklə cihazın yoxlanışını təkrarlaya bilərsiniz: dərc edilmiş APK-ni yükləyin, işə salın
sha256sum üzərində və eyni hadisəyə özünüz baxın.
Google Play-dən quraşdırılmış proqram bu şəkildə yoxlanıla bilməzGoogle hər bir yüklüyünü öz anahtarı ilə yenisign edir və hər bir cihaz üçün ayrı bir APK yaratır, belə ki, telefonunuzda yerləşdirilən dosya geliştiricinin istehsal etdiyi dosya deyil və hash-i yayımlanmayacağı heç bir şeyə eşidmir.
iOS ümumiyyətlə yoxlanıla bilməz. Apple hər yükləməni şifrələyir və yenidən imzalayır fərdi olaraq, buna görə də iPhone-da hesablanmış hash sizin iPhone üçün unikaldır və heç bir şeyə uyğun gəlmir hər yerdə dərc olunur. Haqqında dialoqu bunu əminlik verici deyil, açıq şəkildə deyir heç nə demək olmayan status. Nymchat istəyirsinizsə, Apple aparatında yoxlaya bilərsiniz, internetdən istifadə edin işlədiyi hər faylı yoxlayan proqram.
Tətbiqin öz üzərində işlədiyi yoxlama proqramın dürüst olduğunu sübut edə bilməz - onu dəyişdirən şəxs çeki də silə bilər. Bunun sübut etdiyi adi haldır: sizi kopyalayan quraşdırılmış nəşr edilmiş nüsxədir. Buna dəyər, çünki dəyər verir müqayisələr açıqdır, ona görə də sizdən başqa kimsə onları yoxlaya və razılaşmaya bilər.
Zəmanət kanareyası
Zəmanət kanaryası, tərtibatçının sahib olduğu müəyyən bir cədvəl üzrə dərc edilmiş bir bəyanatdır yox onlara açıqlaması qadağan edilmiş gizli dövlət sifarişi almışlar — a Milli Təhlükəsizlik Məktubu, FISA əmri. Tərtibatçı bu barədə susmağa məcbur edilə bilər belə bir sifarişdir, lakin yalan danışmağa məcbur edilə bilməz, buna görə də kanareyka köhnəlir və ya yox olur. özü siqnaldır.
İçində yaşayır canary.json deponun kökündə yerləşir və birbaşa gətirilir
GitHub-dan, ona görə də onun tarixçəsi yerləşdirilən saytın dediklərindən asılı olmayaraq yoxlanıla bilər.
Haqqında dialoq onu rənglə kodlayır:
| Rəng | deməkdir |
|---|---|
| Yaşıl - hər şey aydındır | İmzalanmış, cari və imza tərtibatçının açarına uyğun gəlir. Heç bir gizli sifariş alınmayıb. |
| Sarı — vaxtı keçmiş və ya hər şey aydın deyil | Göstərilən tarixə və ya ona görə təzələnmədi allClear bayraq yalandır. Susdurulmuş sifarişi istisna etmək olmaz. |
| Qırmızı — etibarsız imza və ya getdi | İmza tərtibatçının açarı ilə uyğun gəlmir və ya fayl tamamilə silinib. Bunu ciddi bir xəbərdarlıq kimi qəbul edin. |
Təzəlik lövbəri
İmzalanmış kanareyka, imzalanma anında ən son Bitcoin blokunun hündürlüyünü və hashını özündə cəmləşdirir. Blok mövcud olmadan əvvəl bu hash bilinə bilməzdi, bu da kanareyanın olduğunu sübut edir imzaladı sonra aylar əvvəl toplu şəkildə əvvəlcədən imzalanmış deyil, müəyyən bir zaman nöqtəsi. Haqqında dialoqu lövbəri blok tədqiqatçısına bağlayır ki, siz onu yoxlaya biləsiniz.