H
HaHacking
@hahacking2.2K подп.
1.6Kпросмотров
70.1%от подписчиков
1 декабря 2025 г.
📷 ФотоScore: 1.7K
🔑  #инструменты #offense ➡️Слышали про клептографию? Эта концепция родилась ещё в далёком 1996, но сейчас, почти 30 лет спустя, получила внимание одна из неплохих публичных реализаций атаки из этой области ⬇️    🧩   monsieurPale/RSA-Backdoor В исследовании, положившем начало клептографии, рассматривается атака "SETUP" (Secretly Embedded Trapdoor with Universal Protection) – грубо говоря – бекдор для алгоритмов, основанных на факторизации; Чуть менее грубо:  SETUP —  алгоритмическая модификация, благодаря которой возможна генерация ключей, уязвимых к неавторизованной расшифровке, НО вычислительно неотличимых от сгенерированных "чистой" системой;    🧩   ‟Kleptography: Using Cryptography Against Cryptography”  (A. Young & M. Yung)    🧩   ‟Kleptography: The unbearable lightness of being mistrustful” #️⃣Нормальная генерация ключей RSA: 1️⃣ Сгенерировать 2 больших простых p и q (≈1024 бит каждый для 2048‑битного ключа) 2️⃣ Вычислить n = p · q 3️⃣ Выбрать публичную экспоненту e (обычно 2¹⁶+1) 4️⃣ Вычислить d, такую что e · d ≡ 1 mod φ(n) при φ(n) = (p–1)(q–1) Публичный ключ:  (n, e) Приватный ключ:  d Шифрование:  c = mᵉ mod n Дешифрование:  m = cᵈ mod n #️⃣Генерация ключей через SETUP: 1️⃣ Выбрать 1024-битное простое s и вычислить p = HASH(s)  —  повторять до тех пор, пока p не станет простым 2️⃣ Зашифровать s с помощью ключа атакующего: c = sᴱ mod N 3️⃣ Выбрать случайное z 4️⃣ Сформировать q такое, что c || z = p · q + r для некоторого произвольного остатка r  —  повторять, если q не простое 5️⃣ Вычислить n = p · q, задать e и вычислить d как в нормальном алгоритме Результат:  нормально выглядящие публичный ключ (n, e) и приватный ключ d — но с бекдором ⚡️ #️⃣Восстановления приватного ключа: 1️⃣ Взять верхние n/2 бита n в качестве u (≈1024 бита) 2️⃣ Определить c₁ = u и c₂ = u + 1  —  на случай возможной потери бита при вложении c||z 3️⃣ Расшифровать приватным ключом атакующего D: s₁ = c₁ᴰ mod N, s₂ = c₂ᴰ mod N 4️⃣ Вычислить потенциальные простые: p₁ = HASH(s₁), p₂ = HASH(s₂) 5️⃣ Вычислить q₁ = n / p₁ и q₂ = n / p₂  —  деление, дающее в результате целочисленное, раскрывает p и q 6️⃣ Восстановить d из (p, q, e) Таким образом атакующий целиком восстанавливает приватный ключ RSA атакуемого ⚡️ ⬜➖⬜➖⬜➖ 🔑  #заметки #web3 ➡️Поверхность такой атаки в мире, где многое базируется на RSA, велика — особенно в связи с популярностью supply chain атак — но позволю себе обратить ваше внимание на применение клептографии в Web3; Казалось, что для восстановления приватного ключа нужно собрать множество подписей — но выяснилось, что достаточно всего 2 для 12 слов или 4 — для 24 (а то и 1 единственной). Тут исследователи рассмотрели подобную атаку с вредоносным hardware кошельком, который использовал бы слабый nonce при подписи:    🧩   ‟Dark Skippy Disclosure”    🧩   ‟DARK SKIPPY DEMO - A Powerful Method For A Malicious Signing Device To Leak Secret Keys” ➡️Самое близкое по смыслу, что случалось в реальной жизни к настоящему времени — это кейс от Kaspersky про перепрошитые кошельки Trezor: они заменяли фразу на одну из 20 предопределённых, а если устанавливался пароль — использовали лишь первый символ:    🧩   ‟Case study: fake hardware cryptowallet” И кейс, когда в сети Bitcoin обнаружили сотни кошельков, опустошённых из-за уязвимости, позволявшей восстановить приватный ключ всего из 1 подписи в связи с генерацией nonce подписи путём конкатенации половины битов хеша сообщения + половины битов ключа (поговаривают, то мог быть бекдор):    🧩   ‟The curious case of the half-half Bitcoin ECDSA nonces”    🧩   kudelskisecurity/ecdsa-polynomial-nonce-recurrence-attack    🧩   ‟Polynonce: An ECDSA Attack and Polynomial Dance”  (DEFCON 31) ➡️Много "если б
1.6K
просмотров
4000
символов
Да
эмодзи
Да
медиа

Другие посты @hahacking

Все посты канала →
🔑  #инструменты #offense ➡️Слышали про клептографию? Э — @hahacking | PostSniper