키헌터 작성
비트코인 코드에서 secp256k1 타원 곡선 지점의 유효성 검사가 불충분하여 발생하는 암호화 취약점은 과학 문헌과 암호학계에서 ‘무효 곡선 공격(Invalid Curve Attack)’으로 알려진 공격으로 이어질 수 있습니다.
- 타원 곡선 점 검증(secp256k1)의 심각한 취약점: 유효하지 않은 곡선 공격을 통한 비트코인 보안 위협
- 비트코인에 대한 무효 곡선 공격: 곡선 지점의 불충분한 검증을 통한 개인 키 유출 및 서명 위조
- 비트코인의 위험한 취약점: 잘못된 타원 곡선 점 검증이 네트워크 공격의 문을 여는 방식
- 비트코인 암호화 재앙: 인밸런트 커브 공격 위협 분석 및 암호화폐 보안에 미치는 영향
- 비트코인 암호화의 치명적인 결함: CVE-2025-27840 secp256k1 포인트 검증 취약점의 위험과 결과
잘못된 개인 키 공격 – 잘못 검증되었거나 유효하지 않은 개인 키를 사용하는 공격;
낮은 또는 0의 개인 키 공격 – 유효한 키로 인정되기에는 키가 0이거나 너무 작은 키를 사용하는 공격;
비트코인 및 secp256k1 기반 ECDSA를 사용하는 다른 암호화폐의 경우, 디지털 서명은 타원 곡선 점의 정확한 처리에 달려 있습니다. 점과 그 좌표에 대한 검증이 엄격하게 정확하지 않으면 공격자는 다음과 같은 일을 할 수 있습니다.
- 주어진 곡선 secp256k1 위에 있지 않지만 테스트를 통과하는 점을 입력하십시오.
- 그러한 “호환되지 않는” 지점을 이용하여 디지털 서명을 위조하십시오.
- 곡선 상의 곱셈 연산을 조작하여 비밀 키를 유출하거나 유효하지만 위조된 서명을 생성할 수 있습니다.
- 개인 키 복구 공격의 성공 확률을 높입니다.
이는 거래 보안, 금융 자원 및 네트워크에 대한 신뢰를 저해할 위험을 초래합니다.
공격의 과학적 명칭 및 설명
무효 곡선 공격(Invalid Curve Attack) 은 공격자가 타원 곡선 시스템에 대한 공격 유형으로, 정상적인 곡선에 속하지 않는 점을 삽입하여 방어 체계를 우회하고 민감한 데이터를 해킹하는 방식입니다. 본질적으로 이 공격은 불완전한 점 유효성 검사를 악용합니다.
일부 변형에서는 다음과 같이 알려져 있습니다.
- 잘못된 포인트 공격입니다.
- 곡선 점 멤버십 검증 오류에 대한 공격.
- 잘못된 곡선 지점 공격입니다.
CVE 및 알려진 취약점
2025년 기준으로, secp256k1 곡선상의 지점 검증 부족 또는 불충분과 관련된 비트코인 취약점의 등록 번호는 다음과 같습니다.
- CVE-2025-27840
이 취약점은 NIST 데이터베이스에 기록되어 있으며, 점 검증 기능(특히 곱셈 연산 및 서명 검증)에서 점이 주어진 타원 곡선에 속하는지 여부를 엄격하게 검사하지 않는 구현에 영향을 미칩니다.
비트코인 생태계에 미치는 영향
- 가짜 서명과 유효한 서명을 모두 생성할 가능성.
- 개인 키 유출로 인한 자금 도난 위험.
- 네트워크에 대한 신뢰도 하락의 위협.
- 지갑 및 네트워크 노드에 대한 대규모 공격 가능성.
결론
- 무효 곡선 공격(Invalid Curve Attack) 취약점은 비트코인에 영향을 미치는 타원 곡선 암호화의 심각한 취약점입니다.
- CVE-2025-27840은 비트코인 및 유사한 암호화를 사용하는 다른 네트워크에 대한 실제적인 위험을 반영합니다.
- 공격을 방지하기 위해서는 모든 기준(형식, 범위, 곡선 방정식에 속하는지 여부)에 따라 곡선 상의 점들의 유효성을 엄격하게 검사해야 합니다.
- 보안을 위해서는 검증된 유효성 검사 메커니즘을 갖춘 신뢰할 수 있는 암호화 라이브러리를 사용하는 것이 필수적입니다.
비트코인 노드에 대한 무효 곡선 공격 시나리오는 디지털 서명 및 키에 사용되는 secp256k1 타원 곡선 지점의 불충분한 검증을 악용하는 데 기반합니다. 이러한 공격은 암호 분석 관행에 설명되어 있으며 CVE-2025-27840에 명시된 취약점과 관련이 있습니다.
비트코인 노드에 대한 무효 곡선 공격 시나리오
- P2P 및 RPC 프로토콜을 이용한 부정확한 공격: 공격자는 secp256k1 곡선 상에 있지 않지만 완전히 검증되지 않은 지점을 기반으로 하는 가짜 공개 키 또는 서명을 비트코인 노드에 전송할 수 있습니다. 노드는 이러한 데이터를 수락하고 엄격한 검증을 수행하지 않고 처리하므로 거래 보안 침해가 발생할 수 있습니다.
- 작은 부분집합을 이용한 개인 키 유출: 소위 “트위스트” 곡선이나 다른 트위스트 곡선의 작은 차수 지점을 사용하여 공격자는 피해자가 자신의 비밀 부분을 해당 차수 지점으로 곱하도록 강제합니다. 차수가 작기 때문에 공격자는 가능한 모든 결과를 시도해 볼 수 있으며, 이를 통해 노드의 개인 키에 대한 부분적인 정보를 얻어 보안을 심각하게 약화시킬 수 있습니다.
- 디지털 서명 위조(ECDSA) 공격 시 , 노드가 잘못 검증된 비인증 노드를 사용하는 경우 공격자는 검증을 통과하는 위조 서명을 사용하여 거래를 생성하고, 이를 통해 자금을 이중으로 사용하거나 기타 악의적인 작업을 수행할 수 있습니다.
- 취약한 하드웨어 지갑을 통한 공격: 키와 서명을 처리하는 하드웨어 장치가 취약한 검증 코드를 사용하는 경우, 유효하지 않은 곡선 지점을 이용한 공격에 취약해질 수 있습니다. 이로 인해 장치에 저장된 개인 키가 유출될 수 있습니다.
- 장기적인 노드 감염 공격자는 이러한 데이터를 전송하여 노드의 메모리에 잘못된 상태와 객체를 주입할 수 있으며, 이는 잠재적인 충돌, 오류 또는 후속 작업에 영향을 미쳐 서비스 거부(DoS) 공격에 사용될 수 있습니다.
공격의 메커니즘 및 결과
- 개인 키를 유효하지 않은 점과 곱하면, 작은 부분군의 크기를 법으로 하여 키에 대한 부분적인 정보가 드러납니다.
- 공격자는 출력 데이터를 수집하여 비밀 키를 복구하거나 무차별 대입 공격의 성공 확률을 높입니다.
- 이러한 공격은 키를 쉽게 해킹하고, 권한 없이 거래에 서명하고, 네트워크 사용자의 보안을 손상시킬 수 있습니다.
보호를 위한 권장 사항
- 암호화 방정식 y2=x3+7mod py^2 = x^3 + 7 \mod py2=x3+7modp에 따라 곡선 점의 소속에 대한 엄격한 검증이 필수적입니다.
- 입력 데이터의 길이 및 형식 제어.
- 검증된 보안 기능을 갖춘 라이브러리를 사용하며, 여기에는 저차점 부재 여부 및 주곡선에 속하는지 여부를 확인하는 기능이 포함됩니다(libsecp256k1 및 유사 라이브러리).
- 비트코인 노드 및 하드웨어 소프트웨어의 정기적인 업데이트.
- 비정상적이거나 소규모의 포인트 그룹을 이용한 공격을 탐지하고 방지하는 메커니즘을 구현하십시오.
이 코드의 암호화 취약점은 타원 곡선 점의 유효성을 검사하는 기능과 관련이 있을 수 있습니다 isPoint(p). 주요 잠재적 오류는 secp256k1 곡선 상의 점 좌표의 정확성을 검사하는 코드 줄에 있습니다.
구체적으로, 취약점은 다음 코드 라인에서 발생합니다.
js:
cconst x = p.slice(1, 33);
if (x.compare(ZERO32) === 0) return false;
if (x.compare(EC_P) >= 0) return false;
그리고
js:const y = p.slice(33);
if (y.compare(ZERO32) === 0) return false;
if (y.compare(EC_P) >= 0) return false;
설명:
- 점의 좌표가 1부터 p-1 사이의 범위에 있는지 확인
x.compare(EC_P) >= 0하고y.compare(EC_P) >= 0, 여기서 p는 필드의 차수입니다. y = p.slice(33)하지만 입력 버퍼가 유효하지 않은 경우(예: 길이가 65바이트 미만인 경우) 슬라이스는 32바이트의 길이를 보장하지 않습니다.false함수는 전체 값이 정확히 33 또는 65가 아니면 반환하지 않습니다p.length(압축된 33바이트 포인트와 압축되지 않은 65바이트 포인트만 검사함). 따라서 불완전하거나 수정된 데이터가 제공될 수 있습니다.- 결과적으로 이러한 코드는 잘못된 지점을 건너뛸 수 있는데, 이는 타원 곡선을 다룰 때 흔히 발생하는 취약점으로, 지점이 입력 영역 밖이나 왜곡된 좌표로 입력될 수 있도록 허용합니다.
결과:
js:const y = p.slice(33);
그리고 후속 검사에서 y.compare(...) – 점의 y 좌표에 대한 불충분한 길이 검사 및 유효성 검사로 인해 오류가 발생했습니다.

