Ledger Nano X & 블루투스 – 무선 하드웨어 지갑의 보안 모델
Ledger가 최근에 Ledger Nano X의 출시를 발표했습니다.. 이 신제품은 다재다능한 보안 운영 시트템을 활용하는 동시에 새로운 하드웨어 아키텍처를 기반으로 구축되었습니다. BOLOS.
Ledger Nano X는 저전력 블루투스(BLE) 연결을 제공하여 케이블 없이 Android 또는 iOS 기기와 함께 사용할 수 있습니다. 이 기능은 사용자 경험을 크게 향상시키지만 무선 연결의 보안성에 대한 몇 가지 우려를 불러 일으켰습니다. Ledger는 이러한 문제를 신속히 처리하려 합니다.
간단히 설명드리면,
- 공공 데이터만 블루투스로 전송되며, 개인 키 및 시드와 같은 중요한 데이터는 전송이 불가능하며 장치에만 보관됩니다.
- 블루투스 연결을 해킹당하더라도, Ledger Nano X의 보안은 보안 칩(Secure Element: SE)이 담당하고 있어 모든 동작 실행 시 귀하의 동의를 요청합니다.
- Ledger Nano X의 블루투스 구현은 최첨단 블루투스 프로토콜을 활용합니다. 이 블루투스 프로토콜은 페어링을 통해 인증을 보장합니다. 이는 수치 비교 기반으로 AES 기반 암호화를 사용하여 기밀성을 보장합니다.
- 만약 무선 연결로 Nano X를 사용하는 것이 불안하게 느껴진다면, 블루투스를 비활성화하고 USB 타입-C 케이블을 사용하실 수 있습니다.
그 작동 방식과 Nano X의 보안 모델에 영향을 미치지 않는 이유에 대해 더 자세히 논의해 보겠습니다.
아키텍처
새로운 아키텍처는 Ledger Nano S의 아키텍처와 약간 다른 면이 있지만 동시에 상당한 유사점을 가집니다.
다음 2개의 칩이 특징입니다:
- 최첨단 보안칩(ST33J2M0)
- 무선 지원 듀얼 코어 MCU(STM32WB55)
STM32 MCU는 스마트폰/데스크 탑 및 보안칩 간의 연결을 담당하며 단순히 프록시 역할을 합니다.
보안칩은 사용자 입력을 받고 중요한 정보가 표시되는 화면을 구동하는 역할을 합니다. 물론 제품의 보안도 책임집니다. 또한 시드와 개인 키를 저장하고 모든 암호학적 작업을 구현하여 암호화폐를 관리합니다.
저전력 블루투스(BLE)
보안 모델에 미치는 영향
블루투스 연결은 공공 정보에 대한 전송 계층으로만 사용됩니다 비밀 키 또는 시드는 BLE 스택에 절대 노출되지 않습니다. 또한 절대로 보안칩을 떠나지 않습니다.
예를 들어, 트랜잭션을 실행하면 스마트폰이나 데스크탑 Ledger Live 애플리케이션에서 해당 트랜잭션에 대한 준비가 완료되면 블루투스 또는 USB를 사용하여 MCU(STM32)로 전송되어 보안 요소에 직접 전달됩니다. 그런 다음 화면에 표시되는 액수와 수령인 주소를 확인하라는 메시지가 표시됩니다. 모든 정보가 정확하면 두 버튼을 모두 눌러 트랜잭션을 승인할 수 있습니다.
스마트폰/컴퓨터, 블루투스 링크, 또는 STM32 MCU가 손상된 경우, 보안칩은 최종적으로 트랜잭션 정보를 확인하라는 메시지를 표시합니다. 화면에 실제 트랜잭션 내역이 표시됩니다. 사용자의 명시적 동의 없이는 트랜잭션 서명이 발행되지 않습니다
Ledger의 BLE 사용
그럼에도 불구하고 블루투스 스택은 공개 키 또는 주소를 전송할 수 있으며 이는 개인정보 보호상의 우려를 야기할 수 있습니다. 바로 그러한 이유로 당사는 최첨단 블루투스 프로토콜을 구현하였습니다.
BLE 연결은 2단계 프로토콜입니다.
- 키 교환
- BLE 채널의 사용
우선, 양쪽(Ledger Nano X 및 스마트폰)에서 난수 생성기를 사용하여 자체 키 페어를 생성합니다.
이후 사용자 승인을 완료하면 Ledger Nano X와 스마트폰이 타원곡선 디피-헬먼(Elliptic Curve Diffie Hellman) 키 교환을 거치는 페어링 단계가 있습니다. 이 단계는 매우 중요합니다. 왜냐하면 바로 이 단계에서 Ledger Nano X와 스마트폰이 서로 페어링하는 상대방을 신뢰하는 단계이기 때문입니다. BLE에 대해 흔하게 발생하는 중간자 공격(MiTM)을 피하기 위해 블루투스 프로토콜에는 특정 구성이 있습니다.
당사는 MiTM 공격을 피하기 위해 숫자 비교(Numeric Comparision)라는 최첨단 보안 구성을 구현해냈습니다. 공통의 시크릿이 생성되면 Ledger Nano X와 스마트폰 모두 숫자 코드를 표시하고 사용자는 두 코드가 동일한지 확인합니다. 이 숫자 코드는 양쪽의 공개 키와 무작위 논스(nonce)에서 AES-CMAC를 사용하여 계산됩니다. 이렇게 하면 공개 키 인증을 시행하면서 충돌 공격 및 다운그레이드 공격을 피할 수 있습니다. 이 경우 양쪽에서 서로를 적법한 것으로 간주하여 통신할 수 있으므로 인증 및 기밀이 보장됩니다.
이 키 교환 프로토콜이 완료되면 AES 기반 암호화 방식을 특징으로 하는 Ledger Nano X와 스마트폰 사이에 보안 채널을 설정할 수 있습니다.
안드로이드의 과거 버전에서는, 숫자 비교 기능이 지원되지 않을 수 있습니다. 이 경우 보안칩은 사용자에게 경고 메시지를 보내고 MiTM 공격이 구현될 수 있습니다. 이 공격을 위해서는 근처에 있는 공격자가 먼저 Ledger Nano X 및 스마트폰과 불량 장치를 페어링해야 합니다. 그런 다음 공격자가 모든 패킷을 가로채 전송할 수 있습니다. 이를 통해 Ledger Nano X와 스마트폰 간의 통신을 감시하거나 보안칩에 명령을 보낼 수도 있습니다. 그러나 여전히 사용자가 모든 트랜잭션에 대한 인증과 동의를 수행해야 합니다.
보안 감사
BLE 스택은 ST 스택을 통해 구현됩니다. 장치 이용 시, 당사의 보안 팀인 Ledger Donjon에서 Invalid Point 공격과 같은 최근 공격에 대한 이번 BLE 구현의 보안성 평가를 완료하였습니다.
구관이 명관 – USB 케이블
그럼에도 불구하고 여전히 Ledger Nano X에서 무선 연결을 사용하는 것이 불안하다면 블루투스 연결을 비활성화하고 컴퓨터에 USB 타입-C 커넥터를 연결하여 Ledger Nano X의 나머지 기능을 즐길 수 있습니다.
Ledger Nano X는 현재 사전 주문이 가능합니다. 아래 배너를 클릭하여 자세한 정보를 확인하세요.