HomeZ - 배너 홈 이탈콜드카드 시드 취약점으로 인해 1억 1,200만 달러 상당의 비트코인이 도난당했다

콜드카드 시드 취약점으로 인해 1억 1,200만 달러 상당의 비트코인이 도난당했다

해커로부터 비트코인 프라이빗 키를 지키기 위해 만들어진 하드웨어 지갑이 이제는 일부 키가 이미 노출되었을 수 있다고 자사 고객에게 알리고 있다. Coldcard 지갑의 제조사인 Coinkite는 공격자가 버튼 입력만 추적해 프라이빗 키를 재구성할 수 있게 했던 Coldcard 시드 취약점을 막기 위해 새 펌웨어를 배포했다. 이 수정은 새 지갑이 시드 문구를 생성하는 방식을 강화하지만, 동시에 또 다른 일을 한다. 소유자들로 하여금 불편한 진실과 마주하게 만드는 것이다. 패치 이전에 생성된 시드라면, 펌웨어를 업데이트해도 그 시드는 안전해지지 않는다.

핵심 요약

  • Coinkite는 Coldcard Mk4 및 Mk5 기기용 펌웨어 5.6.1과 Coldcard Q용 1.5.1Q를 배포하며, 새 시드가 물리적 랜덤성을 반드시 섞어 사용하도록 요구하고 있다.
  • 새 시드 생성에는 이제 최소 65번의 키 입력, 육면체 주사위 50번 굴리기, 또는 128번의 동전 던지기가 기기 엔트로피와 결합되어야 한다.
  • 취약한 펌웨어에서 생성된 시드는 업데이트 이후에도 그대로 노출된 상태로 남으며, 영향을 받은 소유자는 새 시드를 만들고 자금을 옮겨야 한다.
  • Block의 독립 분석에 따르면, 취약성의 영향 범위는 Coinkite의 공식 권고가 인정하는 것보다 더 넓을 수 있다.

Coinkite, 익스플로잇 이후 Coldcard 시드 생성 강화

Coinkite가 침해에 대응하는 방식은 더 이상 Coldcard가 기기 내부 랜덤성만으로 시드를 생성하지 못하게 하는 펌웨어 재구축이다. 회사는 목요일자 블로그 글에서 이 업데이트를 공개하며 Mk4 및 Mk5 기기 소유자에게는 5.6.1 버전을, Coldcard Q 소유자에게는 1.5.1Q 버전을 설치하라고 안내했다. 두 버전 모두 8월 20일에 배포되었으며, Coinkite는 모든 사용자에게 지체 없이 업그레이드할 것을 촉구하고 있다.

새 펌웨어 버전과 물리적 랜덤성 요구 사항

핵심 변경 사항은 설명은 간단하지만 실제로는 상당히 중요하다. 모든 새 시드는 이제 Coldcard의 보안 요소와 하드웨어 난수 생성기에서 가져오는 기기 엔트로피에 더해, 사람이 제공하는 랜덤성을 결합해야 한다. 이는 최소 65번의 키 입력을 예측 불가능한 간격으로 수행하거나, 육면체 주사위 50번 굴리기, 또는 동전 128번 던지기를 의미한다. 논리는 단순하다. 기기의 내부 난수 생성기가 다시 실패하거나 조작되더라도, 사람 손에서 나오는 외부 엔트로피가 결과 시드를 여전히 예측 불가능하게 유지해 준다는 것이다.

이 문제가 중요한 이유는, 원래의 결함이 시드 요청을 조용히 결정론적 MicroPython 폴백 코드로 우회시킬 수 있는 코드에서 비롯되었기 때문이다. 이 폴백은 0으로 정의되었지만 활성화된 것으로 처리된 기능 플래그에 의해 트리거되었다. 다시 말해, 지갑이 생성한다고 주장한 랜덤성이 항상 광고만큼 랜덤하지는 않았던 것이다. 그리고 Block의 기술 검토에 따르면, 버튼 입력을 추적하는 공격자는 그 예측 가능한 패턴으로부터 프라이빗 키를 역공학할 수 있었다.

왜 기존 시드는 여전히 노출 상태인가

