Гаманець може виглядати абсолютно нормально, але залишатися небезпечним з моменту створення його фрази відновлення. Це показує вразливість CryptoJS слабкого генератора випадкових чисел. У вразливих версіях CryptoJS, CryptoJS.lib.WordArray.random() використовував власну псевдовипадкову конструкцію, ініціалізовану через JavaScript Math.random(), а не криптографічно безпечне джерело випадковості платформи. Це має значення, бо криптографічна безпека залежить від непередбачуваності на джерелі. Дослідження Ill Bloom зв’язало цю слабкість реалізації з реальним кодом генерації гаманців. За вразливих шляхів генерації, номінальні запити на 128-бітну та 256-бітну ентропію гаманця могли зводитися до ефективних просторів пошуку приблизно 2^39 та 2^47 можливостей. Отримані фрази відновлення все ще могли: • використовувати дійсні слова BIP39 • проходити перевірку контрольної суми • генерувати стандартні акаунти блокчейну • підписувати дійсні транзакції • здаватися повністю звичайними користувачеві Це ключова відмінність: Дійсна фраза відновлення не є автоматично безпечнозгенерованою фразою відновлення. Ще одна важлива нюанс — знаходження вразливого залежного компонента CryptoJS не означає автоматично, що гаманець був експлуатований. Дослідникам потрібно встановити, чи саме вразлива функція випадковості генерувала фрази відновлення, ключі, токени, nonce або інші критичні для безпеки секрети. CryptoJS 4.0.0 замінив шлях генерації на основі Math.random() на рідні криптографічні методи випадковості. Але оновлення бібліотеки виправляє майбутню генерацію. Вона не може повернути ентропію до фраз відновлення, створених роками раніше. Імпорт зараженого сіда в інший програмний гаманець або апаратний гаманець також не виправляє його. Ті самі базові ключі залишаються можливими для отримання. Більш широкий урок безпеки поширюється за межі CryptoJS. Розробникам потрібно аудитувати реальні потоки даних генерації секретів, включаючи прямі та непрямі залежності, а не полагоджуватися лише на назвах пакетів або скануванні верхнього рівня залежностей. Для браузерних додатків Web Crypto надає crypto.getRandomValues() для криптографічно сильного випадковості. Node.js та мобільні середовища надають свої власні безпечні криптографічні API для випадковості. Користувачам гаманців слід зосереджуватися на походженні програмного забезпечення, історії підтримки, історії генерації, надійній випадковості та безпечних резервних копіях, а не припускати, що будь-яка 12-чи 24-слова фраза автоматично безпечна. Прочитайте повний аналіз TokenToolHub: https://t.co/2AjB3PrKIZ
TokenToolHub.comПоділитися
Джерело:Показати оригінал
Відмова від відповідальності: Інформація на цій сторінці може бути отримана від третіх осіб і не обов'язково відображає погляди або думки KuCoin. Цей контент надається лише для загального інформування, без будь-яких запевнень або гарантій, а також не може розглядатися як фінансова або інвестиційна порада. KuCoin не несе відповідальності за будь-які помилки або упущення, а також за будь-які результати, отримані в результаті використання цієї інформації.
Інвестиції в цифрові активи можуть бути ризикованими. Будь ласка, ретельно оцініть ризики продукту та свою толерантність до ризику, виходячи з ваших власних фінансових обставин. Для отримання додаткової інформації, будь ласка, зверніться до наших Умов використання та Розкриття інформації про ризики.
