به محتوا بروید
بازگشت به Nymchat

پایگاه دانش زیر کاپوت

تایید ساخت

منبع باز تنها در صورتی کمک می کند که کدی که اجرا می کنید همان کدی باشد که بود منتشر شده است. Nymchat به طور قطعی ساخته شده است، بنابراین شما می توانید خودتان آن را از داخل بررسی کنید برنامه یا از یک ترمینال

ساخت های قابل تکرار

ساخت برنامه یک را منتشر می کند build-manifest.json حاوی تعهد منبع، الف هش SHA-256 از هر دارایی HTML، جاوا اسکریپت و CSS ارائه شده و یک واحد bundleHash بیش از کل مجموعه دارایی

خروجی فقط به محتوای منبع بستگی دارد - حتی زمان ساخت ضبط شده نیز همین است مُهر زمانی commit به جای لحظه اجرای بیلد - بنابراین هر کسی که همان را بازسازی کند commit فایل های یکسان بایت و همینطور دریافت می کند bundleHash.

سپس یک GitHub Action هر commit را به‌طور مستقل بازسازی می‌کند و منشأ ساخت را امضا می‌کند گواهی برای هش و مانیفست، بنابراین یک رکورد امضا شده وجود دارد که a bundleHash به یک تعهد در مخزن، تولید شده توسط چیزی غیر از استقرار

آنچه را که گفتگوی About بررسی می کند

درباره در هدر چک را به صورت زنده در مرورگر شما اجرا می کند.

گفتگوی Nymchat درباره، نمایش نسخه، یکپارچگی ساخت و وضعیت قناری را تضمین می کند.
گفتگوی درباره: نسخه، یکپارچگی ساخت، قناری گارانتی و یک خط مستقیم به توسعه دهنده.

هر دارایی را که صفحه در حال اجرا است دوباره واکشی می کند، آن را با 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 لنگر را به یک بلوک کاوشگر پیوند می دهد تا بتوانید آن را بررسی کنید.