پایگاه دانش زیر کاپوت
تایید ساخت
منبع باز تنها در صورتی کمک می کند که کدی که اجرا می کنید همان کدی باشد که بود منتشر شده است. Nymchat به طور قطعی ساخته شده است، بنابراین شما می توانید خودتان آن را از داخل بررسی کنید برنامه یا از یک ترمینال
این صفحه برای سهولت به صورت ماشینی ترجمه شده است. نسخه اصلی انگلیسی نسخه ای است که اعمال می شود.
ساخت های قابل تکرار
ساخت برنامه یک را منتشر می کند build-manifest.json حاوی تعهد منبع، الف
هش SHA-256 از هر دارایی HTML، جاوا اسکریپت و CSS ارائه شده و یک واحد
bundleHash بیش از کل مجموعه دارایی
خروجی فقط به محتوای منبع بستگی دارد - حتی زمان ساخت ضبط شده نیز همین است
مُهر زمانی commit به جای لحظه اجرای بیلد - بنابراین هر کسی که همان را بازسازی کند
commit فایل های یکسان بایت و همینطور دریافت می کند bundleHash.
سپس یک GitHub Action هر commit را بهطور مستقل بازسازی میکند و منشأ ساخت را امضا میکند
گواهی برای هش و مانیفست، بنابراین یک رکورد امضا شده وجود دارد که a
bundleHash به یک تعهد در مخزن، تولید شده توسط چیزی غیر از
استقرار
آنچه را که گفتگوی About بررسی می کند
درباره در هدر چک را به صورت زنده در مرورگر شما اجرا می کند.
هر دارایی را که صفحه در حال اجرا است دوباره واکشی می کند، آن را با Web Crypto API هش می کند و
با آشکار مقایسه می کند. سپس - و این بخشی است که مهم است - آن
را دوباره محاسبه می کند bundleHash از هش ها آن را فقط محاسبه شده است، نه از
هر چیزی که مانیفست ادعا می کند، و آن را در گواهی های امضا شده مخزن بررسی می کند
از طریق API GitHub.
این همان چیزی است که یک استقرار را از تضمین خود باز می دارد: ارائه فایل های اصلاح شده همراه با یک مانیفست منطبق همچنان ناموفق است، زیرا هش مجدد محاسبه شده گواهی ندارد.
| وضعیت | به معنی |
|---|---|
| &بررسی برنامه رسمی تأیید شده (n/n) | هر دارایی مطابقت دارد، هش بسته مجدد محاسبه شده توسط مخزن تأیید می شود. و صفحه از دامنه رسمی ارائه می شود. |
| ⚠ ساخت تایید شده · برنامه رسمی نیست | کد اصلی و تایید شده است، اما این یک آینه در دامنه دیگری است. یک آینه نمی تواند این هشدار را بدون انجام تأیید صحت حذف کند. |
| ✗ عدم تطابق | دارایی با آنچه مانیفست می گوید هش نمی کند. |
| ✗ ساخت غیر رسمی | هش بستهای که مجدداً محاسبهشده است، هیچ تأییدی از مخزن ندارد - یک مانیفست خودساخته. |
| ⚠ منشأ غیر قابل دسترس | دسترسی به API GitHub امکانپذیر نیست، بنابراین گواهی به هیچ وجه قابل بررسی نیست. |
خودت تاییدش کنی
commit نام های گفتگوی About را دوباره بسازید و مقایسه کنید:
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>"
هش چاپ شده باید هم با یکی در گفتگوی About و هم در آن commit مطابقت داشته باشد خلاصه اجرای ساخت و منشأ همچنین میتوانید امضا را مستقیماً با GitHub CLI بررسی کنید:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
قناری گارانتی
قناری گارانتی بیانیهای است که در یک برنامه زمانبندی ثابت منتشر شده است که توسعهدهنده آن را دارد نه یک دستور مخفی دولتی دریافت کرده اند که از افشای آنها منع شده اند - الف نامه امنیت ملی، یک دستور FISA. می توان توسعه دهنده را مجبور کرد که در مورد آن سکوت کند چنین دستوری است، اما نمی توان آن را مجبور به دروغ گفتن کرد، بنابراین قناری کهنه یا ناپدید می شود خود سیگنال
در آن زندگی می کند canary.json در ریشه مخزن قرار دارد و مستقیماً واکشی می شود
از GitHub، بنابراین تاریخچه آن مستقل از هر چیزی که سایت مستقر می گوید قابل ممیزی است.
گفتگوی درباره آن را با رنگ کدگذاری می کند:
| رنگ | به معنی |
|---|---|
| سبز - همه چیز روشن است | امضا، فعلی و امضا با کلید توسعه دهنده مطابقت دارد. هیچ دستور محرمانه ای دریافت نشده است. |
| زرد - عقب افتاده، یا همه چیز مشخص نیست | تا تاریخ اعلام شده یا آن به روز نشد allClear پرچم دروغ است دستور خاموشی را نمی توان رد کرد. |
| قرمز - امضای نامعتبر یا از بین رفته است | امضا با کلید توسعه دهنده مطابقت ندارد یا فایل به طور کامل حذف شده است. با این به عنوان یک هشدار جدی برخورد کنید. |
لنگر طراوت
قناری امضا شده آخرین ارتفاع بلوک بیت کوین و هش آن را در لحظه امضا درج می کند. این هش نمیتوانست قبل از وجود بلوک شناخته شده باشد، که ثابت میکند قناری بوده است امضا کرد بعد از یک نقطه زمانی خاص به جای اینکه ماه ها قبل به صورت انبوه از قبل امضا شده باشد. گفتگوی About لنگر را به یک بلوک کاوشگر پیوند می دهد تا بتوانید آن را بررسی کنید.