قاعدة المعرفة تحت غطاء محرك السيارة
التحقق من البناء
المصدر المفتوح يساعد فقط إذا كان الكود الذي تقوم بتشغيله هو الكود الموجود نشرت. تم تصميم Nymchat بشكل حتمي حتى تتمكن من التحقق من ذلك بنفسك من داخل التطبيق أو من المحطة.
تمت ترجمة هذه الصفحة آليًا من أجل الراحة. النسخة الأصلية الإنجليزية هي النسخة التي تنطبق.
بنيات قابلة للتكرار
يؤدي إنشاء التطبيق إلى إصدار أ build-manifest.json يحتوي على التزام المصدر، أ
تجزئة SHA-256 لكل أصل HTML وJavaScript وCSS معروض وواحد
bundleHash على مجموعة الأصول بأكملها.
يعتمد الإخراج فقط على محتوى المصدر - حتى وقت البناء المسجل هو
الطابع الزمني للالتزام بدلاً من لحظة تشغيل الإنشاء - لذلك يقوم أي شخص بإعادة بناء نفس الشيء
الالتزام يحصل على ملفات متطابقة بايت ونفس الشيء bundleHash.
يقوم إجراء GitHub بعد ذلك بإعادة بناء كل التزام بشكل مستقل ويوقع على مصدر البناء
شهادات التجزئة والبيان، لذلك هناك سجل موقع يربط أ
bundleHash للالتزام في المستودع، الذي تم إنتاجه بواسطة شيء آخر غير
النشر.
ما الذي يتحقق منه مربع الحوار "حول".
عن في الرأس يتم تشغيل الشيك مباشرة في متصفحك.
فهو يعيد جلب كل أصل تعمل عليه الصفحة فعليًا، ويجزئه باستخدام Web Crypto API، ثم
يقارن ضد البيان. ثم - وهذا هو الجزء المهم -
يعيد حساب bundleHash من التجزئة هو - هي تحسب فقط، وليس من
أي شيء يدعيه البيان، ويبحث عن ذلك في الشهادات الموقعة للمستودع
من خلال واجهة برمجة تطبيقات GitHub.
هذا هو ما يمنع النشر من ضمان نفسه: تقديم الملفات المعدلة مع لا يزال البيان المطابق يفشل، لأن التجزئة المعاد حسابها لا تحتوي على شهادة.
| حالة | وسائل |
|---|---|
| &يفحص؛ التطبيق الرسمي الذي تم التحقق منه (n/n) | يتطابق كل أصل، ويتم التصديق على تجزئة الحزمة المُعاد حسابها بواسطة المستودع، و يتم تقديم الصفحة من المجال الرسمي. |
| ⚠ تم التحقق من البنية · ليس التطبيق الرسمي | الكود أصلي وموثق، ولكنه مرآة لمجال آخر. لا يمكن للمرآة إزالة هذا التحذير دون فشل عملية التحقق. |
| ✗ عدم التطابق | لا يتم تجزئة الأصل إلى ما يقوله البيان. |
| ✗ بناء غير رسمي | لا تحتوي تجزئة الحزمة المُعاد حسابها على شهادة من المستودع — وهو بيان تم إعداده ذاتيًا. |
| ⚠ المصدر لا يمكن الوصول إليه | تعذر الوصول إلى واجهة برمجة تطبيقات 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>"
يجب أن تتطابق التجزئة المطبوعة مع كل من التجزئة الموجودة في مربع الحوار "حول" والتجزئة الموجودة في هذا الالتزام ملخص تشغيل مصدر البناء. يمكنك أيضًا التحقق من التوقيع مباشرةً باستخدام GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
كناري الوصية
مذكرة الكناري هي بيان منشور وفقًا لجدول زمني محدد لدى المطور لا تلقوا أمرًا حكوميًا سريًا يُحظر عليهم الكشف عنه - أ خطاب الأمن القومي، أمر قانون مراقبة الاستخبارات الأجنبية (FISA). يمكن إجبار المطور على التزام الصمت مثل هذا الأمر، ولكن لا يمكن إجباره على الكذب، لذلك يصبح الكناري قديمًا أو يختفي نفسها الإشارة.
يعيش في canary.json في جذر المستودع ويتم جلبه مباشرة
من GitHub، لذا فإن تاريخه قابل للتدقيق بشكل مستقل عما يقوله الموقع المنشور.
يقوم مربع الحوار "حول" بترميز الألوان إلى ما يلي:
| لون | وسائل |
|---|---|
| أخضر — كل شيء واضح | موقعة وحالية والتوقيع يطابق مفتاح المطور. ولم يتم تلقي أي أمر سري. |
| أصفر - تأخر موعد استحقاقه، أو لم يكن كل شيء واضحًا | لم يتم تحديثه بتاريخه المعلن أو بتاريخه allClear العلم كاذب. ولا يمكن استبعاد الأمر الصامت. |
| أحمر — توقيع غير صالح، أو ذهب | التوقيع لا يتطابق مع مفتاح المطور، أو تمت إزالة الملف بالكامل. تعامل مع هذا كتحذير خطير. |
مرساة النضارة
يشتمل الكناري الموقع على أحدث ارتفاع لكتلة البيتكوين والتجزئة في وقت التوقيع. لا يمكن أن يكون هذا التجزئة معروفًا قبل وجود الكتلة، مما يثبت أن الكناري كان معروفًا وقعت بعد نقطة زمنية محددة بدلاً من التوقيع المسبق بكميات كبيرة قبل أشهر. يقوم مربع الحوار "حول" بربط المرساة بمستكشف الكتل حتى تتمكن من التحقق منها.