새 펌웨어를 설치해도 이미 존재하는 시드는 전혀 고쳐지지 않는다. 이것이 Coinkite가 이제 고객에게 전달하고 있는 냉정한 현실이며, 이 이야기에서 가장 즉각적인 재정적 이해관계가 걸린 부분이다. 영향을 받은 펌웨어 버전에서 생성된 시드는, 그 시드를 사용하는 지갑이 이후에 업데이트되었는지와 무관하게, 패치 이전과 마찬가지로 오늘도 여전히 추측 가능하다.

Coinkite의 공식 노출 목록에는 4.0.1에서 4.1.9 사이 버전의 Mk2 및 Mk3 펌웨어, 5.6.0 이전의 Mk4 및 Mk5 표준 펌웨어와 6.6.0X 이전의 Edge 펌웨어, 그리고 1.5.0Q 이전의 Q 표준 펌웨어와 6.6.0QX 이전의 Edge 펌웨어가 포함된다. Block의 자체 분석은 경계선을 조금 더 과거로 확장해 Mk2 및 Mk3의 4.0.0 버전도 위험 구간에 포함시키고 있다. 이는 Coinkite가 제시한 경계 안에 있어 안전하다고 생각하는 일부 소유자가 실제로는 그렇지 않을 수 있음을 의미한다.

마이그레이션 단계와 주사위 50회 예외

Coinkite의 마이그레이션 가이드는 직설적이다. 지갑의 시드가 비공개 50회 주사위 예외를 사용해 생성된 것이 아니라면, 영향을 받은 사용자는 새 시드 문구를 만들고, 그에 해당하는 백업과 지갑 지문을 검증한 뒤, 하드웨어 자체에서 직접 목적지 주소를 인증하고, 소액 테스트 트랜잭션을 보낸 다음에야 비로소 이전 시드에 묶인 모든 잔액을 옮겨야 한다.

한 가지 지침이 반복되는 데에는 이유가 있다. 기존 지갑을 복제하거나 복원하는 것은 새 시드를 만들지 않는다. Coinkite는 이 지름길이 근본적인 취약점을 그대로 남겨둔다고 명시하고 있다. 번거로운 주사위 굴리기와 키 입력 과정을 피하기 위해 단순히 백업을 복원하려는 사람은, 사실상 노출된 프라이빗 키를 그대로 유지하는 셈이다.

Coldcard는 하드웨어 랜덤성을 완전히 건너뛰고, 대신 12단어 시드에는 50회, 24단어 시드에는 99회의 주사위 굴리기에만 의존하는 고급 “주사위 굴리기 전용” 모드도 제공한다. 이는 이제 기본값으로 요구되는 혼합 엔트로피 흐름과는 별개의, 더 엄격한 경로다.

Coldcard 시드 취약성의 범위는 얼마나 깊은가?

이 결함과 관련된 재정적 피해는 더 이상 이론적인 문제가 아니다. Coinkite는 일부 고객이 심각한 손실을 입었고, 수사 기관이 조사 중이라고 인정했지만, 자체적으로 검증된 피해자 수나 총 손실 규모는 공개하지 않았다.

확인된 손실과 공식 인정 사이의 이 간극은 주목할 만하다. 공개된 수치는 Coinkite가 아니라 독립 연구자들이 제시한 것이며, Block이 제시한 더 넓은 취약성 경계는 회사의 권고가 실제로 위험에 처한 지갑 수를 과소평가하고 있을 수 있음을 시사한다. 하드웨어 지갑이 프라이빗 키를 보관하는 가장 안전한 장소라는 전제 위에 세워진 업계에서, 공격자가 버튼 입력 타이밍만으로 키를 재구성할 수 있게 한 결함은 단순한 버그 수정이 아니라 심각한 평판 및 기술적 문제다.

시드 생성 외에도, 새 펌웨어는 서명 및 트랜잭션 검증을 강화한다. USB 인터페이스를 임시 PSBT 해시와 연계하고, 서명을 적용하기 전에 트랜잭션 데이터를 검증하며, 기본 설정으로 SIGHASH_SINGLE 연산을 차단하고, USB 파일 전송을 현재 암호화된 세션으로 제한하며, 펌웨어 파일 길이를 검증한다. Coinkite는 지속적인 RNG 오류 중단, 부팅 시 하드웨어 RNG 연결 검사, 더 강한 Delta Mode 격리, 새로운 활성 지갑 백업 동작을 추가했다. 회사는 이번 검토를 타깃 소스 분석, 실제 기기 RNG 경로 테스트, 주사위 경로 추적이 가능한 재현 빌드라고 설명하지만, 수정된 모든 바이너리에 대한 완전한 감사를 수행했다고까지는 말하지 않는다.

