에어갭 지갑 보안
에어갭 지갑이란 무엇이고, 보안을 강화하려면 어떤 것을 고려해야 할 것인지 정리했습니다.
이 글은 약간 논란을 일으킬 수도 있습니다. 많은 사람들이 에어갭 지갑을 사용하면 설정이 매우 안전하고 해킹에 거의 무적이라고 생각하는데, 사실 그렇지 않기 때문입니다.
사람들이 보안에서 실패하는 가장 흔한 이유 중 하나는 어떤 것이 안전하다고 생각하는 것... 그러나 실제로는 그렇지 않은 경우입니다. 오늘 우리는 에어갭 하드웨어 지갑이 무엇인지 설명하고, 하드웨어 지갑 공급업체들이 광고하는 종종 부정확하거나 오해를 불러일으키는 마케팅을 파헤쳐 여러분이 보호받을 수 있도록 하겠습니다.
에어갭이란 무엇인가?
에어갭 장치는 외부 네트워크에 연결된 유/무선 네트워크 인터페이스가 없는 장치입니다.
많은 컴퓨터가 유선 네트워크에 연결되지 않더라도 무선 네트워크 인터페이스 컨트롤러(예: WiFi)가 있어 인터넷에 연결되어 소프트웨어를 업데이트합니다. 이는 보안 취약점을 나타내므로 에어갭 컴퓨터는 무선 인터페이스 컨트롤러가 영구적으로 비활성화되거나 물리적으로 제거됩니다. (출처: Wikipedia)
데이터를 USB 케이블이나 Wi-Fi를 통해 전송하는 대신, 데이터를 microSD 카드, USB 플래시 드라이브, HDD 등에 직접 기록하고 에어갭 장치로 물리적으로 이동시켜야 합니다.
이렇게 하는 이유는 장치 사이에 물리적 격차(에어갭)를 만들어 모든 데이터 흐름을 완전히 통제하기 위함입니다. 데이터는 데이터를 물리적으로 이동시키는 사람이 승인받았고, 적절히 검토된 경우에만 전송됩니다.
사무실에서 직원 컴퓨터와 보안이 잘 보호된 서버 같은 전통적인 IT 환경에서는 외부 해커가 민감한 데이터를 탈취하지 못하도록 이러한 보안 조치가 최상위로 여겨집니다.
에어갭 컴퓨터는 일반 직원이 있는 낮은 보안 지역(사무실)과 엄격하게 잠긴 서버룸 등 높은 보안 지역을 구분해 보안 강화를 위해 추가적으로 더 많은 잠금 장치와 보안 요원을 두어 접근을 제한하는 경우가 많습니다.
에어갭 지갑이란?
에어갭의 개념을 이해한 후, 이를 하드웨어 지갑의 세계에서 어떻게 사용하는지 살펴보겠습니다.
암호화폐 지갑의 세계에서 에어갭 지갑은 보통 인터넷과 같은 네트워크나 컴퓨터에 완전히 연결되지 않은 지갑을 말합니다. 이 지갑은 컴퓨터에 연결되지 않으며, 대신 microSD 카드를 주고받거나 QR 코드를 스캔하는 방식으로 통신합니다.
에어갭 거래 서명을 지원하는 하드웨어 지갑의 대표적인 예는 COLDCARD Mk4입니다. 중요한 점은 에어갭 지갑이라고 주장하는 많은 하드웨어 지갑들이 여전히 가끔 인터넷에 연결된 컴퓨터에 플러그를 꽂아야 한다는 것입니다.
비트코인 보안 가이드에서 설명한 바와 같이, 보안 위험을 방지하는 최선의 방법은 해당 위험을 완전히 제거하는 것입니다. 하지만 에어갭 지갑을 사용한다고 해킹 위험이 완전히 사라지지 않습니다. 사실 잘못 구현되면 보안을 악화시킬 수 있습니다.
비트코인을 보내기 위해 에어갭 지갑을 어떻게 사용하는가?
하드웨어 지갑이 인터넷이나 다른 컴퓨터와 완전히 분리되어 있어도, 비트코인을 쓰려면 하드웨어 지갑과 컴퓨터 간에 데이터가 오가야 합니다. 이는 하드웨어 지갑이 거래를 서명하고 비트코인을 소유하고 있음을 증명하는 역할을 하기 때문입니다.
대부분의 에어갭 암호화폐 지갑이 비트코인 거래를 생성하고 전파하는 과정은 다음과 같습니다:
- 거래 생성: 컴퓨터가 BIP174로 정의된 미서명 비트코인 거래(PSBT)를 생성합니다.
- PSBT 저장: 이 PSBT 거래 데이터를 microSD 카드에 저장합니다.
- PSBT 전송: microSD 카드를 컴퓨터에서 하드웨어 지갑으로 옮깁니다.
- PSBT 서명: 하드웨어 지갑이 개인 키를 사용하여 PSBT에 서명합니다.
- 서명된 거래 전송: 다시 microSD 카드를 컴퓨터로 이동합니다.
- 서명된 거래 전파: 완전히 서명된 거래를 컴퓨터가 비트코인 네트워크에 전파합니다.
에어갭 하드웨어 지갑이 생각만큼 보안을 강화하지 않는 이유
"연결되지 않았다"는 것이 표면적으로 논리적이고 해킹 불가능해 보이지만, 데이터는 여전히 "신뢰할 수 없는 컴퓨터"와 에어갭 하드웨어 지갑 사이에 전달됩니다.
단지 USB 케이블이 아닌 microSD 카드를 사용하고, 전송 매개체로 사용자가 그 역할을 할 뿐입니다. 중요한 것 은 하드웨어 지갑의 보안은 데이터가 어떻게 전송되는지가 아니라, 전송된 데이터의 무결성을 점검하고 데이터가 잘 소독되었는지에 달려 있다는 점입니다.
신뢰할 수 없는 컴퓨터는 microSD 카드에 바이러스를 심어두고, 이를 "해커 불가 에어갭 암호화폐 하드웨어 지갑"에 꽂을 때 지갑이 감염될 수 있습니다. 이는 완벽한 비유는 아니지만, 요점을 명확하게 전달하는 데 도움이 됩니다. 데이터가 어떻게 전송되었는지는 중요하지 않고, 전송된 데이터가 무엇이고 그것이 어떻게 검토되는지가 중요합니다.
하드웨어 지갑에 데이터를 전송하는 다양한 방법이 있습니다:
- USB 케이블: 전통적인 데이터 전송 방법
- USB 드라이브 / microSD 카드: microSD 카드를 이용한 데이터 전송
- NFC: 근거리 무선통신을 이용한 데이터 전송
- QR 코드: 데이터를 QR 코드로 인코딩하여 하드웨어 지갑이 이를 촬영
- 블루투스: 모바일 지갑에서 인기 있는 블루투스 표준을 이용한 데이터 전송
QR 코드, microSD 카드 또는 더 일반적인 USB 연결을 통해 데이터를 하드웨어 지갑으로 전송하는 경우에도 여전히 데이터는 양방향으로 이동합니다. 컴퓨터가 감염되어 소프트웨어 지갑을 장악한 사람이 있다면, 악성으로 생성된 거래 데이터가 하드웨어 지갑으로 전송되는 방법은 중요하지 않습니다.
중요한 것은 하드웨어 지갑이 데이터를 어떻게 수신, 검사 및 소독하는지입니다. 제대로 수행되지 않으면 에어갭 하드웨어 지갑도 해킹될 수 있습니다. 따라서 "에어갭"이라고 해서 완벽하게 해킹 불가하다고 생각해서는 안 됩니다.
다른 보안 유형과 마찬가지로, 에어갭 지갑을 사용하는 것만으로 암호화폐가 "해킹 불가"가 되지는 않습니다. 2010년 이란의 우라늄 농축 시설을 무너뜨린 스턱스넷 악성 코드와 같은, 에어갭 컴퓨터가 해킹된 국제적으로 유명한 예도 있습니다.
에어갭 지갑이 실제로 보안을 강화하는 방법
우리가 하드웨어 지갑을 에어갭으로 분류하려면, 소프트웨어 지갑과 컴퓨터가 있는 위치와 완전히 별개의 위치에서 사용이 가능해야 합니다.
예를 들어 하드웨어 지갑이 파라데이 백에 보관되고, 금고에 잠기며, 집 안의 더 튼튼하고 잠긴 문 뒤에 숨겨진 공간에 있어야 합니다. 방에는 창문도 없고, 카메라도 없으며, 다른 컴퓨터도 없습니다. 하드웨어 지갑은 이 높은 보안 지역에서만 유지되며 절대 그 외부로 이동하지 않습니다.
초기 설정, 지갑 생성/가져오기/복원, 수신 주소 표시, 거래 서명, 펌웨어 업그레이드 등을 모두 이 높은 보안 지역 안에서 수행할 수 있어야 합니다.
USB 없음
USB는 오래된 표준으로, 복잡성으로 인해 많은 시간과 기술, 비용이 필요합니다. 이를 적절히 테스트하고 안전하게 유지하는 것이 어렵기 때문에, 많은 제조업체가 USB를 사용하는 하드웨어 지갑을 안전하게 사용할 수 없습니다.
데이터 전송 시 종단간 암 호화(E2EE)를 사용하는 것이 중요합니다. E2EE가 없으면 프로그램이나 웹사이트가 USB를 통해 전송되는 데이터를 보고 실시간으로 변경할 수 있습니다.
USB는 하드웨어 지갑의 정보(ID)를 노출시킬 수도 있습니다. 컴퓨터가 Ledger 1234를 연결했다고 인식하면, 공격자도 이를 알게 되어 지갑 소유자에게 피해를 입힐 수 있습니다.
QR 코드, NFC, 블루투스 없음
QR 코드는 카메라 하드웨어 및 소프트웨어 라이브러리가 필요합니다.
NFC와 블루투스 역시 보안 위험을 초래하는 추가 장치 및 프로토콜이 필요합니다. 특히 NFCdrip이라는 취약점을 통해 NFC는 예기치 않게 최대 100미터까지 데이터를 전송할 수 있습니다.
블루투스는 라이브러리 의존성이 추가되고 보안 위험을 증가시키는 블루투스 장치가 원거리에서 데이터를 방송할 수 있습니다.
물리적 보안
에어갭 하드웨어 지갑이 가장 큰 이점을 제공하는 부분은 추가 물리적 보안입니다.
하드웨어 지갑이 보안이 낮은 구역에서 계속 이동하면 더 많이 노출되고 정보가 유출될 위험이 커집니다. 예를 들어 지갑을 책상에 두거나, 누군가 창문을 통해 사용하는 모습을 보거나, 감염된 웹캠이 이를 포착하거나, 이동 중에 지갑을 분실할 수도 있습니다. 나쁜 가능성은 무수히 많습니다.
완전한 에어갭은 하드웨어 지갑이 높은 보안 구역을 벗어나지 않게 하여 보안 위험을 줄일 수 있습니다. 이는 수백만 또는 수십억 원의 자산을 관리하는 기업이나 개인이 은행급 보안 시설, 무장 경비, 봉인된 금고 등에서 하드웨어 지갑을 관리하게 하여 더 높은 보안성을 제공합니다.
에어갭 지갑이 보안을 약화시키는 이유
보안은 결코 완벽하지 않으며, 에어갭 지갑에도 보안을 약화시키는 요소가 존재합니다.
잘못된 보안감
완전한 에어갭 기능을 구현하지 못한 하드웨어 지갑(많은 경우 그렇습니다)은 사용자가 기기가 100% 안전하다고 착각하게 만듭니다.
주로 마케팅 부서가 “에어갭”의 의미를 제대로 설명하지 않고 과장하여 제품을 홍보하는 것이 문제입니다. 예를 들어, 하드웨어 지갑을 인터넷에 연결된 컴퓨터에 계속 플러그를 꽂아 펌웨어를 업데이트하거나 블루투스를 통해 거래를 서명해야 하는 경우, 이를 에어갭 하드웨어 지갑으로 볼 수는 없습니다. 그러나 이러한 방식으로 광고되는 경우가 많습니다.
기술적으로 익숙하지 않은 사람들은 이러한 광고를 보고 자신이 안전하다고 생각하다가, 휴대폰이 감염되었을 때 하드웨어 지갑이 올바르게 유효성을 검사하지 못하여 자금을 모두 잃는 상황을 맞이할 수 있습니다.
안티-클레프토(반-절도) 보호 부족
안티-클레프토(anti-klepto)는 하드웨어 지갑이 서명하고 전파하는 거래를 통해 비밀 키가 유출되는 것을 막는 프로토콜입니다. 이를 보호하려면 에어갭 지갑은 컴퓨터와 하드웨어 지갑 간에 두 번의 데이터 전송이 필요합니다.
이로 인해 이미 느린 워크플로가 더 복잡해지므로, 에어갭 하드웨어 지갑에서는 이를 구현한 제품이 없습니다. USB로 연결된 경우, 하드웨어 지갑과 소프트웨어 지갑이 원활하게 상호 작용하여 이 프로토콜을 따를 수 있습니다. 예를 들어 BitBox02는 이러한 보호 기능을 제공하지만, 다른 많은 지갑은 그렇지 않습니다.
낮은 사용성
에어갭 지갑은 기본적으로 추가적인 단계들이 필요해 사용성을 낮춥니다. 이로 인해 사용자 오류가 발생할 가능성이 있습니다. 아무리 주의하더라도 우리는 모두 인간이며 주의 부족, 게으름 또는 단순히 귀찮음으로 인해 단계가 누락되거나 잘못 수행될 수 있습니다.
보안은 복잡성과 반비례하는 경우가 많으며, 더 많은 단계와 더 많은 microSD 카드를 사용하면 특히 기술에 익숙하지 않은 사용자에게 실수와 자금 손실의 위험이 커집니다.
예를 들어, 에어갭 하드웨어 지갑과 데이터 전송에 사용하는 microSD 카드에 개인 이름과 주소가 포함된 개인 문서를 저장하다가 이를 잃어버릴 경우, 공격자는 지갑 정보와 주소를 알게 될 수 있습니다.
이 상황이 웃길 수도 있지만, 많은 사람들이 여전히 모니터에 암호를 적어 놓는 포스트잇을 사용합니다. 사람들은 완벽하지 않습니다. USB 연결이 몇 가지 방식으로 덜 안전할 수 있지만, 단순한 클릭만으로 여러 단계를 줄일 수 있어 오히려 더 안전할 수도 있습니다.
아테나 평가
대다수 사용자에게는 지갑이 에어갭 기능을 지원하느냐 여부가 큰 차이를 만들지 않을 가능성이 큽니다. 오히려 소스 코드를 검토할 수 있는지, 적절한 시드 생성 및 저장을 지원하는지와 같은 요소가 더 중요합니다. 우리가 선정한 상위 지갑들은 이러한 핵심 기능과 그 이상을 제공하여 대부분의 사용자에게 훌륭한 선택이 됩니다.
결국, 우리는 주요 기능을 은행 금고 안에 평생 보관할 수 있는 하드웨어 지갑이 USB 연결이 필요한 지갑보다 더 안전하다고 판단하지만, USB 전용 BitBox02와 같은 지갑이 나쁜 하드웨어 지갑이라는 뜻은 아닙니다.
또한 하드웨어 지갑 제조업체가 제품이 "에어갭"이라고 주장한다고 해서 반드시 해킹 불가하거나 완전한 에어갭 장치가 되는 것은 아닙니다. 에어갭 지갑의 제대로 된 사용을 원하는 몇몇 사용자에게는 아래와 같은 조건을 충족해야 한다고 추천합니다:
- 파라데이 백에 보관하고 금 고에 잠그며 집 안의 잠긴 공간에 보관하는 등, 고보안 구역에서 평생 보관 및 운영할 수 있는 지갑이어야 합니다. 보안 카메라, 경비원, 잠금장치 및 강철 구조물이 많을수록 좋습니다.
- 높은 보안 지역에서 영구적으로 생활하며 전혀 제거되지 않아야 합니다.
- microSD 카드를 통해 연결 없이 모든 기능을 수행할 수 있어야 합니다.
- 마이크로SD 카드를 통해 제공된 정보(변경 주소, 펌웨어 키, 수신 주소 등)를 올바르게 확인하고 검증할 수 있어야 합니다.
- 잘 알려진 브랜드의 무작위로 구입한 microSD 카드만 사용하고, 다른 용도로 사용하지 않아야 합니다.
- 우리의 평가 방법론에 기재된 보안 및 프라이버시 테스트 기준을 최대한 많이 충족해야 합니다.
위에서 보듯이, 제대로 된 에어갭 운영은 광고에서 주장하는 것보다 훨씬 더 복잡합니다. 이러한 불편함이 보안을 높이긴 하지만, 위와 같은 방식으로 운영할 계획이 없다면 에어갭이 필요하지 않을 수도 있습니다. 그래도 괜찮습니다.
우리는 좋은 하드웨어 지갑은 사용자의 필요에 따라 점차 이러한 운영 모드를 지원할 수 있어야 한다고 믿습니다. 하지만 에어갭이 없다고 해서 나쁜 장치가 되는 것은 아니며, 다만 약간 덜 안전할 뿐입니다.
보안은 개인 키를 보호하기 위한 여러 보호층을 만드는 것입니다. 하나의 보호벽이 무너져도, 대기하고 있는 다른 10개의 보호벽이 있어야 합니다. 에어갭 모드로 운영하는 것은 이러한 방어층 중 하나가 될 수 있지만, 다른 9개의 방어층도 갖추지 않으면 에어갭이 있더라도 위험에 처할 수 있습니다!
보안은 단일한 해결책이 아니라 여러 가지 방어층으로 이루어져야 한다는 점을 강조하고 있습니다. 에어갭 모드를 사용하는 것도 이러한 방어층 중 하나가 될 수 있지만, 다른 중요한 보안 조치들도 함께 갖추지 않으면 위험에서 완전히 벗어날 수 없습니다.
따라서 에어갭 지갑이 보안을 강화하는 하나의 방법임은 분명하지만, 그것만으로 모든 보안 위협에 대처할 수는 없습니다. 에어갭 지갑을 사용하고자 하는 사용자들은 다음 사항들을 꼭 기억해야 합니다:
-
다층 보안 접근법: 에어갭만 의지하는 대신, 다양한 보안 조치를 결합하여 사용하는 것이 중요합니다. 예를 들어, 강력한 비밀번호, 2단계 인증, 그리고 다른 보안 기능을 결합하여 안전성을 높일 수 있습니다.
-
정확한 검증 절차: 에어갭 지갑이 데이터를 올바르게 검증하고 유효성을 검사하는 기능이 있는지 확인해야 합니다. 잘못된 거래 데이터나 악성 코드가 들어오지 않도록 확인하는 절차가 무엇보다 중요합니다.
-
사용의 복잡성과 인지된 위험성: 에어갭 지갑을 잘못 사용하거나 중요한 단계를 생략하는 경우 보안에 취약해질 수 있다는 점을 인지해야 합니다. 에어갭 기능을 포함한 하드웨어 지갑을 선택할 때는 사용 편의성도 고려하여 자신에게 적합한 옵션인지 신중히 판단해야 합니다.
결론적으로, 에어갭 지갑은 추가적인 보안 레이어를 제공할 수 있지만, 이것만으로 완전한 보안이 보장되지는 않습니다. 사용자는 이러한 지갑이 광고되는 방식이나 일반적인 인식에서 벗어나, 실제로 제공하는 보안 기능을 명확히 이해하고 사용해야 합니다.