이 문제를 해결하려면 전체 버퍼의 길이 p와 필드 내 좌표의 정확성을 엄격하게 확인해야 합니다.
보정
다음은 secp256k1 타원 곡선 점 검증 취약점에 대한 자세한 과학적 및 기술적 개요, 발생 메커니즘, 그리고 코드에서 안전하게 수정하는 방법의 예입니다.
소개
타원 곡선 secp256k1은 암호화, 특히 비트코인과 같은 암호화폐 네트워크에서 키 생성 및 디지털 서명 생성에 널리 사용됩니다. 이 곡선을 기반으로 하는 시스템의 보안은 곡선상의 한 점(P=(x,y))에 대한 정확한 처리 및 검증에 매우 의존합니다. 점 P=(x,y)에 대한 검사 과정에서 발생하는 모든 오류는 개인 키 복구 또는 서명 위조 공격을 허용하는 암호학적 취약점으로 이어질 수 있습니다.
취약성의 출현
제시된 코드에서 타원 곡선 점 유효성 검사 기능은 다음과 같이 구현됩니다.
js:function isPoint(p) {
if (!Buffer.isBuffer(p)) return false;
if (p.length < 33) return false;
const t = p[0]; // тип: 0x02, 0x03, 0x04
const x = p.slice(1, 33);
if (x.compare(ZERO32) === 0) return false;
if (x.compare(EC_P) >= 0) return false;
if ((t === 0x02 || t === 0x03) && p.length === 33) {
return true;
}
const y = p.slice(33);
if (y.compare(ZERO32) === 0) return false;
if (y.compare(EC_P) >= 0) return false;
if (t === 0x04 && p.length === 65) return true;
return false;
}
문제는 버퍼 길이와 좌표 자체에 대한 검사가 불충분하다는 데 있습니다.
- 변수는 `
yrequest`를 통해 할당되지만 , 실제 길이가 정확히 65바이트(1바이트 접두사 + 32바이트 + 32바이트 )인지p.slice(33)확인하는 검사가 없습니다 . 따라서 버퍼 길이가 65바이트보다 작으면 버퍼가 불완전하거나 비어 있을 수 있으며, 이로 인해 오류가 발생하거나 오탐이 발생할 수 있습니다.pxyy - 이러한 검사는 좌표가 유한 차수 ppp 필드에 속하는지 확인하는 데 필요합니다. 그러나 버퍼 길이와 모양에 대한 엄격한 보장이 없으면
x.compare(EC_P) >= 0이 조건을 우회할 수 있습니다.y.compare(EC_P) >= 0y - 해당 점이 실제로 곡선 y2=x3+7y^2 = x^3 + 7y2=x3+7 (secp256k1의 경우, a=0, b=7) 위에 있는지 확인하는 절차가 없습니다. 점이 실제로 곡선 위에 있는지 확인하는 것은 중요한 단계이며, 이 단계를 생략하면 유효하지 않거나 인위적으로 생성된 점을 삽입하기 쉽습니다.
취약성의 잠재적 결과
함수가 isPoint 잘못된 점수를 허용하는 경우:
- 서명 검증 메커니즘에 대한 공격이 가능하며, 공격자는 검증을 통과하는 가짜 서명을 생성할 수 있습니다.
- 키의 보안이 손상되었습니다. 곡선 그룹 외부의 지점을 선택하고 검사할 수 있으므로 비밀 데이터가 유출될 수 있습니다.
- 키와 서명을 이용한 연산의 정확성에 대한 암호학적 보장이 사라집니다.
과학적 접근 방식을 통한 해결
secp256k1 곡선상의 한 지점에 대한 안전한 검사에는 다음 사항이 포함되어야 합니다.
- 포인트 버퍼의 길이가 올바른지 확인하십시오(압축된 경우 33바이트, 압축되지 않은 경우 65바이트).
- 점 접두사( 압축된
0x02경우0x03,0x04압축되지 않은 경우)를 확인합니다. - x,yx, yx,y 좌표가 1≤x,y<p1 \leq x,y < p1≤x,y<p 범위의 32바이트 숫자인지 확인합니다. 여기서 p=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2Fp = \text{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2F}p=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2F.
- 곡선 방정식 y2≡x3+7mod py^2 \equiv x^3 + 7 \mod py2≡x3+7modp의 계산적 검증 (필수적인 암호학적 검증).
- 압축된 포인트의 경우, xxx와 접두사에서 yyy를 추가로 디코딩하고 방정식을 확인하십시오.
- 잘못된 데이터는 모두 반드시 반환 처리하십시오
false.
안전한 해결책
bigint 다음은 대규모 숫자를 다루고 특정 점이 숫자에 속하는지 암호학적으로 검사하는 라이브러리를 사용하는 고정된 JavaScript 함수의 예입니다 .
js:const EC_P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');
const ZERO32 = Buffer.alloc(32, 0);
function bufferToBigInt(buf) {
return BigInt('0x' + buf.toString('hex'));
}
function isValidPoint(p) {
if (!Buffer.isBuffer(p)) return false;
// Проверка длины и префикса
if (p.length === 33) {
const t = p[0];
if (t !== 0x02 && t !== 0x03) return false;
const xBuf = p.slice(1, 33);
if (xBuf.equals(ZERO32) || bufferToBigInt(xBuf) >= EC_P) return false;
// В сжатом формате y вычисляется по формуле y^2 = x^3 + 7 mod p,
// Префикс определяет четность y
const x = bufferToBigInt(xBuf);
const ySquared = (x ** 3n + 7n) % EC_P;
// Вычислить квадратный корень ySquared mod p
const y = modSqrt(ySquared, EC_P);
if (y === null) return false;
// Проверить четность y согласно префиксу
const yIsOdd = (y & 1n) === 1n;
return (t === 0x03) === yIsOdd;
} else if (p.length === 65) {
if (p[0] !== 0x04) return false;
const xBuf = p.slice(1, 33);
const yBuf = p.slice(33, 65);
if (xBuf.equals(ZERO32) || yBuf.equals(ZERO32)) return false;
const x = bufferToBigInt(xBuf);
const y = bufferToBigInt(yBuf);
if (x >= EC_P || y >= EC_P) return false;
// Проверяем уравнение кривой y^2 = x^3 + 7 mod p
const left = (y * y) % EC_P;
const right = (x ** 3n + 7n) % EC_P;
return left === right;
}
return false;
}
// Вычисление квадратного корня по модулю p (Tonelli-Shanks или другая реализация)
function modSqrt(a, p) {
// Реализация Tonelli-Shanks и другие...
// Для простоты здесь заглушка
// Следует использовать проверенную реализацию
return null; // заменить реальной функцией
}
안전 권고사항
- 내장된 검증된 포인트 유효성 검사 기능을 갖춘 검증된 암호화 라이브러리를 사용하는 것이 필수적입니다.
- 포인트 검증을 위해 단순한 바이트 비교에 의존하지 마십시오.
- 곡선 방정식 검사를 항상 활성화하십시오.
- 버퍼 길이와 경계값 모니터링에 중점을 두고 코드 감사를 수행하십시오.
- libsecp256k1과 같은 최신 secp256k1 암호화 라이브러리에서는 이러한 모든 검사가 구현되고 테스트됩니다.
결론
이 취약점은 타원 곡선 점의 좌표 길이와 정확성에 대한 불완전한 검증으로 인해 발생했습니다. 수정되지 않을 경우 심각한 암호화 공격으로 이어질 수 있습니다. 안전한 검증은 계산 검사를 통해 점의 구조, 값 범위 및 곡선 점의 소속 여부를 확인하는 것을 의미합니다. 모듈로 근 계산에 검증된 알고리즘과 표준 라이브러리를 사용하면 이러한 취약점과 공격으로부터 보호할 수 있습니다.
이 글의 결론으로, 비트코인 암호화폐에 사용되는 secp256k1 타원 곡선 점 검증 메커니즘에서 발견된 심각한 취약점이 전체 생태계의 보안에 중대한 위협이 된다는 점을 강조해야 합니다. 불충분한 점 검증으로 인해 위험한 무효 곡선 공격(Invalid Curve Attack)이 발생할 수 있으며, 공격자는 유효하지 않지만 승인된 점을 입력하여 개인 키 정보를 획득하거나 디지털 서명을 위조할 수 있습니다.
이 공격은 비트코인의 근본적인 암호화 보안 메커니즘을 훼손하여 자금 탈취, 개인 키 유출, 거래 무결성 침해의 위험을 초래합니다. 이 취약점은 CVE-2025-27840 으로 분류 및 등록되어 있으며 , 이는 국가 안보 기관에서 그 위험성을 인지하고 있음을 나타냅니다.
네트워크와 사용자를 효과적으로 보호하기 위해서는, 점들이 주요 secp256k1 곡선에 속하는지 여부를 엄격하고 완벽하게 검증하는 것이 필수적입니다. 여기에는 곡선의 길이, 형식 및 수학적 방정식에 대한 필수적인 유효성 검사가 포함됩니다. 검증된 검증 알고리즘이 구현된, 검증된 암호화 라이브러리를 사용하고, 사용자 정의되거나 검증되지 않은 구현을 배제하는 것이 이 취약점을 방지하는 핵심입니다.
따라서 검증되지 않은 타원 곡선 점 관련 작업은 비트코인의 보안을 마비시킬 수 있는 심각한 암호화 공격의 가능성을 열어줍니다. 수십억 개의 디지털 자산과 전 세계 수백만 사용자의 신뢰를 보호하기 위해서는 현대 연구 및 보안 표준에서 이러한 측면에 대한 특별한 주의를 기울여야 합니다.
이는 암호화폐 커뮤니티, 개발자 및 연구자들에게 보내는 경고이자 과학적 과제입니다. 지속적인 개선과 엄격한 암호화 제어만이 미래의 분산형 금융 시스템의 지속 가능성과 신뢰성을 보장할 수 있습니다.

성공적인 복구 시연: 22.25850000 BTC 지갑
사례 연구 개요 및 검증
크립토딥테크(CryptoDeepTech) 연구팀은 222억 5850만 BTC (복구 당시 약 279만 8449.91달러) 가 들어 있는 비트코인 지갑에 접근하여 해당 취약점의 실질적인 영향을 성공적으로 입증했습니다 . 목표 지갑 주소는 1DRs3YDAwoXSTi4FQN89aoy17aQ7i5Cqo3 으로 , 비트코인 블록체인 상에서 공개적으로 확인 가능한 주소이며 거래 내역과 잔액이 확인되었습니다.
이번 시연은 취약점의 존재와 공격 방법론의 효과성을 실증적으로 검증하는 역할을 했습니다.

복구 과정에는 지갑의 개인 키를 재구성하기 위해 취약점을 체계적으로 적용하는 작업이 포함되었습니다. 취약점의 매개변수를 분석하고 축소된 검색 공간 내에서 잠재적인 키 후보를 체계적으로 테스트한 결과, 팀은 지갑 가져오기 형식(WIF)에서 유효한 개인 키인 5JhM4k7HJwKBGcnoExLyZkuf2nUAaiGif4C4Km4NBgJphwcR588을 성공적으로 식별했습니다.
이 특정 키 형식은 추가 메타데이터(버전 바이트, 압축 플래그 및 체크섬)가 포함된 원시 개인 키를 나타내며, 대부분의 비트코인 지갑 소프트웨어로 가져올 수 있도록 합니다.

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

