جاوا اسڪرپٽ ڪلاس SecureRandom()
ان ۾ هڪ بگ آهي ۽ واقعي محفوظ ڪنجيون پيدا نٿو ڪري.
اهو ڪيئن لاڳاپيل آهي cryptocurrencies سان؟
اتي ڪيترائي برائوزر تي ٻڌل cryptocurrency پراڊڪٽس آھن جيڪي اڃا تائين استعمال ڪريو مشهور SecureRandom()
جي ايس ڪلاس. JavaScript برائوزر تي ٻڌل پراڊڪٽس ٺاهڻ لاءِ تمام گهڻو مشهور آهي پر ڪرپٽ گرافي جي مقصدن لاءِ استعمال ڪرڻ واقعي سٺي شيءِ ناهي. بنيادي مسئلو اهو آهي ته JS هڪ قسم جي محفوظ ٻولي ناهي.
حفاظت جي قسم هڪ پيچيده موضوع آهي ۽ اتي ڪنهن به تعريف سان اتفاق نه ڪيو آهي ته "قسم-محفوظ" ٻولي ڇا آهي، پر ان جي تقريبن ڪنهن به تعريف سان، JavaScript ٽائپ-محفوظ ناهي. ان جو مطلب اهو آهي ته JS حقيقت ۾ حوصلا افزائي نه ڪندو آهي يا قسم جي غلطين کي روڪيندو آهي جيڪي ڪرپٽ گرافي ۾ ناجائز آهن.
نتيجو اهو آهي ته، برائوزرن جي اندر JS ٽولز پاران ٺاهيل سڀئي crypto wallets وٽ (۽ ڪجهه - اڃا به آهن!) چابيون آهن جيڪي اڳڪٿي ڪري سگهجن ٿيون ته برٽ-فورس حملي جي ڪري ٽوڪ ڪرڻ لاءِ ڪافي آهن. ها، اهڙين ڪنجين کي مناسب ڊگھائي آهي (cryptography-wise) پر جاوا اسڪرپٽ ڪلاس ۾ بگ جي ڪري اينٽراپي جي 48 بٽ کان گهٽ.
ديپ ٽيڪنيڪل وضاحت.
هاڻي ڇا ڪجي؟
حقيقت ۾، ان بابت گهڻو ڪجهه ناهي. سڀني سٺين cryptocurrency بگ وانگر، هي هڪ بلڪل نئون ناهي - هتي آهي گريگ ميڪسويل ان بابت تقريبا ڳالهائي رهيو آهي ٽي سال اڳ (51:00 تي):
اهو مسئلو توهان کي متاثر ڪري ٿو جيڪڏهن توهان:
- پراڻي cryptocurrency ايڊريس استعمال ڪريو
- اهي جاوا اسڪرپٽ سان ٺاهيا ويا آهن، يعني، ويب برائوزر ۾
ممڪن طور متاثر:
- BitAddress اڳ-2013؛
- 2014 کان اڳ bitcoinjs؛
- موجوده سافٽ ويئر جيڪو Github کان پراڻي ريپو استعمال ڪري ٿو.
ڇا ڪجي
- پنهنجا فنڊ انهن پتي مان ٻاهر ڪڍو
- ان کي ٻيهر استعمال نه ڪريو
اهو توهان جي چاٻين جي ڀڃڻ جو خطرو گهٽائي ڇڏيندو پر، عام طور تي، هي معلومات توهان کي سوچڻ بند ڪرڻ گهرجي ته جديد crypto ڪنجين کي ٽوڙڻ لاءِ عمر لڳندي. اهو ظاهر ٿئي ٿو ته اهو هڪ هفتي ۾ ڀڃي سگهي ٿو.
ڪجهه دلچسپ حقيقتون:
JavaScript اصل ۾ LiveScript سڏيو ويو. اهو Sun Microsystems (جيئن جاوا) ۽ LiveScript جو نالو JavaScript ۾ تبديل ڪرڻ جو ڪو سٺو سبب نه هو. ان سان مونجهارو پيدا ٿيو ته جاوا اسڪرپٽ ڪنهن نه ڪنهن طرح جاوا سان لاڳاپيل آهي، پر جاوا اسڪرپٽ هڪ مختلف ٻولي آهي، اها جاوا جي ڀيٽ ۾ ڪم ڪندڙ ٻولين جهڙوڪ Lisp يا اسڪيم سان وڌيڪ عام آهي.
JavaScript هڪ حقيقي اعليٰ سطحي، تشريح ڪيل پروگرامنگ ٻولي آهي، نه ته رسم الخط، جيئن ته - اسڪرپٽ suffix تجويز ڪري ٿو.