약한 의사 난수 생성기(PRNG)를 사용하여 암호화 키 생성

BY KEYHUNTER 13.03.2025

약한 의사난수 생성기(PRNG)를 사용한 암호화 키 생성은 블록체인 시스템의 중요한 보안 취약점입니다. 이 분석은 함수의 구조적 결함  random_key, 이를 악용하는 메커니즘, 암호화폐 지갑에 대한 의미를 살펴봅니다.

PRNG 취약점의 이론적 기초

PRNG에 대한 암호화 요구 사항  :

  1. 진정한 무작위성과 통계적으로 구별할 수 없음  3
  2. 발전기 3 의 이전 상태를 복원할 수 없습니다. 
  3. 미래 상태 예측에 대한 방어  3

비트코인에서 사용되는 ECDSA 알고리즘에서 난수는  k서명 형성에서 핵심적인 역할을 합니다. 난수의 재사용 또는 예측 가능성을 통해 다음 공식을 사용하여 개인 키를 계산할 수 있습니다.
s=k−1(H(m)+rd)mod Ns = k^{-1}(H(m) + rd) \mod Ns=k−1(H(m)+rd)modN
여기서 누출로  인해 방정식이 (개인 키)  2k 에 대해 풀릴 수 있습니다   .d

일반적인 취약점 분석

공격 유형구현 메커니즘실습에서의 예
약한 엔트로피 시드시간을 초기값으로 사용케이크월렛(2018-2021) 1
알고리즘 북마크PRNG 상태의 고의적 누출BitcoinJS 6 라이브러리 의 경우 
국가를 회복하다출력 시퀀스 분석Windows XP PRNG  3 공격

브라우저를 사용하는 BitcoinJS 라이브러리의 경우  Math.random()예측 가능성은 다음과 같이 향상되었습니다.

  • 제한된 엔트로피 풀(128비트 대신 48비트)  6
  • Chrome 2011-2015의 결정론적 알고리즘  6
  • JSBN 및 SecureRandom  6 의 연쇄 오류

실제적인 의미

  1. Cakewallet 사건  (2021년):
    3년에 걸쳐 9,500만 개의 취약한 주소가 생성되었으며, 평균 몇 개월 안에 장비에 대한 무차별 대입 테스트가 가능할 가능성이 있습니다.  1  .
  2. Randstorm 취약점  : 취약한 PRNG 6을
    통해 생성된 키가 있는 지갑에서 21,000 BTC(2023년 기준 약 7억 5천만 달러)가 발견되었습니다   .
  3. k비트코인 복제 통계  :
    • 4억4700만개의 서명이 분석됨  2
    • 반복 2가 있는 거래의 0.03% k
    • 사고당 평균 피해: $45,000  2

개선을 위한 권장 사항

  1. 하드웨어 엔트로피 소스  :
    최소 2비트/초 속도의 TRNG(Thermal Noise RNG) 사용  5  .
  2. 암호화 프로토콜  : CTR_DRBG 5
    의 546.72에 비해 277.96 사이클/바이트의 사이클로바이트 성능을 제공하는 BKRNG 유형 알고리즘 구현   .
  3. 구현 검증  :
    • NIST SP 800-22 테스트  5
    • 엔트로피 변환의 사슬 감사
    • SHA-3 3을 사용하여 PRNG 출력 해싱 

실험 데이터는 HMAC-SHA512를 사용하여 결정론적 BIP-32 키 생성 체계로 전환하면 기존 솔루션에 비해 예측 가능성 위험이 3배 감소한다는 것을 보여줍니다  . FIPS 140-3 레벨 3  과 같은 최신 구현은 지속적인 테스트 검증 메커니즘을 통해 생성기 상태가 손상되어도 보호를 제공합니다   .

인용문:

  1. https://dzen.ru/a/ZZ7rl5jhoGyK-Bsj
  2. https://habr.com/ru/articles/430240/
  3. https://kiwibyrd.org/2013/06/06/0712/
  4. https://phemex.com/ru/academy/public-key-vs-private-key
  5. https://www.oaepublish.com/articles/jsss.2023.45
  6. https://www.kaspersky.ru/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/36592/
  7. https://www.itsec.ru/articles/upravlenie-uyazvimostyami-v-kriptokoshelkah
  8. https://vc.ru/education/1575030-pochemu-ne-sushestvuet-sluchainosti-v-kompyuterah-i-blokcheine
  9. https://habr.com/ru/articles/773412/
  10. https://tangem.com/ru/blog/post/entropy/
  11. https://cryptomus.com/ru/blog/how-to-secure-your-crypto-wallet
  12. https://habr.com/ru/articles/771980/
  13. https://ru.tradingview.com/news/forklog:3031939c867b8:0/
  14. https://wiki.pztrn.name/software/qemu/not_enough_entropy/
  15. https://www.computerra.ru/183451/prng/
  16. https://crypto.stackexchange.com/questions/113456/can-we-construct-a-cpa-secure-scheme-with-a-prng-and-a-random-key
  17. https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D 1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8_%D1%81%D1%82%D0%BE%D0%B9%D0%BA%D0%B8%D0%B9_%D0 %B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D0%BF%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D1%87%D0%B8%D1%81%D0%B5%D0%BB
  18. https://blog.whitebit.com/what-is-a-private-key-in-crypto/
  19. https://www.hx.technology/ru/blog-ru/top-blockchain-security-threats-in-2024-ru
  20. https://intuit.ru/studies/courses/3520/762/lecture/32518
  21. https://www.smart-soft.ru/blog/informatsionnaja-bezopasnost/
  22. https://ru.stackoverflow.com/questions/523929/%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%BA%D0%BB% D1%8E%D1%87%D0%B0-%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%BE%D0%BC-securerandom-getinstancestrong
  23. https://vc.ru/dev/62779-generatory-sluchainyh-chisel-v-smart-kontraktah
  24. https://encyclopedia.pub/entry/30451
  25. https://firstvds.ru/technology/kak-sozdat-klyuch-dlya-avtorizacii-po-ssh-i-dobavit-ego-na-server
  26. https://habr.com/ru/companies/distributedlab/articles/413627/
  27. https://tangem.com/ru/blog/post/how-to-create-a-private-key-for-a-crypto-wallet-with-and-without-a-seed-phrase/
  28. https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D1%82%D0%BA%D0%BE%D0%B9%D0%BD

게시물 탐색

От