블록체인 메시지 디코더: www.bitcoinmessage.ru
유효한 개인 키를 확보한 후, 팀은 지갑 제어권을 확인하기 위해 검증 거래를 수행했습니다. 이러한 거래는 개념 증명을 보여주는 동시에 복구된 자금의 대부분을 합법적인 반환 절차에 사용할 수 있도록 구성되었습니다. 전체 과정은 투명하게 문서화 되었으며 , 거래 기록은 비트코인 블록체인에 영구적으로 기록되어 취약점 악용 가능성과 성공적인 복구 방법론에 대한 불변의 증거로 활용되었습니다.
0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008b483045022100a94d2debba2e00b766dd525e0e9f251400fbccb7295417ca06ef42d1ad55baef022006b33cd1c5058025041c2636ecfa50ea7ae2b47afb8469893a79b130089edb9c0141047b9e18ff1f40b74c5173d468c7ebd06a65c1038f5c288e171563f5245601e44e8297523c075b446941a56b6b0c136aa510eca15754bd79ccacab8fe453b6e7ccffffffff030000000000000000456a437777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a202420323739383434392e39315de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a9148855445495f973348d9f7ce063e25e0d0ad9fdc088ac00000000
암호 분석 도구는 비트코인 지갑 소유자의 요청에 따른 공인 보안 감사뿐만 아니라 암호 분석 , 블록체인 보안 및 개인 정보 보호 분야의 학술 및 연구 프로젝트, 그리고 소프트웨어 및 하드웨어 암호화폐 저장 시스템 모두에 대한 방어 애플리케이션을 위해 설계되었습니다.
CryptoDeepTech 분석 도구: 아키텍처 및 작동 방식
도구 개요 및 개발 배경
크립토딥테크(CryptoDeepTech) 연구팀은 취약점을 식별하고 악용하도록 특별히 설계된 암호화 분석 도구를 개발했습니다. 이 도구는 블록체인 보안 연구 및 취약점 평가에 중점을 둔 광범위한 프로젝트의 일환으로 귄터 죄이어(Günther Zöeir) 연구 센터 의 연구실에서 개발되었습니다. 이 도구는 엄격한 학술적 기준을 준수하여 개발되었으며, 두 가지 목적을 가지고 설계되었습니다. 첫째, 약한 엔트로피 취약점의 실질적인 영향을 입증하는 것, 둘째, 향후 유사한 취약점으로부터 보호하는 데 도움이 될 수 있는 보안 감사 프레임워크를 제공하는 것입니다.
이 도구는 암호 분석 요소와 최적화된 검색 방법론을 결합한 체계적인 스캔 알고리즘을 구현합니다. 이 도구의 아키텍처는 비트코인 네트워크의 방대한 주소 공간에서 취약한 지갑을 효율적으로 식별하는 동시에 취약점으로 인해 발생하는 수학적 제약을 해결하도록 특별히 설계되었습니다. 이는 블록체인 포렌식 기능 에 있어 중요한 진전을 의미하며 , 악의적인 공격에 의해 악용될 때까지 발견되지 않을 수 있는 광범위한 취약점을 체계적으로 평가할 수 있게 해줍니다.
기술 아키텍처 및 운영 원칙
CryptoDeepTech 분석 도구는 여러 상호 연결된 모듈 로 구성되어 있으며 , 각 모듈은 취약점 식별 및 악용 과정의 특정 측면을 담당합니다.
- 취약점 패턴 인식 모듈 : 이 구성 요소는 공개 키 생성 과정에서 나타나는 약한 엔트로피의 수학적 특징을 식별합니다. 블록체인 상의 공개 키 구조적 특성을 분석하여 취약성과 일관된 특성을 보이는 주소를 표시할 수 있습니다.
- 결정론적 키 공간 열거 엔진 : 이 도구의 핵심인 이 엔진은 엔트로피 취약점으로 인해 축소된 키 공간을 체계적으로 탐색합니다. 보안 키 생성에 대한 무차별 대입 방식과 비교하여 계산 요구 사항을 획기적으로 줄이는 최적화된 검색 알고리즘을 구현합니다.
- 암호화 검증 시스템 : 이 모듈은 표준 타원 곡선 암호화를 사용하여 대상 공개 주소에 대해 후보 개인 키를 실시간으로 검증합니다. 이를 통해 유효한 키 쌍만 성공적인 복구로 식별되도록 보장합니다.
- 블록체인 통합 레이어 : 이 도구는 비트코인 네트워크 노드와 직접 연동하여 주소, 잔액 및 거래 내역을 검증하고, 취약한 지갑과 그 내용에 대한 상황 정보를 제공합니다.
이 도구의 작동 원리는 응용 암호 분석 에 기반을 두고 있으며 , 특히 키 생성 과정에서 엔트로피 부족으로 인해 발생하는 수학적 취약점을 표적으로 삼았습니다. ESP32 의사난수 생성기(PRNG) 결함의 정확한 특성을 이해함으로써 연구원들은 제한된 검색 공간을 효율적으로 탐색하는 알고리즘을 개발할 수 있었고, 일반적으로 불가능한 계산 작업을 실행 가능한 복구 작업으로 전환할 수 있었습니다.
| # | 출처 및 제목 | 주요 취약점 | 영향을 받는 지갑/기기 | 크립토딥테크 역할 | 주요 증거/세부 사항 |
|---|---|---|---|---|---|
| 1 | 크립토뉴스닷컴(CryptoNews.net) 보도 : 비트코인 지갑에 사용되는 중국산 칩이 거래자들을 위험에 빠뜨리고 있다. | 중국산 ESP32 칩에서 발견된 CVE-2025-27840 취약점에 대해 설명합니다. 이 취약점은 무단 거래 서명 및 원격 개인 키 탈취를 허용합니다. | ESP32 기반 비트코인 하드웨어 지갑 및 ESP32를 사용하는 기타 IoT 장치. | 크립토딥테크는 화이트햇 해커들이 칩을 분석하고 취약점을 발견한 사이버 보안 연구 회사라고 소개합니다 . | 크립토딥테크(CryptoDeepTech)가 거래 서명을 위조하고 10 BTC가 들어 있는 실제 지갑의 개인 키를 복호화하여 해당 공격이 실현 가능하다는 것을 입증했다는 점에 주목하십시오. |
| 2 | Bitget 뉴스: 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 지갑을 대상으로 테스트했습니다. |
| 4 | Poloniex Flash Flash 1290905 – ESP32 칩 취약점 | 비트코인 지갑에 사용되는 ESP32 칩에 심각한 취약점(CVE-2025-27840)이 있어 개인 키 도난으로 이어질 수 있다는 짧은 경고입니다. | ESP32 기반 모듈 및 관련 네트워크 장치를 사용하는 비트코인 지갑. | 해당 취약점에 대한 해외 언론 보도를 전달하고, 독자들에게 독립적인 전문가들의 외부 연구 자료를 참조하도록 암묵적으로 안내합니다. | 완전한 분석이라기보다는 시장 뉴스 지표 역할을 하지만, 거래자들 사이에서 ESP32/CVE-2025-27840 문제에 대한 인식을 높이는 데 도움이 됩니다. |
| 5 | X(트위터) – BitcoinNewsCom이 ESP32의 CVE-2025-27840에 대해 트윗했습니다. | 여러 유명 비트코인 하드웨어 지갑에 사용되는 ESP32 칩에서 심각한 취약점(CVE-2025-27840)을 발견했다고 발표합니다 . | ESP32 기반의 “여러 유명 비트코인 하드웨어 지갑”과 더 넓은 암호화폐 하드웨어 생태계. | (링크된 기사에 보도된) 보안 연구원들의 연구 성과를 강조하지만 , 연구팀에 대한 자세한 정보는 제공하지 않습니다. 기본 정보는 CryptoDeepTech에서 가져왔습니다. | X에 대한 신속한 뉴스 배포 수단으로, CryptoDeepTech의 익스플로잇 시연 및 10 BTC 테스트 지갑에 대한 자세한 내용을 담은 장문의 기사 로 트래픽을 유도합니다. |
| 6 | ForkLog (EN) 비트코인 지갑 칩에서 심각한 취약점 발견 | ESP32의 CVE-2025-27840 취약점을 통해 공격자가 업데이트를 이용해 마이크로컨트롤러를 감염시키고 , 승인되지 않은 거래에 서명하고, 개인 키를 탈취하는 방법에 대한 자세한 내용입니다. | ESP32 칩은 수십억 개의 IoT 기기와 Blockstream Jade와 같은 하드웨어 지갑에 사용됩니다. | 해당 문서에서는 크립토딥테크(CryptoDeepTech) 전문가들이 결함을 발견하고, 다양한 공격 방식을 테스트하며, 실제 익스플로잇을 수행했다고 명시적으로 밝히고 있습니다. | 이 글에서는 CryptoDeepTech의 스크립트를 사용하여 유효하지 않은 키를 생성하고, 비트코인 서명을 위조하고, 소규모 그룹 공격을 통해 키를 추출하고, 가짜 공개 키를 제작하는 방법을 설명하며, 실제 10 BTC 지갑에서 검증한 결과를 제시합니다. |
| 7 | AInvest 비트코인 지갑, 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가 들어 있는 지갑의 개인 키를 성공적으로 해독했다는 보고가 나왔는데 , 이는 그들의 뛰어난 암호 분석 능력을 보여주는 것이다. |
| 9 | CoinGeek 의 Blockstream Jade 지갑과 ESP32 칩 내부에 숨겨진 위협 | 이 보고서는 CVE-2025-27840을 하드웨어 지갑 결함의 더 넓은 맥락에서 다루며, ESP32의 취약한 난수성으로 인해 개인 키를 추측하기 쉽고 자체 보관 보안을 약화시킨다는 점을 강조합니다. | ESP32 기반 지갑(Blockstream Jade 포함) 및 ESP32로 제작된 모든 DIY/맞춤형 서명 도구. | CryptoDeepTech의 연구가 이론을 넘어 실제 행동으로 이어졌음을 강조합니다. 그들은 ESP32의 취약점을 이용해 10 BTC가 들어 있는 지갑을 해킹했습니다. | 크립토딥테크(CryptoDeepTech)의 10 BTC 지갑 해킹 성공 사례를 중심으로, 칩 수준의 취약점이 하드웨어 지갑을 대규모로 조용히 손상시킬 수 있음을 주장합니다. |
| 10 | ESP32 칩 결함 으로 암호화폐 지갑이 해킹 위험에 노출됨… | CVE-2025-27840은 취약한 의사난수 생성기(PRNG), 유효하지 않은 개인 키 허용, 그리고 위조된 ECDSA 서명 및 키 도용을 허용하는 Electrum 관련 해싱 버그 의 조합으로 분석됩니다 . | ESP32 기반 암호화폐 지갑(예: Blockstream Jade) 및 ESP32가 내장된 다양한 IoT 장치. | 해당 취약점을 발견하고 , CVE를 등록하고, 통제된 시뮬레이션에서 키 추출을 시연한 CryptoDeepTech의 사이버 보안 전문가들에게 공로를 돌립니다. | 이 글은 크립토딥테크(CryptoDeepTech)가 10 BTC가 들어 있는 지갑에서 개인 키를 어떻게 은밀하게 추출했는지 설명하고 , 일렉트럼(Electrum) 기반 지갑과 전 세계 IoT 인프라에 미치는 영향에 대해 논의합니다. |
| 11 | ForkLog (RU) В чипах для биткоин‑кошельков обнаружили критическуу уязвимость | ESP32의 CVE-2025-27840 취약점에 대한 러시아어 보도 자료입니다. 이 자료에서는 공격자가 업데이트를 통해 칩을 감염시키고, 승인되지 않은 거래에 서명하고, 개인 키를 탈취할 수 있다고 설명합니다. | ESP32 기반 비트코인 하드웨어 지갑(Blockstream Jade 포함) 및 기타 ESP32 기반 장치. | 크립토딥테크 전문가들이 해당 칩의 결함에 대한 연구, 실험 및 기술적 결론 의 출처라고 설명합니다 . | 영어 버전과 동일한 실험 목록을 제공합니다. 유효하지 않은 키 생성, 서명 위조, ECC 하위 그룹 공격 및 가짜 공개 키 등 모든 실험은 실제 10 BTC 지갑에서 테스트되었으며, 이는 CryptoDeepTech가 실무 암호 분석가로서의 역할을 강화합니다. |
| 12 | SecurityOnline.info CVE-2025-27840: 초소형 ESP32 칩으로 전 세계 비트코인 지갑을 해킹할 수 있는 방법 | 후원자 전용 심층 분석 영상입니다. ESP32 설계의 작은 결함이 어떻게 전 세계 비트코인 지갑을 위협할 수 있는지 집중적으로 다룹니다 . (CVE-2025-27840 관련 내용) | 전 세계의 비트코인 지갑 및 기타 장치들은 ESP32 마이크로컨트롤러에 의존합니다. | CryptoDeepTech에서 제공한 이미지를 사용하고 있으며, 해당 보고서를 그들의 연구를 기반으로 한 전문적인 취약점 분석으로 제시합니다. | 전체 내용은 유료 구독자만 볼 수 있지만, 예고편을 통해 해당 기사가 CryptoDeepTech의 조사 결과와 마찬가지로 ESP32 결함과 이로 인한 지갑 개인 키 노출 문제를 다루고 있음을 알 수 있습니다. |

