בסיס ידע מתחת למכסה המנוע
אימות המבנה
קוד פתוח עוזר רק אם הקוד שאתה מריץ הוא הקוד שהיה פורסם. Nymchat בנוי בצורה דטרמיניסטית כך שתוכלו לבדוק זאת בעצמכם, מבפנים אפליקציה או ממסוף.
דף זה תורגם במכונה לנוחיותך. המקור האנגלי הוא הגרסה החלה.
בנייה ניתנת לשחזור
בניית האפליקציה פולטת א build-manifest.json המכיל את המקור להתחייב, א
SHA-256 hash של כל נכס HTML, JavaScript ו-CSS מוגש, ויחיד
bundleHash על כל מערך הנכסים הזה.
הפלט תלוי רק בתוכן המקור - אפילו זמן הבנייה המוקלט הוא
חותמת הזמן של commit ולא הרגע שבו הבנייה רצה - אז כל מי שבונה מחדש את אותו הדבר
commit מקבל קבצים זהים בתים ואותו דבר bundleHash.
לאחר מכן, פעולת GitHub בונה מחדש כל התחייבות באופן עצמאי וחותמת על מקור בנייה
אישורים ל-hash ולמניפסט, אז יש רשומה חתומה הקושרת א
bundleHash להתחייבות במאגר, שנוצרה על ידי משהו אחר מלבד
פריסה.
מה תיבת הדו-שיח 'אודות' בודקת
אוֹדוֹת בכותרת מופעלת הבדיקה חיה, בדפדפן שלך.
הוא מאחזר מחדש כל נכס שהדף פועל בפועל, מאחזר אותו עם ה-Web Crypto API, וכן
משווה מול המניפסט. ואז - וזה החלק שחשוב - זה
מחשב מחדש את bundleHash מהאשים זֶה רק מחושב, לא מ
כל מה שהמניפסט טוען, ומחפש את זה באישורים החתומים של המאגר
דרך ה-API של GitHub.
זה מה שעוצר פריסה מלהבטיח לעצמה: הגשת קבצים ששונו יחד עם מניפסט תואם עדיין נכשל, מכיוון של-hash המחושב מחדש אין אישור.
| סטָטוּס | אֶמְצָעִי |
|---|---|
| &לִבדוֹק; אפליקציה רשמית מאומתת (n/n) | כל נכס תואם, ה-hash החבילה המחושב מאושר על ידי המאגר, ו הדף מוגש מהדומיין הרשמי. |
| ⚠ מבנה מאומת · לא האפליקציה הרשמית | הקוד מקורי ומאושר, אבל זה מראה על תחום אחר. מראה לא יכולה להסיר את האזהרה הזו בלי אימות נכשל. |
| ✗ אי התאמה | נכס אינו מתחבר למה שאומר המניפסט. |
| ✗ מבנה לא רשמי | ל-hash החבילה המחושב מחדש אין אישור מהמאגר - מניפסט מתוצרת עצמית. |
| ⚠ לא ניתן להגיע למקור | לא ניתן היה להגיע לממשק ה-API של GitHub, כך שלא ניתן היה לבדוק את האישור בשני הצדדים. |
מאמת את זה בעצמך
בנה מחדש את שמות הדו-שיח 'אודות' והשווה:
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>"
ה-hash המודפס צריך להתאים גם לזה שבתיבת הדו-שיח About וגם לזה שב-commit זה סיכום ריצת מבנה מקור. אתה יכול גם לבדוק את החתימה ישירות עם GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
כנרית הצו
קנרי צו הוא הצהרה, שפורסמה בלוח זמנים קבוע, שיש ליזם לֹא קיבלו צו ממשלתי סודי שאסור להם לחשוף - א מכתב ביטחון לאומי, צו FISA. ניתן לאלץ את היזם לשתוק לגביו פקודה כזו, אבל אי אפשר להכריח אותה לשקר, אז הקנרית הולכת ומעופשת או נעלמת היא עצמו האות.
זה חי ב canary.json בשורש המאגר ומאוחזר ישירות
מ-GitHub, כך שההיסטוריה שלו ניתנת לביקורת ללא תלות בכל מה שהאתר הפרוס אומר.
תיבת הדו-שיח 'אודות' מקודדת אותו בצבע:
| צֶבַע | אֶמְצָעִי |
|---|---|
| יָרוֹק - הכל ברור | חתום, עדכני והחתימה תואמת את המפתח של המפתח. לא התקבלה פקודה סודית. |
| צָהוֹב - באיחור, או שלא הכל ברור | זה לא היה רענן לפי התאריך הנקוב שלו, או שלו allClear הדגל שקרי. לא ניתן לשלול פקודה מושתקת. |
| אָדוֹם - חתימה לא חוקית, או שנעלמה | החתימה אינה תואמת את המפתח של המפתח, או שהקובץ הוסר לחלוטין. התייחס לזה כאזהרה רצינית. |
עוגן הרעננות
הקנרית החתומה מטביעה את גובה בלוק הביטקוין העדכני ביותר ואת ה-hash ברגע החתימה. לא ניתן היה לדעת את החשיש הזה לפני שהגוש היה קיים, מה שמוכיח שהכנרית הייתה חתום לְאַחַר נקודת זמן ספציפית במקום שנחתמה מראש בכמות גדולה חודשים קודם לכן. תיבת הדו-שיח 'אודות' מקשרת את העוגן לסייר בלוקים כדי שתוכל לבדוק אותו.