
JavaScript klassi SecureRandom() unda xato bor va haqiqatan ham xavfsiz kalitlarni yaratmaydi.
Bu kriptovalyutalar bilan qanday bog'liq?
Brauzerga asoslangan ko'plab kriptovalyuta mahsulotlari mavjud hali ham foydalaning ommabop SecureRandom() JS klassi. JavaScript brauzerga asoslangan mahsulotlarni yaratish uchun juda mashhur, ammo kriptografiya maqsadlarida foydalanish juda yaxshi narsa emas. Asosiy muammo shundaki, JS turi xavfsiz til emas.
Xavfsizlik turi Bu murakkab mavzu bo'lib, "turi uchun xavfsiz" til nima ekanligi haqida kelishilgan ta'rif yo'q, lekin uning deyarli har qanday ta'rifiga ko'ra, JavaScript turi xavfsiz emas. Bu shuni anglatadiki, JS kriptografiyada ruxsat etilmagan turdagi xatolarni to'xtatmaydi yoki oldini olmaydi.
Xulosa shuki, brauzerlar ichida JS asboblari tomonidan yaratilgan barcha kripto hamyonlarida shafqatsiz kuchlar hujumi bilan sindirish uchun etarlicha bashorat qilinadigan kalitlar mavjud edi (va ba'zilarida - hali ham bor!). Ha, bunday kalitlar tegishli uzunlikka ega (kriptografiya nuqtai nazaridan), lekin JavaScript sinfidagi xato tufayli 48 bitdan kam entropiyaga ega.
chuqur texnik tushuntirish.
Endi nima qilish kerak?
Aslida, bu haqda ko'p narsa qilish kerak emas. Barcha yaxshi kriptovalyuta xatolari singari, bu ham yangilik emas — bu yerda Greg Maksvell deyarli bu haqda gapiradi. uch yil oldin (51:00 da):
Bu muammo sizga ta'sir qiladi, agar siz:
- eski kriptovalyuta manzillaridan foydalaning
- ular JavaScript bilan yaratilgan, ya'ni, veb-brauzerda
Ta'sir qilishi mumkin:
- BitAddress 2013 yilgacha;
- 2014 yilgacha bitcoinjs;
- hozirgi Github'dan eskirgan repolardan foydalanadigan dasturiy ta'minot.
Nima qilish kerak:
- mablag'laringizni ushbu manzillardan boshqa joyga ko'chiring
- ularni qayta ishlatmang
Bu sizning kalitlaringizning yorilishi xavfini kamaytiradi, lekin umuman olganda, bu ma'lumot sizni zamonaviy kripto kalitlari yorilishi uchun bir necha yillar kerak bo'ladi deb o'ylashni to'xtatishi kerak. Ma'lum bo'lishicha, u bir hafta ichida yorilib ketishi mumkin.
Bir nechta qiziqarli faktlar:
JavaScript dastlab LiveScript deb nomlangan. U Sun Microsystems tomonidan ishlab chiqilmagan (masalan Java) va LiveScript nomini JavaScript-ga o'zgartirish uchun yaxshi sabab yo'q edi. Bu JavaScript-ning qandaydir tarzda Java bilan bog'liqligi haqida chalkashlikka olib keldi, ammo JavaScript boshqa til bo'lib, u Java-ga qaraganda Lisp yoki Scheme kabi funktsional tillar bilan ko'proq umumiylikka ega.
JavaScript - bu skript emas, balki haqiqiy yuqori darajadagi, talqin qilinadigan dasturlash tili - Skript qo‘shimchasi taklif qiladi.







