왜 불변 펌웨어가 암호화폐를 지키는 가장 안전한 선택일까요?
하드웨어 지갑에서 업그레이드 가능한 펌웨어를 반대하는 이유를 설명해요.
펌웨어는 하드웨어 지갑 칩에 내장된 핵심 소프트웨어예요. 개인 키가 어떻게 생성되고, 저장되며, 거래 서명에 사용되는지 등 모든 중요한 동작을 관리해요. 펌웨어는 기기의 가장 깊은 레벨에서 동작하며, 개인 키가 저장된 보안 칩(시큐어 엘리먼트)에 직접 접근할 수 있기 때문에 그 무결성이 매우 중요해요. 만약 펌웨어가 손상된다면, 그 결과는 심각하며 되돌릴 수 없는 경우가 많아요.
이 글에서는 하드웨어 지갑 펌웨어의 두 가지 방식(업데이트 가능 vs. 불변)에 대해 자세히 살펴보고, 실제로 발생한 취약점 사례와 새로운 공격 방법, 그리고 불변 펌웨어의 한계에 대한 최근 업계 주장에 직접 답변해요.
하드웨어 지갑의 펌웨어란 무엇인가요?
펌웨어는 하드웨어 지갑 칩에 직접 내장된 특수한 저수준 소프트웨어예요. 기기의 운영체제 역할을 하지만, 컴퓨터나 스마트폰의 소프트웨어보다 훨씬 제한적이에요. 펌웨어는 개인 키 생성, 키 저장, 거래 서명, 그리고 동반 앱과의 통신 등 모든 보안 핵심 기능을 제어해요.
일반 앱과 달리 펌웨어는 하드웨어에서 직접 실행되어 보안 칩에 즉시 접근할 수 있어요. 이 특별한 위치 때문에 펌웨어의 무결성이 매우 중요해요. 만약 손상된다면, 공격자가 지갑의 가장 민감한 정보에 접근할 수 있어요.
하드웨어 지갑 제조사는 펌웨어 관리에 두 가지 방식을 채택해요:
업데이트 가능한 펌웨어: 제조사가 새로운 펌웨어 버전을 배포하면 사용자가 기기에 설치할 수 있어요.
불변(수정 불가) 펌웨어: 제조 과정에서 칩에 한 번만 기록되고, 이후에는 제조사나 외부에서 어떤 방식으로도 변경할 수 없어요. Tangem이 채택한 방식이에요.
겉으로는 업데이트 가능한 펌웨어가 취약점 패치, 새로운 기능 추가, 위협 대응 등 여러 장점이 있어 보여요. 하지만, 업데이트 기능 자체가 오히려 심각한 보안 위험을 불러와 그 이점을 상쇄해요.
불변 펌웨어가 지키는 보안 영역
모든 보안 설계는 위협 모델에서 시작해요. 즉, 시스템이 어떤 공격을 막고, 어떤 위험을 감수하며, 각 계층별로 책임이 어떻게 배분되는지 평가하는 거예요.
업데이트 가능한 펌웨어는 기기가 판매된 이후에도 코드를 전달할 수 있는 지속적인 채널을 만듭니다. 이 채널은 원래 합법적인 개선을 위한 것이지만, 동시에 기기 수명 내내 악의적인 공격자가 노릴 수 있는 공격 경로가 돼요.
불변 펌웨어는 실제로 최종 사용자가 다루는 보안 기기에서 유일하게 널리 인정되는 방식이에요. 현장에서 무선(OTA) 펌웨어 업데이트를 허용하는 은행 카드나 전자여권은 없습니다. YubiKey 같은 하드웨어 보안 키도 불변 펌웨어를 사용해요. 그만큼 보안 위험이 항상 너무 크기 때문이에요.
이제 구체적인 위협을 살펴볼게요:
1. 내부자 위협
펌웨어 업데이트를 제공할 수 있는 조직은 필연적으로 사용자의 개인 키를 제어하는 코드를 수정할 수 있는 직원을 두게 돼요. 금전적 이득, 이념, 외부 압박 등 동기에 따라 악의적인 내부자가 백도어나 취약점을 업데이트에 심을 수 있어요.
전체 사이버보안 업계에서도 내부자에 의한 사고가 꾸준히 증가하고 있다는 보고가 있어요. 하드웨어 지갑처럼 단 한 번의 코드 손상으로 수백만 달러가 위험해질 수 있는 환경에서는 이 위험이 매우 치명적이에요.
2. 사회공학 공격
펌웨어 업데이트 경로가 존재하면, 사회공학 공격의 주요 표적이 돼요. 공격자는 직원에게 코드를 수정하게 하거나, 접근 권한을 넘기게 하거나, 피싱·사칭·가짜 비상 상황 등으로 악성 변경을 승인하게 만들 수 있어요.
이 위협은 최근 특히 심각해졌어요. 2025년 1분기에는 딥페이크 음성 피싱 공격이 1,600% 이상 급증했어요. 업데이트 채널을 유지하는 회사라면 이런 진화하는 공격에 끊임없이 대비해야 해요.
3. 정부 강제 및 규제 압박
일부 국가에서는 정부 기관이 기술 기업에 원격 접근 또는 감시 기능 구현을 법적으로 요구할 수 있어요.
하드웨어 지갑이 펌웨어 업데이트를 지원한다면, 정부가 제조사에 백도어가 포함된 업데이트 배포를 요구할 수도 있어요.
직원 역시 국가, 범죄 조직, 규제 기관 등으로부터 직접 압박을 받을 수 있어요. 업데이트 경로가 이런 강제의 통로가 되며, 이 경로가 없으면 요구를 이행할 방법이 없어요.
4. 품질 보증 부족
모든 펌웨어 취약점이 악의적으로 도입되는 건 아니에요. 개발 일정이 촉박하거나, 코드 리뷰가 미흡하거나, 테스트가 부족하면 의도치 않은 보안 결함이 업데이트에 포함될 수 있어요.
제조사가 자주 업데이트(패치, 기능 추가, UI 변경 등)를 배포할수록, 의도치 않은 취약점이 생길 확률도 함께 높아져요.
5. 감사 공백
펌웨어 감사는 외부 보안 전문 업체가 소스 코드, 구조, 개발 프로세스를 종합적으로 검토하는 과정이에요. 백도어 부재, 암호 구현 품질, 보안 표준 준수 여부를 확인하죠.
이런 정밀 감사는 비용과 시간이 많이 들어요. 수천만 원에서 수억 원이 들고, 몇 달이 걸릴 수 있어요. 모든 펌웨어 버전마다 독립적인 감사를 진행하는 건 대부분의 제조사에 비현실적이에요.
6. 공급망 노출
펌웨어 업데이트 과정은 복잡한 공급망을 구성해요. 코드 작성, 리뷰, 컴파일, 암호 서명, 서버 배포, 사용자 기기 설치 등 여러 단계가 있죠.
각 단계마다 공격자가 침투할 위험이 있어요. 빌드 환경, 배포 채널, 서명 키 등 어느 곳이든 공격 대상이 될 수 있죠. 내부자가 개입하면, 전송 중인 업데이트를 변조해 모든 검증을 통과하는 악성 펌웨어를 배포할 수도 있어요.
7. 사용자에게 가해지는 압박
업데이트 가능한 지갑 제조사는 종종 동반 소프트웨어와의 호환성을 위해 업데이트를 요구해요. 사용자가 업데이트를 거부하면 일부 기능이 제한되거나 접근이 막힐 수 있어요.
결국 사용자는 독립적으로 검증되지 않은 업데이트라도 신뢰하고 받아들일 수밖에 없는 구조예요. 불변 펌웨어는 이런 의존성을 없애요. 기기는 출고 상태 그대로 평생 동작하며, 추가 코드 변경에 의존하지 않아요.
업데이트 메커니즘이 만드는 공격 표면
펌웨어 문제를 패치할 수 있게 해주는 메커니즘 자체가 기기 수명 내내 지속되는 공격 표면이 돼요.
펌웨어 업데이트를 받으려면 기기가 다음을 수행해야 해요:
- 외부 코드(USB, Bluetooth 등)를 통신 채널로 수신
- 암호 서명으로 코드의 진위 확인
- 새 코드를 보안 칩 메모리에 기록하고 기존 펌웨어를 덮어쓰기
업데이트 프로토콜이 허술하다면, 동반 앱과 기기 부트로더 사이의 통신 채널이 USB나 Bluetooth 계층에서 중간자(MITM) 공격에 노출될 수 있어요.
서명 검증은 서명 키가 유출되거나, 검증 로직이 전압 글리칭 등 결함 주입 공격으로 우회될 경우 무력화될 수 있어요.
기록 과정 자체도 TOCTOU(검증-사용 시점 불일치) 공격에 취약해요. 검증된 펌웨어가 실제 플래시 기록 직전에 악성 코드로 바뀔 수 있죠.
이런 기능 자체가 없는 기기는 이런 공격 표면이 아예 존재하지 않아요.
업데이트 가능한 펌웨어의 실제 위험 사례
여러 실제 사례를 통해 펌웨어 취약점이 하드웨어 지갑을 어떻게 위협하는지 확인할 수 있어요.
- Ledger Nano S MCU 펌웨어 교체 취약점(2018)
보안 연구원 Saleem Rashid는 공격자가 Ledger Nano S 펌웨어를 교체해 개인 키를 유출하는 악성 버전을 업로드할 수 있음을 입증했어요. 수정된 펌웨어를 지갑에 업로드하면, 다음 사용 시 사용자의 개인 키가 노출되죠.
또한, 피해자의 컴퓨터에 악성코드를 설치해 "고장난" 펌웨어 업데이트를 유도하는 방식으로 원격 업로드도 가능하다고 주장했어요. Ledger는 1.4.1 펌웨어 업데이트로 해당 문제를 해결했어요.
- Ledger Recover 논란(2023)
Ledger 펌웨어 2.2.1 버전은 시드 구문 데이터를 Secure Element에서 추출해 외부로 전송하는 새로운 복구 기능을 도입했어요. 서비스 출시를 통해 Ledger 펌웨어가 시드 구문을 추출·전송할 기술적 능력이 있음을 공개했죠.
이 기능은 사용자가 해당 서비스를 구독하지 않아도, 업데이트된 펌웨어가 설치된 모든 기기에 존재해요. 사용자들은 이는 기존의 "펌웨어가 Secure Element에서 개인 키를 추출할 수 없다"는 Ledger의 공식 입장과 정면으로 모순된다고 지적했어요.
- Blockstream Jade 펌웨어 피싱 캠페인(2025)
Blockstream은 긴급 보안 경고를 내고, Jade 하드웨어 지갑 소유자를 대상으로 한 피싱 이메일 캠페인을 알렸어요. 이 가짜 이메일은 Blockstream 공식 메일을 사칭해 사용자가 악성 링크를 클릭해 펌웨어 업데이트를 다운로드하도록 유도했어요. 설치 시 자금이 공격자 주소로 전송될 수 있었죠.
- Ledger Nano X 지갑 대상 공급망 공격
Kraken Security Labs는 공격 사례를 공개했어요. 공격자는 Ledger Nano X에 연결된 컴퓨터를 제어해 악성코드를 설치하고, 자금 탈취로 이어질 수 있었어요. 이 과정에서 비보안 프로세서의 펌웨어가 디버그 프로토콜로 수정되어 키보드 등 입력 장치처럼 동작하며, 사용자 컴퓨터에 악성 키 입력을 전송할 수 있었어요.
Ledger Nano X는 비보안 프로세서의 디버깅 기능이 기본 활성화된 채 출고되며, 첫 앱(예: Bitcoin 앱) 설치 시 비활성화돼요. 하지만 앱 설치 전에는 악성 펌웨어로 재플래시가 가능해, "BadUSB"나 "Rubber Ducky" 공격과 유사하게 컴퓨터를 위협할 수 있어요.
Dark Skippy: 펌웨어 기반 공격 사례 연구
2024년 8월 공개된 Dark Skippy 공격은 지금까지 발견된 펌웨어 기반 위협 중 가장 정교한 사례 중 하나예요. 손상된 펌웨어가 하드웨어 지갑 사용자에게 얼마나 치명적인 위험이 되는지 보여줍니다.
기술적 개요
Dark Skippy는 암호화 거래 서명 과정에서 사용하는 논스(nonce) 생성 과정을 노려요. 일반적으로 하드웨어 지갑은 거래 서명 시마다 무작위 숫자(논스)를 생성하는데, 이 무작위성이 서명 보안의 핵심이에요. 공격은 네 단계로 진행돼요:
펌웨어 손상: 악성 펌웨어가 조작된 업데이트, 공급망 공격, 물리적 접근 등으로 기기에 설치돼요.
논스 조작: 무작위 논스 대신, 시드 구문의 일부로부터 약하고 예측 가능한 논스를 생성해요.
데이터 유출: 사용자가 거래에 서명할 때, 시드 구문 일부가 서명에 포함되어 블록체인에 공개돼요.
시드 복원: 공격자는 블록체인에서 해당 서명을 모니터링하고, Pollard's Kangaroo 알고리즘을 이용해 공개 논스 데이터로 원래 시드 구문을 계산해요.
시사점
기존 논스 기반 유출 공격은 충분한 데이터를 얻으려면 수십 건의 서명이 필요했어요. Dark Skippy는 단 2건의 거래만으로도 전체 시드 구문을 추출할 수 있어요. 손상된 기기를 한 번만 사용해도 지갑의 모든 자산이 탈취될 수 있죠.
이 공격은 탐지도 매우 어렵습니다. 손상된 서명은 사용자에게 정상 서명과 구별되지 않아요. 오류 메시지, 시각적 이상, 행동 변화 등 어떤 신호도 없어요. 유출은 조용히 진행되고, 사용자는 자산이 옮겨진 후에야 문제를 알게 될 수 있어요.
공개에 앞서 해당 연구진(Lloyd Fournier와 Nick Farrow, Robin Linus)은 2024년 3월 15개 이상의 하드웨어 지갑 제조사에 비공개로 통지했어요. 현재까지 실제 공격 사례는 보고되지 않았지만, 개념 증명 코드가 완전히 구현되어 공개됐어요.
오픈소스 펌웨어의 한계
오픈소스 공개는 소스 코드를 모두에게 공개해 더 많은 사람이 버그를 찾을 수 있게 해요. 운영체제, 암호화 라이브러리, 네트워크 프로토콜 등에서 보안 이점을 가져온 사례도 있죠.
하지만 오픈소스 검토는 자발적이고 구조화되지 않으며, 특정 코드 경로를 반드시 누군가가 검토한다는 보장이 없어요.
대표적 오픈소스 프로젝트(예: OpenSSL의 Heartbleed)는 수년간 치명적 취약점이 방치된 사례도 있어요. 소스 코드가 공개됐다고 해서 충분히 검토되었거나, 보안 칩 펌웨어에 필요한 전문성을 가진 검토자가 있었다고 볼 수 없어요.
또한 하드웨어 지갑 펌웨어의 소스 코드까지 공개하면, 공격자에게 시스템 내부 구조를 상세히 노출해 맞춤형 공격을 유도할 수 있어요.
그래서 Tangem은 보안 심층 방식을 택해요. 펌웨어는 닫힌 소스지만 공인 전문가의 공식 평가를 받고, 동반 앱과 SDK는 GitHub에서 완전 오픈소스로 운영해요.
Tangem의 불변 펌웨어 구조
Tangem은 제조 과정에서 보안 칩에 펌웨어를 탑재하고, 이후에는 수정이나 교체가 불가능해요. 펌웨어 플래시를 위한 USB 인터페이스나 무선(OTA) 채널 자체가 아예 없어요. 보안 칩은 최초 설치 이후 새로운 코드 기록 시도를 구조적으로 거부하도록 설계됐어요.
기준 | 업데이트형 지갑 | Tangem(불변) |
펌웨어 업데이트 | 가능(지속적 공격 표면) | 불가(출고 시 고정) |
감사 모델 | 버전별 필요(종종 생략) | 1회(영구 유효) |
내부자 공격 노출 | 제품 수명 내내 존재 | 구조적으로 차단 |
Dark Skippy 취약성 | 펌웨어 손상 시 취약 | 해당 없음 |
공급망 복잡성 | 높음(여러 단계 코드 전달) | 최소화(업데이트 인프라 없음) |
신뢰 요구 | 지속적(매 업데이트마다) | 1회(감사 완료 출고 코드) |
Tangem Wallet을 설정할 때, Tangem 모바일 앱은 카드나 링의 펌웨어가 진짜이며 Tangem에서 생산된 것임을 검증해요. 기술적으로, 변조된 펌웨어가 적용된 Tangem Wallet을 찾거나 사용할 수는 없어요.
Ledger의 주장에 대한 답변
Ledger는 Tangem에 대해 여러 차례 공개적으로 언급했고, 자체 보안 연구팀이 Tangem을 심도 있게 분석한 바 있어요. Tangem에 대한 여러 주장에 대해 아래와 같이 답변해요.
주장: "시스템을 동결해도 사용자가 아니라 공격자를 보호한다."
이 주장은 불변성이 단순히 아무 것도 하지 않는 것처럼 보이게 만들지만, 사실 불변 펌웨어는 신용카드, 여권, YubiKey 등에서 표준적으로 채택되는 방식이에요. 불변 시스템은 업데이트를 통한 원격 악성 코드 주입이라는 공격자의 가장 강력한 수단을 원천 차단해요.
Ledger의 방식은 오히려 드물고 위험해요. 펌웨어 업데이트가 나올 때마다 공격자에게 새로운 기회가 제공되죠.
주장: “Tangem은 외부 감사 공백이 수년간 발생한다.”
Ledger는 Tangem이 2018년(Kudelski)과 2023년(Riscure) 두 차례 감사를 받은 이후, 그 사이 기간에 외부 검토가 없었다고 지적해요. 하지만, 불변 펌웨어에서는 이 주장이 크게 의미가 없어요. 펌웨어가 변경되면 미감사 코드가 실행되지만, 불변 펌웨어는 이전에 검증된 동일한 코드가 계속 실행돼요.
주장: “Tangem은 새로운 암호 곡선이나 블록체인 프로토콜에 대응할 수 없다.”
Ledger는 불변 펌웨어가 새로운 암호 곡선을 지원하지 못해 구식이 될 수 있다고 주장한 적이 있어요. 하지만 이는 두 계층(펌웨어/앱)을 혼동한 거예요.
Tangem 펌웨어는 대부분의 블록체인 네트워크에서 사용하는 핵심 암호 알고리즘(ECDSA, EdDSA)을 구현해요.
새로운 블록체인, 토큰 표준, 프로토콜 지원은 펌웨어가 아니라 동반 앱(모바일 앱) 계층에서 추가돼요. Tangem은 현재 85개 이상의 블록체인과 16,000개 이상의 토큰을 지원하며, 카드 펌웨어를 바꾸지 않고도 앱 업데이트만으로 새로운 네트워크를 계속 추가해요.
주장: “Tangem 펌웨어에서 발견된 문제는 고칠 수 없다.”
불변 펌웨어에서 패치되지 않은 취약점이 남는 위험과, 업데이트 메커니즘 자체가 만드는 위험을 반드시 비교해야 해요. 이 글에서 살펴봤듯, 업데이트 경로 자체가 지속적인 위협을 만듭니다.
중요한 것은 불변 펌웨어에 트레이드오프가 없느냐가 아니라, 전체적으로 더 안전한가예요. 여러 증거가 불변 펌웨어가 더 강력한 보안을 제공함을 뒷받침해요.
독립 감사 연혁
보안 평가의 투명성은 사용자 신뢰의 핵심이에요. Tangem의 독립 감사 이력은 앞으로도 지속적으로 평가받겠다는 의지를 보여줘요.
연도 | 기관 | 범위 및 결과 |
2018 | Kudelski Security(스위스) | 전체 펌웨어 검토. 하드웨어 TRNG로 개인 키 생성 확인. 백도어 없음. 자금 손실로 이어질 취약점 없음. |
2023 | Riscure(네덜란드) | 종합 펌웨어 감사. 백도어·숨겨진 알고리즘·악용 가능한 취약점 없음 확인. 암호 구현 품질 검증. |
자주 묻는 질문
Tangem 불변 펌웨어에서 취약점이 발견되면 어떻게 되나요?
매우 드문 상황이에요. Tangem 펌웨어는 Kudelski Security와 Riscure 두 곳에서 독립 감사를 받아, 치명적 결함이 미발견될 확률이 크게 낮아요.
공격자가 Tangem 카드에 악성 펌웨어를 설치할 수 있나요?
불가능해요. 보안 칩은 출고 시 최초 펌웨어 기록 이후에는 어떤 펌웨어도 기록할 수 없도록 설계됐어요. 새로운 코드를 전달할 인터페이스나 경로 자체가 없어요. 카드 실물을 갖고 있어도 펌웨어를 바꿀 수 없어요.
Dark Skippy란 무엇이고, Tangem도 영향을 받나요?
Dark Skippy는 2024년 공개된 펌웨어 기반 공격 기법으로, 두 번의 거래 서명만으로 시드 구문 전체를 유출할 수 있어요. 서명 과정에서 무작위 논스를 시드에서 파생된 값으로 대체해 작동해요.
Dark Skippy는 기기에 악성 펌웨어가 설치되어 있어야 동작합니다. Tangem 펌웨어는 불변이라 제조 후 변경이 불가능하므로, 이 공격 벡터에 해당되지 않아요.
불변 펌웨어는 단순히 업데이트 복잡성을 피하려는 건가요?
아니에요. 내부자 위협, 사회공학, 규제 강제, 공급망 공격, 잦은 펌웨어 릴리즈에 따른 감사 공백 등 전체 위험군을 구조적으로 제거하는 보안 설계 결정이에요.
불변 펌웨어의 한계는 없나요?
주요 트레이드오프는, 생산 이후 펌웨어에 새로운 기능을 추가할 수 없다는 점이에요. 하지만 대부분의 기능 개선, 블록체인 추가, 사용자 경험 향상은 Tangem의 동반 모바일 앱(정기 업데이트, 완전 오픈소스)에서 제공돼요.
EAL6+ 인증은 무엇인가요?
EAL6+는 Common Criteria 국제 표준(ISO/IEC 15408)에서 제공하는 최고 수준의 보안 인증 중 하나예요.
칩이 반정형적으로 검증되고, 고도의 물리적·측면 채널 공격까지 엄격히 테스트되었음을 의미해요. 이 등급은 국제 여권, 국가 신분증, 고보안 결제 시스템에도 요구돼요. Tangem 보안 구조에 대한 자세한 내용은 보안 기능 문서에서 확인할 수 있어요.
앱은 오픈소스인데 펌웨어는 왜 닫힌 소스인가요?
펌웨어는 인증된 보안 칩 내부에서 제한된 암호 연산만 수행해요. 반면 동반 앱은 사용자 인터페이스와 블록체인 연동 등 광범위한 기능을 담당하므로, 커뮤니티가 직접 검증할 수 있도록 GitHub에서 완전 오픈소스로 운영돼요. 각 구성요소의 위험에 맞는 검증 방식을 적용한 거예요.
참고 자료
- Dark Skippy 공식 공개 — 공격을 발견한 보안 연구진의 논문 및 기술 FAQ darkskippy.com
- Merkle Science: Dark Skippy 위협 분석 — Dark Skippy 공격 벡터 및 하드웨어 지갑 보안에 미치는 영향 www.merklescience.com
- Common Criteria Portal (ISO/IEC 15408) — 하드웨어 부품(보안 칩 포함) EAL 보안 인증의 국제 표준 www.commoncriteriaportal.org
- Cointelegraph: 업그레이드 가능한 펌웨어의 숨겨진 위험 — 하드웨어 지갑 펌웨어 업데이트 메커니즘의 보안 영향 cointelegraph.com
- CryptoSlate: Dark Skippy 기술 보도 — Dark Skippy 개념 증명 및 공개 일정에 대한 기술 보도 cryptoslate.com
- Saleem Rashid: Ledger 보안 모델 붕괴 — Ledger Nano S에서 MCU 펌웨어 교체를 입증한 2018년 연구 saleemrashid.com