مواد پر جائیں۔
Nymchat پر واپس جائیں۔

علم کی بنیاد ہڈ کے نیچے

تعمیر کی تصدیق

اوپن سورس صرف اس صورت میں مدد کرتا ہے جب آپ جو کوڈ چلا رہے ہیں وہی کوڈ ہے۔ شائع Nymchat کو مستقل طور پر بنایا گیا ہے لہذا آپ اسے اندر سے خود چیک کر سکتے ہیں۔ ایپ یا ٹرمینل سے۔

دوبارہ پیدا کرنے کے قابل بناتا ہے۔

ایپ بنانے سے a build-manifest.json ذریعہ کمٹ پر مشتمل، a ہر پیش کردہ HTML، JavaScript اور CSS اثاثہ کا SHA-256 ہیش، اور ایک واحد bundleHash اس پورے اثاثہ سیٹ سے زیادہ۔

آؤٹ پٹ صرف ماخذ کے مواد پر منحصر ہے - یہاں تک کہ ریکارڈ شدہ تعمیر کا وقت بھی ہے۔ کمٹ کا ٹائم اسٹیمپ اس لمحے کے بجائے جس وقت بلڈ چل گیا تھا - لہذا کوئی بھی اسے دوبارہ تعمیر کر رہا ہے۔ کمٹ کو بائٹ جیسی فائلیں ملتی ہیں اور وہی bundleHash.

ایک GitHub ایکشن پھر ہر ایک کمٹٹ کو آزادانہ طور پر دوبارہ بناتا ہے اور تعمیر کی نشاندہی کرتا ہے۔ ہیش اور مینی فیسٹ کے لیے تصدیق، تو ایک دستخط شدہ ریکارڈ ہے باندھنا a bundleHash مخزن میں ایک عہد کرنا، جو کہ کے علاوہ کسی اور چیز کے ذریعہ تیار کیا گیا ہے۔ تعیناتی

کے بارے میں ڈائیلاگ کیا چیک کرتا ہے۔

کے بارے میں ہیڈر میں چیک لائیو چلاتا ہے، آپ کے براؤزر میں۔

Nymchat کے بارے میں ڈائیلاگ، ورژن دکھا رہا ہے، سالمیت کی تعمیر اور کینری کی حیثیت کی ضمانت دیتا ہے۔
اس کے بارے میں ڈائیلاگ: ورژن، تعمیر کی سالمیت، وارنٹ کینری اور ڈویلپر کے لیے براہ راست لائن۔

یہ ہر اثاثے کو دوبارہ حاصل کرتا ہے جو صفحہ اصل میں چل رہا ہے، اسے ویب کریپٹو API کے ساتھ ہیش کرتا ہے، اور مینی فیسٹ سے موازنہ کرتا ہے۔ پھر - اور یہ وہ حصہ ہے جو اہمیت رکھتا ہے۔ کی دوبارہ گنتی کرتا ہے۔ bundleHash ہیشوں سے یہ صرف حساب کیا گیا، سے نہیں۔ کچھ بھی جو ظاہر کا دعویٰ کرتا ہے، اور اسے ذخیرہ کی دستخط شدہ تصدیقوں میں نظر آتا ہے۔ GitHub API کے ذریعے۔

یہی وہ چیز ہے جو کسی تعیناتی کو اپنے لیے تصدیق کرنے سے روکتی ہے: ترمیم شدہ فائلوں کو ایک ساتھ پیش کرنا ایک مماثل مینی فیسٹ اب بھی ناکام ہوجاتا ہے، کیونکہ دوبارہ گنتی کی گئی ہیش کی کوئی تصدیق نہیں ہے۔

