Криптогаманці, які не генерують достатньо випадкових підписів у 2025 році, виходять за межі недбалості.
Tansel Kaya
Tansel Kaya29 лист., 04:47
«Вилучення ключа з підписів», згадане в хакері Upbit, — це атака з просунутим криптоаналізом алгоритму Elliptic Curve Digital Signature Algorithm (ECDSA), який використовується на Solana (та багатьох інших блокчейнах). Завдяки передбачуваному nonce (одноразовому випадковому числу k), згенерованому програмним забезпеченням гаманця Upbit, зловмисники виявили прихований шаблон у підписах, що дозволило математично обчислити приватний ключ гаманця. 1. Просто як працює ECDSA? Під час підписання кожної транзакції: Приватний ключ: d (ніколи не ділився) Одноразове випадкове число: k (nonce) → має бути повністю випадковим і секретним для кожного підпису Отриманий підпис: (r, s) пара (видима всім у блокчейні) Якщо k не є випадковим або має передбачуваний шаблон, приватний ключ d можна витягти з кількох підписів. 2. Вразливість в Upbit Власне програмне забезпечення гаманця Upbit не могло генерувати nonce значення достатньо випадково. Це створювало статистичне зсув у значеннях сигнатур (r, s). Зловмисники зібрали десятки/сотні транзакцій з гарячого гаманця Upbit, проаналізували ці підписи, щоб визначити, які біти з nonces передбачувані, і розрахували приватний ключ за секунди/хвилини за допомогою математичних методів (решітчаста атака). 3. Типи використаних математичних атак Задача прихованих чисел (HNP) + зведення ґратки (алгоритми LLL/BKZ) Навіть передбачуваність лише 3–8 бітів достатня, щоб повністю зламати ключ із 20–100 підписами. Навіть якщо зміщення слабше (1–2 біти), його все одно можна зламати тисячами сигнатур 4. Чому кажуть, що «тільки Лазар може це зробити»? Ця атака вимагає: знань рівня PhD з криптографії (HNP, решітчастий криптоаналіз) Експертиза в аналізі даних блокчейну Потужні обчислювальні ресурси (кластери GPU) Терпіння та довготривалий моніторинг 5. Уроки та запобіжні заходи, які слід дотримуватися Виробництво Nonce має здійснюватися за допомогою RFC 6979 (детермінованого, але безпечного) або справжнього апаратного джерела випадковості (HWRNG). Для проходження тестів на випадковість необхідно мати підписи (NIST, Dieharder).
Я не впевнений, які тут деталі. Як деякі зазначали, Солана має використовувати Ed25519, який має детерміновані нонцеси. Але це підпис Шнорра і має таку ж вразливість, якщо хтось неправильно реалізував процес рівномірного відбору nonces.
Я також хочу сказати: якби я виявила дефект випадковості/однорідності в схемі підписів, що використовується в криптогаманці, особливо якщо це використовується державною групою, я б не обов'язково сказав «випадковість» як єдине пояснення.
11,86K