비트코인 콜드카드, 충격적인 보안 사고 발생
Jump to 0:03최근 비트코인 자기 보관을 하는 이용자들에게 충격적인 보안 사고가 발생했다. 콜드카드는 비트코인 전용 하드웨어 월렛으로, 이 사고는 사용자들에게 큰 우려를 안기고 있다.
비트코인 전용 하드웨어 월렛 콜드카드의 '난수 생성 오류'를 악용한 비트코인 탈취 사건이 발생, 사용자들의 주의가 요구된다.
Want the next one from this channel too?
최근 비트코인 자기 보관을 하는 이용자들에게 충격적인 보안 사고가 발생했다. 콜드카드는 비트코인 전용 하드웨어 월렛으로, 이 사고는 사용자들에게 큰 우려를 안기고 있다.
콜드카드는 대표적인 비트코인 전용 하드웨어 월렛이다. 이 기기는 개인 키를 인터넷에서 완벽하게 격리시키며, 다중 서명 방식을 지원하여 높은 보안성을 자랑한다. 이러한 강점 때문에 보안을 중요하게 여기는 비트코인 장기 보유자들이 많이 사용해왔다.
이번 사건은 비트코인 네트워크 자체가 해킹된 것이 아니다. 문제는 개인 키의 근본이 되는 '시드'를 생성하는 과정에서 발생했다. 이는 비트코인을 거대한 금고라고 비유했을 때, 금고 자체는 튼튼하지만 금고 열쇠를 만드는 기계에 결함이 생긴 상황과 유사하다.
하드웨어 월렛이 시드를 처음 만들 때 필요한 난수 생성 과정에서 오류가 발생했다. 콜드카드에는 원래 예측할 수 없는 숫자를 만드는 하드웨어 난수 발생기가 내장되어 있다. 그러나 보안 연구진의 분석에 따르면, 펌웨어의 통합 오류로 인해 특정 상황에서 이 하드웨어 난수 발생기가 제대로 작동하지 않고 결정론적인 소프트웨어 난수 생성기가 대신 사용되는 문제가 있었다.
범인은 난수 생성 과정의 문제를 컴퓨터로 재현하여 가능한 시드 후보들을 생성했다. 컴퓨터는 이 시드 후보에서 개인 키를 계산하고, 개인 키에서 공개 키, 그리고 최종적으로 비트코인 주소를 만들 수 있다. 이후 블록체인을 조회하여 해당 주소에 비트코인이 있는지 확인하는 방식으로 공격을 진행했다.
이번 공격의 핵심은 공격자가 돈이 있는 비트코인 주소를 발견하는 순간, 그 주소를 움직일 수 있는 개인 키도 이미 확보하고 있다는 점이다. 공격자는 주소를 역산하여 개인 키를 찾아낸 것이 아니라, 처음부터 시드, 개인 키, 공개 키, 주소의 순서로 계산했기 때문에 이러한 방식이 가능했다.
실제 공격에서는 자동화된 공격의 흔적이 발견되었다. 갤럭시 리서치의 분석에 따르면, 초기 공격에서 41분 만에 1,196개 지갑에서 1,000 비트코인 이상이 탈취된 것으로 파악된다. 여러 탈취 거래에서 동일한 수수료율이 사용되었고, 돈 출력을 남기지 않은 점은 사람이 개별 지갑을 조작한 것이 아니라 미리 찾아낸 키들을 자동화된 프로그램으로 한꺼번에 쓸어간 흔적으로 분석된다.
범인은 특정 피해자를 정해놓고 공격한 것이 아니다. 대신 컴퓨터에게 가능한 많은 열쇠를 만들도록 지시하고, 그 열쇠가 여는 비트코인 주소에 돈이 있으면 알려달라고 요청하는 방식으로 광범위한 자동화 공격을 수행했다. 이는 마치 수많은 열쇠를 무작위로 만들어보고, 그 중 특정 금고를 여는 열쇠를 찾아내는 방식과 유사하다.
공격자가 수백만 번, 수십억 번의 시도를 해도 비트코인 네트워크는 이를 인지하지 못한다. 네트워크는 오직 정답을 찾아내 유효한 서명을 만들어 거래를 보낼 때만 이를 인식한다. 이 때문에 공격자는 무한에 가까운 시도를 통해 취약한 시드를 찾아낼 수 있다.
이번 공격의 핵심은 콜드카드 시드 난수 생성 과정에 문제가 발생했다는 점이다. 코인카이트는 공식 공지를 통해 수정 전의 MK4, MK5, Q 모델에서 생성된 시드가 기대했던 128비트가 아닌 약 72비트 수준의 엔트로피를 가졌다고 밝혔다. 이는 비트코인 수학 자체가 약해진 것이 아니라, 수학에 사용되는 최초의 무작위 재료가 약했음을 의미한다.
펌웨어 업데이트만으로는 이미 생성된 기존 시드가 고쳐지지 않는다는 점을 기억해야 한다. 2년 전에 문제가 있는 펌웨어로 24개 단어를 생성했다면, 오늘 최신 펌웨어로 업데이트해도 앞으로 새로 만드는 시드의 문제는 해결될 수 있지만, 2년 전에 만들어진 24개 시드는 변경되지 않는다. 공격자가 찾는 것은 오늘날의 콜드카드 기기가 아니라, 과거에 생성된 취약한 시드이므로, 취약한 시드에 최신 펌웨어를 적용해도 여전히 취약하다.
콜드카드 사용자는 당황하여 무작정 비트코인을 움직이지 말아야 한다. 제조사 또한 급하게 마이그레이션하다가 실수하는 것이 더 큰 위험을 초래할 수 있다고 경고하고 있다. 우선 자신의 콜드카드 모델과 시드 생성 당시 펌웨어가 영향 범위에 해당하는지 확인해야 한다. 만약 영향을 받는 시드라면, 공식 안내의 핵심은 수정된 펌웨어를 설치하고 완전히 새로운 시드를 생성하는 것이다. 이후 새 시드 백업을 확인하고, 새 수신 주소를 기기 화면에서 확인한다. 소액으로 테스트 송금을 해 정상 작동을 확인한 뒤 나머지 비트코인을 이동하는 절차를 따른다. 이 모든 과정이 완전히 확인될 때까지 기존 백업은 폐기하지 않도록 코인카이트가 공식적으로 안내하고 있다.
단순히 기존 24개 시드를 새 콜드카드나 트레저, 레저 같은 다른 하드웨어 월렛에 복구하는 것은 해결책이 아니다. 약한 시드는 다른 하드웨어에 옮겨도 강한 시드로 변하지 않기 때문이다. 따라서 새로운 지갑으로 실제 온체인 전송을 통해 비트코인을 이동해야만 안전을 확보할 수 있다.
24개 시드 외에 강력하고 고유한 BIP 39 패스프레이즈를 사용했다면, 공격자는 약해진 시드를 찾아내는 것 외에 패스프레이즈까지 알아내야 한다. 이는 보안을 한층 강화하는 효과가 있지만, 코인카이트는 이를 근본적인 치료책으로 보지 않으며 강력한 패스프레이즈 사용자도 가능한 한 새 시드로 이전할 것을 권고하고 있다. 특히 짧거나 흔하거나 재사용한 패스프레이즈를 사용했다면 더 빨리 대응해야 하며, 여기서 말하는 패스프레이즈는 콜드카드 핀 번호와는 다르므로 혼동해서는 안 된다.
하드웨어 월렛에서 가장 기본적인 백업은 기기가 생성한 12개 또는 24개의 니모닉 단어를 종이나 금속 등에 정확한 순서로 기록해 두는 것이다. 더 나아가 실제로 그 백업으로 지갑이 정상적으로 복구되는지 확인하는 것이 가장 좋은 상태의 백업 확인 방법이다.
궁극적으로 현실적인 자기 보관은 신뢰를 완전히 없애는 것을 의미하지 않는다. 대신, 신뢰해야 하는 대상의 범위를 최소한으로 줄이는 것이 핵심이다. 이는 특정 제조사나 시스템에 대한 맹목적인 신뢰를 지양하고, 스스로 비트코인 자산을 관리하는 주체성을 갖는 것을 의미한다.
범인은 비트코인을 탈취했지만, 범죄가 완전히 성공했다고 단정하기는 어렵다. 비트코인은 현금과 달리 모든 거래 기록이 블록체인에 영구적으로 남아있기 때문이다. 이 기록은 탈취된 비트코인의 흐름을 추적할 수 있는 중요한 단서가 된다.
비트코인을 단순히 훔치는 것과, 훔친 비트코인을 안전하게 자기 재산으로 만들고 현금화하는 것은 완전히 다른 문제다. 블록체인에 기록된 추적성 때문에 탈취된 비트코인을 시장에서 현금으로 바꾸기 어려울 수 있으며, 이는 범죄자에게 또 다른 과제가 된다.
이번 콜드카드 사건에서 우리가 배워야 할 점은 특정 회사를 맹목적으로 믿거나 불신하는 것이 아니다. 그보다는 내 비트코인의 열쇠가 어떻게 만들어지고, 어떻게 안전하게 보관되며, 어떻게 복구되는지를 정확하게 이해하는 것이 중요하다. 이러한 이해를 바탕으로 스스로 자산을 관리하는 능력을 키워야 한다.
자기 보관의 본질은 특정 기계나 장치를 맹신하는 것이 아니다. 대신, 자신이 무엇을 보관하고 있는지, 즉 비트코인의 작동 원리와 구조를 정확히 이해하는 것이 가장 중요하다. 이러한 이해를 통해 사용자 스스로 보안을 강화하고 자산을 안전하게 관리할 수 있다.
Answers come from the transcript, with the exact spot cited.
Want the next one from this channel too?
When 비트코인호들러 publishes, we'll write it up like the one you just read and email it to you.
{channel} published 3 in the last 7 days.
We skip Shorts. You can unfollow any time.