크로노쇼크 취약점: 치명적인 개인 키 생성 취약점 및 Milk Sad 공격(CVE-2023-39910) – 분실된 비트코인 ​​지갑의 개인 키 복구, 대규모 침해, 비트코인 ​​암호화폐 생태계에 대한 치명적인 위협

키헌터 작성 

크로노쇼크 취약점

강력한 엔트로피 생성 원칙을 무시하면 암호화 애플리케이션, 특히 블록체인 애플리케이션 사용자에게 치명적인 결과를 초래할 수 있습니다. 고전적인 “크로노쇼크”(ChronoShock) 취약점은 대규모 프로젝트조차도 암호화 난수성에 대한 기본 요구 사항을 무시하면 간단한 실수를 저지를 수 있음을 보여주었습니다. 개발자는 키 생성 아키텍처를 정기적으로 검토하고, 검증된 CSPRNG 시스템과 도구만 사용해야 하며, 코드 감사를 통해 예측 가능한 데이터에 의존하려는 모든 시도를 식별하고 방지해야 합니다.  schneier+3

비트코인 개인 키 생성 과정에서 발견된 치명적인 취약점, 일명 “밀크 새드”(CVE-2023-39910)는 기본적인 암호화 보안 원칙을 경시하는 것이 전 세계 사용자 자금에 막대한 손실과 돌이킬 수 없는 피해를 초래할 수 있음을 보여주는 대표적인 사례입니다. 공격자들은 취약하고 예측 가능한 엔트로피 소스와 불안정한 난수 생성기를 악용하여 자동화된 공격을 가능하게 했으며, 이를 통해 암호화폐 지갑의 개인 키를 완전히 복구하고 단 며칠 또는 몇 시간 만에 지갑을 탈취할 수 있게 되었습니다.



크로노쇼크 취약점: 치명적인 개인 키 생성 취약점 및 밀크새드 공격(CVE-2023-39910) – 비트코인 ​​생태계에 대한 대규모 침해 및 치명적인 위협


크로노쇼크  취약점은  공격의 독특함을 강조하고, CVE 번호를 제시하며, 비트코인 ​​암호화폐에 대한 규모와 직접적인 위협을 반영하고, 설명된 문제의 과학적, 기술적 참신성을 즉시 부각합니다.


연구 논문: 비트코인 ​​시스템 보안에 대한 치명적인 암호화 시드 취약점의 영향 – 분석, 결과 및 공격 분류

모든 암호화폐 시스템의 안정성은 개인 키 생성의 품질에 직접적으로 달려 있습니다. 난수 생성 오류와 엔트로피 소스 선택 오류는 치명적인 자산 유출로 이어질 수 있습니다. 이러한 취약점의 대표적인 예로, Libbitcoin Explorer 라이브러리에서 발견되어 널리 논의된 “Milk Sad”(CVE-2023-39910)가 있습니다. 이는 비트코인 ​​네트워크에 대한 심각한 공격의 기반이 되었으며, 암호학적으로 강력한 의사 난수 생성기(PRNG)의 중요성을 여실히 보여주었습니다  .

취약성의 발생 및 메커니즘

기술적 분석

Libbitcoin Explorer(버전 3.0.0~3.6.0)는 Mersenne Twister 생성기(MT19937)를 사용하여 개인 키를 생성했으며, 이 키는 32비트 시스템 시간 값(나노초 또는 밀리초)만으로 초기화되었습니다.  
과정은 다음과 같이 수행되었습니다.

  • 시드 값은 현재 시스템 시간을 기준으로 설정됩니다.
  • 키는 128~256비트가 아닌 32비트 공간에서 생성됩니다.
  • MT19937 생성기 자체는 암호학적으로 안전하지 않습니다(출력 데이터에서 쉽게 복구할 수 있습니다)  .

공격 실행 방법

이러한 공격 유형은  “시간 시드 의사 난수 생성기 공격(Time-seed PRNG attack)”  또는 흔히  “밀크 새드 공격(Milk Sad Attack)” 이라고 불립니다  (CVE 이름과 유사)   . 내결함성 연구에서는  “크로노쇼크(ChronoShock)” 라고도 합니다. github+3

  1. 지갑 생성 시간 수집  – 공격자는 간접 데이터(거래 분석, 블록체인 태그)를 사용하여 대략적인 시간 범위를 파악합니다.
  2. 무차별 대입 분석  – MT19937에 대해 2^32가지 가능한 시드 변형을 시도하여 PC에서도 몇 시간 또는 며칠 만에 개인 키를 얻을 수 있습니다.
  3. 거래 분석  – 생성된 주소는 블록체인과 대조하여 활성 잔액을 확인합니다.
  4. 자금이 도난당했습니다  . 잔액이 감지되면 자금이 즉시 인출됩니다.  algosone+3

비트코인 생태계에 미치는 영향

규모와 결과

  • 2023년 8월까지 비트코인 ​​및 기타 암호화폐(도지코인, 이더리움, 지캐시 등)로 인한 피해액은 이미 90만 달러를 넘어섰으며, 이 암호화폐들은 여전히 ​​취약한 상태였습니다.  attacksafe+3
  • 이번 해킹으로 Libbitcoin을 사용하는 수십 개의 앱과 확장 프로그램을 통해 생성된 지갑들이 영향을 받았습니다.  nasdaq+2
  • 개인 키를 예측할 수 있는 지갑에 대한 공격의 대규모 자동화.  reddit+2

위험 및 장기적 영향

  • 취약한 도구로 생성된 개인 키는 자동으로 손상된 것으로 간주해야 합니다.  nvd.nist+1
  • 손실은 돌이킬 수 없으며, 블록체인 재편성은 불가능합니다.  (나스닥)

공격에 대한 과학적 분류

  • 이 공격의 과학적 명칭  은 “의사난수 생성기에 대한 예측 가능한 시드 암호해독 공격”입니다.
  • 공식 CVE  :  CVE-2023-39910  (Milk Sad 취약점).  milksad+3
  • 전문 용어  : “시간 시드 무차별 대입 공격”, “크로노쇼크”, “약한 엔트로피 키스페이스 스캔”.  milksad+1

결론

취약하고 예측 가능한 엔트로피 소스에 의존하는 의사난수 생성 구현의 결함으로 인해 비트코인 ​​암호화폐의 근본적인 보안 원칙에 대한 공격의 가능성이 열렸습니다. 이미 실행된 “밀크 새드(Milk Sad)” 공격(CVE-2023-39910)은 보안이 적절한 설계, 소스 코드 검증, 그리고 암호학적으로 강력한 난수 생성기의 의무적 사용에서 시작된다는 점을 분명히 보여줍니다  .


암호화 취약점

libbitcoin 코드의 암호화 취약점: 취약한 문자열 분석

심각한 취약성

취약한 부분은 48~49번째 줄입니다.

cpp:

thread_local auto twister = std::make_unique<std::mt19937>(
std::mt19937(possible_narrow_sign_cast<uint32_t>(
high_resolution_clock::now().time_since_epoch().count())));

상세 취약점 분석

크로노쇼크 취약점: 치명적인 개인 키 생성 취약점 및 Milk Sad 공격(CVE-2023-39910) – 분실된 비트코인 ​​지갑의 개인 키 복구, 대규모 침해, 비트코인 ​​암호화폐 생태계에 대한 치명적인 위협
https://github.com/libbitcoin/libbitcoin-system/blob/master/src/crypto/pseudo_random.cpp

주요 보안 문제

1. 시간을 엔트로피의 원천으로 사용하기  reddit+2
이 코드는 시간을 사용하여  high_resolution_clock::now().time_since_epoch().count()난수 생성기를 초기화합니다. 이는 다음과 같은 이유로 예측 가능한 엔트로피 원천을 생성합니다.

  • 시간 값은 쉽게 추측하거나 계산할 수 있습니다.  cwe.mitre+1
  • 시간은 예측 가능하게 변하며 짧은 시간 범위 내에서 가능한 값의 수가 제한되어 있습니다.  (ubiqsecurity+1)

2. 32비트로 축소  milksad+2
이 함수는  possible_narrow_sign_cast<uint32_t>()엔트로피를 강제로 32비트로 줄입니다. 즉, 다음과 같습니다.

  • milksad+1의 가능한 초기 상태는 최대 2^32개(약 43억 개)입니다. 
  • 암호학적으로 강력한 256비트 엔트로피 대신, 우리는 단지 32비트  의 milksad+1 만 얻게 됩니다.
  • 일반 컴퓨터에서는 며칠 안에 완전한 무차별 대입 공격이 가능합니다.  milksad+1

3. Mersenne Twister는 암호학적으로 안전하지 않습니다.  simonrs+2
MT19937에는 알려진 암호학적 취약점이 있습니다.

실질적인 영향

Milk Sad 취약점(CVE-2023-39910)  github+2
동일한 취약점이 libbitcoin 라이브러리에서도 발견되었으며 다음과 같은 결과를 초래했습니다.

  • 90만 달러 이상의 암호화폐 도난 사건 발생  (inhq+1)
  • 수천 개의 비트코인 ​​지갑이 해킹당했습니다  .
  • 공격자가 milksad+1의  개인 키를 복구할 수 있는 능력

공격 메커니즘

  1. 공격 시간대  : 공격자는  stackoverflow+1 지갑이 생성된 대략적인 시간을 알고 있습니다.
  2. 값들을 순회합니다  : 이 창에 있는 모든 가능한 시간 값들을 순회합니다.  usenix+1
  3. 키 복구  : 각 시간 값에 대해 해당 개인 키를  inhq+1로 생성합니다.
  4. 활동 확인 : 생성된 주소가 milksad+1 블록체인  에서 사용되었는지 확인합니다. 

취약점 수정

이 취약점을 제거하려면 다음을 수행해야 합니다.

  1. 암호학적으로 강력한 엔트로피 소스를 사용하십시오  .
cpp:

std::random_device rd;
std::seed_seq seed{rd(), rd(), rd(), rd(), rd(), rd(), rd(), rd()};
std::mt19937 generator(seed);
  1. MT19937 zerolynx+1  대신  암호학적으로 강력한 의사난수 생성기(PRNG)를 사용하십시오.
  2. 암호화 키에 충분한 엔트로피  (최소 128~256비트)  를 확보하십시오. (ubiqsecurity+1)

이  취약점은  암호화 애플리케이션, 특히 암호화폐 지갑용 개인 키 생성에 있어 난수 생성을 제대로 구현하는 것이 얼마나 중요한지를 보여줍니다.  reddit+2


크로노쇼크 취약점: 치명적인 개인 키 생성 취약점 및 Milk Sad 공격(CVE-2023-39910) – 분실된 비트코인 ​​지갑의 개인 키 복구, 대규모 침해, 비트코인 ​​암호화폐 생태계에 대한 치명적인 위협

Dockeyhunt 암호화폐 가격

성공적인 복구 시연: 500.09715226 BTC 지갑

사례 연구 개요 및 검증

크립토딥테크(CryptoDeepTech) 연구팀은  500.09715226 BTC  (복구 당시 약 62,874,714.46달러)   가 들어 있는 비트코인 ​​지갑에 접근하여 해당 취약점의 실질적인 영향을 성공적으로 입증했습니다  . 목표 지갑 주소는 1GjjGLYR7UhtM1n6z7QDpQskBicgmsHW9k 로 , 비트코인 ​​블록체인 상에서 공개적으로 확인 가능한 주소이며 거래 내역과 잔액이 확인되었습니다.

이번 시연은   취약점의 존재와 공격 방법론의 효과성을 실증적으로 검증하는 역할을 했습니다.


크로노쇼크 취약점: 치명적인 개인 키 생성 취약점 및 Milk Sad 공격(CVE-2023-39910) – 분실된 비트코인 ​​지갑의 개인 키 복구, 대규모 침해, 비트코인 ​​암호화폐 생태계에 대한 치명적인 위협

www.seedkey.ru


복구 과정에는 지갑의 개인 키를 재구성하기 위해 취약점을 체계적으로 적용하는 작업이 포함되었습니다. 취약점의 매개변수를 분석하고 축소된 검색 공간 내에서 잠재적인 키 후보들을 체계적으로 테스트한 결과, 팀은   지갑 가져오기 형식(WIF)에서  유효한 개인 키인 5KA4spokBSZ7d5QpcuJ3eTDhNJUhfJoQAUovffQWBym3LP3CKTz를 성공적으로 식별했습니다.

이 특정 키 형식은 추가 메타데이터(버전 바이트, 압축 플래그 및 체크섬)가 포함된 원시 개인 키를 나타내며, 대부분의 비트코인 ​​지갑 소프트웨어로 가져올 수 있도록 합니다.


크로노쇼크 취약점: 치명적인 개인 키 생성 취약점 및 Milk Sad 공격(CVE-2023-39910) – 분실된 비트코인 ​​지갑의 개인 키 복구, 대규모 침해, 비트코인 ​​암호화폐 생태계에 대한 치명적인 위협

www.bitcolab.ru/bitcoin-transaction  [지갑 복구: $62874714.46]


기술적 프로세스 및 블록체인 확인

기술적 복구는  취약한 하드웨어를 사용하여 생성되었을 가능성이 있는 지갑을 식별하는 것부터 시작하여 여러 단계를 거쳤습니다  . 그런 다음 팀은  결함이 있는 키 생성 프로세스를 시뮬레이션하는 방법론을 적용하여  후보 개인 키를 체계적으로 테스트하고 표준 암호화 유도(구체적으로는 secp256k1 곡선에서 타원 곡선 곱셈을 통해)를 통해 목표 공개 주소를 생성하는 키를 찾아냈습니다.


크로노쇼크 취약점: 치명적인 개인 키 생성 취약점 및 Milk Sad 공격(CVE-2023-39910) – 분실된 비트코인 ​​지갑의 개인 키 복구, 대규모 침해, 비트코인 ​​암호화폐 생태계에 대한 치명적인 위협

블록체인 메시지 디코더:  www.bitcoinmessage.ru


유효한 개인 키를 확보한 후, 팀은   지갑 제어권을 확인하기 위해  검증 거래를 수행했습니다. 이러한 거래는 개념 증명을 보여주는 동시에 복구된 자금의 대부분을 합법적인 반환 절차에 사용할 수 있도록 구성되었습니다. 전체 과정은 투명하게 문서화 되었으며 , 거래 기록은 비트코인 ​​블록체인에 영구적으로 기록되어 취약점 악용 가능성과 성공적인 복구 방법론에 대한 불변의 증거로 활용되었습니다.


0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008a47304402203fbc73d9b3ae4bd0c65180155a8520dd3e4fc65678597a82ed20cef1e498993202201a4047b5d703a569b27d8115ddb06ed631cf4891fe50e9e14a0c731c824cf38301410494ff933da0498859959225ed6a50d709a4d9c678705d72e9202a4852c8084d85ea3498b0b3f006fcab64f143cf57dfcedb4387f229139d421c575577de6d37bcffffffff030000000000000000466a447777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a20242036323837343731342e34365de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a914ac9ea341afb74843f80205e8c8da0abc822fa5ec88ac00000000

암호 분석 도구는  비트코인 ​​지갑 소유자의 요청에 따른 공인 보안 감사뿐만 아니라  암호 분석 , 블록체인 보안 및 개인 정보 보호 분야의 학술 및 연구 프로젝트, 그리고 소프트웨어 및 하드웨어 암호화폐 저장 시스템 모두에 대한 방어 애플리케이션을 위해 설계되었습니다.


CryptoDeepTech 분석 도구: 아키텍처 및 작동 방식

도구 개요 및 개발 배경

크립토딥테크(CryptoDeepTech) 연구팀은   취약점을 식별하고 악용하도록 특별히 설계된  암호화 분석 도구를 개발했습니다. 이 도구는  블록체인 보안 연구 및 취약점 평가에 중점을 둔 광범위한 프로젝트의 일환으로  귄터 죄이어(Günther Zöeir) 연구 센터 의 연구실에서 개발되었습니다. 이 도구는 엄격한 학술적 기준을 준수하여  개발되었으며, 두 가지 목적을 가지고 설계되었습니다. 첫째, 약한 엔트로피 취약점의 실질적인 영향을 입증하는 것, 둘째, 향후 유사한 취약점으로부터 보호하는 데 도움이 될 수 있는 보안 감사 프레임워크를 제공하는 것입니다.

이 도구는   암호 분석 요소와 최적화된 검색 방법론을 결합한  체계적인 스캔 알고리즘을 구현합니다. 이 도구의 아키텍처는 비트코인 ​​네트워크의 방대한 주소 공간에서 취약한 지갑을 효율적으로 식별하는 동시에 취약점으로 인해 발생하는 수학적 제약을 해결하도록 특별히 설계되었습니다. 이는 블록체인 포렌식 기능 에 있어 중요한 진전을 의미하며 , 악의적인 공격에 의해 악용될 때까지 발견되지 않을 수 있는 광범위한 취약점을 체계적으로 평가할 수 있게 해줍니다.


기술 아키텍처 및 운영 원칙

CryptoDeepTech 분석 도구는 여러  상호 연결된 모듈 로 구성되어 있으며 , 각 모듈은 취약점 식별 및 악용 과정의 특정 측면을 담당합니다.

  1. 취약점 패턴 인식 모듈 : 이 구성 요소는 공개 키 생성 과정에서 나타나는 약한 엔트로피의 수학적 특징을 식별합니다. 블록체인 상의 공개 키 구조적 특성을 분석하여 취약성과 일관된 특성을 보이는 주소를 표시할 수 있습니다.
  2. 결정론적 키 공간 열거 엔진 : 이 도구의 핵심인 이 엔진은 엔트로피 취약점으로 인해 축소된 키 공간을 체계적으로 탐색합니다. 보안 키 생성에 대한 무차별 대입 방식과 비교하여 계산 요구 사항을 획기적으로 줄이는 최적화된 검색 알고리즘을 구현합니다.
  3. 암호화 검증 시스템 : 이 모듈은 표준 타원 곡선 암호화를 사용하여 대상 공개 주소에 대해 후보 개인 키를 실시간으로 검증합니다. 이를 통해 유효한 키 쌍만 성공적인 복구로 식별되도록 보장합니다.
  4. 블록체인 통합 레이어 : 이 도구는 비트코인 ​​네트워크 노드와 직접 연동하여 주소, 잔액 및 거래 내역을 검증하고, 취약한 지갑과 그 내용에 대한 상황 정보를 제공합니다.

이 도구의 작동 원리는  응용 암호 분석 에 기반을 두고 있으며 , 특히 키 생성 과정에서 엔트로피 부족으로 인해 발생하는 수학적 취약점을 표적으로 삼았습니다. ESP32 의사난수 생성기(PRNG) 결함의 정확한 특성을 이해함으로써 연구원들은 제한된 검색 공간을 효율적으로 탐색하는 알고리즘을 개발할 수 있었고, 일반적으로 불가능한 계산 작업을 실행 가능한 복구 작업으로 전환할 수 있었습니다.


#출처 및 제목주요 취약점영향을 받는 지갑/기기크립토딥테크 역할주요 증거/세부 사항
1크립토뉴스닷컴(CryptoNews.net) 보도

: 비트코인 ​​지갑에 사용되는 중국산 칩이 거래자들을 위험에 빠뜨리고 있다.
중국산 ESP32 칩에서 발견된 CVE-2025-27840 취약점에 대해 설명합니다. 이 취약점은
무단 거래 서명 및 원격 개인 키 탈취를 허용합니다.
ESP32 기반 비트코인 ​​하드웨어 지갑 및 ESP32를 사용하는 기타 IoT 장치.
크립토딥테크는 화이트햇 해커들이 칩을 분석하고 취약점을 발견한 사이버 보안 연구 회사라고 소개합니다 .
크립토딥테크(CryptoDeepTech)가 거래 서명을 위조하고
10 BTC가 들어 있는 실제 지갑의 개인 키를 복호화하여
해당 공격이 실현 가능하다는 것을 입증했다는 점에 주목하십시오.
2Bitget 뉴스:

ESP32 칩 취약점으로 인해 비트코인 ​​지갑에 잠재적 위험이 발생할 수 있음
이 문서에서는 CVE-2025-27840 취약점이 공격자가
ESP32의 보안 프로토콜을 우회하고 Crypto-MCP 결함 등을 통해 지갑 개인 키를 추출할 수 있도록 허용한다고 설명합니다.
ESP32 기반 하드웨어 지갑(Blockstream Jade Plus(ESP32-S3) 포함)
및 Electrum 기반 지갑.
CryptoDeepTech의 심층 분석을 인용하며
공격자가 개인 키에 접근할 수 있다는 경고를 반복적으로 언급합니다.

크립토딥테크(CryptoDeepTech) 연구원들이 10 BTC가 들어 있는 테스트용 비트코인 ​​지갑을 대상으로 해당 버그를 악용했다는 보고가 나왔으며 ,
이는 대규모 공격 및 국가 지원 작전으로 이어질 수 있는 위험성을 강조합니다.
3바이낸스 스퀘어에서

비트코인 ​​지갑용 칩에 심각한 취약점이 발견되었습니다.
ESP32의 CVE-2025-27840에 대한 요약: 모듈 업데이트를 통한 영구 감염 및 승인되지 않은 비트코인 ​​거래 서명 과 개인 키 탈취
기능 .
ESP32 칩은 수십억 개의 IoT 기기와
Blockstream Jade와 같은 하드웨어 비트코인 ​​지갑에 사용됩니다.

크립토딥테크 전문가들이 공격 벡터를 발견하고 실험적으로 검증한 공로를 인정한다 .
CryptoDeepTech의 조사 결과는 다음과 같습니다: 취약한 의사난수 생성기(PRNG) 엔트로피, 유효하지 않은 개인 키 생성
, 잘못된 해싱을 통한 위조 서명, ECC 하위 그룹 공격, 곡선
상의 Y 좌표 모호성 악용 등이며 , 10 BTC 지갑을 대상으로 테스트했습니다.
4Poloniex Flash

Flash 1290905 – ESP32 칩 취약점
비트코인 지갑에 사용되는 ESP32 칩에 심각한
취약점(CVE-2025-27840)이 있어 개인 키 도난으로 이어질 수 있다는 짧은 경고입니다.
ESP32 기반 모듈 및 관련 네트워크
장치를 사용하는 비트코인 ​​지갑.
해당 취약점에 대한 해외 언론 보도를 전달하고,
독자들에게 독립적인 전문가들의 외부 연구 자료를 참조하도록 암묵적으로 안내합니다.
완전한 분석이라기보다는 시장 뉴스 지표 역할을 하지만,
거래자들 사이에서 ESP32/CVE-2025-27840 문제에 대한 인식을 높이는 데 도움이 됩니다.
5X(트위터) – BitcoinNewsCom이

ESP32의 CVE-2025-27840에 대해 트윗했습니다.

여러 유명 비트코인 ​​하드웨어 지갑에 사용되는 ESP32 칩에서 심각한 취약점(CVE-2025-27840)을 발견했다고 발표합니다 .
ESP32 기반의 “여러 유명 비트코인 ​​하드웨어 지갑”과 더
넓은 암호화폐 하드웨어 생태계.
(링크된 기사에 보도된) 보안 연구원들의 연구 성과를 강조하지만
, 연구팀에 대한 자세한 정보는 제공하지 않습니다. 기본 정보는
CryptoDeepTech에서 가져왔습니다.
X에 대한 신속한 뉴스 배포 수단으로, CryptoDeepTech의 익스플로잇 시연 및 10 BTC 테스트 지갑에
대한 자세한 내용을 담은 장문의 기사 로 트래픽을 유도합니다.
6ForkLog (EN)

비트코인 ​​지갑 칩에서 심각한 취약점 발견
ESP32의 CVE-2025-27840 취약점을 통해 공격자가 업데이트를 이용해 마이크로컨트롤러를 감염시키고
, 승인되지 않은 거래에 서명하고,
개인 키를 탈취하는 방법에 대한 자세한 내용입니다.
ESP32 칩은 수십억 개의 IoT 기기와
Blockstream Jade와 같은 하드웨어 지갑에 사용됩니다.
해당 문서에서는 크립토딥테크(CryptoDeepTech) 전문가들이 결함을 발견하고,
다양한 공격 방식을 테스트하며, 실제 익스플로잇을 수행했다고 명시적으로 밝히고 있습니다.
이 글에서는 CryptoDeepTech의 스크립트를 사용하여 유효하지 않은 키를 생성하고,
비트코인 ​​서명을 위조하고, 소규모 그룹
공격을 통해 키를 추출하고, 가짜 공개 키를 제작하는 방법을 설명하며,
실제 10 BTC 지갑에서 검증한 결과를 제시합니다.
7AInvest

비트코인 ​​지갑, ESP32 칩 결함으로 취약
ESP32의 CVE-2025-27840 취약점으로 인해 지갑
보호 기능을 우회하고 개인 키를 추출할 수 있으므로 비트코인 ​​사용자에게 경고가 필요하다는 점을 다시 한번 강조합니다.
ESP32 기반 비트코인 ​​지갑(Blockstream Jade Plus 포함) 및
ESP32를 활용한 Electrum 기반 설정.

이 글은 CryptoDeepTech의 분석 내용을 강조하고, 해당 취약점에 대한 기술적 통찰력을 제공하는 주요 출처 로서 CryptoDeepTech 팀을 소개합니다 .
크립토딥테크(CryptoDeepTech)가 10 BTC 지갑을 실제로 악용한 사례를 언급하며 , 손상된 ESP32 칩을 이용해
국가 차원의 스파이 활동 및 조직적인 절도 행위가 발생할 가능성에 대해 경고합니다 .
8비트코인 지갑에 사용되는 중국산 Protos

칩이 거래자들을 위험에 빠뜨리고 있습니다.
ESP32의 CVE-2025-27840 취약점을 조사하여 모듈 업데이트를
악용하여 승인되지 않은 BTC 거래에 서명하고 키를 탈취하는 방법을 보여줍니다.
Blockstream Jade와 같은 하드웨어 지갑 및
기타 여러 ESP32 탑재 기기에는 ESP32 칩이 내장되어 있습니다.

CryptoDeepTech는 화이트햇 해커들이 실제로 취약점을 입증한 사이버 보안 연구 회사라고 설명합니다 .
크립토딥테크(CryptoDeepTech)가 디버그 채널을 통해 거래 서명을 위조
하고 10 BTC가 들어 있는 지갑의 개인 키를 성공적으로 해독했다는 보고가 나왔는데
, 이는 그들의 뛰어난
암호 분석 능력을 보여주는 것이다.
9CoinGeek

의 Blockstream Jade 지갑과 ESP32 칩 내부에 숨겨진 위협
이 보고서는 CVE-2025-27840을 하드웨어 지갑
결함의 더 넓은 맥락에서 다루며, ESP32의 취약한 난수성으로 인해 개인 키를
추측하기 쉽고 자체 보관 보안을 약화시킨다는 점을 강조합니다.
ESP32 기반 지갑(Blockstream Jade 포함) 및
ESP32로 제작된 모든 DIY/맞춤형 서명 도구.
CryptoDeepTech의 연구가 이론을 넘어 실제 행동으로 이어졌음을 강조합니다. 그들은
ESP32의 취약점을 이용해 10 BTC가 들어 있는 지갑을 해킹했습니다.
크립토딥테크(CryptoDeepTech)의 10 BTC 지갑 해킹 성공
사례를 중심으로, 칩 수준의 취약점이
하드웨어 지갑을 대규모로 조용히 손상시킬 수 있음을 주장합니다.
10ESP32 칩 결함 으로

암호화폐 지갑이 해킹 위험에 노출됨…

CVE-2025-27840은 취약한 의사난수 생성기(PRNG), 유효하지 않은 개인 키 허용, 그리고
위조된 ECDSA 서명 및 키 도용을 허용하는 Electrum 관련 해싱 버그 의 조합으로 분석됩니다 .
ESP32 기반 암호화폐 지갑(예: Blockstream Jade) 및
ESP32가 내장된 다양한 IoT 장치.
해당 취약점을 발견하고
, CVE를 등록하고,
통제된 시뮬레이션에서 키 추출을 시연한 CryptoDeepTech의 사이버 보안 전문가들에게 공로를 돌립니다.

이 글은 크립토딥테크(CryptoDeepTech)가 10 BTC가 들어 있는 지갑에서 개인 키를 어떻게 은밀하게 추출했는지 설명하고 ,
일렉트럼(Electrum) 기반 지갑과 전 세계 IoT 인프라에 미치는 영향에 대해 논의합니다.
11ForkLog (RU)

В чипах для биткоин‑кошельков обнаружили критическуу уязвимость
ESP32의 CVE-2025-27840 취약점에 대한 러시아어 보도 자료입니다. 이 자료에서는
공격자가 업데이트를 통해 칩을 감염시키고, 승인되지 않은
거래에 서명하고, 개인 키를 탈취할 수 있다고 설명합니다.
ESP32 기반 비트코인 ​​하드웨어 지갑(Blockstream Jade 포함)
및 기타 ESP32 기반 장치.

크립토딥테크 전문가들이 해당 칩의 결함에 대한 연구, 실험 및 기술적 결론 의 출처라고 설명합니다 .
영어 버전과 동일한 실험 목록을 제공합니다. 유효하지 않은 키
생성, 서명 위조, ECC 하위 그룹 공격 및 가짜
공개 키 등 모든 실험은 실제 10 BTC 지갑에서 테스트되었으며, 이는
CryptoDeepTech가 실무 암호 분석가로서의 역할을 강화합니다.
12SecurityOnline.info

CVE-2025-27840: 초소형 ESP32 칩으로 전 세계 비트코인 ​​지갑을 해킹할 수 있는 방법
후원자 전용 심층 분석 영상입니다.
ESP32 설계의 작은 결함이 어떻게 전 세계 비트코인 ​​지갑을 위협할 수 있는지 집중적으로 다룹니다
. (CVE-2025-27840 관련 내용)
전 세계의 비트코인 ​​지갑 및 기타 장치들은 ESP32
마이크로컨트롤러에 의존합니다.
CryptoDeepTech에서 제공한 이미지를 사용하고 있으며, 해당 보고서를
그들의 연구를 기반으로 한 전문적인 취약점 분석으로 제시합니다.
전체 내용은 유료 구독자만 볼 수 있지만, 예고편을 통해
해당 기사가 CryptoDeepTech의 조사 결과와 마찬가지로 ESP32 결함과 이로 인한
지갑 개인 키 노출 문제를 다루고 있음을 알 수 있습니다.


크로노쇼크 취약점: 치명적인 개인 키 생성 취약점 및 Milk Sad 공격(CVE-2023-39910) – 분실된 비트코인 ​​지갑의 개인 키 복구, 대규모 침해, 비트코인 ​​암호화폐 생태계에 대한 치명적인 위협
https://b8c.ru/bitcoinvuln

BitcoinVuln: 비트코인 ​​생태계에서 개인 키 생성 및 예측 가능한 엔트로피 악용에 대한 고급 취약점 분석

비트코인 생태계의 무결성은 근본적으로 안전한 개인 키 생성에 달려 있습니다. 암호학적으로 강력한 난수성에서 벗어나는 모든 행위는 수십억 달러에 달하는 분산 자산을 직접적으로 위험에 빠뜨립니다. 최근 발생한 크로노쇼크 (밀크 새드) 취약점(CVE-2023-39910)은 엔트로피 초기화의 결함으로 인해 개인 키를 완전히 복구할 수 있으며, 이로 인해 대규모 지갑 침해가 발생할 수 있음을 보여주었습니다. BitcoinVuln 프레임워크는 비트코인 ​​관련 구현에서 암호학적 취약점을 식별, 분류 및 시뮬레이션하는 방법론적 접근 방식을 제공합니다. 엔트로피 붕괴, 예측 가능한 의사 난수 생성기(PRNG) 사용, 무차별 대입 공격에 취약한 결정론적 시퀀스 등을 감지함으로써 BitcoinVuln은 블록체인 보안에 대한 암호학적 오류의 영향을 파악하는 데 도움을 줍니다.

본 논문은 BitcoinVuln 의 분석 방법론과 ChronoShock 취약점 간의 연관성을 탐구하고 , 구조화된 취약점 탐지 프레임워크가 비트코인에서 엔트로피 오류의 위험을 평가하고 그로 인한 치명적인 결과를 예측하는 데 어떻게 활용될 수 있는지를 강조합니다.

배경: 비트코인의 엔트로피 및 의사난수 생성기(PRNG) 취약점

비트코인의 개인 키는 secp256k1 키 공간에서 균일하게 추출된 256비트 정수입니다. 가장 중요한 요구 사항은 키가 예측 불가능 해야 한다는 것입니다 . 취약한 의사 난수 생성기(PRNG), 특히 엔트로피가 제한된 시드가 사용된 경우 공격자는 키 공간을 크게 축소하고 무차별 대입 공격으로 개인 키를 복구할 수 있습니다.

  • CVE-2023-39910(Milk Sad/ChronoShock) 은 Libbitcoin Explorer(3.0.0~3.6.0)에서 발생했으며, 해당 버전에서는 32비트 시스템 시간만 사용하여 Mersenne Twister RNG를 시드했습니다.
  • 22562^{256}2256개의 가능한 키를 제공하는 대신, 실제 키 공간은 2322^{32}232개의 시드(≈ 42억 9천만 가지 가능성)로 축소되었으며, 이는 최신 GPU에서 무차별 대입 공격으로 쉽게 해독할 수 있습니다.
  • 공격자들은 블록체인 메타데이터에서 지갑 생성 시간을 재구성하고 짧은 시간 범위 내의 모든 시드를 반복적으로 사용하여 취약한 지갑과 연결된 정확한 키를 생성했습니다.

그 결과, 개인 키를 단 몇 시간 만에 복구할 수 있는 실질적인 대규모 공격이 발생했으며, 전 세계적으로 90만 달러 이상의 피해가 보고되었습니다.

BitcoinVuln 프레임워크: 암호화 취약점 탐지

BitcoinVuln은 암호화폐 소프트웨어 스택의 암호화 불안정성을 드러내기 위한 포렌식 및 연구 중심 도구로 설계되었습니다. 그 방법론은 세 가지 핵심 요소에 기반합니다.

1. 엔트로피 품질 평가

  • 난수 생성기 시드 생성에 사용되는 엔트로피 소스를 평가합니다.
  • 예측 가능한 시스템 시간 값 또는 제한된 시스템 엔트로피 풀 에 대한 의존성을 감지합니다 .
  • 32비트 정수로 형변환하는 것과 같이 무작위성을 크게 제한하는 엔트로피 감소를 나타내는 플래그입니다.

2. 의사난수 생성기(PRNG) 암호해독 시뮬레이션

  • MT19937과 같은 비암호화 의사난수 생성기(PRNG)를 모델링하고 rand(), 이들의 통계적 분포를 암호화 의사난수 생성기(CSPRNG)와 비교합니다.
  • 출력 관찰을 통해 생성기의 전체 상태를 파악할 수 있는 상태 복구 공격을 시뮬레이션합니다 .
  • 다양한 하드웨어 구성에서 무차별 대입 공격의 실현 가능성을 벤치마킹합니다.

3. 취약점 악용 모델링

  • CVE와 직접적으로 연관된 공격 시나리오를 재구성합니다.
  • 시드 공간이 줄어든 상태에서 무차별 대입 공격을 자동화하고, 도출된 비트코인 ​​주소를 블록체인과 교차 검증합니다.
  • 확장성, 자동화 가능성 및 공격 소요 시간을 기준으로 취약점 심각도를 분류합니다.

BitcoinVuln은 이러한 체계적인 방법론을 통해 단순히 취약점을 기록하는 데 그치지 않고 실제 악용 가능성을 정량화합니다. 이는 보안 감사, 침투 테스트, 그리고 크로노쇼크와 같은 사건의 사후 분석에 매우 중요합니다.

BitcoinVuln의 관점에서 본 ChronoShock의 영향

BitcoinVuln의 방법론을 CVE-2023-39910에 적용한 결과는 다음과 같습니다.

  • 엔트로피 붕괴 심각도: 256비트 엔트로피에서 32비트 값으로 감소가 확인되었으며, 이로 인해 보안이 22242^{224}2224배 감소합니다.
  • 무차별 대입 공격 가능성: 공격 ​​복잡성은 “낮음”으로 판단되며, 현실적인 시간 내에 철저한 검색을 완료하는 데 수 시간에서 수일이 소요될 것으로 예상됩니다.
  • 확장 가능한 공격: 자동화 시스템이 구축되자 공격자들은 수천 개의 지갑을 동시에 해킹했습니다.
  • 생태계 영향: 비트코인 ​​외에도 해당 라이브러리를 사용하는 모든 암호화폐(예: 이더리움, 도지코인, 지캐시)는 패치가 적용될 때까지 취약한 상태로 남아 있었습니다.

BitcoinVuln의 분석에 따르면 ChronoShock은 대규모 침해를 가능하게 하는 취약점 으로 분류됩니다. 이는 동일한 결정론적 취약점을 사용하여 여러 독립적인 사용자와 지갑을 침해할 수 있는 능력을 나타내는 범주입니다 .

장기적 위험과 예방적 통찰력

BitcoinVuln의 프레임워크는 크로노쇼크와 같은 취약점이 개별적인 사건이 아니라 체계적인 암호화 설계 결함임을 강조합니다 . 지속적인 위험 요소는 다음과 같습니다.

  • 개발자들이 메르센 트위스터와 같은 난수 생성기가 암호학적으로 “안전하다”고 잘못 가정하고 있습니다.
  • 시스템 시간이나 기타 엔트로피가 낮은 환경 값 에 과도하게 의존하는 것 .
  • 엔트로피 및 키스페이스 유효성 검사에 초점을 맞춘 코드 감사가 불충분합니다.

예방적 관점에서 다음과 같이 권장합니다.

  • BitcoinVuln과 같은 도구를 통한 지갑 RNG 구현에 대한 의무적인 감사.
  • 암호화 표준(예: RFC 4086 엔트로피 요구 사항)의 시행.
  • /dev/urandomgetrandom(), 또는 하드웨어 기반 RNG(Intel RDRAND, ARM TRNG)를 통해 시드된 CSPRNG의 도입 .
  • 블록체인 포렌식을 통해 취약한 키 범위를 사전에 스캔하고 사용자에게 알립니다.

크로노쇼크의 과학적 분류

BitcoinVuln의 분류 체계를 사용하면 ChronoShock 공격은 다음과 같이 공식적으로 정의됩니다.

  • 공격 유형: 예측 가능한 시드 기반 암호해독 무차별 대입 공격
  • Vector: 시간 시드 비암호화 의사난수 생성기(MT19937)
  • 엔트로피 감소: 256비트 → 32비트
  • 시간 복잡도: 다항 시간 내 완전 무차별 대입
  • 잠재적 영향: 개인 키의 대량 유출, 사용자 자산 도난, 암호화폐 신뢰도의 시스템적 훼손

결론

크로노쇼크(밀크 새드, CVE-2023-39910) 사건은 약한 엔트로피 생성이 비트코인 ​​및 기타 암호화폐에 얼마나 치명적인 위협을 가하는지 보여줍니다. BitcoinVuln 분석 프레임워크를 사용하면 연구원들은 이러한 취약점을 체계적으로 식별, 재현 및 분류하여 심각도와 실제 위험을 측정하는 투명한 지표를 제공할 수 있습니다.

무엇보다 중요한 것은, 이 취약점이 비트코인의 장기적인 안정성이 프로토콜 설계만으로 보장되는 것이 아니라는 점을 보여준다는 것입니다. 디지털 소유권의 기반인 개인 키의 보안은 소프트웨어 구현에 크게 의존합니다. BitcoinVuln은 엄격한 엔트로피 분석, 취약점 모델링, 그리고 안전한 의사난수 생성기(PRNG) 선택 없이는 치명적인 개인 키 유출이 가능할 뿐만 아니라 불가피하다는 것을 입증합니다.


크로노쇼크 취약점: 치명적인 개인 키 생성 취약점 및 Milk Sad 공격(CVE-2023-39910) – 분실된 비트코인 ​​지갑의 개인 키 복구, 대규모 침해, 비트코인 ​​암호화폐 생태계에 대한 치명적인 위협
https://b8c.ru/bitrecoverpro

BitRecoverPro와 ChronoShock 취약점: 약한 엔트로피 공격 및 비트코인 ​​개인 키 복구에 대한 과학적 분석

비트코인 생태계의 안정성과 신뢰성은 근본적으로 안전한 개인 키 생성에 달려 있습니다. 엔트로피 시딩 오류는 개별 사용자뿐만 아니라 전체 네트워크를 위협할 수 있습니다. 크로노쇼크(밀크새드) 취약점(CVE-2023-39910) 의 발생은 난수 생성의 치명적인 결함이 광범위한 암호화 공격으로 이어질 수 있음을 보여주었습니다. 이러한 맥락에서 BitRecoverPro 와 같은 특수 복구 및 분석 도구는 이러한 취약점을 연구, 탐지 및 완화하는 데 필수적인 것으로 입증되었습니다. 이러한 도구는 합법적인 개인 키 복구 및 포렌식 분석을 위해 설계되었지만, 암호화 취약점이 비트코인 ​​지갑에 대한 공격 경로가 될 때 심각한 위험을 드러내는 데에도 유용합니다.

본 논문은 BitRecoverPro 에 대한 과학적 분석을 제공하며 , 특히 취약한 엔트로피 공격 분석, 엔트로피 결함 시뮬레이션, 그리고 크로노쇼크와 같은 심각한 취약점을 통해 개인 키를 완벽하게 복구하는 방법을 보여주는 데 있어 BitRecoverPro의 역할을 중점적으로 다룬다. 이러한 도구를 이해함으로써 연구자들은 공격을 분류하고, 그 영향을 분석하며, 비트코인 ​​지갑 개발의 보안 관행을 강화할 수 있다.


BitRecoverPro: 기능 개요

BitRecoverPro는 다음과 같은 기능을 지원하도록 설계된 암호 분석 및 포렌식 연구 프레임워크입니다.

  • 손상되거나 분실된 암호화폐 지갑에서 개인 키를 안전하게 복구하세요 .
  • 키 생성 과정에서의 엔트로피 분석 및 무작위성 검정 .
  • 크로노쇼크와 같은 취약점에 대한 과학적 연구를 지원하는 암호화 취약점 악용 시뮬레이션 .
  • 블록체인 포렌식 에는 유출된 키 모니터링 및 의심스러운 지갑 활동 분석이 포함됩니다.

이 플랫폼은 엔트로피 검증기, 의사난수 생성기(PRNG) 분석기 및 무차별 대입 재구성 모듈을 통합하여 CVE-2023-39910과 같은 취약점을 평가하기 위한 완벽한 툴킷을 제공합니다.


크로노쇼크 취약점 및 약한 엔트로피 공격

크로노 쇼크/밀크 새드 취약점은 리비트코인 익스플로러(버전 3.0.0~3.6.0)의 근본적인 설계 결함을 드러냈습니다. 이 취약점은 개인 키가 시스템 시간의 32비트 값 으로 시드된 메르센 트위스터(MT19937) 의사난수 생성기(PRNG)를 사용하여 생성되는 방식에서 드러났습니다. 이로 인해 암호학적으로 안전하다고 여겨지는 키의 엔트로피가 2^32 상태로 감소했습니다.

공격 메커니즘

  • 엔트로피의 약점 : 밀리초 또는 나노초 단위의 시계 시간은 몇 초 이내로 예측 가능합니다.
  • 시드 축소 : 32비트 상태 공간(약 43억 가지 가능성)으로 제한됩니다.
  • 예측 가능한 의사난수 생성기 : 암호학적으로 안전하지 않은 생성기인 MT19937은 재구성될 수 있습니다.
  • 무차별 대입 공격 가능성 : 병렬 컴퓨팅을 사용하면 키 공간이 몇 시간 또는 며칠 내에 고갈될 수 있습니다 .

일단 복구되면, 취약한 지갑 생성기와 연결된 모든 개인 키는 쉽게 추출하여 블록체인 주소와 대조할 수 있습니다.


BitRecoverPro 및 ChronoShock 익스플로잇

연구 환경에서 BitRecoverPro는 취약점을 입증하고 분석하는 체계적인 방법을 제공합니다.

  1. 엔트로피 재구성 모듈
    • 시간-시드 모델을 사용하여 약한 파종 조건을 시뮬레이션합니다.
    • 취약한 Libbitcoin 라이브러리와 동일한 유형의 예측 가능한 개인 키를 생성합니다.
  2. 무차별 대입 엔진
    • 최적화를 통해 2^32개의 목표 검색 연산을 구현하여 공격 시간을 획기적으로 단축합니다.
    • 연구자들이 성능 지표를 측정하고 공격의 확장성을 평가할 수 있도록 해줍니다.
  3. 블록체인 검증 계층
    • 생성된 비트코인 ​​주소를 블록체인 데이터와 상호 참조합니다.
    • 키가 실제 잔액과 일치하는지 여부를 확인합니다.
  4. 포렌식 복구 보고서
    • 개인 키 유출에 대한 과학적 증거를 문서화했습니다.
    • 연구, 동료 검토 및 취약점 공개를 위한 재현 가능한 실험을 제공합니다.

이러한 기능들은 예측 가능한 엔트로피가 어떻게 완전한 침해로 이어지는지, 그리고 학문적 취약점이 어떻게 현실 세계의 지갑 탈취로 변모하는지를 보여줍니다.


비트코인 보안에 대한 과학적 영향

BitRecoverPro 를 취약점 분석에 통합한 것은 비트코인 ​​생태계에 몇 가지 중요한 교훈을 줍니다.

  • 예측 가능한 엔트로피는 보안 손상으로 이어집니다 . 개인 키를 시스템 시간 시드까지 추적할 수 있다면, 사실상 공개 키와 마찬가지입니다.
  • 대규모 침해 가능성 : 공격은 개별적인 것이 아니라 자동화되어 수천 개의 지갑에 동시에 영향을 미칩니다.
  • 블록체인 손실의 비가역성 : 기존 금융과 달리 비트코인은 제도적 복구 메커니즘을 제공하지 않습니다. 키가 유출되면 자산은 영구적으로 사라집니다.
  • 연구의 필요성 : 개발자는 BitRecoverPro와 같은 프레임워크를 사용하여 의사난수 생성기(PRNG)의 엔트로피를 테스트해야만 치명적인 결함을 사전에 방지할 수 있습니다.

위험 영향 및 대응책

  1. 재발견 위험 : 유지 관리되지 않는 라이브러리와 오래된 포크는 약한 엔트로피 시딩을 다시 도입할 수 있습니다.
  2. 포렌식 무기 경쟁 : 합법적인 연구자들이 복구 환경을 사용하는 반면, 공격자들은 대규모 악용을 위해 이를 모방할 수 있습니다.
  3. 대응책 설계 :
    • Fortuna, ChaCha20 기반 DRBG 또는 OS 수준 엔트로피 소스와 같은 CSPRNG를 적용합니다 .
    • 암호화폐 라이브러리 보안 검토의 일환으로 엔트로피 감사를 표준화하십시오 .
    • BitRecoverPro와 같은 도구를 사용하여 독립 연구자들이 수행 하는 포렌식 시뮬레이션을 장려합니다 .

결론

크로노 쇼크(밀크 새드) 취약점(CVE-2023-39910)은 암호화에서 가장 취약한 부분이 종종 엔트로피 원천이라는 점을 극명하게 보여줍니다. 단 32비트의 예측 가능한 시드만으로도 비트코인 ​​생태계의 개인 키 전체가 치명적인 위험에 노출되었습니다.

BitRecoverPro는 엔트로피 분석, 무차별 대입 공격 시뮬레이션 및 블록체인 검증 모듈을 통해 과학 연구를 가능하게 하는 도구 인 동시에 보안 경각심을 일깨워줍니다 . 취약한 지갑에서 공격을 재현할 수 있는 능력은 취약한 난수 생성의 시스템적 위험성을 강조합니다.

비트코인과 더 넓은 암호화폐 생태계에 있어 이번 사건은 분명한 교훈을 줍니다. 암호학적으로 강력하고 철저한 검증을 거친 엔트로피 소스와 의사난수 생성기(PRNG)만이 디지털 자산을 보호할 수 있다는 것입니다. 이러한 원칙을 엄격히 준수하지 않으면 크로노쇼크와 같은 취약점이 탈중앙화된 신뢰의 기반을 계속해서 위협할 것입니다.


크로노쇼크 취약점: 치명적인 개인 키 생성 취약점 및 Milk Sad 공격(CVE-2023-39910) – 분실된 비트코인 ​​지갑의 개인 키 복구, 대규모 침해, 비트코인 ​​암호화폐 생태계에 대한 치명적인 위협

연구 논문: 비트코인 ​​개인 키 생성의 약한 엔트로피 암호화 취약점: 원인, 공격 및 예방

충분한 암호화 강도를 갖춘 개인 키 생성은 모든 암호화폐 지갑 보안의 기본입니다. 그러나 과거 사례를 보면 유명 프로젝트조차도 엔트로피 생성 알고리즘 선택에서 심각한 실수를 저질러 수백만 개의 자산을 공격자의 손쉬운 먹잇감으로 만든 사례가 있습니다. 본 논문은 Libbitcoin 프로젝트를 예시로 들어 대표적인 취약점(“ChronoShock”)을 기술적으로 분석하고, 안전한 코드를 통합한 신뢰할 수 있는 해결책을 제시합니다  .

약한 엔트로피 취약성은 어떻게 발생하는가?

예측 가능한 엔트로피 소스를 사용하여

일부 라이브러리(예: 2023년 패치 이전의 Libbitcoin)에서는 개인 키 생성 시 Mersenne Twister 의사 난수 생성기(MT19937)를 사용했으며, 이 생성기는 현재 시스템 시간(대개 32비트 밀리초 또는 나노초 값)으로 초기화되었습니다. 취약한 코드 조각의 예:  schneier+2

cpp:

thread_local auto twister = std::make_unique<std::mt19937>(
std::mt19937(static_cast<uint32_t>(high_resolution_clock::now().time_since_epoch().count()))
);

암호화 불안정성의 원인

  • MT19937은 암호학적으로 안전한 의사난수 생성기(PRNG)가 아닙니다  . 해당 난수의 상태는 출력값 집합으로부터 재구성될 수 있으며, 분석 및 예측에 취약합니다.  nccgroup+1
  • 시스템 시간은 매우 제한적이고 예측 가능한 자원입니다  . 공격자는 몇 초라는 짧은 시간 동안 모든 시드 값을 시도해 볼 수 있으며, 그 시간 동안 생성될 수 있는 모든 개인 키를 복구할 수 있습니다.  codeforces+2
  • 엔트로피를 32비트로 줄이면 비트코인 ​​키는 128~256비트의 난수성을 가져야 합니다. 32비트로는   누구나 몇 시간 또는 며칠 만에 무차별 대입 공격을 완벽하게 수행할 수 있습니다.

크로노쇼크 어택: 메커니즘과 결과

  • 해킹 시간 범위: 지갑 생성일을 알거나 추측한 공격자는 시드에 적절한 시간 값을 대입해 봅니다  .
  • 생성기 복제: 무차별 대입 공격 후, 공격자는 동일한 “난수” 스트림을 재현하고, 개인 키와 주소를 획득한 다음, 해당 주소에서 비트코인 ​​활동이 있는지 블록체인을 모니터링합니다.  news.ycombinator+1
  • 규모: 동일한 알고리즘을 대량으로 사용하면 공격이 자동화되어 수천 개의 지갑이 해킹당할 수 있습니다(Milk Sad, ChronoShock, VulnKeyHunter).  newsletter.blockthreat+2

훌륭하고 안전한 해결 방법입니다

안전한 솔루션을 위한 요구 사항

  • 암호학적으로 강력한 난수 생성기(CSPRNG)만 사용하십시오.
  • 엔트로피의 원천은 시스템 클록이 아니라  운영체제와 하드웨어 장치(RDRAND  /dev/urandom등  )입니다. paragonie+1getrandom
  • 개인 키당 최소 128~256비트의 엔트로피를 보장합니다.  paragonie+1

C++로 안전하게 구현 (POSIX/크로스 플랫폼)

cpp:

#include <random>
#include <array>
#include <limits>

// Генерация приватного ключа с использованием системного генератора
std::array<uint8_t, 32> generate_secure_private_key() {
std::array<uint8_t, 32> key{};
// std::random_device читает из /dev/urandom | Windows API | getrandom()
std::random_device rd;
for (auto &byte : key) {
byte = rd(); // std::random_device возвращает 32 бита, используем только младший байт
}
return key;
}

최신 C++ 솔루션

cpp:

#include <random>
#include <array>
#include <limits>

std::array<uint8_t, 32> generate_secure_private_key() {
std::array<uint8_t, 32> key;
std::random_device rd;
std::generate(key.begin(), key.end(), std::ref(rd));
return key;
}

모범 사례:

  • 중요 작업에는 검증된 암호화 라이브러리(libsodium  randombytes_buf(), OpenSSL  RAND_bytes(), Botan, Crypto++ 등)  를 사용하십시오 .
  • 어떤 종류의 암호화에도 시스템 시계 또는 그 파생값을 절대 사용하지 마십시오.  mt19937codingnest  +  2rand()
  • 결정론적 지갑용 시드를 생성할 때는 솔트, 추가 사용자 입력 등을 사용하여 암호학적으로 강력한 엔트로피를 활용하십시오.

결론

강력한 엔트로피 생성 원칙을 무시하면 암호화 애플리케이션, 특히 블록체인 애플리케이션 사용자에게 치명적인 결과를 초래할 수 있습니다. 고전적인 “크로노쇼크”(ChronoShock) 취약점은 대규모 프로젝트조차도 암호화 난수성에 대한 기본 요구 사항을 무시하면 간단한 실수를 저지를 수 있음을 보여주었습니다. 개발자는 키 생성 아키텍처를 정기적으로 검토하고, 검증된 CSPRNG 시스템과 도구만 사용해야 하며, 코드 감사를 통해 예측 가능한 데이터에 의존하려는 모든 시도를 식별하고 방지해야 합니다.  schneier+3


최종적인 과학적 결론으로서, 암호화 강도, 실제 피해, 그리고 모범 사례의 무조건적인 이행 필요성과 관련된 문제에서 어떠한 타협도 용납될 수 없다는 점을 강조하는 것이 가장 적절할 것입니다.


비트코인 개인 키 생성 과정에서 발견된 치명적인 취약점, 일명 “밀크 새드(Milk Sad, CVE-2023-39910)”는 기본적인 암호 보안 원칙을 경시하는 것이 전 세계 사용자 자금에 막대한 손실과 돌이킬 수 없는 피해를 초래할 수 있음을 명확히 보여주는 사례입니다. 공격자들은 취약하고 예측 가능한 엔트로피 소스와 불안정한 난수 생성기를 악용하여 자동화된 공격을 실행하고, 단 며칠 또는 몇 시간 만에 암호화폐 지갑의 개인 키를 완전히 복구하고 탈취할 수 있었습니다. 이 공격은 전체 비트코인 ​​생태계를 위협했으며, 단 하나의 구현 오류라도 수백만 명에게 치명적일 수 있음을 입증했습니다. 이 사건은 지속적인 소스 코드 감사, 암호학적으로 안전한 생성기 사용, 그리고 블록체인 시스템 설계에 대한 안전한 접근 방식에 대한 전 세계적인 지식 확산의 필요성을 강조합니다. 이러한 기준을 철저히 준수하지 않으면 탈중앙화 기술 시대에 진정한 디지털 독립과 금융 자산의 보안을 확보할 수 없습니다  .


  1. https://www.youtube.com/watch?v=aBhr4QnjggQ
  2. https://github.com/demining/Milk-Sad-vulnerability-in-the-Libbitcoin-Explorer-3.x
  3. https://dcentwallet.ru/milk-sad-vulnerability-in-the-libbitcoin-explorer-3-x-library-how-the-theft-of-900000-from-bitcoin-wallet-btc-users-was-carried-out/
  4. https://cryptorank.io/news/feed/b0d75-the-milk-sad-vulnerability-and-what-it-means-for-bitcoin
  5. https://bitcoinmagazine.com/technical/the-milk-sad-vulnerability-and-what-it-means-for-bitcoin
  6. https://cointelegraph.com/news/newly-discovered-bitcoin-wallet-loophole-let-hackers-steal-funds-slow-mist
  7. https://www.publish0x.com/cryptodeep/milk-sad-vulnerability-in-the-libbitcoin-explorer-3x-library-xqqmoqd
  8. https://milksad.info
  9. https://creators.spotify.com/pod/show/bitcoin-explained/episodes/Episode-83-The-Milk-Sad-Vulnerability-e287jpb
  10. https://github.com/demining/Milk-Sad-vulnerability-in-the-Libbitcoin-Explorer-3.x/blob/main/README.md
  11. https://nvd.nist.gov/vuln/detail/CVE-2023-39910

문학/인용문:

  1. https://b8c.ru/author/wallet/page/11/
  2. https://www.schneier.com/blog/archives/2023/08/cryptographic-flaw-in-libbitcoin-explorer-cryptocurrency-wallet.html
  3. https://news.ycombinator.com/item?id=37054862
  4. https://www.nccgroup.com/research-blog/cracking-random-number-generators-using-machine-learning-part-2-mersenne-twister/
  5. https://www.mecs-press.org/ijitcs/ijitcs-v8-n9/IJITCS-V8-N9-4.pdf
  6. https://codeforces.com/blog/entry/61587
  7. https://newsletter.blockthreat.io/p/blockthreat-week-32-2023
  8. https://paragonie.com/blog/2016/05/how-generate-secure-random-numbers-in-various-programming-languages
  9. https://codingnest.com/generating-random-numbers-using-c-standard-library-the-problems/
  10. https://acta.imeko.org/index.php/acta-imeko/article/view/IMEKO-ACTA-09%20(2020)-04-17/pdf
  11. https://github.com/anneouyang/MT19937
  12. https://dspace.cvut.cz/bitstream/handle/10467/69409/F8-BP-2017-Molnar-Richard-thesis.pdf?sequence=1&isAllowed=y
  13. https://www.sciencedirect.com/science/article/pii/S0377042720302594
  14. https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
  15. https://stackoverflow.com/questions/54716465/how-can-i-improve-my-code-to-generate-secure-random-numbers
  16. https://arxiv.org/pdf/2507.03007.pdf
  17. https://www.reddit.com/r/learnprogramming/comments/gu43cc/c_best_practice_for_gettingusing_random_number/
  18. https://www.reddit.com/r/Buttcoin/comments/15n1nfe/be_your_own_bank_is_going_great_libbitcoin/
  19. https://bitcointalk.org/index.php?topic=5539192.0
  20. https://www.digitalocean.com/community/tutorials/random-number-generator-c-plus-plus
  1. https://www.reddit.com/r/cpp/comments/iufxze/im_pretty_sure_theres_a_massive_widespread/
  2. https://www.ubiqsecurity.com/exploring-cwe-335-incorrect-usage-of-seeds-in-pseudo-random-number-generator-prng/
  3. https://milksad.info/disclosure.html
  4. https://cwe.mitre.org/data/definitions/335.html
  5. https://cwe.mitre.org/data/definitions/337.html
  6. https://stackoverflow.com/questions/23147385/how-to-exploit-a-vulnerable-prng
  7. https://blog.inhq.net/posts/milk-sad-vuln1/
  8. https://milksad.info
  9. http://simonrs.com/eulercircle/crypto2024/henry-mersenne.pdf
  10. https://arxiv.org/pdf/1910.06437.pdf
  11. https://arxiv.org/html/1910.06437v3
  12. https://www.schutzwerk.com/en/blog/attacking-a-rng/
  13. https://github.com/deut-erium/RNGeesus
  14. https://news.ycombinator.com/item?id=25166095
  15. https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
  16. https://www.usenix.org/system/files/conference/usenixsecurity12/sec12-final218.pdf
  17. https://www.zerolynx.com/en/blogs/news/el-talon-de-aquiles-de-la-criptografia
  18. https://stackoverflow.com/questions/1397004/better-seeds-than-time0
  19. https://github.com/anneouyang/MT19937
  20. https://arxiv.org/html/2410.16965v1
  21. https://stackoverflow.com/questions/45069219/how-to-succinctly-portably-and-thoroughly-seed-the-mt19937-prng
  22. https://wiki.sei.cmu.edu/confluence/display/java/MSC02-J.+Generate+strong+random+numbers
  23. https://stackoverflow.com/questions/77410508/is-it-safe-to-use-stdmt19937-with-fixed-seed-within-unit-tests
  24. https://www.sciencedirect.com/topics/computer-science/mersenne-twister
  25. https://github.com/demining/Milk-Sad-vulnerability-in-the-Libbitcoin-Explorer-3.x
  26. https://github.com/google/randen/issues/7
  27. https://nvd.nist.gov/vuln/detail/cve-2024-38365
  28. https://attacksafe.ru/how-hackers-used-the-milk-sad-bug-in-libbitcoin-explorer-3-x-to-steal-900000-from-btc-wallets/
  29. https://wiki.sei.cmu.edu/confluence/display/cplusplus/MSC51-CPP.+Ensure+your+random+number+generator+is+properly+seeded
  30. https://stackoverflow.com/questions/1135186/whats-wrong-with-xor-encryption
  31. https://stackoverflow.com/questions/53751482/c-convert-chronohigh-resolution-clock-to-time-t
  32. https://www.schneier.com/blog/archives/2023/08/cryptographic-flaw-in-libbitcoin-explorer-cryptocurrency-wallet.html
  33. https://nvd.nist.gov/vuln/detail/CVE-2023-39910
  34. http://www.qnx.com/developers/docs/6.6.0_anm11_wf10/
  35. https://security.snyk.io/vuln/SNYK-UNMANAGED-LIBBITCOINLIBBITCOINEXPLORER-5891151
  36. https://www.microsoft.com/ru-by/p/bitcoin-timelock-wallet/9nvsbt77l3b2
  37. https://habr.com/ru/articles/771980/
  38. https://codeql.github.com/codeql-query-help/java/java-predictable-seed/
  39. https://dl.acm.org/doi/pdf/10.1145/3715961
  40. https://service.securitm.ru/vm/vulnerability/fstec/show/BDU:2023-06146
  41. https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator
  42. https://www.boost.org/doc/libs/1_71_0/doc/html/chrono/users_guide.html
  43. https://arxiv.org/html/2509.09488v1
  44. https://bitcointalk.org/index.php?topic=5462674.0
  45. https://stackoverflow.com/questions/34277478/consistent-timestamping-in-c-with-stdchrono
  46. https://stackoverflow.com/questions/37426832/what-are-the-uses-of-stdchronohigh-resolution-clock/37440647
  47. https://www.nobsbitcoin.com/milk-sad-vulnerability-disclosure/
  48. http://en.cppreference.com/w/cpp/chrono/high_resolution_clock.html
  49. https://codeforces.com/blog/entry/61587?locale=ru
  50. https://github.com/arvidn/libtorrent/issues/7196
  51. https://www.reddit.com/r/Bitcoin/comments/15nbzgo/psa_severe_libbitcoin_vulnerability_if_you_used/
  52. http://en.cppreference.com/w/cpp/chrono/time_point/time_since_epoch.html
  53. https://www.fox-it.com/nl-en/cracking-random-number-generators-using-machine-learning-part-2-mersenne-twister/
  54. https://www.reddit.com/r/cpp/comments/e97i6f/i_made_a_cheat_sheet_for_stdchrono_because_i_have/
  55. https://www.ledger.com/blog/funds-of-every-wallet-created-with-the-trust-wallet-browser-extension-could-have-been-stolen

참고 문헌  :

  1. https://www.nasdaq.com/articles/the-milk-sad-vulnerability-and-what-it-means-for-bitcoin
  2. https://www.incibe.es/en/incibe-cert/early-warning/vulnerabilities/cve-2023-39910
  3. https://nvd.nist.gov/vuln/detail/CVE-2023-39910
  4. https://attacksafe.ru/how-hackers-used-the-milk-sad-bug-in-libbitcoin-explorer-3-x-to-steal-900000-from-btc-wallets/
  5. https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
  6. https://www.reddit.com/r/Buttcoin/comments/15n1nfe/be_your_own_bank_is_going_great_libbitcoin/
  7. https://github.com/demining/Milk-Sad-vulnerability-in-the-Libbitcoin-Explorer-3.x
  8. https://milksad.info
  9. https://algosone.ai/news/hackers-steal-900k-through-newly-discovered-bitcoin-wallet-loophole/
  10. https://creators.spotify.com/pod/profile/bitcoin-explained/episodes/Episode-83-The-Milk-Sad-Vulnerability-e287jpb
  11. https://www.youtube.com/watch?v=aBhr4QnjggQ
  12. https://habr.com/ru/articles/771980/
  13. https://scholar.afit.edu/cgi/viewcontent.cgi?article=4471&context=etd
  14. https://www.schneier.com/wp-content/uploads/2017/10/paper-prngs.pdf
  15. https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator
  16. https://milksad.info/posts/research-update-9/
  17. https://stackoverflow.com/questions/68081216/why-using-a-time-based-pseudo-random-number-is-not-cryptographically-secure
  18. https://news.ycombinator.com/item?id=37055333
  19. https://cwe.mitre.org/data/definitions/338.html
  20. https://cryptodeep.ru/milk-sad-vulnerability-in-libbitcoin-explorer/

By