Уязвимость генератора псевдослучайных чисел в Bitcoin |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2018-11-19 03:10 Приватные Биткоин-ключи — это целочисленное значение от 1 до 115792089237316195423570985008687907852837564279074904382605163141518161494337 или в HEX 1 до 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141. В главной сети Биткоина существуют адреса начинающиеся на 1: compressed, uncompressed; адреса на 3: SigScript и обратно совместимые с SegWit, а так же нативные SegWit адреса начинающиеся на bc1. К тому же есть уже порядка семидесяти форков, имеющие другие префиксы, но те же корни что и основного Биткоина. Биткоин-адреса рассчитываются криптографической функцией подписи ECDSA ( ) основанной на эллиптической кривой. Итак, рассмотрим генерацию Биткоин-адреса из приватного ключа. Закрытый ключ d — число
Подписью является пара (r,s). Переменная «k» рандомная и получается в алгоритме ECDSA из стандартных библиотек операционной системы. Таким образом, во всей функции можно повлиять только на эту переменную. Что даёт два вектора атаки:
Атака генератора псевдослучайных чисел Первым эту проблему исследовал и опубликовал Nils Schneider в 28 января 2013 на своей личной странице. Но проблема сохранилась и более того, приобрела новый масштаб. Программная атака на ГПСЧ подразделяется на три типа: Атаки, основанные на входных данных, могут быть разделены на атаки с известными входными данными, атаки с воспроизводимыми входными данными и атаки на избранные входные данные. Атаки, основанные на вскрытии внутреннего состояния при которых злоумышленник знает начальное или исходное состояние генератора. Также сюда можно отнести — закладки в программное обеспечение, при которых создатель алгоритма знает любое из хэшированных псевдослучайных чисел и последующие в цепочке. Такой алгоритм сложно определить со стороны, так как числа выглядят равномерно распределенными по всему диапазону. К программным уязвимостям также относится слабая генерация псевдослучайных чисел в отдельных библиотеках. Таких как SSL, OpenSSL, некоторые библиотеки Java, JavaScript и т.д. Подробные материалы неоднократно описывались в периодических изданиях по взлому и со временем становились примерами в учебниках криптографии. Каков масштаб угрозы для Биткоина? Имея полную Биткоин ноду, можно провести сравнение и группировку всех транзакций сети. Достаточно сравнить переменную «к» во всех транзакциях по каждому адресу и найти дублирующие. Как с этим бороться ? Как мы описывали выше, данная уязвимость работает только при отправке платежей и генерации одинаковой переменной “К”, как минимум на двух транзакциях. Следовательно, если не создавать исходящих транзакций или свести их количество к минимуму, то и угрозы нет ни какой. Такая идея давно реализована в Биткоин протоколе BIP 32 (Hierarchical Deterministic Wallets, HD wallet) Иерархический Детерминированный Кошелек. Источник: m.vk.com Комментарии: |
|