مواد ڏانهن وڃو
واپس Nymchat ڏانھن

علم جو بنياد ڇت هيٺان

تعمير جي تصديق

اوپن سورس صرف ان صورت ۾ مدد ڪري ٿو جيڪو ڪوڊ توهان هلائي رهيا آهيو اهو ڪوڊ آهي جيڪو هو شايع ٿيل. Nymchat ٺهڪندڙ طور تي ٺهيل آهي، تنهنڪري توهان پاڻ کي چيڪ ڪري سگهو ٿا، اندر کان ايپ يا ٽرمينل مان.

ٻيهر پيدا ٿيندڙ تعميرات

ائپ جي تعمير هڪ emits build-manifest.json جنهن ۾ ماخذ ڪمٽ، الف SHA-256 هيش هر پيش ڪيل HTML، JavaScript ۽ CSS اثاثن، ۽ هڪ واحد bundleHash انهي سڄي اثاثن جي سيٽ تي.

پيداوار جو دارومدار صرف ماخذ جي مواد تي آهي - جيتوڻيڪ رڪارڊ ٿيل تعمير وقت آهي ڪمٽ جي ٽائم اسٽيمپ بجاءِ ان لمحي جي بجاءِ جنهن وقت تعمير هليو - تنهنڪري ڪو به ساڳيو ٻيهر تعمير ڪري ٿو ڪميٽ بائيٽ هڪجهڙائي واريون فائلون ۽ ساڳيون حاصل ڪري ٿو bundleHash.

هڪ GitHub ايڪشن پوءِ هر ڪم کي آزاديءَ سان ٻيهر تعمير ڪري ٿو ۽ تعمير جي نشانين جي نشاندهي ڪري ٿو hash and manifest لاءِ تصديقون، تنهن ڪري اتي هڪ دستخط ٿيل رڪارڊ آهي ٽائينگ a bundleHash مخزن ۾ هڪ وابستگي ڪرڻ لاءِ ، ڪنهن ٻئي جي طرفان پيدا ڪيل تعیناتي.

ڇا بابت ڊائلاگ چيڪ ڪري ٿو

بابت هيڊر ۾ چيڪ لائيو هلندو آهي، توهان جي برائوزر ۾.

The Nymchat About dialog، ڏيکاريو ورجن، تعمير سالميت ۽ وارنٽ ڪنري اسٽيٽس.
The About dialog: version, build integrity, warrant canary and a direct line to developer.

اهو هر هڪ اثاثو ٻيهر حاصل ڪري ٿو جيڪو صفحو اصل ۾ هلندڙ آهي، ان کي ويب Crypto API سان هيش ڪري ٿو، ۽ منشور جي مقابلي ۾. پوء - ۽ اھو اھو حصو آھي جيڪو معاملو آھي - اھو جي ٻيهر ڳڻپ ڪري ٿو bundleHash هيش مان اهو صرف حساب ڪيو ويو، مان نه ڪا به شيءِ جيڪا ظاهري دعويٰ ڪري ٿي، ۽ ظاهر آهي ته مخزن جي دستخط ٿيل تصديقن ۾ GitHub API ذريعي.

اھو اھو آھي جيڪو ھڪڙي ٺاھڻ کي روڪي ٿو پاڻ لاءِ وائچ ڪرڻ کان: تبديل ٿيل فائلن کي گڏ ڪرڻ سان گڏ هڪ ملندڙ پڌرو اڃا به ناڪام ٿئي ٿو، ڇاڪاڻ ته recomputed hash جي ڪا به تصديق نه آهي.

حيثيتمطلب
چيڪ ڪريو؛ تصديق ٿيل سرڪاري ايپ (n/n)هر اثاثو ملندو آهي، ٻيهر ٺهڪندڙ بنڊل هيش مخزن طرفان تصديق ٿيل آهي، ۽ صفحو سرڪاري ڊومين مان پيش ڪيو ويو آهي.
⚠ تصديق ٿيل تعمير · نه سرڪاري ايپڪوڊ حقيقي ۽ تصديق ٿيل آهي، پر اهو هڪ ٻيو ڊومين تي آئيني آهي. هڪ آئينو هن ڊيڄاريندڙ کي هٽائي نٿو سگهي بغير تصديق جي ناڪام ٿيڻ کان.
✗ بي ميلھڪڙو اثاثو ھش نٿو ڪري جيڪو منشور چوي ٿو.
✗ غير رسمي تعميرrecomputed بنڊل hash جي مخزن مان ڪا به تصديق نه آهي - هڪ خود ٺاهيل پڌرو.
⚠ نھايت ناھيGitHub API پهچي نه سگهيو، تنهنڪري تصديق جي جانچ نه ٿي سگهي.

