سیکیورٹی اور ذمہ دارانہ انکشاف
یہ ترجمہ ہے۔ اگر اس میں اور انگریزی صفحے میں کوئی فرق ہو تو انگریزی صفحہ ہی معتبر ہے۔
Yapmesh کا ابھی تک کوئی آزاد سیکیورٹی آڈٹ نہیں ہوا۔ پروٹوکول لکھا ہوا ہے اور بنیادی لائبریری عوامی ہے تاکہ آڈٹ ہو سکے۔ تب تک Yapmesh کو امید افزا سمجھیں، ثابت شدہ نہیں۔
Yapmesh کس چیز کی حفاظت کرتا ہے
- براہِ راست پیغامات، آواز کے نوٹ، نجی فائلوں، کالوں اور رسیدوں کا مواد۔ وصول کنندہ کی کنجی کے لیے مہر بند۔ Signal طرز کا Double Ratchet آگے کی رازداری (forward secrecy) اور کسی سیشن کنجی کے چوری ہونے کے بعد بحالی دیتا ہے، اور X3DH پیشگی کنجیاں کسی رابطے کو بالکل پہلا پیغام بھی forward-secret بناتی ہیں۔ پہنچنے اور پڑھنے کی رسیدیں پیغامات کی طرح مہر بند ہوتی ہیں، اس لیے ریلے ان میں فرق نہیں کر سکتا۔ بھیجنے والے کی اصلیت فریم کا دستخط ہے۔
- نجی اور باڑ والے گروپوں کا مواد۔ گروپ کی موجودہ دور (epoch) کی کنجی سے انکرپٹڈ؛ ہر بھیجنے والے کی ہر دور میں اپنی کنجیوں کی زنجیر ہوتی ہے، اس لیے ایک پیغام کی کنجی اس سے پہلے والوں کو کبھی نہیں کھولتی۔ فائلیں ٹکڑوں میں کاٹنے سے پہلے انکرپٹ ہوتی ہیں۔ جو رکن چھوڑ دے، نکال دیا جائے، یا باڑ سے باہر چلا جائے اسے اگلی کنجی کبھی نہیں ملتی۔
- گروپ پیغام کس نے لکھا، باہر والوں سے۔ گروپ پیغامات میں بھیجنے والے کا ایک فرضی نام ہوتا ہے جو گروپ کی ہر کنجی کے ساتھ بدلتا ہے، اور یہ ثبوت کہ کس نے لکھا انکرپشن کے اندر ہوتا ہے، اس لیے گروپ سے باہر کا ریلے ہر دور میں ایک الگ اجنبی دیکھتا ہے، رکن کی کنجی کبھی نہیں۔ گروپ کے اپنے اعلانات (اراکین کی فہرست، کنجی کی تبدیلیاں) اب بھی بتاتے ہیں کہ انہیں کس نے جاری کیا۔
- آپ کی تصویر۔ صرف آپ کے رابطوں کے لیے مہر بند؛ کسی اور کو نہیں ملتی۔
- گروپ میں کون ہے۔ رکنیت ایک دستخط شدہ فہرست ہے؛ نجی گروپ میں شامل ہونے کے لیے دعوت کے راز کا ثبوت چاہیے؛ ایڈمن کا کسی کو نکالنا ایک دستخط شدہ پابندی ہے۔
- آپ کس سے بات کر رہے ہیں۔ 60 ہندسوں کا حفاظتی نمبر، جو بالکل Signal کی طرح بنتا ہے، آمنے سامنے ملایا یا اسکین کیا جا سکتا ہے؛ بدلی ہوئی کنجی دکھائی جاتی ہے، چھپائی نہیں جاتی۔ کسی دوست کا آگے بھیجا ہوا رابطہ کارڈ تب تک غیر تصدیق شدہ کے نشان کے ساتھ آتا ہے جب تک آپ اسے جانچ نہ لیں۔
- ہر چیز کی سالمیت۔ ہر فریم دستخط شدہ ہے؛ جعلی یا بدلا ہوا فریم دیکھے جانے سے پہلے ہی پھینک دیا جاتا ہے۔ فائل کا ہر ٹکڑا محفوظ کرنے سے پہلے فائل کے Merkle root کے مقابلے میں جانچا جاتا ہے۔ ”سب کے لیے مٹائیں“ صرف اصل بھیجنے والے کی کنجی سے مانا جاتا ہے۔
- محفوظ حالت میں ہر چیز۔ چیٹیں، رابطے، گروپ، سامان، موجودگی، ووٹ، بلاک اور رپورٹیں فون پر ایک بے ترتیب ڈیٹا کنجی سے انکرپٹڈ ہیں جو ہارڈویئر کی اسٹور میں لپٹی ہوئی ہے۔ شناختی کنجیاں اور سیشن اینڈرائیڈ کی محفوظ اسٹوریج میں رہتے ہیں۔
- انٹرنیٹ پہنچ، جب آپ اسے استعمال کریں۔ ریلے ایک ٹیگ دیکھتے ہیں جو جوڑے کی پہلے سے مشترک کنجیوں سے نکلتا ہے اور ہر گھنٹے بدلتا ہے، اور ریلے کی طرف کی ایک کنجی جو ہر روز نئی بنتی ہے؛ بیکن مہر بند اور دستخط شدہ ہیں؛ ریلے سے گزرنے والے فریم کسی بھی براہِ راست فریم کی طرح مہر بند ہیں۔ ریلے نہ کچھ پڑھ سکتا ہے، نہ جعل سازی کر سکتا ہے، نہ فون سے کوئی ایسی چیز منوا سکتا ہے جسے عام وصولی کا راستہ رد کر دیتا۔
- انسٹالر (yapmesh.com ایڈیشن)۔ میش کے ذریعے ملا ہوا ورژن صرف تب انسٹال ہوتا ہے جب اس کی دستخطی کنجی چلتی ہوئی ایپ کی کنجی سے ملتی ہو۔
Yapmesh کس چیز کی حفاظت نہیں کرتا
- ریڈیو پڑوسی سے میٹا ڈیٹا۔ رینج میں موجود کوئی بھی فون آپ کا ہیلو بیکن دیکھتا ہے: ایک ظاہری نام (چھپنے کی صورت میں خالی؛ اگر آپ اپنا نام اجنبیوں سے چھپائیں تو آپ کی عوامی کنجی سے بنا ایک ہینڈل، جیسے @yap#0421)، کون سے زینے چل رہے ہیں، ایپ کا ورژن، بیٹری کی سطح، آپ کے براہِ راست پڑوسیوں کے نام، موجودگی کا وہ سب سے اونچا درجہ جس پر آپ جواب دیتے ہیں، اور 256 بائٹ کا ایک فلٹر جس میں ان پیغامات اور فائلوں کی ids ہوتی ہیں جو اس فون کے پاس پہلے سے ہیں، تاکہ پڑوسی انہیں دوبارہ نہ بھیجیں۔ وہ دیکھتا ہے کہ ایک خاص سائز کے فریم خاص کنجیوں کے درمیان خاص وقتوں پر چلتے ہیں۔ چھپنے سے ہوا میں آپ کا نام ہٹتا ہے، آپ کی موجودگی نہیں۔
- ٹریفک کا تجزیہ۔ ریلے فون ہر براہِ راست فریم کے لیے جو وہ لے جاتا ہے بھیجنے والے کی کنجی، وصول کنندہ کی کنجی، ہاپ کی گنتی اور سائز دیکھتا ہے۔ وقت کے ساتھ، کون کس سے بات کرتا ہے یہ ہر اس شخص کو نظر آتا ہے جو رینج میں رہے یا بہت سے فونز کے لاگ جمع کرے۔ Yapmesh ٹریفک میں نہ بھرتی کرتا ہے، نہ تاخیر، نہ ملاوٹ۔
- آپ کا IP پتا، جب تک انٹرنیٹ پہنچ آن ہو (شروع سے یہی ہے)۔ عوامی ریلے، MQTT بروکر، STUN سرور، پُش ڈسٹری بیوٹر، اسپول اور وہ رابطہ جس سے آپ براہِ راست جڑیں، ہر ایک آپ کے فون کا استعمال کیا ہوا IP پتا جان لیتا ہے، اور ریلے گن سکتا ہے کہ کوئی ٹیگ کتنی بار فعال ہوتا ہے۔ اس کا جواب Tor ہے، جس کی تفصیل لکھی گئی ہے مگر بنا نہیں۔ مرکزی سوئچ شروع سے آن ہے اور Menu → Settings → Internet میں بند کیا جا سکتا ہے؛ MQTT بروکر شروع میں بند ہیں، اور کسی بھی رابطے پر ”انٹرنیٹ: کبھی نہیں“ لگایا جا سکتا ہے۔
- ہیک شدہ فون۔ میلویئر، کوئی بدنیت کی بورڈ، یا آپ کا کھلا فون پکڑے ہوئے کوئی شخص وہی دیکھتا ہے جو آپ دیکھتے ہیں۔ ایپ لاک فون پر ایک دروازہ ہے، انکرپشن نہیں؛ لاک کے دوران بھی پیغامات آتے اور آگے بڑھتے رہتے ہیں۔ محفوظ حالت کی انکرپشن فائلوں کی نقل کی حفاظت کرتی ہے، چلتے ہوئے فون کی نہیں۔
- قریبی کمرہ، ڈراپ زون، ایس او ایس، بٹن دبا کر بات اور کھلے گروپ۔ یہ دستخط شدہ ہیں اور رینج میں ہر کوئی انہیں پڑھ یا سن سکتا ہے، جان بوجھ کر۔ کھلے گروپ کی کنجی عوامی ہے، اور اس کا بول کر بتایا جانے والا شمولیت کا کوڈ بھی۔ بٹن دبا کر کی گئی بات کے آواز والے فریم ایک ایک کر کے دستخط شدہ نہیں ہوتے: انہیں صرف اسی پڑوسی کی، ایک ہاپ دور سے آئی، دستخط شدہ شروعات کے بعد قبول کیا جاتا ہے۔
- آپ کے پاس پہلے سے کیا ہے۔ ہیلو بیکن میں ان پیغامات اور فائلوں کی ids کا ایک فلٹر ہوتا ہے جو آپ کے فون کے پاس ہیں۔ جو پڑوسی کسی عوامی پیغام یا فائل کی id جانتا ہو وہ جانچ سکتا ہے کہ آپ کے فون میں وہ ہے یا نہیں (تقریباً 3% غلط مثبت نتائج کے ساتھ)۔ مہر بند پیغامات کی ids ان کے مواد کے بارے میں کچھ نہیں بتاتیں۔
- LoRa چینل۔ Meshtastic کا شروع والا چینل ایک ایسی کنجی سے انکرپٹڈ ہے جو سب کے پاس ہے، اس لیے عملاً عوامی ہے: اس پر قریبی کمرے کے پیغامات رینج کا کوئی بھی بورڈ پڑھ سکتا ہے، اور مہر بند پیغامات کے ہیڈر ہر اس بورڈ کو نظر آتے ہیں جو انہیں آگے بڑھاتا ہے۔ نجی چینل کی کنجی Meshtastic ایپ میں لگائی جاتی ہے، Yapmesh میں نہیں۔
- موجودگی کے ثبوت اور جیو باڑیں۔ GPS کو دھوکا دیا جا سکتا ہے؛ Yapmesh نقلی مقام کو باہر شمار کرتا ہے مگر ہر دھوکا نہیں پکڑ سکتا۔ لنگر والی باڑ (کسی مقرر فون سے ریڈیو رابطہ، ساتھ میں کمرے یا میز کے لیے ایک ٹیپ یا آواز) وہ قسم ہے جس پر ہسپتال یا دفتر میں بھروسا کیا جائے۔
- ہاتھ سے لے جانے والے زینے۔ ایس ایم ایس سے بھیجا گیا پیغام مہر بند ہوتا ہے، مگر آپ کی موبائل کمپنی ریکارڈ رکھتی ہے کہ آپ نے اس نمبر پر کب ٹیکسٹ کیا، اور جہاں سمیں شناختی کارڈ (پاکستان میں CNIC) پر رجسٹرڈ ہوں وہاں وہ ریکارڈ آپ کا نام بتاتا ہے۔ کسی دوسری ایپ سے شیئر کیا گیا پیغام مہر بند ہوتا ہے، مگر وہ ایپ دیکھتی ہے کہ آپ نے متن کا ٹکڑا شیئر کیا۔ سیٹلائٹ والی قطار بالکل Yapmesh نہیں: یہ سادہ متن بھیجتی ہے۔
- لنک کا پیش منظر۔ شروع میں بند؛ آن ہو تو آپ کا فون صفحہ لاتا ہے، اس لیے سائٹ آپ کا IP پتا دیکھتی ہے۔ پیش منظر اسی سے بنتا ہے جو صفحہ اپنے بارے میں کہتا ہے، اور وہ جھوٹ بول سکتا ہے۔
- خراب فائلیں۔ کچھ بھی وائرس اسکین نہیں کرتا۔ ایپ آپ کی پالیسی کے مطابق اجنبیوں کی فائلیں رد کرتی یا روک لیتی ہے، آپریٹنگ سسٹم کے کھولنے سے پہلے فائل کی اصل قسم سونگھ لیتی ہے، پروگراموں، اسکرپٹس اور آرکائیوز کے بارے میں سرخ رنگ میں خبردار کرتی ہے، اور بلاک کیے گئے بھیجنے والے کی فائلیں پھینک دیتی ہے۔ کوئی رابطہ پھر بھی آپ کو نقصان دہ چیز بھیج سکتا ہے، اور آپ دوسری تصدیق کے بعد پھر بھی اسے کھول سکتے ہیں۔
- بدزبانی والا متن۔ فلٹر آپ کے فون پر الفاظ کی ایک فہرست ہے، آسانی سے دھوکا کھاتا ہے اور آسانی سے بند ہو جاتا ہے۔ یہ تسلی ہے، کنٹرول نہیں۔
- سروس روکنا (denial of service)۔ کوئی فون ہوا کو درست نظر آنے والے فریموں سے بھر سکتا ہے؛ کوٹے، دیکھے گئے فریموں کا کیش اور لے جانے کی حدیں نقصان کم کرتی ہیں مگر ختم نہیں کرتیں۔ ریڈیو جامنگ سب کچھ روک دیتی ہے۔ کوئی ریلے آپ کی ٹریفک گرا سکتا ہے؛ تب دوسرا ریلے استعمال ہوتا ہے۔
- اسکرین شاٹ اور نقلیں۔ رکھنے کی مدت، باڑیں اور ”سب کے لیے مٹائیں“ پروٹوکول ماننے والے فونز سے ڈیٹا ہٹاتے ہیں؛ یہ کسی رکن کو اسکرین کی تصویر لینے سے، یا کسی ایسے فون کو نہیں روک سکتے جس سے پہلے ہی چھیڑ چھاڑ کی گئی ہو۔
- فون کا گم ہونا۔ آپ کی کنجی صرف فون پر رہتی ہے، سوائے اس کے کہ آپ نے بیک اپ بنایا ہو (24 الفاظ، یا پاس فریز سے مہر بند کوڈ یا فائل)۔ بیک اپ کے بغیر کوئی بحالی نہیں اور رابطوں کو آپ کی نئی کنجی آمنے سامنے جانچنی ہوگی؛ بیک اپ ہو تو جس کے پاس بیک اپ اور اس کا پاس فریز دونوں ہوں، یا 24 الفاظ، وہ آپ بن سکتا ہے۔
- منظم فون۔ جو فون کسی اسکول یا آجر کے ڈیوائس مینیجر میں درج ہو، اس پر وہ ادارہ Yapmesh میں رابطے اور گروپ ڈال سکتا ہے اور ایک ایسا منتظم مقرر کر سکتا ہے جس کا فون اسے مٹا سکے۔ وہ پیغامات نہیں پڑھ سکتا۔
استعمال ہونے والی خفیہ نگاری
Ed25519 دستخط؛ sealed-box ساخت کے ساتھ X25519 کنجی کا معاہدہ؛ گروپوں کے لیے HKDF سے نکالے گئے ہر دور کے فرضی نام؛ بٹن دبا کر کی گئی بات کی آواز (8 kHz پر IMA ADPCM) کے لیے ہر بات کی الگ کنجی کے تحت ChaCha20-Poly1305؛ دستخط شدہ ایک بار والی پیشگی کنجیوں کے ساتھ X3DH؛ Double Ratchet میں HKDF-SHA256 اور HMAC-SHA256؛ ریچٹ پیغامات کے لیے ChaCha20-Poly1305؛ گروپ باکسوں اور محفوظ حالت والی تجوری کے لیے بے ترتیب 24 بائٹ nonce کے ساتھ XChaCha20-Poly1305؛ 16 KiB ٹکڑوں پر SHA-256 Merkle درخت؛ ہر 15 منٹ کے دور کے لیے HMAC-SHA256 موجودگی کے ٹوکن اور ہر گھنٹے کے لیے ملاقات کے ٹیگ؛ secp256k1 Schnorr دستخط صرف Nostr ریلے کے لفافے کے لیے، ہر روز نئے بنتے ہیں اور کبھی Yapmesh فریم پر استعمال نہیں ہوتے۔ سب آڈٹ شدہ بنیادی اجزا والی لائبریریوں سے؛ Yapmesh اپنا کوئی بنیادی جزو ایجاد نہیں کرتا۔ تفصیل تصریح (specification) کے حصوں 3، 4a، 5a، 7، 8، 8a، 8b اور 9، اور خطرات کے نقشے میں ہے۔
موجودہ ورژن کی احتیاطیں
- ڈویلپر کی میز پر بنے ورژن ایک ڈویلپمنٹ کنجی سے دستخط شدہ ہیں۔ ابھی تک کوئی ریلیز دستخط والا ورژن شائع نہیں ہوا؛ جو فنگر پرنٹ یہاں شائع ہوگا وہ ایپ کی About اسکرین سے ملنا چاہیے۔
- ہوم پیج پر ”بنا ہوا، ابھی میدان میں نہیں آزمایا“ کے نشان والی ہر چیز یونٹ ٹیسٹ پاس کر چکی ہے اور ایپ میں کمپائل ہو چکی ہے مگر اصلی فونز پر نہیں چلی۔ اس نظرِ ثانی تک اس میں انٹرنیٹ پہنچ، اسپول، LoRa والا زینہ، وائی فائی اویئر، پیشگی کنجیاں، حفاظتی نمبر، بدسلوکی فلٹر، فائل کی حفاظت، رابطوں کی تصویریں، گروپ ایڈمن کو رپورٹیں، گروپوں میں بھیجنے والے کے فرضی نام، موجود چیزوں کا فلٹر، بلوٹوتھ کی لمبی رینج اور سیٹلائٹ والی قطار شامل ہیں۔ بٹن دبا کر بات 23 اکتوبر 2026 کو ایک اصلاح کے بعد دو فونز کے درمیان دوبارہ آزمائی گئی: ایک صاف کوشش میں 276 میں سے 276 آواز کے پیکٹ پہنچے، اور دوسری کوششوں میں جب بات کے بیچ وائی فائی رابطے دوبارہ بنے تو آواز ضائع ہوئی۔
- ہارڈویئر میں لپٹی تجوری کی کنجی (StrongBox یا TEE) بنی ہوئی ہے مگر شروع کی سیٹنگ میں بند ہے؛ جب تک یہ آن نہ ہو، تجوری کی کنجی اینڈرائیڈ کی محفوظ اسٹوریج سے محفوظ ہے، جیسا اوپر بیان ہوا۔
- پیغام کھولنے والا ہر ڈی کوڈر ہر بلڈ پر fuzz کیا جاتا ہے؛ پہنچانے کے قواعد زیادہ سے زیادہ 200 فونز کے ایک سمیولیٹر میں چلائے گئے اور دو مشکل ترین دوڑوں (races) کو ایک مکمل ماڈل سے جانچا گیا، جس نے ایک خرابی پکڑی جو ٹھیک کر دی گئی۔ سمیولیشن پیمائش نہیں ہے۔
- پلے ایڈیشن اور yapmesh.com ایڈیشن مختلف کنجیوں سے دستخط شدہ ہیں، اس لیے ایک دوسرے کو اپ ڈیٹ نہیں کر سکتا۔
کسی کمزوری کی رپورٹ
hello@yapmesh.com پر ای میل کریں اور موضوع کے شروع میں ”Security:“ لکھیں، یا security.txt پر عمل کریں۔ بتائیں آپ کو کیا ملا، اسے دوبارہ کیسے کیا جائے، اور کون سا ورژن۔ آپ کو 72 گھنٹوں میں وصولی کی اطلاع، 14 دن میں ابتدائی جائزے کا جواب (تصدیق ہوئی یا نہیں، کتنی سنگین، کون سے ورژن، درستی کی متوقع تاریخ)، 90 دن میں درستی یا عوامی اعلان، اور اگر آپ چاہیں تو ریلیز نوٹس میں عوامی شکریہ ملے گا۔ آپ 90 دن بعد، یا درستی جاری ہونے پر اس سے پہلے، شائع کرنے میں آزاد ہیں۔ مکمل پالیسی، معاون ورژنوں اور اجزا کی فہرست کے ساتھ، SECURITY.md ہے۔ کوئی بگ باؤنٹی نہیں؛ کوئی کمپنی نہیں۔ انکرپٹڈ رپورٹوں کے لیے PGP کنجی ابھی شائع نہیں ہوئی؛ جب تک نہ ہو، آمنے سامنے Yapmesh رابطے کا تبادلہ ہی ہم تک واحد مہر بند راستہ ہے۔
محفوظ پناہ۔ اپنے فونز، اپنے ریلے اور اس ویب سائٹ پر جانچ کا خیرمقدم ہے اور ہم اس پر کوئی کارروائی نہیں کریں گے، بشرطیکہ آپ دوسرے لوگوں کے فونز پر جانچ نہ کریں، کسی چلتے میش پر سروس روکنے کے حملے نہ کریں، یا دوسرے لوگوں کے ڈیٹا تک رسائی، اسے رکھنا یا شیئر کرنا نہ کریں۔
دائرے میں: پروٹوکول کی تفصیل، بنیادی لائبریری، دونوں ایڈیشنوں میں اینڈرائیڈ ایپ، براؤزر کلائنٹ، ریلے پیکیج، یہ ویب سائٹ۔ دائرے سے باہر: اینڈرائیڈ آپریٹنگ سسٹم، گوگل پلے سروسز کے Nearby Connections، بلوٹوتھ اور وائی فائی کے اسٹیک، Meshtastic فرم ویئر، عوامی ریلے اور STUN سرور، اور لوگوں کو بہلا پھسلا کر دھوکا دینا (social engineering)۔