Randstorm: 2011–2015년 BitcoinJS 지갑 복구
10년 전 브라우저에서 만든 비트코인 지갑에 접속할 수 없게 되었다면, 해당 지갑의 보안 취약점을 야기하는 바로 그 결함인 ‘Randstorm’ 덕분에 때로는 자신의 자금을 되찾을 수 있습니다. 이 결함이 무엇인지, 누가 영향을 받는지, 그리고 복구 과정은 어떻게 진행되는지 알아보겠습니다.
개인 키의 보안 강도는 이를 생성하는 데 사용된 난수 생성기의 무작위성에 달려 있습니다. ‘Randstorm’은 특정 시기의 웹 브라우저에서 이러한 무작위성을 누구도 예상하지 못한 수준으로 약화시켰던 일련의 결함을 일컫는 용어로, 이로 인해 2011년부터 2015년 사이에 생성된 수많은 비트코인 지갑의 키가 각기 다른 정도로 예측 가능해졌습니다. 공격자에게는 이것이 위협이 되지만, 접근이 차단된 지갑의 정당한 소유자에게는 오히려 복구가 가능하게 해주는 결정적인 요소가 될 수 있습니다.
Randstorm이란 무엇인가
Randstorm은 2023년 11월 복구 전문 기업 Unciphered에 의해 명명되고 공개되었습니다(이 회사는 2022년, Blockchain.com 지갑에 접속할 수 없게 된 고객을 지원하던 중 이 문제를 재발견했습니다). 근본 원인은 JSBN 자바스크립트 라이브러리의 SecureRandom() 함수와, 당시 주요 웹 브라우저들이 Math.random()을 구현한 방식의 취약점이 결합된 데 있습니다. 이 두 요인이 결합되어 보안 지갑에 필요한 수준보다 훨씬 낮은 엔트로피를 가진 개인 키가 생성되었습니다.
인기 있는 BitcoinJS 라이브러리는 2014년 3월까지 해당 JSBN 코드를 사용했으나, 그해 3월 유지보수 담당자들이 이를 더 이상 사용하지 않기로 결정했습니다. 수많은 브라우저 지갑이 BitcoinJS를 기반으로 제작되었거나 초기 코드를 복사했기 때문에, 이 취약점은 생태계 전반으로 확산되었습니다. 중요한 점은 그 영향이 균일하지 않다는 것입니다. 일찍 생성된 키일수록 예측하기 쉬우며(2012년 3월 이전의 지갑이 가장 취약합니다), 2014년과 2015년에 생성된 지갑일수록 이를 해독하는 데 필요한 작업량이 급격히 증가합니다.
어떤 지갑이 영향을 받나요?
Randstorm은 2011년부터 2015년 사이에 웹 브라우저에서 BitcoinJS 또는 이를 기반으로 한 프로젝트를 사용하여 처음 생성된 지갑에 영향을 미칩니다. 여기에는 다음이 포함됩니다:
- 초기 bitaddress.org 및 BrainWallet의 종이 지갑/브라우저 지갑
- CoinPunk 및 QuickCoin(현재 운영 중단됨)과 같은 브라우저 지갑 프로젝트
- 그 시기에 출시된 초기 Blockchain.info / Blockchain.com 웹 지갑
- 동일한 라이브러리를 사용하여 생성된 다른 비트코인 지갑 및, 경우에 따라 도지코인 지갑
일반적으로 영향을 받지 않는 것은 하드웨어 기기(Trezor, Ledger), Bitcoin Core와 같은 데스크톱 소프트웨어, 또는 이후 패치된 도구를 통해 생성된 지갑입니다. 가장 중요한 판단 기준은 생성 시기입니다. 2010년대 전반에 브라우저에서 생성된 지갑이라면 확인해 볼 필요가 있습니다.
저도 영향을 받나요?
다음 세 가지 질문을 확인해 보세요: 지갑이 2011년부터 2015년 사이에 처음 생성되었는지, 웹 브라우저에서(하드웨어 기기나 데스크톱 소프트웨어가 아닌) 생성되었는지, 그리고 BitcoinJS를 사용하는 것으로 알려진 사이트나 도구에서 생성되었는지입니다. 세 가지 모두 ‘예’라면, 해당 지갑이 잠재적으로 영향을 받을 수 있는 것으로 간주하십시오. 주소를 테스트할 수 있는 독립적인 검증 도구가 있으며, 지갑이 생성된 시기가 해당 기간 중 더 이른 시기일수록 이 취약점이 적용될 가능성이 높습니다.
Randstorm 및 지갑 복구
바로 이 점이 이 결함의 양면성을 드러내는 부분입니다. 만약 여러분이 정당한 소유자이면서 단순히 해당 지갑에 접근할 수 없는 상황(비밀번호 분실, 지갑 가져오기 실패, 서비스 중단 등)에 처해 있다면, 무작위성이 감소한 덕분에 우리가 여러분이 제공한 공개 정보를 바탕으로 개인 키를 재구성하여 자금에 대한 통제권을 다시 여러분에게 돌려줄 수 있는 경우도 있습니다. 이는 보안 연구자들이 우려하는 바로 그 수학적 원리가, 코인의 실제 소유자를 위해 활용되는 경우입니다.
두 가지 중요한 유의사항을 말씀드리겠습니다. 첫째, 본 서비스는 소유자가 승인한 복구 작업에만 해당됩니다. 당사는 고객이 소유권을 입증할 수 있는 지갑에 대해서만 작업을 진행하며, 제3자를 대상으로 한 작업은 절대 수행하지 않습니다. 둘째, 작업의 가능 여부는 제작 연도에 따라 크게 달라집니다. 2012년 제작된 지갑과 2015년 제작된 지갑은 상황이 완전히 다르며, 일부 사례는 애초에 해결이 불가능할 수도 있습니다. 당사는 의뢰를 수락하기 전에 이러한 점을 솔직하게 평가하며, 성공 시에만 수수료를 청구합니다.
아직 지갑을 관리하고 계시다면: 자금을 옮기세요
보안이 최우선입니다. 무작위성이 취약한 방식으로 생성되었다고 생각되는 지갑에 여전히 접근할 수 있다면, 그 지갑에 자금을 남겨두지 마십시오. 최신의 신뢰할 수 있는 소프트웨어(최신 하드웨어 지갑이 이상적입니다)를 사용하여 새로운 지갑을 생성하고, 지금 당장 모든 자금을 그 지갑으로 이체하십시오. 예측 가능한 키는 누가 결함을 발견했든 상관없이 지속적인 위험 요소입니다. 복구 기능은 접근이 차단된 지갑을 위한 것이지, 문제가 있는 지갑에 자금을 남겨둘 이유가 아닙니다.
이 연구가 우리의 ‘약한 무작위성’ 연구와 어떤 관련이 있는가
Randstorm은 우리가 다루는 여러 약한 무작위성 문제 중 하나입니다. 주어진 도구가 키를 정확히 어떻게 생성했는지 파악하고, 이를 처리 가능한 검색 방식으로 전환하는 동일한 접근 방식은 2014년 이더리움 사전 판매 지갑 (초기 코드에서 초기화 벡터로 브라우저의 Math.random() 을 사용했음) 및 기타 과거의 생성기에도 적용됩니다. 우리는 랜드스톰(Randstorm)에 대해 공개한 바 없습니다. 우리가 제공하는 것은 수년에 걸쳐 이러한 취약점을 지갑 소유자들에게 자금을 회수해 드리는 성과로 전환해 온 경험입니다.
자주 묻는 질문
제 비트코인 지갑이 랜드스톰의 영향을 받았나요?
2011년부터 2015년 사이에 BitcoinJS 라이브러리를 사용하는 웹 브라우저나, 초기 bitaddress.org, BrainWallet, CoinPunk, QuickCoin, 초기 Blockchain.info 지갑 등 이를 기반으로 구축된 사이트에서 처음 생성된 경우일 가능성이 있습니다. 해당 기간 중 특히 2012년 3월 이전에 생성된 지갑이 가장 큰 영향을 받습니다. 하드웨어 기기, 이후 버전의 소프트웨어, 또는 오프라인 생성기를 통해 생성된 지갑은 일반적으로 영향을 받지 않습니다.
Randstorm을 통해 잠긴 내 지갑을 복구할 수 있나요?
경우에 따라 다릅니다. 소유자이신 분이 2011~2015년형 취약 지갑에 접근할 수 없는 상황이라면, 해당 지갑의 보안 취약점을 야기하는 바로 그 무작위성 저하 문제로 인해, 경우에 따라 귀하가 제공한 공개 정보를 바탕으로 당사가 개인 키를 재구성할 수 있습니다. 이는 오직 소유자가 승인한 본인 자금의 복구에만 해당하며, 해당 기간 이후 생성된 지갑의 경우 복구 난이도가 급격히 높아집니다.
아직도 해킹당한 지갑을 관리하고 있습니다. 어떻게 해야 할까요?
자금을 옮기세요. 무작위성이 취약한 상태로 지갑이 생성된 경우, 가장 안전한 방법은 최신의 신뢰할 수 있는 소프트웨어를 사용하여 새 지갑을 만들고 즉시 모든 자금을 그 지갑으로 이체하는 것입니다. 문제가 발생했을 가능성이 있다고 판단되는 지갑에 자금을 남겨두지 마세요.
랜드스톰을 누가 발견했나요?
Randstorm의 취약점은 2023년 11월, 복구 전문 기업인 Unciphered에 의해 명명 및 공개되었으며, 이는 SecureRandom 함수의 무작위성 취약점에 대한 이전 연구 결과를 바탕으로 한 것이었습니다. KeychainX는 복구 서비스 제공업체일 뿐, 해당 취약점을 공개한 주체는 아닙니다. 당사는 무작위성 취약점 분석을 통해 사용자가 영향을 받은 지갑을 직접 복구할 수 있도록 돕고 있습니다.
Randstorm 복구 비용은 얼마인가요?
성과 기반: 성공 시에만 회수된 금액의 일정 비율을 수수료로 받으며, 실패 시에는 수수료를 받지 않습니다. 선불 결제를 요구하지 않으며, 고객님이 소유하고 있음을 증명할 수 있는 지갑에 대해서만 작업을 진행합니다.
2011~2015년에 사용하던 구형 지갑에 접속할 수 없으신가요?
지갑 유형, 대략적인 제작 시기, 그리고 주소를 알려주세요. 저희가 Randstorm 방식의 복구가 가능한지 정직하게 평가해 드릴 것이며, 자금을 실제로 복구해 드린 경우에만 비용을 지불하시면 됩니다.