پاڻ ان جي تصديق ڪندي

ڪمٽ کي ٻيهر ٺاھيو اٽڪل ڊائلاگ جا نالا ۽ موازنہ ڪريو:

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

Android ۽ iOS ايپس

مٿي ڏنل چيڪ هڪ ويب ايپ چيڪ آهي، ۽ سبب واضح طور تي بيان ڪرڻ جي قابل آهي: هڪ اصلي ايپ پاڻ سان ساڳيو ڪم نٿو ڪري سگهي. جيڪو توهان جي فون تي هلندو آهي اهو ٺهيل مشين ڪوڊ آهي، نه ذخيري ۾ ماخذ، ۽ ڪجھ به نه آھي جيڪو ايپ ڊوائيس تي شمار ڪري سگھي ٿو ھڪڙي ھڪڙي سان لاڳاپيل آھي ٻيو.

Android ايندڙ بهترين ڪم ڪري سگهي ٿو. انسٽال ٿيل .apk هڪ فائل آهي جيڪا ايپ پڙهي سگهي ٿي ۽ هيش، ۽ هر شايع ٿيل رليز جو هيش اڳ ۾ ئي عوامي آهي: شايع ڪرڻ لاءِ Zapstore APK جي SHA-256 ۽ ان جي دستخطي سرٽيفڪيٽ جي SHA-256 کي کڻڻ واري نوسٽر واقعي کي نشانو بڻايو. تنهنڪري جي Android بابت ڊائلاگ ان APK کي هيش ڪري ٿو جنهن کان اهو هلي رهيو آهي، انهن کي حاصل ڪري ٿو جيڪي دستخط ٿيل آهن واقعا، صرف انهن کي رکي ٿو جيڪي ڊولپر جي ڪنجي طرفان دستخط ٿيل آهن، ۽ موازنہ. اهو ٻنهي کي ڏيکاري ٿو hashes پڻ، تنهنڪري توهان ٻيهر ڪري سگهو ٿا چيڪ آف ڊيوائس کي: ڊائون لوڊ ڪريو شايع ٿيل APK، هلائي sha256sum ان تي، ۽ ساڳئي واقعي کي پاڻ ڏسو.

گوگل پلي تان انسٽال ٿيل ايپ کي هن طريقي سان چيڪ نٿو ڪري سگهجي، ۽ اھو ڪا نشانی ناہی تہ ڪجھ بہ غلط آھی۔ گوگل ہر اپ لوڊ کی پنھنجی ڪنجی سان وری سائن ڪری ٿو ۽ ہر ڊوائس لاء ہڪ الڳ ای پی ڪی ٺاہی ٿو، تنہنڪری توہان جی فون تی جیڪو لینڊ ٿئی ٿو اہا فائل نہ آھی جیڪا ڊولپر ٺاہی سگہی ٿی ۽ ان جو ہیش ڪجھ بہ نہ ملی سگہی جیڪا شایع ٿی سگہی ٿی۔ ایپ پلے انسٹال کی سڃاڻیندو آھی ۽ چوی ٿو تہ ناڪامیء جی رپورٽ ڪرڻ جی بجاء۔ پاڻ کی تعمیر ڪرڻ جی جانچ ڪرڻ لاء، سڌو سنئون شایع ٿیل ای پی ڪی کی نصب ڪریو

