Ledger Nano X e Bluetooth – Modelo de segurança de uma carteira de hardware sem fio

Ledger anunciou recentemente o lançamento do Ledger Nano X . Este novo produto é construído em torno de uma nova arquitetura de hardware, aproveitando ao mesmo tempo nosso versátil sistema operacional de segurança BOLOS .

O Ledger Nano X possui conectividade Bluetooth Low Energy (BLE), permitindo que ele seja usado com dispositivos Android ou iOS sem a necessidade de um cabo. Embora esse recurso melhore bastante a experiência do usuário, ele levantou algumas preocupações sobre a segurança da conexão sem fio. Gostaríamos de abordar isso.

Em resumo:

  • Somente dados públicos são transportados por Bluetooth; dados críticos (como chaves privadas e seed) nunca saem do dispositivo.
  • Mesmo se a conexão Bluetooth for hackeada, a segurança do Ledger Nano X depende do Secure Element (SE), que solicitará seu consentimento para qualquer ação.
  • A implementação do Ledger Nano X Bluetooth usa um protocolo Bluetooth de última geração . Este protocolo Bluetooth garante autenticação usando o emparelhamento. Isso é baseado em comparação numérica e a confidencialidade é garantida usando criptografia baseada em AES.
  • Se alguma vez, você não estiver confortável usando o seu Nano X com uma conexão sem fio, você pode desativar o Bluetooth e usar o cabo USB tipo C.

Vamos discutir com mais detalhes como isso funciona e por que isso não afeta o modelo de segurança dessa carteira de hardware.

Arquitetura

A nova arquitetura é um pouco diferente da do Ledger Nano S, ao mesmo tempo em que é bastante semelhante.

Possui 2 chips:

  • Um novo Secure Element de última geração (ST33J2M0)
  • Um MCUs dual-core com suporte sem fio (STM32WB55)

O STM32 MCU é responsável pela conexão entre o smartphone / desktop e o Secure Element e simplesmente age como um proxy.

O Elemento Seguro é responsável por obter entradas do usuário e direcionar a tela para onde as informações críticas são exibidas. Claro, também é responsável pela segurança do produto. Ele armazena a semente e as chaves privadas e implementa todas as operações criptográficas para gerenciar suas criptomoedas.

Bluetooth de baixa energia

Impacto no nosso modelo de segurança

A conexão Bluetooth é usada apenas como uma camada de transporte para informações públicas. As chaves ou sementes secretas nunca são expostas à pilha BLE e nunca deixam o Elemento de Segurança .

Por exemplo, quando você faz uma transação, a transação é preparada no aplicativo Ledger Live para smartphone ou desktop e, em seguida, enviada usando Bluetooth ou USB para o MCU (STM32), que a retransmite diretamente para o Elemento seguro. Você será solicitado a verificar a quantidade e o endereço do destinatário, exibidos na tela. Se tudo estiver correto, você pode aprovar a transação pressionando os dois botões.

Se o seu smartphone / computador estiver comprometido, se o link Bluetooth já tiver sido comprometido, se alguma vez o MCU STM32 tiver sido comprometido, o Elemento de Segurança solicitará que você verifique as informações da transação. A tela mostrará os detalhes reais da transação. Nenhuma assinatura de transação é emitida sem o seu consentimento explícito.

Nosso uso de BLE

No entanto, a pilha Bluetooth pode transportar suas chaves públicas ou endereços, o que pode gerar preocupações com a privacidade. É por isso que implementamos um protocolo Bluetooth de última geração .

Uma conexão BLE é um protocolo de 2 fases.

  • Troca de Chaves
  • Uso do canal BLE

Primeiro de tudo, ambas as partes (Ledger Nano X e smartphone) geram seus próprios pares de chaves usando um Gerador Aleatório.

Depois disso, há uma fase de emparelhamento em que, após a aprovação do usuário, o Ledger Nano X e o smartphone passam por uma troca de chaves Elliptic Curve Diffie Hellman. Esta fase é fundamental, pois é a fase em que o Ledger Nano X confia no smartphone ao qual se associa e vice-versa. Para evitar os ataques Man-In-the-Middle (MiTM), que são os ataques comuns ao BLE, o protocolo Bluetooth possui configurações específicas.

Implementamos a configuração de segurança de última geração para evitar ataques MiTM: Comparação Numérica. Quando o segredo comum é gerado, tanto o Ledger Nano X quanto o smartphone exibem um código numérico e o usuário verifica se eles são iguais. Este código numérico é calculado usando AES-CMAC de chaves públicas de ambas as partes e nonces aleatórios. Isso evita ataques de colisão e ataques de downgrade, enquanto reforça a autenticação de chaves públicas. Se este for o caso, ambas as partes se consideram legítimas e podem se comunicar, garantindo autenticação e confidencialidade.

Quando esse protocolo de troca de chaves for concluído, um canal seguro pode ser estabelecido entre o smartphone e o Ledger Nano X, apresentando um esquema de criptografia baseado em AES.

Em versões mais antigas do Android , a Comparação Numérica não pode ser exibida. Neste caso, o Elemento Seguro avisa o usuário com uma mensagem e um ataque MiTM pode ser implementado. Esse ataque exigiria que um invasor, localizado nas proximidades, primeiro emparelhe um dispositivo desonesto com o Ledger Nano X e também com o smartphone. Então ele poderia interceptar e encaminhar cada pacote. Isso permitiria espionar a comunicação entre o Ledger Nano X e o smartphone, ou até mesmo enviar comandos para o Secure Element. No entanto, o usuário ainda seria solicitado a confirmar e autorizar qualquer transação.

Auditoria de Segurança

Nossa pilha BLE é implementada através da pilha ST. O Ledger Donjon , nossa equipe de segurança, avaliou a segurança dessa implementação em relação aos ataques mais recentes, como ataques de Ponto Inválido.

Bom e velho cabo USB

No entanto, se você não se sentir confortável usando uma conexão sem fio em seu Ledger Nano X, você pode simplesmente desativar a conectividade Bluetooth e usar o conector USB tipo C com seu computador para aproveitar os recursos restantes do Ledger Nano X.