حیثیتمطلب
چیک کریں تصدیق شدہ آفیشل ایپ (n/n)ہر اثاثہ سے مماثل ہے، دوبارہ گنتی شدہ بنڈل ہیش ریپوزٹری سے تصدیق شدہ ہے، اور صفحہ سرکاری ڈومین سے پیش کیا جاتا ہے۔
⚠ تصدیق شدہ تعمیر · سرکاری ایپ نہیں۔کوڈ حقیقی اور تصدیق شدہ ہے، لیکن یہ کسی اور ڈومین کا آئینہ ہے۔ ایک آئینہ اس انتباہ کو بغیر تصدیق کے ہٹا نہیں سکتا۔
✗ بے میلایک اثاثہ مینی فیسٹ کے مطابق نہیں ہوتا ہے۔
✗ غیر سرکاری تعمیردوبارہ گنتی شدہ بنڈل ہیش میں ریپوزٹری سے کوئی تصدیق نہیں ہے - ایک خود ساختہ مینی فیسٹ۔
⚠ اصلیت ناقابل رسائی ہے۔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 ایپس

مندرجہ بالا چیک ایک ویب ایپ چیک ہے، اور وجہ واضح طور پر بتانے کے قابل ہے: ایک مقامی ایپ اپنے ساتھ ایک ہی کام نہیں کر سکتا۔ جو آپ کے فون پر چلتا ہے وہ مرتب شدہ مشین کوڈ ہے، نہ کہ ذخیرے میں ماخذ، اور کسی بھی چیز کا جو ایپ ڈیوائس پر شمار نہیں کر سکتی ہے اس سے ایک کا تعلق ہے۔ دوسرے

اینڈرائیڈ اگلی بہترین چیز کر سکتا ہے۔ نصب شدہ .apk ایک فائل ہے جسے ایپ پڑھ سکتی ہے۔ اور ہیش، اور ہر شائع شدہ ریلیز کا ہیش پہلے سے ہی عوامی ہے: کو شائع کرنا Zapstore ایک نوسٹر ایونٹ پر دستخط کرتا ہے جس میں APK کا SHA-256 اور اس کے دستخطی سرٹیفکیٹ کا SHA-256 ہوتا ہے۔ تو اینڈرائیڈ کے بارے میں ڈائیلاگ اس APK کو ہیش کرتا ہے جس سے یہ چل رہا ہے، دستخط شدہ کو بازیافت کرتا ہے۔ ایونٹس، صرف ڈویلپر کی کلید سے دستخط شدہ کو رکھتا ہے، اور موازنہ کرتا ہے۔ یہ دونوں کو دکھاتا ہے۔ ہیشز بھی، تاکہ آپ ڈیوائس کو چیک آف کرنے کو دہرا سکیں: شائع شدہ APK ڈاؤن لوڈ کریں، چلائیں۔ sha256sum اس پر، اور خود اسی واقعہ کو دیکھو۔

گوگل پلے سے انسٹال کردہ ایپ کو اس طرح چیک نہیں کیا جا سکتا، اور یہ اس بات کی علامت نہیں ہے کہ کچھ بھی غلط ہے۔ گوگل ہر اپ لوڈ کو اپنی کلید سے دوبارہ سائن کرتا ہے اور ہر ڈیوائس کے لیے ایک علیحدہ اے پی کے بناتا ہے، لہذا آپ کے فون پر جو آتا ہے وہ ڈویلپر کی تیار کردہ فائل نہیں ہے اور اس کا ہیش شائع ہونے والی کسی چیز سے میل نہیں کھاتا ہے۔ ایپ پلے انسٹال کو پہچانتی ہے اور ناکامی کی اطلاع دینے کے بجائے ایسا کہتی ہے۔ خود بلڈ چیک کرنے کے لیے، براہ راست شائع کردہ اے پی کے انسٹال کریں۔