iOS جي چڪاس نه ٿي ڪري سگھجي. ايپل هر ڊائون لوڊ کي انڪرپٽ ۽ ٻيهر سائن ان ڪري ٿو انفرادي طور تي، تنهنڪري توهان جي فون تي ٺهيل هڪ هيش توهان جي فون لاء منفرد آهي ۽ ڪنهن به شيء سان نه ملندي ڪٿي به شايع ٿيل. The About dialog چوي ٿو اھو سڌو سنئون اطمينان ڏيڻ بجاءِ حالت جو مطلب ڪجھ به نه. جيڪڏهن توهان هڪ Nymchat چاهيو ٿا ته توهان ايپل هارڊويئر تي تصديق ڪري سگهو ٿا، ويب استعمال ڪريو ايپ، جيڪا هر فائل کي چيڪ ڪري ٿي جيڪا اها هلائي رهي آهي.

جنهن مان ڪو به ثابت نٿو ٿئي

هڪ چيڪ هڪ ايپ پاڻ تي هلندي آهي ثابت نه ٿي ڪري سگھي ته ايپ ايماندار آهي - جيڪو به ان کي تبديل ڪري ٿو چيڪ پڻ هٽائي سگھي ٿو. ڇا اهو ثابت ٿئي ٿو عام صورت آهي: ته ڪاپي توهان انسٽال ٿيل ڪاپي آهي جيڪا شايع ڪئي وئي هئي. اهو هجڻ جي لائق آهي ڇاڪاڻ ته اهو قدر آهي compares عوامي آھن، تنھنڪري توھان کان سواءِ ڪو ٻيو انھن کي چيڪ ڪري سگھي ٿو، ۽ اختلاف ڪري سگھي ٿو.

وارنٽ ڪينري

هڪ وارنٽ ڪينري هڪ بيان آهي، جيڪو مقرر ڪيل شيڊول تي شايع ٿيل آهي، جيڪو ڊولپر وٽ آهي نه هڪ ڳجهي حڪومتي حڪم حاصل ڪيو انهن کي ظاهر ڪرڻ کان منع ٿيل آهي - a نيشنل سيڪيورٽي خط، هڪ FISA آرڊر. ڊولپر جي باري ۾ خاموش رهڻ تي مجبور ٿي سگهي ٿو اهڙو حڪم آهي، پر ڪوڙ ڳالهائڻ تي مجبور نه ٿو ڪري سگهجي، تنهنڪري ڪينري بيٺل يا غائب ٿي رهي آهي پاڻ سگنل.

ان ۾ رهي ٿو canary.json مخزن جي روٽ تي ۽ سڌو حاصل ڪيو ويو آهي GitHub کان، تنهنڪري ان جي تاريخ آزاد طور تي آڊيٽ ڪرڻ جي قابل آهي جيڪو به مقرر ڪيل سائيٽ چوي ٿو. بابت ڊائلاگ رنگ-ڪوڊ ان کي:

رنگمطلب
سائو - سڀ صافدستخط ٿيل، موجوده، ۽ دستخط ڊولپر جي ڪنجي سان ملن ٿا. ڪو به ڳجهو حڪم نه مليو آهي.
پيلو - دير سان، يا سڀ صاف نهاهو ان جي بيان ڪيل تاريخ طرفان تازو نه ڪيو ويو، يا ان جي allClear پرچم ڪوڙو آهي. هڪ خاموش حڪم کي رد نٿو ڪري سگهجي.
ڳاڙهو - غلط دستخط، يا ويودستخط ڊولپر جي چاٻي سان نه ٿو ملي، يا فائل مڪمل طور تي هٽايو ويو آهي. هن کي هڪ سنگين ڊيڄاريندڙ طور سمجهيو.

تازگي جو لنگر

دستخط ٿيل ڪينري تازو Bitcoin بلاڪ جي اوچائي کي شامل ڪري ٿو ۽ دستخط جي وقت تي هيش. اهو هيش بلاڪ جي وجود کان اڳ معلوم نه ٿي سگهيو آهي، جيڪو ثابت ڪري ٿو ته ڪينري هئي دستخط ٿيل بعد ۾ وقت ۾ هڪ خاص نقطو بجاءِ بلڪ مھينن ۾ اڳ ۾ دستخط ٿيل. بابت ڊائلاگ لنگر کي بلاڪ ايڪسپلورر سان ڳنڍيندو آهي تنهنڪري توهان ان کي چيڪ ڪري سگهو ٿا.