Coldcard 취약점은 왜 위험했을까? 하드웨어 지갑 시드·엔트로피 보안 분석
Coldcard 취약점 사례를 통해 하드웨어 지갑에서 시드 생성과 엔트로피가 왜 중요한지 살펴보고, 펌웨어 업데이트와 새 시드 이전이 필요한 이유를 설명합니다.

Coldcard 취약점 사건은 하드웨어 지갑이 인터넷과 분리돼 있다는 사실만으로 비트코인이 안전해지는 것은 아니라는 점을 보여줍니다. 하드웨어 지갑의 핵심은 개인 키를 오프라인에 보관하는 것뿐 아니라, 그 개인 키의 출발점인 시드를 충분히 예측하기 어렵게 생성하는 데 있습니다.
시드 생성 과정의 무작위성이 약해지면 공격자가 기기를 직접 훔치지 않아도 가능한 시드를 계산해 자산에 접근할 위험이 생길 수 있습니다.
Coldcard는 비트코인 전용 하드웨어 지갑 가운데 널리 알려진 제품입니다. 일반적으로 하드웨어 지갑은 개인 키를 인터넷에 연결된 컴퓨터나 휴대전화에서 분리해 보관하기 때문에 온라인 악성코드와 원격 공격 위험을 줄이는 데 도움이 됩니다.
하지만 이번 사건에서 문제가 된 것은 보관 단계보다 더 앞선 시드 생성 단계였습니다.
이번 Coldcard 사건에서는 무엇이 문제였을까?
보안 연구와 관련 보도에 따르면 일부 Coldcard 펌웨어에서 시드를 생성할 때 사용되는 난수 생성 과정에 문제가 있었던 것으로 분석됐습니다.
하드웨어 지갑이 새로운 지갑을 만들려면 공격자가 예측할 수 없는 매우 큰 무작위 숫자가 필요합니다. 이 숫자를 기반으로 BIP-39 시드 문구와 개인 키가 만들어집니다.
그런데 특정 펌웨어에서는 하드웨어 난수 생성기가 의도한 방식으로 사용되지 않고, 보다 예측 가능한 소프트웨어 기반 값이 대신 사용될 수 있는 문제가 있었던 것으로 보고됐습니다. 관련 분석에서는 장치의 일련번호와 내부 시간 정보처럼 완전히 비밀이라고 보기 어려운 값이 난수 생성 과정에 영향을 줄 수 있었다고 설명합니다.
문제의 본질은 단순한 프로그램 오류가 아닙니다. 개인 키가 만들어지는 출발점의 무작위성이 약해졌을 가능성입니다.
엔트로피란 무엇일까?
하드웨어 지갑 보안에서 엔트로피(Entropy)는 예측하기 어려운 무작위성의 정도를 의미합니다.
예를 들어 동전을 한 번 던지면 앞면과 뒷면 두 가지 결과가 있기 때문에 약 1비트의 엔트로피를 얻을 수 있습니다. 충분히 많은 무작위 선택이 쌓이면 공격자가 모든 가능성을 계산하기 어려워집니다.
BIP-39 기반 지갑에서는 일반적으로 매우 큰 엔트로피를 이용해 시드를 생성합니다.
Coldcard의 현재 보안 구조에서는 시드 생성 과정에 여러 난수 소스를 사용하는 방식이 적용됩니다. 중요한 것은 하나의 숫자를 임의로 만드는 것이 아니라 공격자가 현실적으로 예측하기 어려운 수준의 무작위성을 확보하는 것입니다.
즉 하드웨어 지갑의 보안은 “시드 문구가 24단어인가?”만으로 결정되지 않습니다. 그 24단어가 얼마나 예측하기 어려운 방식으로 만들어졌는가가 더 중요합니다.
왜 약한 난수는 심각한 문제가 될까?
정상적인 256비트 수준의 무작위 키 공간은 현실적으로 모든 경우의 수를 대입하기 어려울 정도로 큽니다.
하지만 실제 가능한 시드 후보 수가 크게 줄어들면 상황은 달라집니다. 공격자가 가능한 후보를 충분히 제한할 수 있다면 고성능 컴퓨팅 자원을 이용해 후보 시드를 대량으로 생성하고 실제 비트코인 주소와 비교하는 공격 가능성이 커질 수 있습니다.
이번 Coldcard 사건에서도 보안 분석은 특정 펌웨어의 난수 생성 문제가 시드 후보 공간을 약화시킬 가능성을 지적했습니다.
따라서 개인 키 자체의 암호 알고리즘이 깨진 것이 아니라도 개인 키를 만드는 난수가 약하면 결과적으로 자산 보안이 무너질 수 있습니다.
비트코인 자체가 해킹된 것은 아니다
이번 사건을 “비트코인이 해킹됐다”고 표현하면 정확하지 않습니다. 비트코인 네트워크의 합의 알고리즘이나 SHA-256, 타원곡선 서명 자체가 깨진 것이 아닙니다.
문제는 특정 하드웨어 지갑의 시드 생성 과정에 있었습니다. 이 차이는 매우 중요합니다.
비트코인 네트워크가 정상적으로 작동하고 있어도 사용자의 개인 키가 노출되거나 예측 가능해지면 공격자는 정상적인 서명을 만들어 BTC를 이동할 수 있습니다.
블록체인에서는 해당 거래가 원래 소유자가 만든 것인지 공격자가 만든 것인지 구별하지 못합니다. 올바른 개인 키로 서명된 거래이기 때문입니다.
실제 피해 의심 사례가 중요한 이유
이번 사건에서 중요한 것은 취약점이 이론적인 연구 수준에서만 논의된 것이 아니라, 실제 온체인 자금 이동과 연결된 의심 사례가 보고됐다는 점입니다.
초기 분석에서는 취약한 Coldcard 환경과 연관된 것으로 추정되는 다수의 비트코인 주소에서 상당한 규모의 BTC가 이동한 사례가 보고됐고, 이후에도 추가적인 의심 거래가 발견됐습니다.
하지만 블록체인에서 특정 주소의 BTC가 이동했다는 사실과 그 주소가 실제로 취약한 Coldcard에서 생성됐다는 사실은 같은 의미가 아닙니다.
온체인 분석에서는 여러 주소의 생성 특성과 자금 이동 패턴을 비교해 관련성을 추정할 수 있지만, 블록체인에는 사용자가 어떤 하드웨어 지갑이나 어떤 펌웨어로 시드를 만들었는지가 기록되지 않습니다.
따라서 추가 유출 의심 사례가 발견되더라도 피해 규모를 확정된 숫자로 받아들이기보다는 취약점과 연결된 것으로 추정되는 온체인 거래의 범위로 이해하는 것이 적절합니다.
이 사례가 보안 측면에서 중요한 이유는 피해액 자체보다 취약한 환경에서 생성된 시드가 시간이 지나도 계속 위험할 수 있다는 점입니다.
펌웨어가 수정되더라도 기존 시드가 자동으로 새로 생성되는 것은 아니기 때문에, 시드 자체의 엔트로피가 약했다면 사용자가 별도의 조치를 취하기 전까지 동일한 문제가 남을 수 있습니다.
단순 펌웨어 업데이트만으로 해결되지 않는 이유
소프트웨어 취약점이 발견되면 보통 “최신 버전으로 업데이트하세요.”라는 권고가 나옵니다. 하지만 이번 문제는 조금 다릅니다.
이미 취약한 방식으로 시드가 생성됐다면 펌웨어를 업데이트해도 기존 시드 자체는 그대로입니다.
예를 들어 공격자가 계산 가능한 후보군 안에 기존 시드가 들어 있다면 장치를 최신 버전으로 바꿔도 그 시드의 엔트로피가 다시 높아지는 것은 아닙니다.
그래서 공개된 대응 권고의 핵심은 수정된 환경에서 새로운 시드를 만들고 기존 BTC를 새 주소로 이동하는 것입니다.
하드웨어 지갑에서 펌웨어와 시드는 서로 다른 보안 요소입니다. 펌웨어는 장치가 어떻게 동작하는지를 결정하지만, 이미 만들어진 시드는 이후 펌웨어를 업데이트한다고 해서 더 강한 무작위성을 갖게 되지 않습니다.
따라서 문제가 시드 생성 단계에 있었다면 핵심은 장치 소프트웨어만 교체하는 것이 아니라 안전한 환경에서 새로운 시드를 생성하는 것입니다.
다른 하드웨어 지갑으로 시드를 가져가면 안전해질까?
그렇지 않습니다. 이 부분은 특히 중요합니다.
취약한 Coldcard에서 생성된 시드를 Ledger나 Trezor, 다른 Coldcard에 그대로 입력한다고 가정해보겠습니다. 새 장치는 안전할 수 있지만 시드 자체는 동일합니다.
공격자가 그 시드를 계산할 수 있다면 어느 하드웨어에서 사용하든 동일한 개인 키가 만들어집니다.
따라서 취약한 시드 + 새 하드웨어 지갑은 근본적인 해결책이 아닙니다. 필요한 것은 새로운 충분한 엔트로피로 새로운 시드 자체를 생성하는 것입니다.
주사위를 이용한 시드 생성은 왜 등장할까?
Coldcard는 사용자가 실제 주사위를 굴려 엔트로피를 추가하거나 직접 시드를 생성할 수 있는 기능을 제공합니다.
6면체 주사위 한 번은 약 2.585비트의 엔트로피를 제공합니다. 충분한 수준의 엔트로피를 만들려면 여러 번의 독립적인 주사위 굴림이 필요하며, Coldcard는 시드 길이에 따라 필요한 최소 횟수를 안내하고 있습니다.
예를 들어 128비트 수준의 엔트로피를 확보하려면 약 50번, 256비트 수준에서는 약 99번의 독립적인 주사위 굴림이 필요합니다.
이 방식의 장점은 제조사가 제공한 난수 생성기에만 의존하지 않고 사용자가 직접 외부 엔트로피를 추가할 수 있다는 점입니다.
하지만 주사위 방식도 아무렇게나 하면 안전하지 않습니다. 예측 가능한 패턴으로 숫자를 입력하거나 실제로 주사위를 굴리지 않고 임의로 숫자를 선택하면 충분한 엔트로피가 만들어지지 않을 수 있습니다.
따라서 중요한 것은 사람이 임의로 숫자를 생각하는 것이 아니라 실제 무작위 물리 과정에서 값을 얻는 것입니다.
하드웨어 지갑이 인터넷과 분리됐는데 어떻게 원격으로 털릴 수 있을까?
하드웨어 지갑을 직접 인터넷에 연결하지 않았는데도 자산이 빠져나갔다는 점이 이상하게 느껴질 수 있습니다.
하지만 개인 키를 계산할 수 있다면 장치 자체에 접근할 필요가 없습니다.
공격자는 자신이 계산한 시드 후보에서 비트코인 주소를 생성합니다. 그 주소가 블록체인에 존재하는 실제 주소와 일치하면 해당 시드에서 개인 키도 만들 수 있습니다.
그 뒤 공격자는 자신의 컴퓨터에서 정상적인 비트코인 거래에 서명해 자산을 이동할 수 있습니다.
즉 하드웨어 지갑 → 공격자가 접속한 것이 아니라 약한 시드 → 공격자가 동일한 개인 키를 재생성하는 구조입니다.
그래서 엔트로피 문제가 특히 위험합니다.
‘에어갭’도 모든 공격을 막지는 못한다
하드웨어 지갑에서 Air-gap은 USB나 인터넷 연결을 최소화해 공격 표면을 줄이는 방식입니다. Coldcard도 MicroSD나 QR 등 연결을 줄이는 사용 방식을 지원합니다.
에어갭은 분명 보안에 도움이 될 수 있습니다. 하지만 이미 생성된 개인 키가 예측 가능하다면 네트워크 격리만으로 해결할 수 없습니다.
오프라인 지갑 역시 기기나 소프트웨어 자체에 문제가 있거나 키 생성 과정이 취약하다면 개인 키 보안이 영향을 받을 수 있습니다.
따라서 Air-gap = 완전한 보안이 아니라 Air-gap = 특정 공격 경로를 줄이는 보안 계층으로 이해해야 합니다.
최신 하드웨어의 난수 생성 구조는 어떻게 다를까?
Coldcard의 Mk4 보안 구조에 대한 공식 설명에서는 시드 생성 과정에 MCU와 두 개의 Secure Element가 제공하는 난수를 함께 사용하고, 이를 암호학적 방식으로 혼합하는 구조를 설명하고 있습니다.
여러 독립적인 난수 소스를 사용하는 이유는 하나의 난수 생성기에 문제가 생겼을 때 전체 시드 보안이 한 번에 무너지지 않도록 하기 위해서입니다.
현재 Coldcard 제품군은 Secure Element와 검증 가능한 펌웨어, 에어갭 기능, 외부 주사위 엔트로피 등을 주요 보안 요소로 사용하고 있습니다.
다만 이것 역시 “최신 모델이므로 절대 취약하지 않다”는 의미는 아닙니다.
보안은 새로운 코드가 추가되고 새로운 공격 방법이 발견될 때마다 계속 검증해야 하는 과정입니다.
펌웨어가 왜 중요한가?
하드웨어 지갑은 물리적인 장치이지만 실제 동작 대부분은 펌웨어가 결정합니다.
펌웨어는 시드를 생성하고, 개인 키를 관리하고, 거래 내용을 해석하고, 사용자가 승인한 거래에 서명합니다.
따라서 하드웨어 칩 자체가 안전하더라도 펌웨어에서 잘못된 로직을 사용하면 보안 문제가 발생할 수 있습니다.
이번 사건에서도 핵심은 하드웨어 지갑이라는 물리적 장치보다 난수 생성 과정에 영향을 준 펌웨어 동작이었습니다.
이 때문에 하드웨어 지갑을 평가할 때는 제품의 금속 케이스나 Secure Element 인증만 보는 것이 아니라 펌웨어 공개 여부, 업데이트 이력, 외부 보안 연구, 취약점 공개 절차도 함께 살펴봐야 합니다.
오픈소스 펌웨어는 왜 중요할까?
코드가 공개돼 있으면 독립적인 개발자와 보안 연구자가 구현을 검토할 수 있습니다. Coldcard의 펌웨어도 공개 저장소를 통해 확인할 수 있고 지속적인 업데이트가 이루어집니다.
오픈소스가 자동으로 안전을 보장하는 것은 아닙니다. 코드가 공개돼 있어도 아무도 특정 버그를 발견하지 못할 수 있습니다.
하지만 최소한 제조사가 주장하는 보안 기능이 실제 코드에서 어떻게 구현됐는지 외부에서 검증할 가능성을 제공합니다.
따라서 하드웨어 지갑에서 오픈소스는 완전한 안전을 의미하는 인증이 아니라 검증 가능성과 투명성을 높이는 하나의 요소로 보는 것이 적절합니다.
하드웨어 지갑에서 공급망 보안도 중요하다
시드 생성 이외에도 하드웨어 지갑에는 또 다른 위험이 있습니다. 바로 공급망 공격입니다.
사용자가 공식 제조사에서 받기 전에 기기가 조작될 수 있기 때문입니다. 예를 들어 공격자가 미리 시드를 생성해 넣어둔 기기를 판매하고 사용자가 그 시드를 그대로 사용하도록 유도할 수도 있습니다.
따라서 하드웨어 지갑에서는 공식 판매처 이용, 제품 봉인 상태 확인, 기기 진위 확인, 기기에서 직접 새 시드 생성 등이 중요합니다.
하드웨어 지갑을 구입했을 때 이미 복구 문구가 종이에 적혀 있거나 외부에서 제공된 시드를 사용하라고 안내한다면 그대로 사용해서는 안 됩니다.
시드 문구를 안전하게 보관하는 것도 별개의 문제다
완벽하게 안전한 하드웨어 지갑에서 충분한 엔트로피로 시드를 만들었더라도 사용자가 시드를 사진으로 찍거나 클라우드에 저장하면 보안은 무너질 수 있습니다.
시드 문구를 확보한 사람은 대부분의 경우 장치 없이도 지갑을 복구할 수 있습니다.
따라서 시드는 휴대전화 사진, 이메일, 클라우드 메모, 메신저 같은 온라인 공간에 저장하지 않는 것이 중요합니다.
하드웨어 지갑은 개인 키를 보호하는 장치이지만 사용자의 백업 습관까지 자동으로 보호해주지는 않습니다.
멀티시그는 이런 위험을 줄일 수 있을까?
멀티시그는 여러 개의 독립적인 개인 키 가운데 일정 개수 이상의 서명이 있어야 BTC를 이동할 수 있도록 하는 방식입니다.
예를 들어 2-of-3 멀티시그라면 세 개의 키 가운데 두 개가 필요합니다. 서로 독립적으로 만들어진 시드를 서로 다른 장치에 보관한다면 한 장치의 시드 생성 문제가 발생해도 나머지 키가 보호되는 구조를 만들 수 있습니다.
하지만 여기에도 조건이 있습니다. 세 지갑의 시드를 동일한 부모 시드에서 모두 파생했다면 하나의 루트가 손상됐을 때 여러 키가 함께 위험해질 수 있습니다.
따라서 멀티시그에서는 각 키를 독립적인 엔트로피로 생성하는 것이 중요합니다.
Coldcard 사용자가 확인해야 할 것
이번 사건을 기준으로는 단순히 “내 Coldcard가 몇 세대인가?”만 확인해서는 충분하지 않습니다.
더 중요한 것은 시드를 언제, 어떤 펌웨어 환경에서 생성했는지입니다.
영향을 받을 가능성이 있는 환경에서 만들어진 시드를 계속 사용하고 있다면 최신 펌웨어 설치 여부와 별개로 시드 자체의 안전성을 확인해야 합니다.
대응이 필요한 경우에는 수정된 최신 환경에서 완전히 새로운 시드를 생성하고, 새로운 수신 주소를 확인한 뒤 기존 자산을 이동하는 방식이 중요합니다.
새 지갑으로 이동할 때는 먼저 소액을 전송해 정상적으로 입금되는지 확인한 뒤 나머지 자산을 이동하는 방식도 실수를 줄이는 데 도움이 될 수 있습니다.
또 기존 시드를 다른 장치에 복원하는 것만으로는 취약성이 사라지지 않습니다. 시드 자체를 교체해야 합니다.
실제 대응이 필요한 사용자는 기사나 SNS에서 전달되는 단편적인 정보보다 Coinkite의 최신 공식 보안 공지와 해당 기기의 펌웨어 안내를 우선 확인하는 것이 중요합니다.
하드웨어 지갑을 평가할 때 확인해야 할 7가지
첫째, 시드 생성 방식입니다.
난수는 어디서 얻고 여러 엔트로피 소스를 혼합하는지 확인합니다.
둘째, 펌웨어입니다.
코드 공개 여부와 보안 업데이트 이력을 살펴봅니다.
셋째, Secure Element 구조입니다.
개인 키가 일반 MCU와 분리되어 보호되는지 확인합니다.
넷째, 외부 엔트로피 지원입니다.
주사위 등 사용자가 직접 무작위성을 추가할 수 있는지 봅니다.
다섯째, 거래 확인 방식입니다.
기기 화면에서 목적지 주소와 금액을 직접 검증할 수 있는지 확인합니다.
여섯째, 공급망 보호입니다.
기기 진위 확인과 변조 탐지 절차가 있는지 살펴봅니다.
일곱째, 취약점 대응입니다.
문제 발생 시 제조사가 어떤 방식으로 공지하고 수정하는지 확인합니다.
Coldcard 사건에서 가장 중요한 것은 ‘해킹 횟수’가 아니다
이번 사건을 1차·2차·3차 공격이라는 숫자로 보는 것보다 더 중요한 것이 있습니다.
왜 공격자가 하드웨어 지갑을 직접 손에 넣지 않고도 개인 키를 얻을 가능성이 생겼는가입니다. 핵심은 시드 생성에 필요한 엔트로피였습니다.
하드웨어 지갑은 인터넷과 개인 키를 분리해 많은 온라인 공격을 어렵게 만듭니다. 하지만 생성된 개인 키 자체가 충분히 무작위적이지 않다면 이 보호 구조의 출발점이 흔들릴 수 있습니다.
또 펌웨어 업데이트가 완료됐다고 해서 기존에 취약하게 생성된 시드까지 자동으로 안전해지는 것도 아닙니다.
따라서 하드웨어 지갑 보안에서 중요한 질문은 “이 지갑은 인터넷에 연결돼 있는가?” 하나가 아닙니다.
보다 중요한 질문은 “개인 키는 어떻게 만들어졌고, 그 과정의 무작위성을 실제로 신뢰할 수 있는가?”입니다.
Coldcard 사건은 하드웨어 지갑 보안을 단순한 오프라인 보관 기술이 아니라 시드 생성 → 키 보관 → 거래 서명 → 백업 → 펌웨어 업데이트까지 이어지는 전체 과정으로 봐야 한다는 점을 보여주는 사례입니다.
면책 조항: 본 콘텐츠는 비트코인 하드웨어 지갑과 개인 키 보안 구조를 이해하기 위한 정보 제공 목적으로 작성되었으며 특정 하드웨어 지갑 제품의 구매·사용 또는 비트코인의 매수·매도를 권유하지 않습니다.
spthsld




댓글 0
첫 댓글을 남겨보세요.