하드웨어 지갑은 인터넷과 분리된 환경에서 개인키를 관리한다는 점 때문에 비교적 안전한 보관 수단으로 알려져 있습니다. 거래소에 자산을 맡기지 않고 사용자가 직접 키를 관리할 수 있으며, 서명 과정도 기기 내부에서 진행되는 경우가 많습니다.
그러나 하드웨어 지갑이라고 해서 모든 위험이 자동으로 사라지는 것은 아닙니다. 기기를 도난당하지 않았고 피싱 사이트에 복구 구문을 입력하지 않았더라도, 지갑을 처음 만드는 과정에서 문제가 생기면 보안의 출발점 자체가 약해질 수 있습니다.
사용자가 제공한 자료에서 다룬 콜드카드 관련 사례도 바로 이 부분을 지적합니다. 공격의 초점이 거래 승인 단계나 기기 탈취가 아니라, 지갑을 생성할 때 사용되는 ‘무작위성’에 있었다는 설명입니다.
사건의 핵심은 기기 탈취가 아니었다
제공된 분석 자료에 따르면 짧은 시간 동안 다수의 비트코인 지갑에서 자산이 외부 주소로 이동한 정황이 발견됐습니다. 최초 분석과 이후 추가 조사에서 집계된 지갑 수와 피해 규모에는 차이가 있었으며, 연구진 역시 최종 수치가 달라질 가능성을 언급했습니다.
여기서 눈여겨볼 점은 피해 지갑의 소유자가 기기를 물리적으로 빼앗기지 않았다는 것입니다. 인터넷에 기기를 연결하거나, 거래소에 복구 구문을 맡기거나, 피싱 페이지에 단어를 입력한 상황도 아닌 것으로 설명됐습니다.
일반적으로 하드웨어 지갑 사고는 다음과 같은 경로를 먼저 떠올리게 합니다.
- 복구 구문을 촬영하거나 온라인에 저장한 경우
- 가짜 지갑 프로그램이나 피싱 사이트에 단어를 입력한 경우
- 기기 또는 백업 용지가 도난당한 경우
- 악성 펌웨어나 공급망 공격이 발생한 경우
하지만 이번 자료가 제시한 공격 지점은 이보다 앞선 단계였습니다. 사용자가 지갑을 만들면서 처음 받는 12개 또는 24개의 복구 단어가 충분히 무작위로 생성되지 않았다면, 공격자는 가능한 조합의 범위를 크게 줄일 수 있습니다.
니모닉은 단순한 백업 문구가 아니다
하드웨어 지갑을 처음 설정하면 일반적으로 12개 또는 24개의 영어 단어가 표시됩니다. 이를 니모닉, 시드 문구, 복구 구문 등으로 부릅니다.
많은 사용자가 이 단어를 지갑 비밀번호 정도로 생각하지만, 실제 역할은 훨씬 중요합니다. 니모닉을 바탕으로 시드가 만들어지고, 그 시드에서 여러 개인키와 주소가 순차적으로 파생됩니다. 따라서 니모닉을 알고 있는 사람은 별도의 기기가 없어도 호환되는 지갑 프로그램을 이용해 같은 지갑을 복원할 수 있습니다.
은행 계좌는 비밀번호가 유출되더라도 본인 인증이나 지급 정지 같은 추가 절차가 존재합니다. 반면 개인키 기반 지갑에서는 복구 구문을 가진 사람이 사실상 자산을 통제하게 됩니다. 블록체인 네트워크는 거래를 요청한 사람이 실제 소유자인지 신분증으로 확인하지 않습니다. 올바른 개인키로 만든 서명인지만 확인합니다.
그래서 복구 구문은 단순히 종이에 적어 두는 백업 코드가 아닙니다. 지갑을 재생성할 수 있는 가장 중요한 비밀정보입니다.
무작위성이 약해지면 무엇이 달라질까
정상적인 니모닉은 사람이 쉽게 추측할 수 없을 정도로 큰 무작위 값을 바탕으로 만들어져야 합니다. 12단어 니모닉은 일반적으로 128비트의 엔트로피와 체크섬을 이용하며, 24단어는 256비트의 엔트로피를 사용합니다.
128비트는 약 3.4×10³⁸개의 경우의 수를 의미합니다. 정상적으로 생성됐다면 현재의 컴퓨터로 가능한 조합을 모두 대입하는 것은 현실적으로 어렵습니다.
문제는 표시되는 단어가 무작위처럼 보인다고 해서 실제 생성 과정까지 안전하다고 단정할 수 없다는 점입니다. 난수 생성기가 예측 가능한 값을 만들거나, 프로그램 오류로 가능한 범위가 크게 줄어들면 겉으로는 서로 다른 단어 조합이 나오더라도 실질적인 보안 강도는 낮아질 수 있습니다.
제공된 자료는 2021년 소프트웨어 라이브러리 이전 과정에서 같은 이름을 가진 서로 다른 난수 함수가 잘못 연결됐을 가능성을 원인으로 제시합니다. 하드웨어 부품에서 얻어야 할 난수 대신 예측 가능한 소프트웨어 난수가 사용됐고, 그 결과 일부 지갑의 복구 구문을 탐색할 수 있는 범위가 크게 좁아졌다는 설명입니다.
다만 이 내용은 기술 분석을 통해 제기된 주장으로 보아야 합니다. 정확한 영향 범위, 적용된 펌웨어 버전, 피해 지갑과의 직접적인 연관성은 공식 조사와 추가 검증을 통해 확인할 필요가 있습니다.
핵심은 특정 제품의 결함 여부만이 아닙니다. 사용자가 화면에서 보는 12개 또는 24개의 단어만으로는 그 단어가 어떤 난수 생성 과정을 거쳤는지 확인하기 어렵다는 구조적인 문제가 드러났다는 점입니다.
주사위 입력이 보완 수단으로 언급되는 이유
일부 하드웨어 지갑은 기기가 자동으로 만든 난수 외에 사용자가 직접 주사위를 굴려 엔트로피를 추가하는 기능을 제공합니다. 이 방법은 기기의 난수 생성 과정에만 전적으로 의존하지 않고, 사용자가 만든 물리적 무작위성을 함께 사용하는 방식입니다.
공정한 6면체 주사위를 한 번 굴리면 약 2.585비트의 엔트로피를 얻을 수 있습니다. 단순 계산으로는 12단어 니모닉에 필요한 128비트를 채우기 위해 약 50회의 결과가 필요하며, 24단어 수준의 256비트에는 약 99회의 결과가 필요합니다.
여기서 50회나 99회는 감으로 정한 숫자가 아닙니다. 필요한 엔트로피의 양을 주사위 한 번이 제공하는 정보량으로 나눈 값에 가깝습니다.
다만 주사위 입력 기능을 사용한다고 해서 무조건 안전해지는 것은 아닙니다. 몇 가지 조건이 함께 지켜져야 합니다.
첫째, 장식용이나 가중치가 의심되는 주사위보다 일반적인 게임용 주사위를 사용해야 합니다. 둘째, 단단하고 평평한 바닥에서 충분히 흔들어 굴려야 합니다. 셋째, 결과를 빠뜨리거나 임의로 수정하지 않아야 합니다. 넷째, 입력한 주사위 결과가 기존 니모닉을 대체하는지, 추가 엔트로피로 섞이는지 제품 설명서를 확인해야 합니다.
같은 ‘주사위 입력’이라는 이름을 사용하더라도 기기와 펌웨어에 따라 처리 방식이 다를 수 있습니다. 인터넷 게시물의 메뉴 위치를 그대로 따라가기보다 제조사의 최신 공식 설명서를 확인하는 편이 안전합니다.
하드웨어 지갑을 설정할 때 확인할 사항
하드웨어 지갑 보안은 제품을 구매하는 순간 완성되는 것이 아닙니다. 사용자가 초기 설정과 백업을 어떻게 하느냐에 따라 실제 안전성이 달라집니다.
먼저 기기를 공식 판매처나 신뢰할 수 있는 유통 경로에서 구매해야 합니다. 포장이 개봉됐거나 초기 설정이 끝난 상태로 배송된 제품은 사용하지 않는 것이 좋습니다. 복구 구문은 반드시 사용자가 직접 기기를 설정하는 과정에서 새로 생성해야 합니다.
기기에 펌웨어를 설치할 때는 제조사 공식 사이트에서 파일과 안내를 확인해야 합니다. 공개된 소스코드가 있다는 사실도 긍정적인 요소지만, 소스 공개만으로 실제 기기에 설치된 펌웨어가 안전하다고 자동 보장되는 것은 아닙니다. 서명 검증과 펌웨어 버전 확인이 함께 필요합니다.
복구 구문은 사진, 클라우드 메모, 이메일, 메신저, 온라인 문서에 저장하지 않는 편이 좋습니다. 인터넷에 연결되는 순간 복구 구문의 노출 가능성이 커지기 때문입니다. 종이나 금속 백업 도구처럼 오프라인 매체에 기록하되, 화재·침수·도난 가능성을 고려해 보관 장소를 정해야 합니다.
이미 사용 중인 지갑에서 생성 과정의 결함이 의심된다면 기존 복구 구문을 그대로 유지한 채 설정만 바꾸는 것으로는 문제가 해결되지 않을 수 있습니다. 안전한 환경에서 새로운 니모닉과 새 주소를 만들고, 검증된 절차에 따라 자산을 이전하는 방식이 필요합니다. 이 과정에서는 제조사의 공식 공지와 보안 전문가의 검증된 안내를 우선해야 합니다.
제품의 명성과 보안은 같은 말이 아니다
보안 제품을 선택할 때 사람들은 회사의 평판, 오랜 운영 기간, 공개 설계, 전문가 추천 여부를 살펴봅니다. 모두 중요한 기준이지만 어느 하나도 절대적인 안전을 보장하지는 않습니다.
하드웨어 지갑은 하드웨어, 펌웨어, 난수 생성기, 복구 절차, 사용자 행동이 결합된 시스템입니다. 한 부분이 충분히 검증되지 않으면 다른 장점이 많더라도 전체 보안은 약해질 수 있습니다.
이번 자료가 주는 가장 중요한 교훈은 “오프라인 기기이므로 무조건 안전하다”는 생각에서 벗어나야 한다는 점입니다. 거래할 때만 조심하는 것이 아니라, 지갑을 처음 만드는 순간부터 복구 구문의 생성 방식과 보관 절차를 함께 살펴봐야 합니다.
마무리
하드웨어 지갑 사고는 항상 피싱이나 기기 도난으로만 발생하는 것은 아닙니다. 니모닉을 만드는 난수의 품질이 충분하지 않다면 공격자는 기기를 직접 만지지 않고도 가능한 복구 구문의 범위를 좁힐 수 있습니다.
사용자가 모든 내부 코드를 직접 검증하기는 어렵습니다. 그렇기 때문에 공식 펌웨어 확인, 안전한 초기화, 오프라인 백업, 추가 엔트로피 사용 여부 확인처럼 사용자가 통제할 수 있는 부분을 꼼꼼히 관리해야 합니다.
하드웨어 지갑은 보안을 대신해 주는 마법의 상자가 아닙니다. 안전한 계산과 서명을 돕는 도구이며, 마지막 보안 단계에는 언제나 사용자의 설정과 관리 습관이 남아 있습니다.
FAQ:
Q1. 하드웨어 지갑을 인터넷에 연결하지 않으면 완전히 안전한가요?
아닙니다. 인터넷과 분리하면 원격 해킹 위험을 줄일 수 있지만, 취약한 난수 생성, 변조된 펌웨어, 복구 구문 노출, 공급망 문제 같은 다른 위험은 남아 있습니다.
Q2. 12단어보다 24단어 니모닉이 무조건 더 좋은가요?
24단어는 더 큰 엔트로피를 사용하지만, 생성 과정이 안전하지 않거나 복구 구문이 노출되면 단어 수만으로 보호받을 수 없습니다. 길이와 함께 생성 방식, 백업 방법, 펌웨어 신뢰성을 확인해야 합니다.
Q3. 주사위를 많이 굴리면 하드웨어 지갑의 결함을 완전히 막을 수 있나요?
주사위 입력은 외부 엔트로피를 추가하는 유용한 방법이지만, 기기가 그 결과를 실제로 어떻게 처리하는지가 중요합니다. 제품별 공식 설명서를 확인하고, 해당 기능이 기존 난수를 대체하는지 결합하는지도 살펴봐야 합니다.
읽어주셔서 감사합니다.
이 글이 도움이 되셨다면 공감과 팔로우 부탁드립니다.
0 댓글