시점 또한 지갑 소유자에게 또 다른 우려를 더한다. 마이크로소프트는 별도로 USB 드라이브를 악용해 암호화폐 지갑에 침투할 수 있는 CryptoBandits 악성코드에 대해 경고했는데, 이는 하드웨어 지갑 보안이 펌웨어만으로는 충분하지 않다는 점을 상기시킨다.

FAQ

새 Coldcard 펌웨어 업데이트는 어떤 변화를 도입했는가?

펌웨어 업데이트 5.6.1과 1.5.1Q는 새 지갑 시드가 65번의 키 입력, 50번의 주사위 굴리기, 또는 128번의 동전 던지기를 기기 엔트로피와 결합한 필수 물리적 랜덤성을 포함하도록 요구한다.

영향을 받은 펌웨어 버전에서 생성된 기존 Coldcard 시드는 업데이트 후 안전한가?

아니다. 영향을 받은 펌웨어에서 생성된 기존 시드는 여전히 취약하며, 업데이트된 펌웨어를 설치해도 안전해지지 않는다. 영향을 받은 사용자는 새 시드를 생성하고 자금을 마이그레이션해야 한다.

사용자는 기존 지갑을 복제하거나 복원해 지갑을 안전하게 만들 수 있는가?

아니다. 기존 지갑을 복제하거나 복원해도 새 시드가 생성되지 않는다. 보안을 위해서는 새 시드를 생성하는 것이 필수적이다.

시드가 50회 주사위 예외 조건을 충족하는 경우 사용자는 무엇을 해야 하는가?

시드가 비공개 50회 주사위 예외 조건을 충족하는 사용자는 Coinkite의 가이드에 따르면 반드시 마이그레이션할 필요는 없을 수 있다. 다만 자신의 시드가 해당 조건을 충족하는지 확신이 없다면, 노출된 것으로 간주하고 대응하는 편이 더 안전하다.

{“@context”:”https://schema.org”,”@type”:”FAQPage”,”mainEntity”:[{“@type”:”Question”,”name”:”새 Coldcard 펌웨어 업데이트는 어떤 변화를 도입했는가?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”펌웨어 업데이트 5.6.1과 1.5.1Q는 새 지갑 시드가 65번의 키 입력, 50번의 주사위 굴리기, 또는 128번의 동전 던지기를 기기 엔트로피와 결합한 필수 물리적 랜덤성을 포함하도록 요구한다.”}},{“@type”:”Question”,”name”:”영향을 받은 펌웨어 버전에서 생성된 기존 Coldcard 시드는 업데이트 후 안전한가?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”아니다. 영향을 받은 펌웨어에서 생성된 기존 시드는 여전히 취약하며, 업데이트된 펌웨어를 설치해도 안전해지지 않는다. 영향을 받은 사용자는 새 시드를 생성하고 자금을 마이그레이션해야 한다.”}},{“@type”:”Question”,”name”:”사용자는 기존 지갑을 복제하거나 복원해 지갑을 안전하게 만들 수 있는가?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”아니다. 기존 지갑을 복제하거나 복원해도 새 시드가 생성되지 않는다. 보안을 위해서는 새 시드를 생성하는 것이 필수적이다.”}},{“@type”:”Question”,”name”:”시드가 50회 주사위 예외 조건을 충족하는 경우 사용자는 무엇을 해야 하는가?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”시드가 비공개 50회 주사위 예외 조건을 충족하는 사용자는 Coinkite의 가이드에 따르면 반드시 마이그레이션할 필요는 없을 수 있다. 다만 자신의 시드가 해당 조건을 충족하는지 확신이 없다면, 노출된 것으로 간주하고 대응하는 편이 더 안전하다.”}}]}

이 기사는 인공지능의 도움을 받아 제작되었으며, 편집팀의 검수를 거쳤습니다.

Satoshi Voice
이 기사는 인공지능의 지원을 받아 제작되었으며, 정확성과 품질을 보장하기 위해 저널리스트 팀의 검토를 거쳤습니다.
RELATED ARTICLES

Stay updated on all the news about cryptocurrencies and the entire world of blockchain.

Featured video

LATEST