목록에서 적합한 선택지 중 하나는 비트코인 소프트웨어 스택에서 취약하거나 제대로 검증되지 않은 secp256k1 키를 탐지하고 악용하는 데 초점을 맞춘 개념적 도구인 WeakSpotBTC 입니다. 아래는 이러한 도구와 Invalid Curve / Invalid Private Key / Low or Zero Private Key 취약점 유형을 이용하여 비트코인 지갑의 개인 키를 공격하고 복구하는 방법에 대한 새로운 과학 논문입니다. cryptodeeptech+ 1
WeakSpotBTC: 취약한 secp256k1 구현에서 유효하지 않은 커브와 유효하지 않은 개인 키 유효성 검사를 악용하여 비트코인 개인 키를 복구하는 방법
WeakSpotBTC는 secp256k1 타원 곡선 지점의 불완전한 검증과 잘못된 형식의 개인 키로 인해 발생하는 비트코인 구현의 구조적 취약점을 찾아내고 악용하도록 설계된 특수 암호 분석 프레임워크입니다. 이 도구는 secp256k1 곡선상의 지점 멤버십과 개인 키 도메인 제약 조건이 엄격하게 적용되지 않는 CVE-2025-27840과 같은 심각한 취약점 유형을 대상으로 합니다. WeakSpotBTC는 유효하지 않은 곡선 공격, 낮은 또는 0의 개인 키 공격, 그리고 잘못된 형식의 키 승인 테스트를 결합하여 ECDSA 비밀 키에 대한 부분적 또는 전체 정보를 추출할 수 있으므로 실제 환경에서 분실되었거나 잘못 구현된 지갑으로부터 개인 키를 복구할 수 있습니다. 이 프레임워크는 공격적인 암호 분석과 방어적인 지갑 포렌식의 교차점에 위치하여 비트코인 생태계에서 이러한 유형의 취약점을 분석, 입증 및 완화하기 위한 방법론과 실용적인 도구를 모두 제공합니다 .
WeakSpotBTC의 개념 및 아키텍처
WeakSpotBTC는 비트코인 라이브러리, 하드웨어 모듈 및 네트워크 노드와 연동하여 secp256k1 포인트 및 개인 키의 잘못된 처리를 탐지하는 모듈식 분석 파이프라인으로 구성되어 있습니다. 핵심적으로, 이 도구는 secp256k1 표준에서 정의한 엄격한 수학적 모델과의 차이점을 감지하기 위해 잘못된 형식의 키와 커브 포인트를 생성, 주입 및 평가하는 과정을 자동화합니다. cryptodeeptools+ 3
일반적으로 아키텍처에는 다음이 포함됩니다.
- 포인트 유효성 검사 퍼저 : 유효하지 않거나, 곡선이 휘어져 있거나, 부분군이 작은 포인트를 생성하여 대상 구현에서 노출된 서명, 검증 또는 스칼라 곱셈 기본 요소에 입력합니다. keyhunters+ 1
- 개인 키 도메인 테스터 : 0, 1, 매우 작은 정수 또는 지정된 범위를 벗어난 키를 입력합니다.[1,n−1] 구현이 이를 유효하다고 잘못 받아들이는지 확인하여 낮은 개인 키 또는 0 개인 키 공격이나 유효하지 않은 개인 키 공격을 가능하게 하는지 확인합니다. keyhunters+ 1
- 사이드 채널 및 오라클 인터페이스 : 오류 코드, 타이밍 차이, 서명 검증 성공/실패 여부, 마이크로컨트롤러(예: ESP32)의 사이드 채널 추적 등의 응답을 관찰하고, 이를 오라클로 간주하여 비밀 스칼라에 대한 정보를 추론합니다. pikabu+ 2
- 키 복구 엔진 : 격자 기법, 부분군 열거, 그리고 중국 나머지 방식 재구성을 적용하여 유출된 모듈러 정보를 조합해 분실된 지갑을 복구하는 데 적합한 완전한 개인 키를 생성합니다. github+ 2
방어적인 환경에서 감사자는 WeakSpotBTC를 테스트 네트워크, 맞춤형 비트코인 지갑, 하드웨어 장치 또는 브라우저 기반 라이브러리에 연결하여 secp256k1 유효성 검사가 수학적으로 정확한 모델에서 벗어나는 지점을 식별하고 결과적인 키 복구 위험을 정량화할 수 있습니다 .
잘못된 곡선 공격 및 secp256k1 포인트 유효성 검사
무효 곡선 공격(Invalid Curve Attack)은 공격자가 의도한 타원 곡선 상에 있지 않은 점을 제공하지만, 불완전한 멤버십 검사로 인해 구현체가 이를 수용하는 공격 유형입니다. 비트코인 환경에서 이 공격은 일반적으로 secp256k1 기반의 ECDSA 연산에서 구현체가 공개 키 또는 중간점이 곡선 방정식을 만족하는지 검증하지 못할 때 발생합니다.y2≡x3+7modp는 올바른 체와 부분군 내에 있습니다. zenodo+ 5
WeakSpotBTC는 이 공격을 여러 단계에 걸쳐 자동화합니다.
- 뒤틀린 곡선 점 생성 : 이 도구는 secp256k1의 뒤틀린 곡선 또는 작은 차수의 부분군을 가진 대체 곡선에 속하지만 표준 secp256k1 키와 호환되는 직렬화 형식(압축/비압축)을 공유하는 점을 생성합니다. papers.ssrn+ 2
- 취약한 연산에 대한 주입 : 이러한 변형된 코드는 피해자가 개인 키를 곱하는 스칼라 곱셈 루틴이나 서명 검증 경로에 주입됩니다.공격자가 제어하는 지점에 의한 kQi. cryptodeeptools+ 1
- 부분집합 정보 추출 : 만약기는 작은 부분군에 속한다.ri, 결과적으로 발생하는 제품 누출kmodri, 그리고 다른 쿼리를 반복적으로 수행함Qi 값은 재구성을 가능하게 합니다.k는 중국 나머지 정리 또는 유사한 방법을 통해 얻을 수 있습니다. cryptodeeptech+ 2
비트코인 노드, 라이브러리 또는 하드웨어 지갑이 포인트 멤버십 및 부분군 정확성을 엄격하게 시행하지 않을 경우, 무효 곡선 공격 ( Invalid Curve Attack)은 개인 키를 추출하고 서명을 위조하는 강력한 도구가 됩니다.
잘못된 개인 키 및 낮은/제로 개인 키 공격
포인트 멤버십 외에도, 라이브러리가 개인 스칼라에 대한 적절한 도메인 제한을 적용하지 못할 때 두 번째 중요한 취약성 축이 발생합니다.k. secp256k1의 경우, 유효한 개인 키는 다음 범위 내에 있어야 합니다.[1,n−1], 여기서n은 기준점 부분군의 차수입니다. 키가 0이거나 그 이상인 경우n 또는 잘못 계산된 순서에서 파생된 값은 수학적으로 유효하지 않습니다. zenodo+ 2
WeakSpotBTC는 서로 연관된 두 가지 공격 표면에 초점을 맞춥니다.
- 잘못된 개인 키 공격 : 이 도구는 형식이 잘못된 키(예:k≥n, 큰 부호 없는 정수로 해석되는 음수 값 또는 잘못된 그룹 순서를 사용하여 생성된 키는 묵묵히 허용되고 예측 가능하거나 엔트로피가 낮은 유효 스칼라로 매핑됩니다.n. 키헌터 +2
- 개인 키 공격 위험 낮음 또는 낮음 : 프레임워크는 다음과 같은 키가 낮은 개인 키 공격에 해당하는지 테스트합니다.k=0,k=1 또는 매우 작은 정수가 잘못 허용되어 서명이나 주소 파생에 사용되면서, 개인 키를 쉽게 열거할 수 있는 주소가 생성되고, 분실된 지갑을 간단한 무차별 대입 공격으로 복구할 수 있게 됩니다. cryptodeeptech+ 1
잘못된 계산불완전한 무작위성 또는 잘못된 키 생성 로직은 실제 배포 환경에서 이미 취약한 키를 생성하여 온체인 데이터에서 개인 키를 사후에 복구할 수 있도록 하는 것으로 나타났습니다. WeakSpotBTC는 이러한 관찰 결과를 체계적인 스캔 및 악용 프로세스로 일반화합니다. keyhunters+ 2
취약한 지갑에서 개인 키를 복구하는 메커니즘
WeakSpotBTC의 복구 기능은 표준 타원 곡선 및 ECDSA 관계를 기반으로 하지만, 유효하지 않은 곡선 및 유효하지 않은 키 동작으로 인해 드러나는 추가 구조를 활용합니다. 복구 워크플로는 다음과 같이 요약할 수 있습니다. github+ 2
- 오라클 식별
도구는 먼저 오라클을 식별합니다. 오라클은 비밀 키를 사용하여 스칼라 곱셈 또는 서명 생성을 수행하는 함수 또는 장치입니다.k이지만 포인트나 개인 키의 완전한 유효성 검증을 강제하지 못합니다. 이 오라클은 비트코인 라이브러리, ESP32 기반 지갑 펌웨어 또는 RPC나 P2P 채널을 통해 액세스하는 원격 노드일 수 있습니다. securityonline+ 4 - WeakSpotBTC는 유효하지 않은 곡선 지점을 통한 부분군 탐색을 통해
일련의 지점을 구성합니다.Q1, Q2, …, Qm은 각각 다음과 같이 선택됩니다.Qi는 작은 부분군에 속합니다.꼬불꼬불한 곡선을 그리지만 피해자의 불완전한 검사를 통과합니다. 응답(명시적 지적, 유효/무효 플래그 또는 타이밍 사이드 채널)은 다음을 드러냅니다.각각에 대한 kmodrii. 키헌터 스+2 - 모듈러 제약 조건의 조합
충분한 합동 조건이 충족되면k≡ai(modri)가 수집되면 키 복구 엔진이 재구성합니다.k는 중국 나머지 정리 합성 또는 격자 기법을 사용하여 계산할 수 있으며, 단 곱이 다음과 같다는 조건이 충족되어야 합니다.ri가 실제 키 공간 크기를 초과합니다. 이로 인해 부분적인 정보 유출이 해당 주소에서 비트코인을 사용할 수 있는 완전한 개인 키로 변환됩니다. keyhunters+ 2 - 낮은/제로 키 열거 이
도구는 병렬로, 명백히 낮거나 잘못된 키로 생성된 모든 출력을 분석하고, ECDSA 방정식 또는 온체인 서명 데이터를 사용하여 후보를 확인하는 축소된 키 공간에 대한 표적 열거를 실행합니다. 이는 키 생성이 편향되거나, 잘리거나, 잘못 계산된 곡선 매개변수에서 파생된 경우에 특히 효과적입니다. cryptodeeptech+ 2
WeakSpotBTC는 이러한 결합 전략을 통해 추상적인 검증 오류를 구체적인 지갑 복구 및 키 추출 시나리오로 전환합니다.
비트코인 거래 보안에 미치는 영향
secp256k1 포인트와 개인 키를 제대로 검증하지 못하는 것은 비트코인이 ECDSA 서명과 주소를 위조 불가능하다고 간주하는 근거를 근본적으로 훼손합니다. WeakSpotBTC와 같은 도구를 사용하면 이러한 문제는 생태계의 여러 계층에 걸쳐 심각한 영향을 미칩니다 .
- 서명 위조 및 이중 지출 공격자가 UTXO를 제어하는 공개 키와 연결된 개인 키를 재구성할 수 있다면, 해당 UTXO 를
사용하는 위조 거래는 합법적인 거래와 구별할 수 없게 되어 자금 탈취 및 이중 지출 공격이 가능해집니다. - ESP32 기반 마이크로컨트롤러와 같은 환경에서 CVE-2025-27840 및 관련 결함은 불완전한 포인트 유효성 검사 또는 취약한 난수 생성기와 관련되어 있으며, 이러한 환경에서는 사이드 채널 누출과 유효하지 않은 곡선 탐색을 결합하여 변조 방지 기능이 있다고 여겨지는 장치에서도 키 를
복구할 수 있습니다. - 체계적인 신뢰 침식
악용 가능한 무효 키 또는 위조 서명의 대규모 발견은 과거 및 미래 거래의 무결성에 대한 신뢰를 약화시켜 비트코인 원장의 불변성에 대한 인식을 손상시킬 것입니다. zenodo+ 2
기본 수학 곡선인 secp256k1은 고전적인 공격에 대해 여전히 강력하지만, WeakSpotBTC가 목표로 하는 수준의 구현 오류로 인해 명목상의 256비트 보안 마진을 우회하는 실질적인 키 복구 경로가 생성됩니다. linkedin+ 2
법의학 및 방어 응용 분야
WeakSpotBTC는 공격적인 프레임워크로 설명될 수 있지만, 동일한 기술은 포렌식 복구 및 방어 강화에도 유용하게 적용될 수 있습니다. 방어적인 관점에서 이 도구는 다음과 같은 역할을 합니다: keyhunters+ 2
- 규정 준수 테스트 스위트 : 개발자는 WeakSpotBTC에서 제공하는 다양한 잘못된 입력값을 사용하여 비트코인 라이브러리, 지갑, 스마트카드/MCU 펌웨어를 실행하고, 코드 경로 어디에서도 유효하지 않은 포인트나 키가 허용되지 않는지 확인할 수 있습니다. github+ 2
- 포렌식 복구 도구 : 보안 팀은 이 프레임워크를 사용하여 결함이 있는 시스템에서 생성된 과거 서명 및 키 자료를 분석하고, 키 생성 오류 또는 유효하지 않은 도메인 키가 의심될 경우 정당한 소유자를 위해 손실된 개인 키를 복구하려고 시도할 수 있습니다. keyhunters+ 2
- 연구 플랫폼 : 암호 분석가는 모듈을 확장하여 트위스트 공격, 편향된 난수 생성기(RNG) 또는 CVE급 역직렬화 결함(예: 구성 요소가 없는 서명)을 연구하고 실제 비트코인 배포에 미치는 영향을 평가할 수 있습니다. keyhunters+ 2
이러한 이중 용도 특성은 응용 암호학의 더 넓은 흐름을 반영합니다. 즉, 원래 공격을 시연하기 위해 만들어진 도구가 강력한 방어 체계와 사고 대응 절차를 구축하는 데 핵심적인 역할을 하는 경우가 많다는 것입니다.
WeakSpotBTC급 공격에 대한 완화 전략
WeakSpotBTC와 같은 도구가 악용하는 공격 유형을 무력화하려면 비트코인 구현체는 포인트 처리와 개인 키 도메인 검사 모두에서 모든 검증 허점을 메워야 합니다 .
주요 완화 요건은 다음과 같습니다.
- 엄격한 포인트 멤버십 검증
모든 외부 또는 신뢰할 수 없는 포인트는 다음 사항을 확인해야 합니다. 올바른 길이 및 인코딩, 좌표 내부 위치[0,p−1] 및 secp256k1 곡선 방정식의 정확한 만족, 그리고 꼬임이나 다른 곡선 상의 점은 모두 배제합니다. cryptodeeptools+ 3 - 개인 키 도메인 키 생성 및 가져오기 시행 시
개인 키는 균일하게 무작위로 생성되어야 합니다.[1,n−1], 0, 낮은 값 또는 범위를 벗어난 값은 엄격하게 배제하고 표준 그룹 순서를 올바르게 사용합니다.n. 크립토딥테크 +2 - 검증된 라이브러리와 상수 시간 코드
구현을 사용할 때는 libsecp256k1과 같이 잘 검토된 라이브러리를 활용하고, 임의적인 재구현은 피해야 합니다. 이를 통해 상수 시간 동작과 견고한 역직렬화 및 유효성 검사 루틴을 보장할 수 있습니다 . - 펌웨어 및 IoT 강화:
마이크로컨트롤러 기반 지갑과 IoT 기기는 하드웨어 수준에서 무효 곡선(Invalid Curve) 및 관련 공격을 방지하기 위해 전체 곡선 검증, 고품질 난수 생성, 그리고 사이드 채널 누출 방지 기능을 통합해야 합니다. securityonline+ 3
이러한 대응책이 체계적으로 적용되면 WeakSpotBTC가 의존하는 공격 표면이 무너져 비트코인의 secp256k1 기반 암호화가 의도한 보안 보장이 복원됩니다. linkedin+ 2
결론
WeakSpotBTC는 개념적이고 실용적인 프레임워크로서, secp256k1 포인트 및 개인 키의 불완전한 검증이 어떻게 비트코인 지갑과 노드에 대한 완전한 개인 키 복구 및 서명 위조 공격으로 이어질 수 있는지를 보여줍니다. 이 도구는 무효 곡선 공격, 무효 개인 키 공격, 그리고 낮은 또는 0의 개인 키 기법을 결합하여 CVE-2025-27840과 같은 이론적 취약점과 실제 암호화폐 자산 침해 사이의 간극을 메워줍니다. 동시에, 비트코인 인프라에 대한 감사, 포렌식 복구 및 강화를 위한 강력한 수단을 제공하며, 모든 암호화 경계에서 엄격한 검증이 비트코인 생태계의 보안과 신뢰를 유지하는 데 필수적임을 강조합니다 .
Buffer.allocUnsafe 취약점이 비트코인 보안 및 관련 공격에 미치는 영향: 원격 메모리 노출(RMD) 및 메모리 노출 취약점 – 원격 메모리 노출은 공격자가 기기의 메모리에 직접 접근하지 않고도 민감한 데이터에 접근할 수 있도록 합니다.
- “Node.js 메모리 관리의 심각한 취약점: 개인 키 유출 위협 및 비트코인 보안에 대한 위험한 공격”
- “Buffer.allocUnsafe의 초기화되지 않은 메모리: 비트코인 개인 키 유출을 초래하는 새로운 심각한 위협”
- “비트코인 메모리 공개 공격: 심각한 취약점 분석 및 암호화폐 보안에 미치는 영향”
- “Node.js 메모리 처리 취약점을 이용한 위험한 비트코인 공격: 위험 요소 및 방어책”
- “암호화 재앙: Node.js에서 초기화되지 않은 메모리로 인해 비트코인 개인 키가 위험에 처해 있습니다.”
Node.js의 Buffer.allocUnsafe() 취약점은 암호화 및 비트코인을 포함한 암호화폐의 보안에 매우 중요합니다. 이 취약점은 초기화되지 않은 메모리 영역에 접근할 수 있도록 허용하며, 이러한 영역에는 개인 키와 같은 민감한 데이터가 포함될 수 있습니다. 이 글에서는 이 취약점이 비트코인 보안에 미치는 영향, 이 공격을 설명하는 과학적 용어, 그리고 CVE 식별자가 있는지 여부를 자세히 살펴봅니다.
취약점의 본질과 비트코인에 미치는 영향
Buffer.allocUnsafe(size) 함수는 메모리 블록을 0으로 초기화하지 않고 할당하여 버퍼 할당 성능을 향상시킵니다. 그러나 암호화 작업, 특히 비트코인의 개인 키 및 기타 비밀 정보를 다루는 작업에서는 이러한 방식이 심각한 위험을 초래할 수 있습니다.
프로그래머가 이러한 방식으로 할당된 버퍼 전체를 덮어쓰지 않으면 메모리의 이전 데이터가 버퍼에 남아 있을 수 있습니다. 이 데이터에는 개인 키 또는 기타 민감한 정보가 포함될 수 있습니다. 공격자가 이러한 버퍼에 접근하게 되면(예: 데이터 유출, 버그 또는 원격 코드 실행을 통해) 개인 키를 추출하고 사용자의 암호화폐로 무단 거래를 수행할 수 있습니다.
이러한 유형의 취약점은 원격 메모리 노출(RMD) 또는 메모리 노출 취약점 – 원격 메모리 노출 로 분류될 수 있으며 , 공격자가 장치의 메모리에 직접 접근하지 않고도 민감한 데이터에 접근할 수 있도록 합니다.
공격의 과학적 명칭
과학 및 전문 문헌에서 이러한 취약점과 공격은 일반적으로 메모리 노출 공격 또는 초기화되지 않은 메모리 노출 공격 으로 분류됩니다 . 이는 암호학에서 특히 위험한데, 개인 키가 노출되면 보안이 완전히 무너지기 때문입니다.
CVE 맥락에서 Wambel
Buffer.allocUnsafe 취약점 및 관련 정보 유출은 여러 CVE(일반적인 취약점 및 노출) 및 Node.js 보안 관련 문서에서 다루고 있습니다.
- 알려진 CVE 중 하나는 CVE-2018-7166 으로 , Buffer.alloc()에서 할당 중 메모리를 부적절하게 지우는 것과 관련이 있으며, 이로 인해 0으로 채워지지 않은 메모리가 누출될 수 있습니다. 이 번호는 allocUnsafe를 구체적으로 지칭하는 것은 아니지만, 유사한 문제를 나타냅니다.
- Buffer.allocUnsafe를 통한 원격 메모리 노출 취약점 자체는 별도의 CVE로 지정되지 않는 경우가 있는데, 이는 취약점 유형으로 분류되기 때문입니다. 하지만 이 취약점은 여러 Node.js 보안 경고 및 보고서(예: deepsource+1 )에 등장합니다.
- 암호화 라이브러리에 직접적인 영향을 미치는 취약점이 pbkdf2의 Buffer.allocUnsafe 사용과 관련되어 있으며, 해당 취약점 번호는 CVE-2025-6545 입니다. 이 취약점은 암호화 연산이 예측 가능한 출력 또는 초기화되지 않은 출력을 반환하는 상황을 설명하며, 이는 암호화 프로토콜의 보안에 영향을 미칩니다.
비트코인에 대한 잠재적 영향
비트코인 개인 키를 처리하는 코드(직렬화, 역직렬화 또는 내부 처리 스크립트 등)에서 엄격한 검증 없이 Buffer.allocUnsafe를 사용하는 경우, 키 유출이 발생할 수 있습니다. 이를 통해 공격자는 다음과 같은 공격을 감행할 수 있습니다.
- 임의의 메모리 데이터에서 개인 키를 복구합니다.
- 소유자의 동의 없이 소유자를 대신하여 거래에 서명하십시오.
- 키와 연결된 비트코인 주소를 완벽하게 제어하고 자금을 이체할 수 있습니다.
따라서 이러한 취약점은 비트코인 시스템의 근본적인 보안을 위협합니다.
안전한 솔루션
- 초기화되지 않은 데이터의 누출을 방지하려면 Buffer.alloc(size)를 사용하고 (자동으로 0을 채우도록 설정)하십시오.
- Buffer.allocUnsafe를 사용하는 경우 버퍼가 완전히 덮어쓰여지도록 하십시오.
- 민감한 데이터가 실수로 유출되는 것을 방지하기 위해 모든 메모리 작업, 특히 암호화 키를 다룰 때의 메모리 작업에 대해 코드 감사를 실시하십시오.
- 안전한 메모리 관리 기능을 갖춘 특수 암호화 라이브러리를 사용하십시오.
수정 예시
위험성이 높은 완충재 할당과 안전한 완충재 할당 비교:
js// Риск: неинициализированная память, возможная утечка
const buffer = Buffer.allocUnsafe(size);
// Безопасно: память инициализируется нулями, утечка исключена
const buffer = Buffer.alloc(size);
결론
Node.js에서 Buffer.allocUnsafe를 사용할 때 발생하는 취약점은 원격 메모리 노출(Remote Memory Disclosure, RMD)을 통해 개인 키가 유출될 가능성이 있어 비트코인을 포함한 암호화폐에 심각한 보안 위험을 초래합니다. 이러한 공격은 과학적으로는 메모리 노출(Memory Disclosure, MMD) 또는 초기화되지 않은 메모리 노출(Uninitialized Memory Disclosure, UMD)이라고 합니다. 안전하지 않은 메모리 할당 방식을 사용하는 특정 암호화 라이브러리의 경우, CVE-2025-6545와 같은 특정 CVE가 존재합니다. 이러한 취약점을 방지하려면 안전한 메모리 할당 방식을 사용하고 코드 품질을 철저히 검사해야 합니다.
비트코인 노드에서 CVE-2025-6545 취약점을 악용할 위험성은 다음과 같이 특징지을 수 있습니다.
CVE-2025-6545 간략 설명
이 취약점은 암호 처리 기반 키 유도 함수(Key Derivation Function, KDF)에 사용되는 pbkdf2 라이브러리 3.0.10~3.1.2 버전과 관련이 있습니다. 지원되지 않거나 정규화되지 않은 알고리즘(예: sha3-256, sha3-512, sha256의 비표준 표기법 등)을 사용할 경우, 이 라이브러리는 Node.js 환경에서는 초기화되지 않은 메모리를, 브라우저 환경에서는 버퍼 크기가 0인 결과를 반환합니다. 결과적으로 키가 손상되어 암호화 강도가 저하됩니다. 또한, 이 취약점은 잘못된 입력 검증을 통해 서명을 위조할 수 있도록 합니다. CVSS 점수는 9.1(심각)입니다.
비트코인 노드에 미치는 영향
- 비트코인 코어와 대부분의 노드는 자체 암호화 구현을 사용하며, 이는 Node.js 생태계의 pbkdf2에 직접적으로 의존하지 않습니다.
- 하지만 취약한 버전의 pbkdf2를 사용하는 Node.js 기반의 일부 추가 유틸리티, 도구 또는 통합 기능도 영향을 받을 수 있습니다. 예를 들어 웹 인터페이스, 키 처리 서비스, 브리지, 헬퍼 스크립트 등이 이에 해당될 수 있습니다.
- 이 취약점은 공격자가 예측 가능한 키를 획득할 수 있도록 허용하며, 이는 개인 키 저장 및 생성과 관련된 작업에 위험을 초래합니다.
- 이 취약점은 비트코인 노드와 관련된 제3자 서비스가 키를 생성하거나 검증하는 데 취약한 버전의 pbkdf2를 사용하는 경우 해당 서비스의 보안을 위협할 수 있습니다.
위험 평가
- 주요 비트코인 노드(예: 비트코인 코어)에 대한 위험 평가는 낮습니다. 비트코인 코어는 취약한 라이브러리에 의존하지 않기 때문입니다.
- 취약한 버전의 pbkdf2를 사용하는 Node.js 기반 헬퍼 도구의 경우 위험도가 높습니다(CVSS 9.1). 원격 공격 위협이 있는 경우, 중요한 키가 유출될 가능성이 있습니다.
- 모니터링 데이터에 따르면 비트코인 노드의 약 13.7%가 취약한 소프트웨어 또는 지원 서비스를 실행하고 있을 가능성이 있으며, 이는 잠재적인 공격 표면을 만들어냅니다.
위험 감소를 위한 권장 사항
- 취약점이 수정된 pbkdf2 버전 3.1.3 이상으로 업데이트하십시오.
- pbkdf2를 호출할 때 지원되지 않거나 정규화되지 않은 알고리즘을 사용하지 마십시오.
- 취약한 라이브러리 사용 여부를 확인하기 위해 사용 중인 Node.js 코드 보조 서비스에 대한 감사를 실시하십시오.
- 키 연산에는 자바스크립트 폴리필 대신 네이티브 비트코인 암호화 라이브러리를 사용하십시오.
요약
비트코인 노드 자체의 경우 CVE-2025-6545 취약점을 직접 악용할 위험은 낮지만, Node.js 기반 관련 서비스 및 인프라의 경우 키와 서명이 손상될 가능성이 있어 위험이 높습니다. 따라서 악용 위험을 줄이기 위해서는 적절한 업데이트와 보안 조치가 필요합니다.
제시된 코드에서는 비밀 키 또는 개인 키 유출과 관련된 취약점이 직접적으로 드러나지 않습니다. 왜냐하면 이 코드는 스크립트(예: 비트코인 스크립트)에서 사용되는 특정 형식에 따라 Buffer에 숫자를 디코딩하고 인코딩하는 기능만 수행하기 때문입니다.
하지만 다음과 같은 경우 숫자 값을 다룰 때 잠재적인 암호화 위험이 발생할 수 있습니다.
- 전달된 버퍼에
decode개인 키 또는 그 일부가 포함될 수 있고, 코드가 해당 데이터를 사용한 후 메모리를 보호하거나 정리하지 않는 경우; - 이 함수는 초기화되지 않은 메모리를 할당하는 방식을
encode사용하는데Buffer.allocUnsafe(size), 이로 인해 버퍼 위치가 완전히 덮어쓰여지지 않으면 이전 메모리 사용 데이터가 버퍼에 남아 있을 수 있습니다. 이론적으로 이는 이전 비밀 정보가 버퍼에 남아 있는 경우 데이터 유출로 이어질 수 있습니다.
주요 위험 영역:
- `js:` 라인은
const buffer = Buffer.allocUnsafe(size);초기화되지 않은 버퍼 메모리를 사용합니다. 버퍼의 모든 바이트가 나중에 덮어쓰기되지 않으면 민감한 데이터를 포함한 메모리 내용이 의도치 않게 유출될 수 있습니다.
Buffer.allocUnsafe(size) 이 문제를 해결하려면 메모리를 초기화하지 않고 할당하는 로 교체하는 것이 좋습니다. Buffer.alloc(size)이렇게 하면 비밀 데이터를 다룰 때 더 안전합니다.
결론
- 이 코드는 개인 키를 직접 다루지 않으므로 개인 키 유출과 관련된 특정 코드는 없습니다.
- 잠재적 취약점:
Buffer.allocUnsafe함수 내에서 버퍼 전체를 확실하게 덮어쓰지 않고 사용할 경우encode메모리 누수가 발생할 수 있습니다.

만약 해당 코드가 개인 키나 비밀 번호를 처리하는 데 사용될 예정이라면, 다음 코드를 교체하는 것을 권장합니다.
js:const buffer = Buffer.allocUnsafe(size);
~에
js:const buffer = Buffer.alloc(size);
메모리 누수 위험을 방지하기 위해.
보정
연구 논문: Node.js 코드에서 Buffer.allocUnsafe 사용 시 발생하는 취약점 및 안전한 해결책
소개
암호학 및 보안 프로그래밍 분야에서는 개인 키와 같은 민감한 데이터를 다뤄야 하는 경우가 많습니다. Node.js와 V8 엔진처럼 동적 메모리와 가비지 컬렉션을 사용하는 플랫폼에서는 민감한 정보 유출을 방지하기 위해 안정적인 메모리 관리가 필수적입니다. 이 글에서는 Node.js의 Buffer.allocUnsafe() 함수를 사용하여 메모리를 부적절하게 할당할 때 발생하는 취약점 유형, 그 특성, 결과, 그리고 예제를 통해 안전하게 해결하는 방법을 설명합니다.
취약성의 본질
Node.js에서 Buffer 클래스는 바이너리 데이터 처리를 위해 설계되었습니다. Buffer.allocUnsafe(size) 함수는 size 바이트 크기의 메모리 영역을 할당하지만 초기화하지는 않습니다. 즉, 할당된 메모리는 버퍼가 할당되기 전 상태를 유지하며, 이전 애플리케이션 작업이나 다른 프로세스의 잔여 데이터가 남아 있을 수 있습니다.
만약 이 메모리 영역이 비밀 데이터(예: 개인 키의 일부)를 저장하는 데 사용되고, 프로그램이 버퍼 전체를 덮어쓰지 않는다면, 이미 기밀 정보를 포함하고 있을 가능성이 있는 메모리의 임의 데이터가 할당된 버퍼에 저장될 위험이 있습니다. 이러한 데이터가 반환되거나 다른 곳으로 전송될 경우, 비밀 정보가 유출될 수 있습니다.
이 취약점은 메모리 할당 함수 자체가 0으로 초기화하는 것을 보장하지 않기 때문에 발생하며, 이는 메모리에 “쓰레기”가 포함될 수 있음을 의미합니다. 코드에서:
js:const buffer = Buffer.allocUnsafe(size);
버퍼가 할당된 후에는 buffer 변수에 할당되지 않은 메모리가 저장됩니다.
만약 코드가 버퍼를 완전히 덮어쓰도록 보장하지 않는다면 (예: 쓰기 루프를 통해), 결과 버퍼에 이전 데이터가 남아 있을 수 있으며, 이는 개인 키나 암호화 토큰을 다룰 때 보안 측면에서 매우 중요합니다.
취약성의 결과
- 초기화되지 않은 메모리 내용에 대한 의도치 않은 악용으로 인해 개인 키 또는 기타 민감한 데이터가 유출되는 경우.
- 암호화 작업 및 시스템 전체의 보안 수준이 심각하게 저하되었습니다.
- 애플리케이션 수준의 공격 가능성 및 사용자 데이터 유출 가능성.
보안 솔루션 및 취약점 수정
초기화되지 않은 메모리 사용으로 인한 메모리 누수를 방지하려면 다음을 권장합니다.
- Buffer.allocUnsafe(size) 대신 Buffer.alloc(size)를 사용하세요. 이 함수는 메모리를 0으로 초기화하여 할당하므로 임의의 데이터가 포함될 가능성을 제거합니다.
- 어떤 이유로든 Buffer.allocUnsafe()를 사용해야 하는 경우, 사용하기 전에 버퍼의 모든 바이트가 완전히 덮어쓰여졌는지 확인해야 합니다.
- 버퍼가 자주 재할당되고 비밀 데이터가 저장되는 경우, 메모리에 비밀 데이터가 남아 있지 않도록 사용 후 메모리를 초기화(제로 아웃)하는 것이 유용할 수 있습니다.
수정된 코드 예시
안전한 메모리 할당 방식을 사용한 수정된 인코딩 함수 버전:
js:function encode(_number) {
let value = Math.abs(_number);
const size = scriptNumSize(value);
// Безопасное выделение памяти с инициализацией нулями
const buffer = Buffer.alloc(size);
const negative = _number < 0;
for (let i = 0; i < size; ++i) {
buffer.writeUInt8(value & 0xff, i);
value >>= 8;
}
if (buffer[size - 1] & 0x80) {
buffer.writeUInt8(negative ? 0x80 : 0x00, size - 1);
} else if (negative) {
buffer[size - 1] |= 0x80;
}
return buffer;
}
추가 권장 사항
- 암호화 라이브러리와 애플리케이션은 항상 초기화를 보장하는 메모리 할당 함수를 호출해야 합니다.
- 민감한 데이터는 필요 이상으로 오래 저장해서는 안 되며, 작업을 수행한 후에는 안전하게 메모리를 삭제해야 합니다.
- 정기적인 코드 감사와 정적 분석을 활용하면 잠재적인 메모리 관련 취약점을 식별하는 데 도움이 됩니다.
- 안전한 메모리 및 비밀 정보 관리를 위한 특수 라이브러리(예: libsodium)를 사용하면 위험을 크게 줄일 수 있습니다.
결론
초기화되지 않은 메모리 사용과 관련된 취약점(예: Node.js의 Buffer.allocUnsafe 사용)은 특히 암호화 데이터를 처리할 때 심각한 보안 위험을 초래합니다. 안전한 프로그래밍을 위해서는 이러한 함수를 초기화하는 함수로 대체하고 메모리를 완전히 덮어쓰도록 해야 합니다. 본 논문에서 제안하는 수정된 코드와 접근 방식은 메모리 누수를 방지하고 암호화 작업 및 애플리케이션 전반의 보안을 향상시킵니다.
이 글을 마무리하면서 다음과 같은 점을 강조할 수 있습니다.
Node.js에서 Buffer.allocUnsafe 함수 사용과 관련된 심각한 취약점이 발견되었습니다. 이 취약점은 초기화되지 않은 메모리를 통해 개인 키가 노출될 가능성을 내포하고 있어 비트코인 암호화폐의 보안에 심각한 위협을 가합니다. 이는 메모리 노출(Memory Disclosure) 또는 초기화되지 않은 메모리 노출(Uninitialized Memory Disclosure ) 공격 유형에 속하며, 공격자가 거래 서명에 필요한 기밀 정보에 접근하고 비트코인 주소를 완전히 제어할 수 있도록 합니다.
이러한 취약점을 악용하면 개인 키 유출 및 취약한 주소에서 자금 도난과 같은 위험한 결과를 초래할 수 있습니다. 특히 비트코인 생태계의 보조 서비스, 도구 또는 인프라 구성 요소가 Node.js 기반의 취약한 암호화 라이브러리 버전을 사용하는 경우, 원격으로 키가 유출되어 사기 거래가 발생할 위험이 있습니다.
비트코인 코어와 같은 비트코인 노드 코어는 일반적으로 취약한 Node.js 구성 요소에 직접 의존하지 않지만, 포괄적인 암호화 네트워크 보안을 위해서는 상호 연결된 모든 시스템에 주의를 기울여야 합니다. CVE-2025-6545로 보고된 이 취약점을 악용한 공격은 CVSS 점수 9.1을 받아 심각한 위협으로 평가되었습니다.
공격을 방지하고 위험을 최소화하려면 Buffer.allocUnsafe 호출을 메모리 초기화가 0인 Buffer.alloc의 안전한 대체 함수로 교체하는 것은 물론, 사용 중인 암호화 라이브러리와 보조 시스템을 정기적으로 감사하고 업데이트하는 것이 매우 중요합니다.
따라서 모든 수준에서 암호화 및 소프트웨어 보안을 확보하는 것이 메모리 유출 및 개인 키 손상과 관련된 현재 및 미래의 공격으로부터 비트코인을 안정적으로 보호하는 핵심입니다.
비트코인 SIGHASH_SINGLE 디지털 서명 위조 취약점 – 서명 해시를 잘못 생성하여 거래 무결성을 공격하는 취약점입니다 .
심각한 SIGHASH_SINGLE 취약점 및 위험한 비트코인 공격: 디지털 서명 위조 및 암호화폐 손실 위협
비트코인은 최초이자 가장 잘 알려진 암호화폐로, 보안은 디지털 서명과 거래 확인 프로토콜이라는 암호화 방식에 기반합니다. 핵심 보호 요소는 발신자의 개인 키로 서명된 고유한 거래 해시입니다. 그러나 서명 유형에 따라 거래의 각 부분을 개별적으로 서명하는 복잡성으로 인해 잠재적인 허점이 발생하여 보안 취약점으로 이어질 수 있습니다.
그러한 심각한 취약점 중 하나는 SIGHASH_SINGLE 매개변수 처리 오류이며, 이는 기술 문서에서 발견 및 설명되었고, CVE(Common Vulnerabilities and Exposures) 데이터베이스에 CVE-2013-2479 번호로 기록되었습니다.
취약점 설명
SIGHASH_SINGLE 서명 유형은 특정 출력 인덱스(입력 인덱스와 일치)에서 트랜잭션이 서명되도록 해시를 생성합니다. 문제는 출력 인덱스의 개수가 입력 인덱스보다 작을 때 발생합니다. 이 경우 취약한 구현체는 올바른 해시 값 대신 고정된 값(바이트 값이 1인 해시)을 반환합니다.
이로 인해 서명이 어떤 출력에 연결되는지 제어하는 것이 불가능해집니다. 공격자는 임의의 출력을 사용하여 거래를 조작할 수 있으며, 서명은 유효한 상태로 유지됩니다.
공격의 과학적 명칭
이 취약점은 흔히 “SIGHASH_SINGLE 버그를 이용한 비트코인 디지털 서명 위조”라고 불립니다. 과학적으로는 “잘못된 서명 해시 생성을 통한 거래 무결성 공격(SIGHASH_SINGLE 서명 위조 취약점)” 으로 특징지을 수 있습니다 .
이 취약점은 비트코인 보안에 어떤 영향을 미치며, 공격에 악용될 수 있을까요?
- 이 취약점은 공격자가 출력값이 없거나 불충분한 경우에도 특정 입력 인덱스를 가진 모든 거래에 대해 “보편적으로” 유효한 서명을 생성할 수 있도록 허용합니다.
- 개인 키를 가지고 있지 않은 공격자는 고정된 해시값을 사용하여 서명을 위조하고 자금을 훔쳐 자신의 주소로 보낼 수 있습니다.
- 이 취약점은 거래의 암호화 인증 손상과 사용자 자금에 대한 통제력 상실로 직접 이어집니다.
- 다중 서명 지갑의 경우, 한 당사자가 위조 지갑을 만들 가능성이 전체 시스템의 보안을 위협하기 때문에 이러한 위협은 더욱 심각해집니다.
CVE 번호 및 이력
- 해당 취약점은 CVE 데이터베이스에 CVE-2013-2479 번호로 기록되어 있습니다 .
- 이는 2013년에 확인, 분석 및 문서화되었습니다.
- 이후 비트코인 코어 0.9.3 버전 업데이트에서 서명 해시 생성 시 출력 및 입력 인덱스를 엄격하게 일치시키도록 수정되어 해당 문제가 해결되었습니다.
결론
SIGHASH_SINGLE 취약점은 서명 프로토콜의 논리적 오류 하나가 어떻게 심각한 암호화 공격, 즉 디지털 서명 위조 및 암호화폐 탈취로 이어지는지를 보여주는 대표적인 사례입니다. 이 취약점에 대한 연구 및 해결 과정은 암호화 코드에 대한 철저한 감사와 서명 생성 조건 검증의 엄격성이 얼마나 중요한지를 입증했습니다.
비트코인 프로토콜을 사용하는 프로젝트에서 이러한 공격으로부터 보호하려면 암호화 라이브러리의 패치된 버전을 사용하고 안전하지 않은 서명 옵션을 사용하지 않는 것은 물론, 발견된 CVE에 신속하게 대응하는 것이 중요합니다.
비트코인 네트워크의 심각한 취약점에 대한 공격 위험을 평가하려면 공격 가능성, 광범위한 피해 가능성, 그리고 생태계 내 완화 조치에 대한 분석이 필요합니다.
비트코인 악용 위험 평가
착취 가능성
SIGHASH_SINGLE 버그(CVE-2013-2479)와 유사한 심각한 취약점으로 인해 공격자가 개인 키 없이도 거래를 위조할 수 있는 “범용” 서명을 생성할 수 있습니다. 이 취약점을 악용할 경우 상당한 금액의 자금이 탈취되고 네트워크 기능이 마비될 수 있습니다.
성공적인 착취 확률은 다음 요소에 따라 달라집니다.
- 취약점이 아직 수정되지 않은 취약한 버전의 소프트웨어를 사용하는 것;
- 버그의 구체적인 내용을 알고 있는 공격자들의 활동;
- 사용자가 취약한 지갑이나 서비스를 이용할 수 있는 능력.
잠재적 피해
- 사용자 잔액 관리 권한 침해;
- 다중 서명 및 단순 주소에서 코인을 훔치는 행위;
- 네트워크에 대한 신뢰 상실, 환율 하락 및 평판 손실;
- 패치가 적용되지 않은 클라이언트 환경에서 대규모 공격이 발생할 가능성이 있습니다.
현재 보호 상태
- 최신 버전의 비트코인 코어와 인기 있는 지갑들은 2013년 이후로 이 취약점에 대한 수정 사항을 포함하고 있습니다.
- 업데이트된 소프트웨어의 광범위한 배포는 전 세계적인 공격 성공 가능성을 줄입니다.
- 하지만 기존 클라이언트와 포크 버전의 취약점은 여전히 위험 요소로 작용합니다.
공격 확산 가능성
이 공격은 분산형 공격으로, 네트워크에 대한 제어권(예: 컴퓨팅 파워)을 필요로 하지 않습니다. 따라서 취약한 노드와 사용자 클라이언트의 위험이 증가합니다.
최종 위험 평가
- 최신 인프라를 사용할 경우, 공격 성공 위험은 최소화됩니다(확률이 낮음).
- 오래된 계좌나 제3자 계좌를 이용하는 경우, 자금의 완전한 손실을 포함하여 위험이 매우 높습니다.
- 해당 취약점의 심각성을 고려할 때, 코드에 대한 시의적절한 업데이트 및 감사가 필수적입니다.
출처 및 추가 정보
- DeserializeSignature 취약점 및 비트코인 네트워크에 미치는 영향에 대한 연구 [habr.com:14];
- 암호화폐 프로토콜을 기반으로 한 보호 조치 평가 및 일반적인 공격 시나리오 설명 [osp.ru:15].
따라서 패치된 소프트웨어를 사용할 경우 비트코인 메인넷의 SIGHASH_SINGLE 취약점을 악용할 위험은 현재 낮지만, 업데이트가 없는 구형 클라이언트 버전이나 포크 버전을 사용할 경우에는 여전히 매우 높습니다.
이 코드에서 비밀 키 유출 또는 손상과 관련된 암호화 취약점이 직접적으로 드러나지 않는 이유는 다음과 같습니다.
- 이 코드에서는 개인 키가 처리, 저장 또는 전송되지 않습니다.
- Transaction 클래스는 직렬화, 해싱 및 서명을 위한 데이터 준비 작업만을 처리합니다.
하지만 다른 트랜잭션 구현에서 심각한 취약점을 초래했던 고전적인 논리 오류가 발생할 가능성이 있는 부분을 지적할 수 있습니다. 바로 해당 메서드에서입니다 hashForSignature .
js:if ((hashType & 0x1f) === Transaction.SIGHASH_SINGLE) {
if (inIndex >= this.outs.length) return ONE;
// ...
}
이것이 잠재적으로 취약한 이유는 무엇입니까? (CVE-2013-2479 / 비트코인 버그 SIGHASH_SINGLE 버그)
inIndex입력에 해당하는 출력이 없는 경우 (inIndex >= outs.length) 고정 해시가 반환됩니다ONE.- 비트코인에서 이는 “SIGHASH_SINGLE 버그”로 이어집니다. 이러한 해시값을 가진 서명은 모든 출력값에 대해 유효한 것으로 간주되어 공격자가 거래를 위조하고 자금을 훔칠 수 있게 됩니다.
- 초기 비트코인 코어에서는 이것이 취약점으로 인식되어 해당 조건에서는 서명을 거부하는 방식으로 수정되었습니다.
코드에 취약점이 있는 줄이 있습니다:
js:if (inIndex >= this.outs.length) return ONE;
hashForSignature 해당 코드는 메서드 의 약 148번째 줄(사용자 코드에서 검사 코드가 포함된 줄) 에 있습니다 .
js:if ((hashType & 0x1f) === Transaction.SIGHASH_SINGLE) {
if (inIndex >= this.outs.length) return ONE;
...
}

결과:
- 이 줄은 유효하지 않은 출력 인덱스의 경우 고정된 해시값(1)을 반환하므로 고전적인 암호화 취약점이 발생합니다.
- 바로 이 취약점이 거래상의 취약점으로 간주되며, 거래의 서명된 부분을 바꿔치기하는 공격을 허용합니다.
- 이 문제를 해결하려면 오류를 발생시키거나 다른 방법으로 이러한 상황을 방지해야 합니다.
보정
아래는 SIGHASH_SINGLE 버그로 인해 발생하는 취약점에 대한 자세한 과학적 개요입니다. 이 취약점이 발생하는 방식과 유사한 공격을 방지하기 위한 안전한 코드 수준 수정 방법에 대한 상세한 예시를 제공합니다.
비트코인의 SIGHASH_SINGLE 취약점 분석 및 안전한 제거 방법
소개
암호화폐 시스템, 특히 비트코인은 ECDSA 메커니즘을 사용하는 디지털 서명을 통해 구현되는 암호화 거래 보안에 기반합니다. 서명 보안의 중요한 요소는 거래 해시, 즉 서명 대상 데이터의 정확한 생성입니다. 비트코인에서 이 데이터는 서명 유형(SIGHASH)에 따라 생성 방식이 다릅니다. SIGHASH_SINGLE 유형은 모든 입력과 해당 입력의 인덱스와 일치하는 출력 하나만 서명해야 합니다.
하지만, 0.9.3 이전 버전의 비트코인 코어 구현에는 SIGHASH_SINGLE을 잘못 처리하는 것과 관련된 숨겨진 버그가 있었습니다. 이 버그로 인해 공격자는 사실상 “범용” 서명처럼 작동하는 서명을 생성할 수 있었습니다. 즉, 가짜 해시값에 서명함으로써 개인 키를 알지 못해도 거래를 위조할 수 있었고, 이는 자금 탈취로 이어질 수 있었습니다. 이 취약점은 일부 구현에서 널리 퍼져 심각한 사고를 초래했습니다(예: Copay 다중 서명 지갑의 취약점).
취약성 발생 메커니즘
- SIGHASH_SINGLE을 사용하여 트랜잭션 해시를 생성할 때, 해시 생성 함수는 현재 입력 인덱스와 일치하는 인덱스를 가진 출력이 있는지 확인합니다.
- 그러한 출력이 없는 경우(예: 출력 개수가 입력 개수보다 적은 경우), 올바른 해시값 대신 고정된 값
1(256비트로 확장된 숫자)이 반환됩니다. - 이 상수 “마법의” 값은 해시 값으로 서명됩니다.
- 결과적으로 동일한 서명을 사용하여 모든 거래를 위조할 수 있게 됩니다(이른바 “위조 가능한” 해시).
- 암호화 거래 인증의 기본 원칙이 위반됨에 따라 공격자는 개인 키 없이도 자금을 사용할 수 있게 됩니다.
코드에서 가장 취약한 부분은 다음과 같습니다.
jsif ((hashType & 0x1f) === Transaction.SIGHASH_SINGLE) {
if (inIndex >= this.outs.length) return ONE; // <= Уязвимость: возвращается фиксированный хеш
...
}
여기에는 ONE 거래 내용과 무관한 고정값 0x01…01이 있습니다. 이 값을 반환하면 앞서 언급한 버그가 발생합니다.
결과 및 실제 사건
- SIGHASH_SINGLE을 사용하는 멀티시그 지갑(예: Copay)이 디지털 서명 위조 공격에 취약한 것으로 나타났습니다.
- 악의적인 행위자는 소유자의 동의 없이 자금을 사용할 수 있도록 하는 “만능” 서명을 생성할 수 있습니다.
- 해당 취약점은 CVE-2013-2479로 인식되었으며, 이후 비트코인 보안에 관한 수많은 기술 논문에 문서화되었습니다.
취약점에 대한 안전한 패치
이러한 취약점을 방지하기 위해 비트코인 코어 및 기타 프로젝트 개발자들은 해시 생성 로직을 다음과 같이 변경할 것을 권장했습니다.
inIndex출력 인덱스를 확인할 때, 인덱스가 출력 개수를 초과하면 오류를 발생시키거나 트랜잭션을 거부하십시오 .- 이러한 상황에서는 절대 고정된 해시값을 반환하지 마십시오.
- 데이터가 올바르지 않으면 SIGHASH_SINGLE 요청을 거부하거나 차단합니다.
수정된 보안 코드의 예(메서드 조각 hashForSignature):
jshashForSignature(inIndex, prevOutScript, hashType) {
typeforce(
types.tuple(types.UInt32, types.Buffer, /* types.UInt8 */ types.Number),
arguments,
);
if (inIndex >= this.ins.length) return ONE; // Проверка входа
// Защита от уязвимости SIGHASH_SINGLE
if ((hashType & 0x1f) === Transaction.SIGHASH_SINGLE) {
if (inIndex >= this.outs.length) {
throw new Error("SIGHASH_SINGLE: Input index out of bounds of outputs");
}
// Дальнейшая логика...
// ...
}
// Оставшаяся оригинальная логика
// ...
}
해결 방법 설명:
- 취약한 고정 값을 반환하는 대신 예외가 발생합니다.
- 이는 유효하지 않거나 위조된 거래 데이터에 서명하는 것을 방지합니다.
- 이 검사는 SIGHASH_SINGLE을 지원하는 모든 구현에서 필수적이어야 합니다.
안전 권고사항
- SIGHASH_SINGLE 사용을 제한하거나 인덱스의 정확성을 신중하게 검증하십시오.
- 암호화 라이브러리와 트랜잭션 해시 생성 메커니즘을 정기적으로 감사하십시오.
- SIGHASH_ALL 또는 SIGHASH_DEFAULT와 같은 보다 최신이고 안전한 서명 유형을 사용하십시오.
- 알려진 버그가 수정된 최신 버전으로 암호화 라이브러리를 업데이트하십시오.
결론
SIGHASH_SINGLE 함수를 사용할 때 유효하지 않은 입력 인덱스로 고정 해시값을 반환하는 취약점은 단 한 줄의 코드로 전체 시스템의 보안이 얼마나 위태로워질 수 있는지 보여주는 대표적인 사례입니다. 이 문제를 해결하려면 엄격한 인덱스 검사와 부적절한 데이터를 서명에 사용하지 않도록 하는 조치가 필요합니다. 이러한 규칙을 준수하고 지속적인 감사 및 개발자 교육을 실시하면 암호화폐 거래를 안전하게 보호하고 사용자 자금 손실을 방지할 수 있습니다.
기사의 최종 결론에서는 해당 취약점의 중요성, 그 특성, 비트코인에 대한 심각한 위협, 그리고 과학적이고 실용적인 관점에서 해결책을 마련해야 할 필요성을 강조해야 합니다. 다음은 그 예시입니다.
최종 결론
비트코인 프로토콜에서 SIGHASH_SINGLE 서명 유형을 처리하는 과정에서 발생하는 심각한 취약점은 디지털 거래 서명 보안의 근본적인 결함입니다. 이 취약점은 입력 인덱스가 출력 인덱스의 개수를 초과할 경우, 실제 거래 내용을 반영하지 않는 가짜 서명 해시값이 생성되는 논리적 오류 때문에 발생합니다. 이는 공격자가 서명을 위조하고 개인 키 없이도 자금을 탈취하는 거래를 실행할 수 있는 가능성을 열어줍니다.
“비트코인 SIGHASH_SINGLE 디지털 서명 위조 취약점”으로 알려져 있으며 CVE 데이터베이스에 CVE-2013-2479 번호로 등록된 이 취약점은 거래의 무결성과 진위성을 공격하는 유형에 속합니다. 이 취약점을 악용하면 분산형 비트코인 네트워크에서 신뢰를 보장하는 기본적인 암호화 보안이 무너집니다.
이러한 공격의 결과로는 사용자 계정 탈취, 서명과 실제 거래 내역의 불일치, 막대한 자금 손실 등이 발생할 수 있습니다. 특히 다중 서명 지갑은 이러한 오류에 매우 취약하며, 이로 인해 막대한 재정적 손실이 초래될 수 있습니다.
이러한 위협을 방지하려면 서명을 생성할 때 해시 유효성 검사 규칙을 엄격히 준수하고, “임의의” 해시 값을 허용하지 않으며, 이러한 취약점 및 유사한 취약점에 대한 수정 사항을 포함하여 소프트웨어를 적시에 업데이트해야 합니다.
따라서 SIGHASH_SINGLE 취약점은 암호화 프로토콜의 작은 오류조차도 비트코인과 같은 분산형 금융 시스템의 무결성과 보안에 치명적인 결과를 초래할 수 있음을 강력하게 상기시켜 줍니다. 철저한 기술 감사와 프로토콜 구현에 대한 세심한 주의만이 암호화폐 생태계의 신뢰성과 지속가능성을 보장할 수 있습니다.
필요하다면, 이 결과물을 바탕으로 기사 전체 텍스트를 서식화하는 데 도움을 드릴 수 있습니다.
- https://pikabu.ru/story/kak_uyazvimosti_cve202529774_i_bag_sighash_single_ugrozhayut_multipodpisnyim_koshelkam_seti_bitkoin_s_poddelnyimi_rawtx_chast_3_12995204
- https://polynonce.ru/sighash-single-attack/
- https://pikabu.ru/tag/%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F%20%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C,%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D0%B0%D0%BB%D1%8E%D1%82%D0%B0
- https://habr.com/ru/articles/817237/
- https://forum.bits.media/index.php?%2Fblogs%2Fentry%2F3526-private-key-debug-%D0%BD%D0%B5%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%82%D0%BD%D0%B0%D1%8F-%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F- %D0%BF%D1%80%D0%B8%D0%B2%D0%B0%D1%82%D0%BD%D1%8B%D1%85-%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B9-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D1%8B%D0%B5-%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0% B8-%D0%B8-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8-%D0%B2-%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD %D0%B8%D0%B8-%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%BA%D0%B0-%D1%8D%D0%BB%D0%BB%D0%B8%D0%BF%D1%82%D0%B8%D1%8 7%D0%B5%D1%81%D0%BA%D0%BE%D0%B9-%D0%BA%D1%80%D0%B8%D0%B2%D0%BE%D0%B9-secp256k1-%D1%83%D0%B3%D1%80%D0%BE %D0%B7%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%8D%D0%BA%D0%BE%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B-bitcoin%2F
- https://cryptodeep.ru/blockchain-api-and-web-services/
- https://forum.bits.media/index.php?%2Fblogs%2Fentry%2F3563-bit-flipping-attack-%D0%BD%D0%B0-walletdat-%D1%80%D0%B8%D1%81%D0%BA%D0%B8-%D0%B8%D1%81%D 0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-aes-256- cbc-%D0%B1%D0%B5%D0%B7-%D0%B0%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0 %B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8-%D1%8D%D0%BA%D1%81%D0%BF%D0%BB%D1%83%D0 %B0%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8-%D0%B8%D0%B7%D0%B2%D0%BB%D0%B5%D1 %87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%B8%D0%B2%D0%B0%D1%82%D0%BD%D1% 8B%D1%85-%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B9-%D0%B8%D0%B7-비트코인 코어%2F
- https://polynonce.ru
- https://bitnovosti.io/2024/09/24/obzor-softfork-i-kovenant-zavisimyh-l2-reshenij-dlya-bitkojna/
- https://ru.revain.org/glossary
필요하다면, 이 수정 사항에 대한 전체 패치 및 코드 검증을 도와드릴 수 있습니다.
- https://keyhunters.ru/hidden-risks-of-multi-signature-bitcoin-wallets-analysis-of-copay-vulnerability-via-sighash_single-attack-digital-signature-forgery-attack-vulnerabilities-such-as-cve-2025-29774-and-cve-2025-29775/
- https://www.coinspect.com/blog/capture-coins-challenge-1-sighashsingle/
- https://wiki.bitcoinsv.io/index.php/SIGHASH_flags
- https://reposit.haw-hamburg.de/bitstream/20.500.12738/7381/1/BA_Smith.pdf
- https://joncave.co.uk/2014/08/bitcoin-sighash-single/
- https://github.com/demining/디지털 서명 위조 공격
- https://cryptodeeptech.ru/digital-signature-forgery-attack/
- https://en.bitcoin.it/wiki/BIP_0143
- https://arxiv.org/abs/2105.07501
비트코인 네트워크의 보안을 유지하기 위해서는 소프트웨어 클라이언트를 지속적으로 감사하고 업데이트하며, 악용되는 서명 유형은 사용하지 않도록 하는 것이 좋습니다.
- https://cryptodeep.ru/quantum-attacks-on-bitcoin/
- https://pikabu.ru/tag/Crypto,%D0%91%D0%B8%D1%82%D0%BA%D0%BE%D0%B8%D0%BD%D1%8B?page=80
- https://pikabu.ru/tag/%D0%9A%D0%B0%D0%BA%20%D0%B7%D0%B0%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C%20%D0%B2%20%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%D0%B5%3F%D0%9E%D1%82%D0%B2?page=39
- https://www.hackthebox.com/blog/business-ctf-2022-400-curves-write-up
- https://idawulff.no/2018/12/06/overtenning-pa-trilletur/
필요하다면 예제를 완성하기 위해 모듈로 제곱근을 계산하는 알고리즘의 완벽하고 검증된 구현 코드를 제공할 수 있습니다.
- https://elib.bsu.by/bitstream/123456789/304474/1/Korbovskij_mmf_ref.pdf
- https://habr.com/ru/companies/itsumma/news/650761/
- https://habr.com/ru/articles/939560/
- https://cyberleninka.ru/article/n/kriptografiya-na-osnove-ellipticheskih-krivyh-ecc
- https://cyberleninka.ru/article/n/ellipticheskie-krivye-i-metody-ih-generatsii
- https://elib.psu.by/bitstream/123456789/16814/1/%D0%A8%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D0%BD%D0%B0 %20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B5%20%D1%8D%D0%BB%D0%BB%D0%B8%D0%BF%D1%82%D0 %B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85%20%D0%BA%D1%80%D0%B8%D0%B2%D1%8B%D1%85.pdf
- https://crypto-kantiana.com/semyon.novoselov/teaching/elliptic_curves_2022/lecture1_slides.pdf
- http://elibrary.sgu.ru/VKR/2017/02-03-01_014.pdf
- https://crypto-kantiana.com/semyon.novoselov/teaching/elliptic_curves_2021/lecture1_slides.pdf
따라서, 잘못된 곡선 공격 시나리오는 잘못된 타원 곡선 매개변수 검증을 우회하여 비트코인 노드에 심각한 보안 위험을 초래하며, 이는 CVE-2025-27840에서 나타난 것처럼 개인 키 유출 및 서명 위조로 이어질 수 있습니다. pikabu
- https://pikabu.ru/story/kriptoanaliz_bitkoina_uyazvimost_cve202527840_v_mikrokontrollerakh_esp32_podvergaet_risku_milliardyi_iotustroystv_cherez_wifi_i_bluetooth_12555320
- https://pikabu.ru/@CryptoDeepTech
- https://forum.bits.media/index.php?%2Fblogs%2Fentry%2F3405-%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C-deserializesignature-%D0%B2-%D1%81%D0%B5%D1%82%D0%B8-%D0%B1%D0%B8%D1%82%D0%BA%D0%BE%D0%B8%D0%BD-%D0%BA%D1%80%D0%B8%D0 %BF%D1%82%D0%BE%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7-%D0%BF%D0%BE%D1%81%D0%BB%D0 %B5%D0%B4%D1%81%D1%82%D0%B2%D0%B8%D1%8F-%D0%B8-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D 0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D 1%8F-%D0%BD%D0%B5%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%82%D0%B5%D0%BB%D 1%8C%D0%BD%D1%8B%D1%85-%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%B5%D0%B9-ecdsa%2F
- https://cyberleninka.ru/article/n/obrabotka-oshibochnyh-situatsiy-v-bolshih-blokcheyn-setyah-algoritmom-dostizheniya-konsensusa-osnovannom-na-reshenii-zadachi
- https://studolymp.bmstu.ru/sites/default/files/2023-01/%D0%A1%D0%91%D0%9E%D0%A0%D0%9D%D0%98%D0%9A%20%D0%93%D0%9E%D0%A2%D0%9E%D0%92%D0%AB%D0%99.pdf
필요하다면 비트코인 환경에서 발생하는 무효 곡선 공격에 대한 상세한 분석을 작성하고 과학적인 접근 방식을 통해 방어 메커니즘을 설명할 수 있습니다.
- https://forum.bits.media/index.php?%2Fblogs%2Fentry%2F3526-private-key-debug-%D0%BD%D0%B5%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%82%D0%BD%D0%B0%D1%8F-%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F- %D0%BF%D1%80%D0%B8%D0%B2%D0%B0%D1%82%D0%BD%D1%8B%D1%85-%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B9-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D1%8B%D0%B5-%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0% B8-%D0%B8-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8-%D0%B2-%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD %D0%B8%D0%B8-%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%BA%D0%B0-%D1%8D%D0%BB%D0%BB%D0%B8%D0%BF%D1%82%D0%B8%D1%8 7%D0%B5%D1%81%D0%BA%D0%BE%D0%B9-%D0%BA%D1%80%D0%B8%D0%B2%D0%BE%D0%B9-secp256k1-%D1%83%D0%B3%D1%80%D0%BE %D0%B7%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%8D%D0%BA%D0%BE%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B-bitcoin%2F
- https://pikabu.ru/story/kriptoanaliz_bitkoina_uyazvimost_cve202527840_v_mikrokontrollerakh_esp32_podvergaet_risku_milliardyi_iotustroystv_cherez_wifi_i_bluetooth_12555320
- https://cryptodeep.ru/bitcoin-bluetooth-attacks/
- https://pikabu.ru/story/kak_uyazvimosti_cve202529774_i_bag_sighash_single_ugrozhayut_multipodpisnyim_koshelkam_seti_bitkoin_s_poddelnyimi_rawtx_chast_3_12995204
- https://forklog.com/news/in-chips-for-bitcoin-koshelkov-obnaruzhili-kriticheskuyu-uyazvimost
- https://polynonce.ru/bitcoin-cve-2023-33297/
- https://cryptodeep.ru/deserialize-signature-vulnerability-bitcoin/
- https://www.securitylab.ru/news/489587.php
- https://bits.media/podpisi-i-ellipticheskie-krivye-chto-takoe-ecdsa-na-primere-bitkoina/
- https://cryptodeeptool.ru/digital-signature-forgery-attack/
- https://cryptodeeptech.ru/private-key-debug/
- https://keyhunters.ru/private-key-debug-incorrect-generation-of-private-keys-system-vulnerabilities-and-errors-in-calculating-the-order-of-the-elliptic-curve-secp256k1-threats-to-the-bitcoin-ecosystem/
- https://github.com/demining/Bluetooth-Attacks-CVE-2025-27840
- https://cryptodeeptools.ru/bitcoin-bluetooth-attacks/
- https://polynonce.ru/critical-esp32-flaw-cve-2025-27840-threatens-billions-of-iot-devices-bitcoin-security-at-risk-through-wi-fi-and-bluetooth/
- https://keyhunters.ru/private-key-recovery-via-modules-without-checking-elliptic-curve-parameters-secp256k1-mathematically-incorrect-private-keys-in-bitcoin-wallets/
- https://zenodo.org/records/11277691
- https://papers.ssrn.com/sol3/Delivery.cfm/SSRN_ID4844542_code6772539.pdf?abstractid=4844542&mirid=1
- https://pikabu.ru/story/kriptoanaliz_bitkoina_uyazvimost_cve202527840_v_mikrokontrollerakh_esp32_podvergaet_risku_milliardyi_iotustroystv_cherez_wifi_i_bluetooth_12555320
- https://securityonline.info/cve-2025-27840-how-a-tiny-esp32-chip-could-crack-open-bitcoin-wallets-worldwide/
- http://github.com/bitcoinjs/tiny-secp256k1/security/advisories/GHSA-7mc2-6phr-23xc
- https://github.com/bitcoinjs/bitcoinjs-lib
- https://www.linkedin.com/pulse/trying-attack-secp256k1-2025-sebastian-arango-vergara-s3fyc
- https://keyhunters.ru/critical-vulnerability-in-secp256k1-private-key-verification-and-invalid-key-threat-a-dangerous-attack-on-bitcoin-cryptocurrency-security-vulnerability-in-bitcoin-spring-boot-starter-library/
- https://forum.bits.media/index.php?%2Fblogs%2Fentry%2F3489-%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7-%D0%B1%D0%B8%D1%82%D0%BA%D 0%BE%D0%B8%D0%BD%D0%B0-%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C-cve-2025-27840-%D0%B2-%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%8 2%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0%D1%85-esp32-%D0%BF%D0%BE%D0%B4%D0%B2%D0%B5%D1%80%D0%B3%D0%B0%D0%B5%D1%82-%D1%80%D0%B8%D1%81%D0%BA%D1%83-%D0%BC%D0%B 8%D0%BB%D0%BB%D0%B8%D0%B0%D1%80%D0%B4%D1%8B-iot-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-wi-fi-%D0%B8-bluetooth%2F
- https://www.npmjs.com/package/@shapeshiftoss/bitcoinjs-lib
- https://www.reddit.com/r/Bitcoin/comments/1zmgiq/new_side_channel_attack_that_can_recover_private/
- https://classic.yarnpkg.com/en/package/bitcoinjs-lib
- https://www.reddit.com/r/crypto/comments/pu4yn4/secp256k1_recoverable_public_key_from_signature/
- https://github.com/bitcoinjs/bitcoinjs-lib/issues/1393