iOS کو بالکل بھی چیک نہیں کیا جا سکتا۔ ایپل ہر ڈاؤن لوڈ کو خفیہ کرتا ہے اور دوبارہ سائن کرتا ہے۔ انفرادی طور پر، لہذا آپ کے آئی فون پر کمپیوٹنگ کی گئی ہیش آپ کے آئی فون سے منفرد ہے اور کسی چیز سے میل نہیں کھاتی کہیں بھی شائع. اس کے بارے میں ڈائیلاگ یقین دہانی دکھانے کے بجائے یہ بالکل صاف کہتا ہے۔ حیثیت جس کا کوئی مطلب نہیں ہے۔ اگر آپ Nymchat چاہتے ہیں تو آپ Apple ہارڈویئر پر تصدیق کر سکتے ہیں، ویب کا استعمال کریں۔ ایپ، جو چل رہی ہر فائل کو چیک کرتی ہے۔

اس میں سے کوئی بھی کیا ثابت نہیں کرتا

ایک چیک ایک ایپ خود چلتی ہے یہ ثابت نہیں کر سکتی کہ ایپ ایماندار ہے - جس نے بھی اس میں ترمیم کی ہے۔ چیک بھی ہٹا سکتا ہے۔ یہ کیا ثابت کرتا ہے عام معاملہ ہے: کہ آپ کو کاپی کریں۔ انسٹال وہ کاپی ہے جو شائع ہوئی تھی۔ یہ ہونے کے قابل ہے کیونکہ اس کی قدر کرتی ہے۔ موازنہ عوامی ہیں، لہذا آپ کے علاوہ کوئی اور ان کی جانچ کر سکتا ہے، اور اختلاف کر سکتا ہے۔

وارنٹ کینری

وارنٹ کینری ایک بیان ہے، جو ایک مقررہ شیڈول پر شائع ہوتا ہے، جو ڈویلپر کے پاس ہوتا ہے۔ نہیں ایک خفیہ حکومتی حکم نامہ موصول ہوا جسے ظاہر کرنے سے منع کیا گیا ہے۔ قومی سلامتی کا خط، ایک FISA آرڈر۔ ڈویلپر کو اس بارے میں خاموش رہنے پر مجبور کیا جا سکتا ہے۔ ایسا حکم ہے، لیکن جھوٹ بولنے پر مجبور نہیں کیا جا سکتا، اس لیے کنری باسی یا غائب ہو رہی ہے۔ خود سگنل.

اس میں رہتا ہے۔ canary.json ذخیرہ کی جڑ میں اور براہ راست حاصل کیا جاتا ہے۔ GitHub سے، لہذا اس کی تاریخ جو کچھ بھی تعینات سائٹ کہتی ہے آزادانہ طور پر قابل آڈٹ ہے۔ اس کے بارے میں ڈائیلاگ رنگ کوڈ کرتا ہے:

رنگمطلب
سبز - سب واضحدستخط شدہ، موجودہ، اور دستخط ڈویلپر کی کلید سے میل کھاتا ہے۔ کوئی خفیہ حکم نامہ موصول نہیں ہوا۔
پیلا - زائد المیعاد، یا سب واضح نہیں۔یہ اس کی بتائی گئی تاریخ، یا اس کی طرف سے تازہ نہیں کیا گیا تھا allClear جھنڈا جھوٹا ہے. ایک خاموش حکم کو رد نہیں کیا جا سکتا۔
سرخ - غلط دستخط، یا چلے گئے۔دستخط ڈویلپر کی کلید سے مماثل نہیں ہے، یا فائل کو مکمل طور پر ہٹا دیا گیا ہے۔ اسے ایک سنگین انتباہ سمجھیں۔

تازگی کا لنگر

دستخط شدہ کینری تازہ ترین Bitcoin بلاک کی اونچائی اور دستخط کے وقت ہیش کو سرایت کرتی ہے۔ اس ہیش کو بلاک کے موجود ہونے سے پہلے معلوم نہیں ہو سکتا تھا، جس سے ثابت ہوتا ہے کہ کینری تھی۔ دستخط شدہ کے بعد مہینوں پہلے بلک میں پہلے سے دستخط کرنے کے بجائے وقت میں ایک مخصوص نقطہ۔ کے بارے میں ڈائیلاگ اینکر کو بلاک ایکسپلورر سے جوڑتا ہے تاکہ آپ اسے چیک کر سکیں۔