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.