TGViewer
HaHacking HaHacking @hahacking · 2.42K subscribers
Post #91 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)



➡️Много "если бы да кабы", но, согласитесь, красиво ✨

   @HaHacking  🐇
  • ❤ 16
  • ☃ 5
More from @hahacking
  1. Aug 7, 2026🌿 #infrastructure #offense #заметки ➡Видели же целую серию Linux LPE, ± аналогичных небез…
  2. Jul 30, 2026👩‍💻 #web #offense #заметки #события ➡wp2shell — unauth RCE чейн, уязвимы WordPress'ы вер…
  3. Jul 27, 2026ХАХАКИНГ – ВСЁ! ⚡️ #события #заметки #offense #infrastructure #web #ai ➡️Ладно, шучу. Пока…
  4. Feb 9, 2026🍾 #web #enumeration #offense #инструменты ➡️Сравнение 3 инструментов для обнаружения HTTP…
  5. Feb 4, 2026✈️ #web #offense #заметки ➡️Красивый Account Takeover при аутентификации в сервисе через T…
  6. Jan 29, 2026🦞 #события #ai #web #offense ➡Простите, но продолжение; Хочется обсудить ещё несколько пр…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →