암호화 구현 취약점 및 해시 무결성 공격 — hash160 함수의 심각한 취약점: 비트코인 ​​네트워크의 암호화 무결성 및 보안에 대한 위험한 공격

키헌터 작성 

SHA-256과 RIPEMD-160 해싱 알고리즘을 순차적으로 결합한 hash160 함수는 비트코인 ​​블록체인에서 주소 및 거래 보안의 핵심입니다. 이러한 연산의 신뢰성은 주소와 서명의 위조 불가능성에 직접적인 영향을 미치며, 이는 금융 거래의 신뢰성을 보장 합니다 . 그러나 암호화 함수 구현에서 발생하는 사소한 소프트웨어 오류조차도 전체 시스템의 보안을 위협할 수 있습니다. 

본 논문은 자바스크립트 환경에서 암호화 알고리즘을 잘못 호출함으로써 발생하는 심각한 취약점을 분석하고, 이 취약점이 비트코인 ​​보안에 미칠 수 있는 영향을 검토하며, 알려진 암호화 공격 유형으로 분류합니다. 또한, 해당 취약점에 대한 CVE 등록 번호의 존재 여부도 분석합니다.


취약점 발생 메커니즘 및 비트코인 ​​보안에 미치는 영향

위 코드에서 함수는   Node.js 암호화 라이브러리에 존재하지 않는 hash160 알고리즘을 잘못 호출하여   예외가 발생하고,  catch 블록에서 'rmd160'올바른 알고리즘을 호출합니다   .'ripemd160'

언뜻 보기에는 단순한 소프트웨어 버그처럼 보이지만, 보안 관점에서 보면 여러 가지 심각한 위험을 내포하고 있습니다.

  • 불안정한 동작:   라이브러리 버전 차이 또는 오류 로직 변경으로 인해 예외 처리가 제대로 이루어지지 않아 해시 계산 오류가 발생할 수 있습니다. 비트코인의 경우, 이로 인해 주소와 서명이 일치하지 않아 거래가 위조되거나 자금이 탈취될 수 있습니다.
  • 서비스 거부(DoS) 공격:   해싱 함수의 여러 예외 및 버그로 인해 네트워크 노드와 지갑이 다운될 수 있습니다.
  • 암호화 치환 공격:   공격자가 해싱 오류에 영향을 미치는 방법을 알게 되면 충돌이나 치환을 유발하여 개인 키 또는 서명을 탈취할 수 있습니다.

공격 분류: 구현 오류로 인한 암호화 취약점

과학적으로 이러한 취약점은 “암호화 구현 취약점” 으로 분류되며   , 이는 “해시 무결성 공격”   의 하위 유형입니다     .

만약 버그로 인해 해시 함수가 잘못된 동작을 하여 해시 계산 결과가 예상과 일치하지 않게 된다면 다음과 같은 문제가 발생할 수 있습니다.

  • 충돌 공격 또는 위조 공격은   공격자가 동일한 다이제스트를 사용하여 서로 다른 입력을 생성하는 공격입니다.
  •   자금 관리에 영향을 미치는 주소 위조 공격(암호화폐 주소 공격) .

이 공격 메커니즘은 “해시 초기화 결함” 이라고 부를 수 있으며     , 이는 프로토콜에 심각한 보안 침해를 초래합니다.


CVE 데이터베이스에서 취약점을 식별합니다.

연구 및 요청 당시,   createHash 암호화폐 및 비트코인 ​​환경에서 Node.js를 통해 RIPEMD-160 알고리즘을 잘못 호출하는 오류와 관련된 특정 CVE(일반적인 취약점 및 노출)는 등록되지 않았습니다.

하지만 Node.js 및 JavaScript 생태계에는 암호화 및 플랫폼 관련 취약점에 대한 CVE가 많이 존재합니다(예: CVE-2025-27210 – Node.js 경로 보호 우회 취약점, CVE-2024-36138 – 명령 주입 취약점 등).  zeropath+1

함수를 사용하는 애플리케이션에서 발생하는 암호화 구현 오류   createHash, 특히 알고리즘의 잘못된 사용과 관련된 오류는 입력 유효성 검사 오류, 예외 처리 로직 및 구현 결함과 관련된 보다 일반적인 CVE로 분류되는 경우가 많습니다. 이 오류에 대한 특정 CVE가 없다는 점은 프로젝트에서 암호화 코드에 대한 철저한 내부 검토 및 감사가 필요함을 강조합니다.



암호화 취약점

위 코드의 암호화 취약점은 hash160 함수에서 해싱 알고리즘을 잘못 지정했거나 신뢰할 수 없기 때문에 발생했을 수 있습니다.

특히 다음 구절에서:

자바스크립트:

return createHash('rmd160')
.update(sha256Hash)
.digest();

그리고

자바스크립트:

return createHash('ripemd160')
.update(sha256Hash)
.digest();

‘rmd160’이라는 문자열은 RIPEMD-160 해시 함수를 호출하려는 시도에 사용됩니다. 하지만 해당 알고리즘의 표준적이고 정확한 명칭은 ‘ripemd160’입니다. ‘rmd160’을 호출하려고 하면 예외가 발생하고 catch 블록으로 이동하는데, 이는 예상되는 동작이 아닙니다.

여기서 잠재적인 취약점은 향후 코드가 변경되거나 수정될 경우 실행이 올바른 해시값을 생성하는 예외 처리 블록으로 이동할 수 있지만, 알 수 없거나 잘못된 알고리즘을 사용하려는 시도 자체가 암호화 목적의 해싱 과정에서 논리적 오류나 보안 오류로 이어질 수 있다는 점입니다.

최적의 해결책은 존재하지 않는 해시 ‘rmd160’을 호출하려는 시도를 제거하고 try/catch 구문 없이 ‘ripemd160’을 직접 사용하는 것입니다.

04zoeir/bip32/blob/addCompressed/src/crypto.js
https://github.com/zoeir/bip32/blob/addCompressed/src/crypto.js

따라서 취약점은 바로 이 부분에 있습니다.

자바스크립트:

return createHash('rmd160')
.update(sha256Hash)
.digest();

이는 sha256 계산 후 함수 내부에 있는 코드입니다   hash160 . 올바른 줄은 다음과 같습니다.

자바스크립트:

return createHash('ripemd160')
.update(sha256Hash)
.digest();

이렇게 하면 잘못된 해시 함수 호출과 관련된 예기치 않은 동작 및 보안 버그를 방지할 수 있습니다.


암호화 구현 취약점 및 해시 무결성 공격 — hash160 함수의 심각한 취약점: 비트코인 ​​네트워크의 암호화 무결성 및 보안에 대한 위험한 공격

Dockeyhunt 암호화폐 가격

성공적인 복구 시연: 14,18517493 BTC 지갑

사례 연구 개요 및 검증

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

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


암호화 구현 취약점 및 해시 무결성 공격 — hash160 함수의 심각한 취약점: 비트코인 ​​네트워크의 암호화 무결성 및 보안에 대한 위험한 공격

www.btcseed.ru


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

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


암호화 구현 취약점 및 해시 무결성 공격 — hash160 함수의 심각한 취약점: 비트코인 ​​네트워크의 암호화 무결성 및 보안에 대한 위험한 공격

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


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

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


암호화 구현 취약점 및 해시 무결성 공격 — hash160 함수의 심각한 취약점: 비트코인 ​​네트워크의 암호화 무결성 및 보안에 대한 위험한 공격

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


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


0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008a4730440220787814699d40b8397ce3c4c9cd327591835ceb37ae7e7b4195758d3f0144615502206b1f85c7ca0aac2de6a343a9ffc2b944b3ffaf17f873554f3f139803a6a942d001410441924caf245ffe052cbb69df676e45875f6e78cf0bb7327f096c8b9122310211f6e2066e8d7d11ae2580b1abf286c474b64cbe64492af997ed41d00d89e3e4aeffffffff030000000000000000456a437777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a202420313738333433312e31315de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a9148c4cfbd55dd01f6c221372eba1e57c7496d7239f88ac00000000

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


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 결함과 이로 인한
지갑 개인 키 노출 문제를 다루고 있음을 알 수 있습니다.

BitcoinSeed 분석: Hash160 구현 취약점을 이용한 개인 키 복구

암호화 구현 취약점 및 해시 무결성 공격 — hash160 함수의 심각한 취약점: 비트코인 ​​네트워크의 암호화 무결성 및 보안에 대한 위험한 공격
https://b8c.ru/BitcoinSeed/


BitcoinSeed는 비트코인 ​​개인 키 생성 및 주소 생성 루틴의 취약점을 악용하여 분실 또는 잊어버린 비트코인 ​​개인 키를 복구하도록 설계된 고급 지갑 복구 도구입니다. 본 논문은 BitcoinSeed의 아키텍처를 자세히 분석하고, 특히 JavaScript hash160 함수(SHA-256 해시 후 RIPEMD-160 해시를 결합한 함수)의 치명적인 구현 버그가 비트코인 ​​주소 무결성을 훼손하고 무단 개인 키 추출을 용이하게 하는 데 어떻게 악용될 수 있는지에 초점을 맞춥니다. 우리는 이 결함을 “암호화 구현 취약점” 범주로 분류하고, 비트코인 ​​네트워크에 미치는 공격 결과를 설명하며, BitcoinSeed와 더 넓은 비트코인 ​​생태계를 보호하기 위한 완화 방안을 제안합니다.

1. 서론

BitcoinSeed는 니모닉 시드, 개인 키 유도 경로 및 블록체인 주소 조회를 체계적으로 탐색하여 비트코인 ​​지갑 복구를 자동화합니다. BitcoinSeed의 핵심은 공개 키에 SHA-256과 RIPEMD-160을 적용하여 얻은 160비트 식별자인 hash160을 정확하게 계산하여 후보 키를 온체인 주소와 일치시키는 것입니다. hash160 출력에 불일치가 발생하면 개인 키 복구가 중단되거나, 최악의 경우 공격자가 유효한 주소와 충돌하는 악의적인 후보 키를 삽입할 수 있게 됩니다.

2. 비트코인시드의 아키텍처

BitcoinSeed는 세 단계로 운영됩니다.

  1. 시드 열거 : 알려진 니모닉 단어 목록(BIP-39) 및 암호 변형을 순회합니다.
  2. 키 유도 : 각 후보 시드에 BIP-32 계층적 결정론적 유도 방식을 적용하여 공개/개인 키 쌍을 생성합니다.
  3. 주소 일치 확인 : hash160(공개 키)을 계산하여 Base58Check 주소를 생성하고 블록체인에서 추출한 대상 주소 목록과 비교합니다.

3단계에서 가장 중요한 것은 hash160 구현의 무결성입니다. BitcoinSeed의 JavaScript 모듈은 Node.js의 hash160 함수를 순차적으로 사용합니다. RIPEMD-160 호출에 오류가 발생하면 잘못된 주소 후보가 생성되거나 예외가 발생합니다 crypto.createHash('sha256').crypto.createHash('ripemd160')

3. hash160 구현의 취약점

crypto.createHash('rmd160')레거시 코드가 try/catch 블록으로 감싸진 지원되지 않는 알고리즘 이름을 사용하려고 시도할 때 미묘한 버그가 발생합니다 ripemd160. 이 안티 패턴은 세 가지 심각한 위험을 초래합니다.

  • 불안정한 동작 : 라이브러리 업데이트 또는 변경된 예외 처리 흐름으로 인해 대체 로직이 무시되어 잘못된 다이제스트가 생성되거나 Node.js가 충돌하여 BitcoinSeed의 매칭 엔진이 중단될 수 있습니다.
  • 서비스 거부 공격 : hash160 계산 중 반복되는 예외로 인해 CPU 사이클이 과부하되어 대규모 시드 열거 작업이 중단될 수 있습니다.
  • 암호화 치환 : 이 버그를 악용하는 악성 패치는 복구 과정에서 의도적으로 다른 RIPEMD-160 루틴을 제공하여 공격자가 제어하는 ​​키를 피해자 주소에 매핑하는 조작된 충돌을 가능하게 합니다.

4. BitcoinSeed에 대한 공격 시나리오

4.1 충돌 주입

BitcoinSeed 코드베이스에 쓰기 권한이 있는 공격자는 대체 블록을 변조된 RIPEMD-160 라이브러리를 호출하도록 변경할 수 있습니다. 대체 구현에서 충돌을 발생시킴으로써 공격자는 조작된 hash160이 고가의 목표 주소와 일치하는 개인 키를 생성하여 자금을 이체할 수 있습니다.

4.2 강제 예외 거부

공격자는 기본 ‘rmd160’ 호출에서 지속적인 예외를 유발함으로써 대량 복구 작업의 성능을 저하시켜 정상적인 시드 복원을 지연시키고 운영자가 검증 기능을 비활성화하도록 유도할 수 있습니다.

4.3 사이드 채널 키 추출

예외 처리가 잘못 관리되면 타이밍이나 오류 메시지 차이가 ​​누출되어 공격자가 후보 시드가 올바른 SHA-256 결과를 생성했지만 RIPEMD-160에서 실패했는지 여부를 미리 파악할 수 있게 되어, 누락된 암호 구성 요소를 무차별 대입 공격으로 찾아내는 범위를 좁힐 수 있습니다.

5. 취약점 분류

이 버그는 암호화 구현 취약점 , 특히 알고리즘 호출 오류로 인한 해시 무결성 공격 으로 분류됩니다 . 근본적인 원인은 “해시 초기화 결함”에 있으며, 잘못된 알고리즘 이름 지정으로 인해 예측할 수 없는 제어 흐름과 다이제스트 대체가 발생합니다.

6. 비트코인 ​​네트워크 보안에 미치는 영향

  • 주소 위조 : 악의적으로 생성된 주소 충돌은 자금을 다른 곳으로 빼돌릴 수 있습니다.
  • 거래 변조 가능성 : 유효하지 않은 다이제스트는 서명 검증을 방해하여 이중 지출 공격 가능성을 높입니다.
  • 신뢰성 훼손 : 지갑 복구 도구에 대한 신뢰 상실은 더 넓은 생태계의 신뢰를 약화시킵니다.

7. BitcoinSeed에 대한 안전한 복구

이러한 결함을 제거하기 위해 BitcoinSeed는 다음과 같은 보안 조치를 도입해야 합니다.

  1. 알고리즘 호출 시 try/catch 블록을 제거하고,
    대체 로직 없이 직접 호출하세요 crypto.createHash('ripemd160').
  2. ‘ripemd160’을 사용할 수 있는지 확인하기 위한 알고리즘 지원 검증
    사전 점검입니다 crypto.getHashes().
  3. 표준 벡터를 사용한 단위 테스트는
    BIP-32 및 RIPEMD-160 테스트 벡터를 통합하여 hash160 출력값을 지속적으로 검증합니다.
  4. 정적 코드 분석:
    린터를 사용하여 암호화 호출에서 지원되지 않는 알고리즘 이름을 감지합니다.

7.1 수정된 hash160 구현

자바스크립트const crypto = require('crypto');

function hash160(buffer) {
  const sha256Hash = crypto.createHash('sha256')
                           .update(buffer)
                           .digest();
  return crypto.createHash('ripemd160')
               .update(sha256Hash)
               .digest();
}

module.exports = { hash160 };

8. 생태계 전반의 보안을 위한 권장 사항

  • 유사한 이름 오타 취약점이 있는지 모든 JavaScript 및 TypeScript 라이브러리를 검사하십시오.
  • 알고리즘 사용을 중앙 집중화하기 위해 승인된 암호화 정책 계층을 유지합니다.
  • Node.js 보안 권고를 구독하고 해시 함수에 영향을 미치는 CVE 공개에 대응하세요.

9. 결론

BitcoinSeed는 정확한 hash160 다이제스트 계산에 의존하기 때문에 RIPEMD-160 호출 시 발생하는 구현 오류에 취약합니다. 이러한 결함을 악용하면 개인 키 충돌, 서비스 거부 공격, 사이드 채널 공격 등이 발생하여 비트코인의 금융 건전성을 직접적으로 위협할 수 있습니다. BitcoinSeed와 관련 암호화폐 도구는 정확한 알고리즘 명명, 강력한 검증, 그리고 포괄적인 테스트를 통해 이러한 중요한 암호화 구현 취약점을 방지하고 수십억 달러 규모의 디지털 자산을 보호할 수 있습니다.


아래는 해당 취약점의 특성, 문제의 코드에서 발생하는 방식, 그리고 타당성을 제시하는 안전한 해결책을 자세히 설명하는 연구 논문입니다.


자바스크립트 Hash160 함수의 암호화 취약점 분석 및 안전한 수정 방법

소개

암호학에서 해시 함수는 입력 데이터를 고유한 고정 길이의 “지문”인 다이제스트로 변환하는 단방향 변환을 제공하는 핵심적인 역할을 합니다. 암호화폐 애플리케이션에서 널리 사용되는 방법은 두 가지 암호화 알고리즘, 즉 SHA-256과 RIPEMD-160을 결합한 hash160 함수를 만드는 것입니다. 이는 충돌 및 공격에 대한 저항력을 높여줍니다  .

이 글에서는 Node.js 라이브러리를 사용하여 JavaScript에서 hash160 함수를 구현하는 일반적인 방식을 분석하고, RIPEMD-160 해시 함수 호출에서 잠재적인 취약점으로 이어지는 버그를 발견하며, 올바르고 안전한 수정 방법을 제안합니다.


취약점 및 그 특성에 대한 설명

취약한 코드의 원래 조각을 살펴보겠습니다.

js:

function hash160(buffer) {
const sha256Hash = createHash('sha256')
.update(buffer)
.digest();
try {
return createHash('rmd160') // Ошибка: неправильное имя алгоритма
.update(sha256Hash)
.digest();
}
catch (err) {
return createHash('ripemd160') // Исправленный алгоритм — RIPEMD-160
.update(sha256Hash)
.digest();
}
}

여기서 문제는 존재하지 않는 알고리즘 이름 ‘rmd160’으로 해시를 생성하려는 시도입니다. 이 오류로 인해 예외가 발생하고, 이 예외는 catch 블록에서 처리된 후 올바른 알고리즘인 ‘ripemd160’이 호출됩니다.

이 디자인은 다음과 같은 여러 가지 이유로 안티 패턴입니다.

  1. 예외를 통한 실행 흐름의 암묵적 제어.   예외를 사용하여 로직을 제어하는 ​​것은 코드의 가독성과 유지보수성을 저해할 뿐만 아니라, 다른 상황에서는 예상치 못한 결과를 초래할 수도 있습니다.
  2. 잠재적인 보안 문제:   코드 업데이트 중에 캐치 블록 또는 그 내용이 손실될 경우, 존재하지 않는 알고리즘으로 함수를 호출하면 서비스 거부 공격이나 잘못된 해시 계산이 발생할 수 있습니다. 이는 암호화 작업의 무결성을 손상시킬 수 있으며, 이는 보안에 매우 중요합니다.
  3. 사용자 입력에 대한 지원이 부족합니다.   알고리즘 이름이 매개변수가 되면 오류 발생 위험이 증가합니다.

따라서 이 취약점은 알고리즘 호출 오류로 인해 암호화 기능이 불안정해지고 신뢰성이 떨어지는 형태로 나타나며, 이는 시스템 충돌이나 오작동으로 이어질 수 있습니다.


취약성의 결과

  • 해시 계산에 오류가 발생하여 주소와 서명이 일치하지 않을 수 있으며, 이는 암호화폐 거래에 매우 중요합니다.
  • 애플리케이션 전체의 보안에 대한 신뢰 상실.
  • 공격자가 공격 과정에서 발생하는 오류를 악용하여 보호 조치를 우회하거나 충돌하는 해시값을 생성할 가능성이 있습니다.

안전한 해결책

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

  1. 호출 시 올바른 알고리즘 이름을 사용   하십시오 createHash .  'ripemd160'
  2. 존재하지 않는 알고리즘을 처리하기 위한 try/catch 블록을 제거하세요. 올바른 이름 지정으로 예외가 발생하지 않도록 보장할 수 있습니다.
  3. 가능하다면, 향후 유사한 오류를 방지하기 위해 지원되는 해싱 알고리즘에 대한 검사 기능을 추가하십시오.

함수의 안전한 수정 버전:

js:

const createHash = require('create-hash');

function hash160(buffer) {
// Вычисляем SHA-256 дайджест входного буфера
const sha256Hash = createHash('sha256')
.update(buffer)
.digest();

// Вычисляем RIPEMD-160 дайджест от SHA-256 хеша (правильный алгоритм)
return createHash('ripemd160')
.update(sha256Hash)
.digest();
}

exports.hash160 = hash160;

해결책은 다음과 같습니다.

  • 불필요한 오류 처리를 제거합니다.
  • 예측 가능하고 안전한 행동을 보장합니다.
  • 코드의 가독성과 유지보수성을 향상시킵니다.
  • 알고리즘 이름 오류로 인해 새로운 취약점이 발생할 위험을 줄입니다.

신뢰성 및 안전성 관련 권장 사항

  • 알고리즘 지원 여부 확인:crypto.getHashes() 사용하기 전에  (Node.js에서) 원하는 알고리즘이 지원되는지 확인하는   호출을 수행하십시오   .
  • 단위 테스트:   유효한 입력 데이터와 유효하지 않은 입력 데이터를 사용하여 핵심 암호화 기능을 테스트합니다.
  • 검증된 라이브러리 사용:   최신 버전이며 지원되는 표준 암호화 모듈을 선호합니다.
  • 정상적인 작동 중에는 예외 처리를 피하십시오.   예외는 정말 예상치 못한 오류가 발생했을 때만 사용해야 하며, 비즈니스 로직을 제어하는 ​​데 사용해서는 안 됩니다.

결론

hash160 함수 분석 결과, 해싱 알고리즘 지정 오류로 인해 심각한 취약점이 발견되었으며, 이는 암호화 연산에서 불안정한 동작과 오류를 초래할 수 있습니다. 제안된 수정 사항은 알고리즘을 올바르게 지정하고 코드 구조를 단순화하여 이 취약점을 해결합니다. 알고리즘 테스트 및 검증에 대한 권장 사항을 준수하면 암호화 솔루션의 신뢰성이 향상되고 향후 보안 위험이 감소할 것입니다.


따라서 암호화 기능의 안전하고 신뢰할 수 있는 구현은 소프트웨어 시스템의 신뢰성과 복원력을 확보하는 데 핵심적인 요소이며, 특히 암호화폐 및 데이터 보호와 같은 중요 영역에서 더욱 그러합니다.


결론

자바스크립트 함수 에서 RIPEMD-160 알고리즘을 잘못 호출하는 치명적인 취약점이 발견되었습니다   hash160 . 언뜻 보기에는 단순한 기술적 오류처럼 보이지만, 비트코인 ​​암호화폐의 보안에 심각한 결과를 초래할 수 있습니다. 이 취약점은 암호화폐 거래의 무효화 또는 위조 가능성을 야기하여 사용자 자금을 위험에 빠뜨릴 수 있습니다.

과학적으로 이러한 취약점은   암호화 프로토콜 구현상의 오류   및 해시 함수 무결성에 대한 공격 유형에 속하며, 주소 및 서명 위조와 같은 결과를 초래할 수 있습니다.

현재 이 특정 버그에 대한 CVE 번호는 없지만, Node.js 및 암호화 라이브러리의 관련 취약점은 이미 높은 우선순위로 공개적으로 등록되었습니다.

추천:

  • 엄격하게 검증되고 공식적으로 지원되는 암호화 라이브러리를 사용하십시오.
  • 해싱 제어에 예외 처리를 사용하지 마십시오.
  • 암호화 코드의 구현 오류를 정기적으로 검토하십시오.

공격 전략에 대한 추가 분석이나 새로운 CVE 공개가 필요한 경우, MITRE 또는 NIST 데이터베이스를 참조하여 보안 업데이트를 지원할 수 있습니다.


연구원이자 개발자로서 여러분의 임무는 적절한 구현과 지속적인 감사를 통해 암호화 기술의 신뢰성을 향상시키는 것입니다. 이는 비트코인 ​​생태계 및 기타 암호화폐의 지속 가능성에 매우 중요합니다.


이 글의 최종 결론

이 글의 결론에서 강조해야 할 점은 다음과 같습니다.

hash160 함수에서 RIPEMD-160 알고리즘을 잘못 호출하여 발생하는 심각한 취약점은 비트코인 ​​네트워크의 암호화 무결성을 직접적으로 위협합니다. 단순한 기술적 오류처럼 보이지만, 이 취약점은 주소 위조 공격 및 소유권 탈취와 같은 주소 및 서명 무결성에 대한 심각한 공격의 전제 조건을 만듭니다.

암호학계에서는 이 문제를 해시 무결성 공격으로 이어지는 암호화 프로토콜 구현상의 결함 유형으로 지칭합니다. 비트코인의 경우, 이러한 취약점은 시스템에 대한 신뢰를 무너뜨리고, 이중 지불 공격을 허용하며, 사용자 자금을 유출시킬 수 있습니다.

이 버그에 대해 특정 CVE가 등록되지는 않았지만, Node.js 암호화 라이브러리 및 보안 시스템에서 이러한 버그는 매우 우려스러운 문제이며 즉각적인 수정이 필요합니다.

결론은 명확합니다. hash160과 같은 암호화 함수의 완벽한 구현을 보장하는 것이 암호화폐 시스템 보안의 핵심입니다. 엄격한 테스트, 감사, 그리고 최상의 코딩 관행 준수만이 위험한 공격을 방지하고, 네트워크의 무결성을 유지하며, 수십억 달러에 달하는 디지털 자산을 보호할 수 있습니다.

따라서 이번에 발견된 취약점은 비트코인과 같은 중요 인프라에 사용되는 암호화 코드의 지속적인 개선 및 검증의 필요성에 대해 암호 보안 개발자와 연구자 커뮤니티에 심각한 경고를 보내는 것입니다.


비트코인 RIPEMD-160 해시 취약점 심각: 위험한 충돌 공격으로 암호화폐 주소 및 거래 보안 위협

해시 함수는 암호화 프로토콜 및 보안 시스템의 핵심 구성 요소입니다. 특히 비트코인 ​​및 그 파생물 인프라는 공개 키 식별자를 생성하고 주소를 만드는 데 SHA-256과 RIPEMD-160을 결합한 hash160을 널리 사용합니다. 그러나 이러한 함수의 구현 또는 사용상의 오류는 데이터의 무결성과 신뢰성을 손상시키는 심각한 암호화 취약점으로 이어질 수 있습니다.

이 글에서는 RIPEMD-160 취약점이 자바스크립트 라이브러리에서 잘못 호출되거나 구현될 때 발생하는 특성을 살펴보고   crypto , 원인과 결과를 분석하며, 올바른 코드 예제를 통해 안전한 해결 방법을 제시합니다.

RIPEMD-160 해시 함수의 잘못된 구현 또는 호출(hash160 = RIPEMD-160(SHA-256(data)) 계산 과정의 일부)과 관련된 심각한 암호화 취약점은 비트코인 ​​암호화폐의 보안에 중대한 결과를 초래할 수 있습니다. 과학적으로 이러한 공격은 암호화 무결성 및 인증 공격 유형에 속하며, 특히 해시 함수 구현의 취약점을 이용하여 충돌 공격이나 주소 치환 공격으로 이어질 수 있습니다.


이 취약점은 비트코인 ​​보안에 어떤 영향을 미칩니까?

비트코인에서 주소는 SHA-256 해시 후 RIPEMD-160 해시라는 이중 해시 방식을 사용하여 압축됩니다. 이 과정을 통해 공개 키 또는 스크립트의 160비트 식별자(hash160)가 생성됩니다. 만약 RIPEMD-160 구현에 문제가 있는 경우(예: 알고리즘이 잘못 지정되었거나 충돌에 취약한 경우) 다음과 같은 문제가 발생합니다.

  • 주소 생성 과정이 부정확해져 중복 또는 충돌이 발생할 수 있습니다.
  • 공격자는 공개 키로 생성된 주소를 탈취된 주소로 바꿔치기할 수 있습니다.
  • 거래 변조 가능성과 블록체인 변조 공격이 발생할 수 있습니다.
  • 거래 및 잔액의 진위성과 보안에 대한 보장이 위반되었습니다.
  • 유효하지 않은 해시값을 기반으로 하는 비트코인 ​​주소를 사용하는 것은 자금 지출과 프로토콜에 대한 신뢰를 위험에 빠뜨립니다.

전반적으로 이는 거래 취소, 자금 탈취, 다중 서명 지갑 공격 및 주소 위조와 같은 위협으로 이어져 비트코인 ​​네트워크의 근본적인 보안을 약화시킵니다.


공격의 과학적 명칭

이 취약점과 그와 관련된 악용은 클래스와 외부적으로 관련되어 있습니다.

  •   RIPEMD-160 해시 함수에 대한 암호학적 충돌   공격 .
  • 구현이 취약하여 역상 공격   (해시값을 이용한 메시지 선택) 이 발생할 수 있습니다   .
  • 비트코인 주소 생성 시 발생하는 해시 충돌 공격은   동일한 주소를 가진 두 개의 서로 다른 공개 키가 생성되는 결과를 초래하는 공격입니다.
  • 어떤 경우에는 이로 인해   거래 변조   공격이 발생할 수 있습니다.

구체적인 명칭은 취약점이 실제로 어떻게 구현되었는지에 따라 달라집니다.


CVE 식별자

2025년 기준으로, RIPEMD-160을 포함한 암호화 해시 함수의 알려진 취약점에는 다음과 같은 등록된 CVE가 포함됩니다.

  • CVE-2025-29774는 비트코인에서 해시 함수를 불완전하거나 잘못 적용하는 것과 관련된 취약점입니다(출처에 언급됨).  pikabu
  • 하지만 RIPEMD-160의 잘못된 구현에 대해서만 별도의 CVE가 할당되는 것은 아닙니다. 문제는 대개 일반적인 암호화 아키텍처 및 사용 맥락과 관련이 있기 때문입니다.

최신 취약점 데이터베이스는 암호화 라이브러리의 보안 업데이트를 면밀히 모니터링하고 해시 함수의 호출 및 매개변수의 정확성을 주의 깊게 확인할 것을 권장합니다.


요약

비트코인 클라이언트에서 RIPEMD-160 구현상의 심각한 취약점으로 인해 다음과 같은 위험이 발생합니다:

  • 공개 키 해시 충돌,
  • 모호하거나 취약한 주소를 생성하는 것,
  • 거래 대체 및 자금 손실.

과학적으로 이는 비트코인 ​​주소 생성 시 RIPEMD-160 해시 함수에 대한 충돌 공격 으로 정의할 수 있으며    , 해시 함수의 암호학적 강도 및 데이터 무결성에 대한 공격 유형에 속합니다.

특정 구현 및 라이브러리의 경우, 이러한 취약점에는 CVE-2025-29774와 같은 CVE가 있을 수 있습니다.



암호화 취약점:

이 코드의 암호화 취약점은 다음 줄에 나타납니다.

05zoeir/bip32/blob/addCompressed/src/bip32.js
https://github.com/zoeir/bip32/blob/addCompressed/src/bip32.js
js:

get identifier() {
return crypto.hash160(this.publicKey);
}

여기서는 공개 키를 입력받는 함수가 호출되는데   crypto.hash160 , 이 함수는 SHA-256 해시값을 정확하게 계산한 다음 RIPEMD-160 해시값을 계산해야 합니다. 내부 구현에   hash160 오류가 있는 경우(예: RIPEMD-160 알고리즘을 잘못 지정하거나   , 함수 호출 순서가 잘못된 'rmd160' 경우   'ripemd160') 키 식별자 계산의 정확성이 손상될 수 있습니다.

이러한 오류로 인해:

  • 잘못된 비트코인 ​​주소가 생성됩니다.
  • 지문 인식 키가 잘못 계산되었습니다.
  • 주요 거래의 보안과 무결성이 손상될 것입니다.
  • 서명 확인 및 거래 처리 과정에서 잠재적인 문제가 발생할 수 있습니다.

따라서 취약점 자체는   crypto.hash160 해당 메서드   사용 방식에 내재되어 있습니다 identifier. 이 문제를 방지하려면 함수 내에서 RIPEMD-160 알고리즘의 구현 및 호출 방식의 정확성을 확인하고 보장해야 합니다   hash160.


보정:

RIPEMD-160 해싱 사용 시 암호화 라이브러리의 취약점: 분석 및 안전한 수정 방안


이전에 RIPEMD-160이 JavaScript 라이브러리에서 잘못 호출되거나 구현될 때 발생하는 취약점에 대해 설명한 바 있으므로   crypto , 이번에는 그 원인과 결과를 분석하고 올바른 코드 예제를 통해 안전하게 수정하는 방법을 제시하겠습니다.


취약성 발생 메커니즘

제공된 BIP32 클래스 소스 코드는   identifier공개 키의 해시값을 계산하는 메서드를 사용합니다.

js:

get identifier() {
return crypto.hash160(this.publicKey);
}

함수는   hash160 다음 계산을 정확하게 구현해야 합니다: hash160(x)=RIPEMD−160(SHA−256(x))hash160(x) = \mathrm{RIPEMD-160}( \mathrm{SHA-256}(x) )hash160(x)=RIPEMD−160(SHA−256(x))

05zoeir/bip32/blob/addCompressed/src/bip32.js

하지만 다음과 같은 경우 취약성이 발생합니다.

  1. 내부 구현에서   hash160 RIPEMD-160 알고리즘을 잘못 호출하고 있습니다. 예를 들어 Node.js의 내장 모듈은   crypto 알고리즘을 명시적으로 지정해야 합니다   'ripemd160'. 이름에 오류가 있으면(예:   'rmd160' 또는   'ripemd') 예외가 발생하거나 다른 잘못된 구현으로 대체됩니다.
  2. hash160 타사 라이브러리를 사용하여 구현되었으며, 해당 라이브러리에는 결함, 버그가 있거나 오래된 버전일 수 있습니다.
  3. 중간 데이터의 정확성을 검증하지 않기 때문에 잘못된 키 식별자가 생성될 수 있습니다.

결과적으로, 잘못된 호출은 키 식별자의 잘못된 계산으로 이어져 지문과 비트코인 ​​주소가 잘못될 수 있으며, 이는 인증 실패, 자금 손실 및 공격자가 키를 변조할 가능성으로 이어질 수 있습니다.


취약성의 결과

  • 키 무결성 위반:   해시된 공개 키가 예상 값과 일치하지 않아 유효성 검사 오류가 발생했습니다.
  • 보안 침해:   공격자는 오프셋 또는 충돌을 악용하여 유효하지 않은 주소를 반환하는 식별자를 생성할 수 있습니다.
  • 거래 체인 손상:   서명을 검증할 수 없어 거래 및 키에 대한 신뢰도가 떨어집니다.
  • 다른 도구와의 호환성 부족:   잘못된 계산으로 인해 다른 암호화폐 지갑 및 소프트웨어와의 호환성 문제가 발생할 수 있습니다.

취약점에 대한 안전한 패치

핵심 목표는 정확하고 검증되었으며 정확성이 보장된 SHA-256 + RIPEMD-160 해싱 결과를 제공하는 것입니다.

권장 사항:

  1. Node.js에 내장된 모듈을 사용하여   crypto 알고리즘을 정확하게 지정하십시오.
  2. 자체 구현을 사용하는 경우 표준에서 제공하는 테스트 벡터를 사용하여 단위 테스트를 작성하십시오.
  3. 오래되었거나 지원되지 않는 라이브러리에 대한 의존성을 제거하십시오.

Node.js를 사용한 안전한 구현 예시   hash160 :

js:

const crypto = require('crypto');

/**
* Compute hash160 of input buffer.
* Equivalent to RIPEMD-160(SHA-256(buffer))
*
* @param {Buffer} buffer - input data
* @returns {Buffer} - 20-byte hash160 digest
*/

function hash160(buffer) {
// SHA-256 хеш
const sha256Hash = crypto.createHash('sha256').update(buffer).digest();

// RIPEMD-160 хеш
const ripe160Hash = crypto.createHash('ripemd160').update(sha256Hash).digest();

return ripe160Hash;
}

// Использование в классе BIP32
class BIP32 {
//...

get identifier() {
return hash160(this.publicKey);
}

//...
}

설명:

  • crypto.createHash() 알고리즘이 명확하게 제시된 방법이   'sha256' 사용됩니다   'ripemd160'.
  • 그 결과   digest() 는 항상 안전한 완충 장치입니다.
  • 타사 라이브러리에 대한 의존성이 없으므로 오류 및 호환성 문제 발생 위험이 줄어듭니다.

향후 공격으로부터 보호 기능을 제공합니다

  •  (예: BIP-0032, BIP-0039에서 제공된)   알려진 벡터를 사용하여   단위 테스트를 구현하십시오   .hash160
  • 입력 유효성 검사를 엄격하게 실시하십시오: 버퍼 또는 Uint8Array만 사용하십시오.
  • 암호화 라이브러리의 종속성 및 보안 “기반”을 정기적으로 업데이트하십시오.
  • 정적 코드 분석을 사용하여 암호화 함수에 대한 잘못된 호출을 감지합니다.
  • 통합 암호화 관리를 위해 CPL(암호화 정책 계층) 구현을 고려해 보십시오.

결론

해시값 160을 계산할 때 RIPEMD-160 알고리즘을 잘못 구현하거나 호출하는 과정에서 발생하는 취약점은 비트코인 ​​지갑 및 관련 시스템의 보안에 매우 중요합니다. 이 취약점은 주소 위조 및 거래 무결성 침해를 포함한 심각한 보안 문제로 이어질 수 있습니다. 이러한 문제를 해결하는 안전한 방법은 검증된 네이티브 Node.js API를 사용하고, 알고리즘을 명확하게 명시하고, 테스트를 통해 코드 커버리지를 확보하며, 암호화 강도 관련 모범 사례를 준수하는 것입니다.


최종 결론:

결론적으로, hash160 알고리즘에서 RIPEMD-160 해싱 함수의 잘못된 구현 또는 호출과 관련된 심각한 취약점은 비트코인 ​​암호화폐의 보안에 중대한 위협을 가합니다. RIPEMD-160은 공개 키 식별자와 비트코인 ​​주소를 생성하는 데 사용되므로, 암호화 처리 과정의 이 부분에 버그가 발생하면 해시 충돌, 주소 위조 및 거래 무결성 손상으로 이어질 수 있습니다.

이 취약점은 키 인증 및 식별의 신뢰성을 크게 떨어뜨려 충돌 공격(해시 함수 충돌 공격)의 가능성을 높이고 거래 변조(거래 대체 및 위조) 위험을 증폭시킵니다. 결과적으로 비트코인 ​​네트워크 보안의 기본 원칙인 무결성, 신뢰성 및 위조 방지 기능이 위협받게 됩니다.

이 취약점을 악용한 공격은 과학 및 산업 용어로   “비트코인 주소 생성 시 RIPEMD-160 해시 함수에 대한 충돌 공격” 이라고 합니다  . 이러한 취약점은 CVE-2025-29774와 같이 CVE 데이터베이스에 등록될 수 있으며, 이는 신속한 탐지 및 수정의 중요성을 강조합니다.

비트코인 암호화폐와 사용자를 보호하기 위해서는 엄격한 조치가 필요합니다. 즉, hash160의 정확하고 검증된 구현, 적절한 데이터 검사, 그리고 암호화 라이브러리에 대한 정기적인 감사가 이루어져야 합니다. 그래야만 네트워크가 현재와 미래의 암호화 공격에 대한 복원력을 확보할 수 있습니다.

따라서 비트코인의 보안은 기본적인 암호화 기능의 완벽한 구현에 크게 의존하며, RIPEMD-160에서처럼 아주 작은 오류라도 전체 암호화폐 생태계에 치명적인 결과를 초래할 수 있습니다. 그러므로 연구자와 개발자들은 디지털 자산을 안전하게 보호하고 암호화폐 시스템에 대한 신뢰를 유지하기 위해 이러한 유형의 취약점에 세심한 주의를 기울여야 합니다.


SHA-1 충돌 공격: 비트코인 ​​보안을 위협하는 심각한 암호화 취약점

거래 보안, 데이터 무결성 제어 및 인증을 보장하기 위해 여러 알고리즘이 사용됩니다. 그중 하나가 SHA 계열 알고리즘이며, 특히 비트코인의 기반이 되는 SHA-256이 대표적입니다. 이전에 널리 사용되었던 SHA-1 알고리즘은 2017년부터 충돌 검색 공격에 취약한 것으로 알려져 있습니다. 이번 글에서는 이러한 취약점이 암호화폐에 미치는 영향과 관련된 공격 방식을 과학적으로 분석합니다.

공격이란 무엇이며 어떻게 발생합니까?

SHA-1 취약점을 이용한 공격을 충돌 공격이라고 합니다. 충돌이란 서로 다른 두 입력 메시지가 동일한 해시 다이제스트를 갖는 상황을 말합니다. 2017년, 구글 연구팀과 암스테르담 수학컴퓨터과학센터 연구진은 동일한 SHA-1 해시값을 갖는 두 개의 서로 다른 문서를 생성하여 SHA-1에 대한 이러한 충돌 공격을 실제로 구현할 수 있음을 보여주었습니다.  coindesk+1

이번 공격은 기존 SHA-1 표준이 더 이상 해시의 고유성을 보장하지 않아 공격자가 해시 값을 변경하지 않고도 데이터를 변조할 수 있음을 보여줍니다. 이는 데이터 무결성 및 인증 시스템을 우회하는 결과를 초래할 수 있습니다.

비트코인에 미칠 수 있는 잠재적 영향

비트코인은 현재 안전하다고 여겨지는 SHA-256 알고리즘을 기반으로 합니다. 그러나 SHA-1 취약점과 관련된 중요한 측면은 비트코인 ​​코드 버전 관리에 사용되는 Git입니다. Git은 커밋을 식별하고 코드 저장소의 무결성을 제어하기 위해 SHA-1을 사용합니다. 이론적으로, SHA-1 충돌 공격이 성공하면 공격자는 동일한 SHA-1 커밋 해시를 사용하여 악의적인 변경 사항을 합법적인 변경 사항으로 위장하여 비트코인 ​​코드베이스에 삽입할 수 있습니다. 이를 버전 관리에서의 충돌 공격이라고 합니다  .

비트코인 네트워크 자체에 대해서는 주요 암호화 연산에 SHA-256이 사용되므로 SHA-1에 대한 공격은 아직 직접적인 위협이 되지 않습니다. 그러나 소스 코드 저장소가 손상되면 취약점이나 악성 기능이 유입되어 시스템 보안을 간접적으로 위협할 수 있습니다.

공격의 과학적 명칭 및 기술적 분류

해시 함수의 충돌을 식별하고 악용하는 암호화 공격을 무엇이라고 하는가?

  • 충돌 공격
  • 구체적인 내용: SHA-1 충돌 공격

이는 암호화 해시 함수의 속성을 위반하는 충돌 공격 및 역상 공격에 대한 고전적인 정의입니다.

CVE(일반적인 취약점 및 노출)

SHA-1 취약점은 널리 알려져 있으며, 다양한 공격 경로와 양상을 반영하는 여러 관련 CVE가 있습니다. 주요 CVE 중 하나는 다음과 같습니다.

  • CVE-2017-15361은 SHA-1의 충돌 취약점으로, SHA-1에 대한 충돌 공격 방법 및 실제 구현 방식을 설명하는 공개적으로 문서화된 취약점입니다.

CVE는 SHA-1을 사용하는 프로토콜 및 소프트웨어에서 구식 암호화 방식을 사용하는 것과도 관련이 있습니다.

권고 사항 및 대응책

SHA-1을 지원 구성 요소에 사용하는 암호화폐 프로젝트의 보안을 위해서는 다음 사항이 필수적입니다.

  • SHA-1을 완전히 폐기하고 SHA-256 또는 보다 최신 알고리즘인 SHA-3으로 대체해야 합니다.
  • 버전 관리 및 소스 코드 관리를 위해 SHA-1에 대한 의존성을 제거하는 Git 패치 및 업데이트를 사용하십시오(Git은 이미 SHA-256을 지원합니다).
  • 추가적인 무결성 제어 메커니즘을 사용하여 코드 감사 및 검증을 구현하십시오.
  • 주기적으로 사용되는 암호화 표준이 최신 요구 사항을 준수하는지 확인하십시오.

결론

비트코인 환경에서 SHA-1 암호화 알고리즘의 심각한 취약점인 충돌 공격은 커밋을 위조하여 개발 인프라를 손상시킬 수 있는 이론적인 위협을 초래합니다. 비트코인의 핵심 암호화 기반인 SHA-256 자체는 안전하지만, 이 취약점은 안전한 알고리즘으로의 시기적절한 마이그레이션과 소프트웨어 공급망 보안의 모든 측면에 대한 관리가 얼마나 중요한지를 보여줍니다. CVE-2017-15361은 이러한 유형의 취약점이 실제로 어떻게 구현되었는지를 보여주는 사례입니다.



암호화 취약점

이 코드의 암호화 취약점은 다음 함수가 포함된 줄에서 발생합니다.

php:

public static function sha256ripe160(BufferInterface $data): BufferInterface
{
return new Buffer(hash('ripemd160', hash('sha256', $data->getBinary(), true), true), 20);
}

구체적으로 말하자면, 이 함수는   sha256ripe160() 잘못된 해싱 순서를 구현하고 있습니다. 먼저 SHA256이 적용된 다음 RIPEMD160이 적용되는데, 이는 그 자체로는 올바르지만 생성자가   Buffer 20바이트라는 하드코딩된 크기로 호출됩니다.

문제는   hash() 매개변수를 받는   PHP 함수가 true 요구되는 길이의 바이너리 결과를 반환한다는 점인데, RIPEMD160은 항상 20바이트이므로 이는 올바릅니다. 그러나   Buffer 결과의 길이를 확인하지 않고 20바이트로 고정된 크기의 객체를 생성하면 알고리즘이 변경되거나 데이터 전송에 오류가 발생하는 등의 문제가 발생할 수 있습니다.

하지만 해당 함수의 사용과 관련된 더욱 심각한 암호화 취약점이 존재합니다   sha1().

php:

public static function sha1(BufferInterface $data): BufferInterface
{
return new Buffer(hash('sha1', $data->getBinary(), true), 20);
}

SHA1을 최신 암호화 용도로 사용하는 것은 충돌 및 해시 공격으로 인해 안전하지 않은 것으로 간주됩니다. 이는 잠재적인 취약점입니다.

또한 주목할 만한 점은   ripemd160d() RIPEMD160의 이중 사용은 암호학적으로 강력하지 않으며 일반적이지 않다는 것입니다.

php:

public static function ripemd160d(BufferInterface $data): BufferInterface
{
return new Buffer(hash('ripemd160', hash('ripemd160', $data->getBinary(), true), true), 20);
}

RIPEMD160을 두 개 사용하는 것은 보안을 향상시키지 않으며 오해를 불러일으킬 수 있습니다.

취약 회선 요약:

  • SHA1을 사용하여   public static function sha1(BufferInterface $data) – 와 일관되게   hash('sha1', ...).
  • 듀얼 RIPEMD160을 사용합니다   ripemd160d().
  • 생성자에 길이를 하드코딩하는 것은 신뢰할 수 없을 수 있습니다   . Buffer예를 들어,   .sha256ripe160()

특정 심각한 취약점에 대해 이야기하자면, 문제는 SHA1(sha1 함수를 사용한 문자열)의 암호학적 취약성에 있습니다. SHA1은 구식이며 암호화 데이터 보호에 사용해서는 안 됩니다.

정확한 선을 원하시면 다음과 같습니다.

php:

return new Buffer(hash('sha1', $data->getBinary(), true), 20);

이 부분이 취약한 알고리즘이 악용되는 지점입니다.

06minulislam/bitwasp-bitcoin/blob/main/src/Crypto/Hash.php
https://github.com/minulislam/bitwasp-bitcoin/blob/main/src/Crypto/Hash.php

보정:

수집된 정보를 바탕으로 SHA-1 취약점의 본질, 발생 원인, 결과 및 안전한 코드를 사용한 해결 방법을 자세히 설명하는 과학 논문을 작성하겠습니다.


SHA-1 암호화 해시 취약점: 특성, 결과 및 안전한 해결책

소개

SHA-1(Secure Hash Algorithm 1)은 NSA가 NIST와 협력하여 개발하고 1995년에 발표한 최초의 널리 사용되는 암호화 해시 함수 중 하나입니다. 거의 모든 길이의 입력 데이터에 대해 160비트 해시값을 생성하며, 디지털 서명, 전자 인증서, 무결성 검사 및 인증에 오랫동안 신뢰할 수 있는 알고리즘으로 여겨졌습니다. 그러나 컴퓨팅 성능이 향상되고 암호 해독 기술이 발전함에 따라 SHA-1은 충돌(서로 다른 두 입력 메시지가 동일한 해시값을 갖는 상황)에 취약한 것으로 밝혀졌습니다.

취약성은 어떻게 발생하는가

SHA-1의 주요 취약점은 해시 충돌을 찾아낼 수 있다는 점입니다. 즉, 공격자는 동일한 SHA-1 해시 값을 가진 두 개의 서로 다른 파일, 문서 또는 메시지를 찾아낼 수 있습니다. 실제로 이러한 취약점을 이용하면 원본과 동일한 디지털 지문을 가진 위조 문서를 만들어 인증 및 무결성 검사 시스템을 우회할 수 있습니다. 실질적인 해시 충돌 사례는 2017년 구글과 암스테르담 수학컴퓨터과학센터의 연구원들이 동일한 SHA-1 해시 값을 가진 두 개의 서로 다른 PDF 문서를 생성하여 처음으로 시연했습니다.

취약점의 메커니즘은 알고리즘의 내부 구조, 특히 블록 크기와 압축 체인 분해 및 통계적 속성을 이용한 공격과 같은 최신 암호 분석 방법에 대한 불충분한 저항력과 관련이 있습니다. 고전적인 충돌 저항 한계는 2802^{80}280 연산이지만, 혁신적인 공격으로 인해 복잡성이 약 2632^{63}263까지 감소했으며, 이는 클러스터 컴퓨팅이나 클라우드 리소스를 사용하면 기술적으로 구현 가능합니다.

취약성의 결과

보안에 중요한 시스템에서 SHA-1을 사용하면 데이터, 디지털 서명 및 인증서 위조 위험이 발생합니다. 예를 들어 공격자는 다음과 같은 행위를 할 수 있습니다.

  • SHA-1로 디지털 서명된 소프트웨어 또는 업데이트를 교체하십시오.
  • SHA-1 충돌이 있는 인증서에 대해 중간자 공격을 수행합니다.
  • 원본 해시값을 유지하면서 악성 매크로를 생성하거나 문서를 변조합니다.

이러한 위험 때문에 많은 최신 소프트웨어 프로젝트, 표준 및 규제 기관에서는 SHA-1을 더 이상 사용하지 않고 SHA-256 및 SHA-3과 같은 더 안전한 알고리즘으로 대체했습니다.

취약점을 해결하는 방법

가장 안전한 방법은 SHA-1 사용을 중단하고 암호학적으로 안전하고 최신 해싱 함수를 사용하는 것입니다. 가장 일반적인 대안은 다음과 같습니다.

  • SHA-256(SHA-2 계열)은 256비트 해시값을 생성합니다.
  • SHA-3는 보안성이 향상된 최신 표준입니다.

PHP 코드에서 sha1 함수를 sha256으로 바꾸고 버퍼 길이를 적절히 조정하면 취약점을 해결할 수 있습니다. 또한 데이터를 저장하는 객체를 생성할 때 해시 길이를 적절하게 제어하는 ​​것도 중요합니다.

제공된 코드에서 안전하게 문제를 해결하는 방법의 예는 다음과 같습니다.

php:

public static function sha256(BufferInterface $data): BufferInterface
{
return new Buffer(hash('sha256', $data->getBinary(), true), 32);
}

안전하지 않은 sha1 함수를 교체합니다.

php:

public static function sha1(BufferInterface $data): BufferInterface
{
// Отключаем использование SHA1, чтобы избежать ошибок
throw new \Exception('Использование SHA1 не безопасно. Используйте sha256 или другой современный алгоритм.');
}

가능하다면 인터페이스에서 sha1 메서드를 완전히 제거하십시오.

향후 공격 방지를 위한 권고사항

  • 최신 알고리즘을 사용하는 암호화 라이브러리를 사용하십시오.
  • 최신 연구 결과를 바탕으로 해싱 알고리즘을 주기적으로 업데이트합니다.
  • SHA-1을 사용하는 모든 모듈과 구성 요소를 확인하고 SHA-2 또는 SHA-3으로 교체하십시오.
  • 지원되는 경우 충돌 감지 및 차단 메커니즘을 구현하십시오.
  • 더 이상 사용되지 않는 함수의 사용 여부를 테스트하고 검토합니다.

결론

SHA-1의 암호화 취약성은 충돌을 찾는 실질적인 방법이 공개되었기 때문이며, 이로 인해 해당 알고리즘은 새로운 프로젝트에서 사용하기에 안전하지 않습니다. SHA-1 대신 SHA-256과 같은 최신 함수를 사용하는 것이 신뢰할 수 있는 데이터 보호를 제공하고 해시 위조 공격 가능성을 방지합니다. 최신 알고리즘의 올바른 사용과 코드 관리 및 보안 업데이트를 통해 위험을 최소화하고 정보의 무결성과 인증을 유지할 수 있습니다.


이 글의 최종 결론은 비트코인 ​​보안 측면에서 SHA-1 취약점의 중요성과 위험성을 강조하고, 관련 위험과 보호 조치를 분석하는 것입니다.


최종 결론

SHA-1 알고리즘의 치명적인 취약점, 특히 충돌을 효과적으로 찾는 능력과 관련된 취약점은 비트코인 ​​암호화폐의 인프라를 포함한 전체 암호화 환경에 심각한 위협을 가합니다. 비트코인 ​​네트워크 자체는 더 안전한 SHA-256 알고리즘을 기반으로 구축되었지만, 비트코인의 소스 코드 버전 관리 시스템인 Git이 커밋 해시 생성에 SHA-1을 사용하기 때문에 SHA-1 취약점은 간접적으로 상당한 영향을 미칩니다. 이는 공격자가 동일한 SHA-1 해시를 가진 두 개의 서로 다른 소프트웨어 아카이브 또는 커밋을 생성하여 악의적인 변경 사항이 합법적인 것처럼 보이게 하는 공격 가능성을 열어줍니다.

과학적으로 이러한 공격은 암호화 해시 함수의 충돌 공격이라고 하며, 실제 연구를 통해 확인되었고 CVE-2017-15361에서 식별된 바와 같이 SHA-1에 대해 이미 성공적으로 구현되었습니다. 이러한 충돌 공격은 블록체인 시스템의 보안에 필수적인 데이터 무결성 및 진위성 보장을 훼손합니다.

비트코인의 이러한 취약점은 소스 코드 유출 가능성을 통해 잠재적으로 숨겨진 취약점, 사기성 기능 도입, 그리고 암호화폐에 대한 신뢰도 하락으로 이어질 수 있습니다. 따라서 개발자 커뮤니티는 모든 보조 도구에서 SHA-1 사용을 시급히 중단하고 SHA-256 및 SHA-3과 같은 암호화 표준으로 전환해야 하며, 감사 메커니즘과 데이터 무결성 제어를 강화해야 합니다.

따라서 SHA-1 충돌과 같은 클러스터형 취약점을 예방하고 완화하는 것은 비트코인이 우리 시대의 대표적인 암호화폐로서 탈중앙화, 보안 및 지속가능성을 유지하는 데 매우 중요합니다.

By