Nel settore degli hardware wallet esistono due approcci opposti alla sicurezza: affidarsi ai Secure Chip come “scatole nere”, il cui funzionamento non è trasparente per l’utente, oppure utilizzare firmware open source su microcontrollori (MCU) generici. Con il BitBox02 abbiamo sviluppato un’architettura di sicurezza che combina i vantaggi di entrambi gli approcci.

Perché usare un secure chip è importante?

Gli hardware wallet sono ideati per salvaguardare le tue chiavi private. La maggior parte di essi è efficace contro gli attacchi remoti, proteggendo tutte le informazioni sensibili dal tuo computer. Così, diventa difficile per applicazioni dannose, malware o attacchi mirati rubare i tuoi bitcoin. Tuttavia, proteggersi dagli attacchi fisici è ancora più complesso. Strumenti specializzati consentono a un aggressore di accedere ai dati presenti su un microcontrollore generico, ad esempio leggendo direttamente le informazioni all'interno del chip. Alcuni metodi utilizzati includono la decapsulazione del chip con un laser o con acido, seguita dalla lettura dei dati. Sebbene l'equipaggiamento necessario possa essere costoso, l'aggressore non ha bisogno di un laboratorio personale: servizi di questo tipo sono disponibili online in paesi dove il reverse engineering (ingegneria inversa) è legale.

I microcontrollori generici sono sviluppati prioritariamente per prestazioni, funzionalità e costo, non per resistere ad attacchi fisici. Al contrario, i secure chip sono progettati specificamente per contrastare questi attacchi e sono costruiti per sopportare decapsulazione, utilizzo di sonde, fault injection, disturbi di tensione, buffer overflows o side-channel attacks.

Siamo convinti che proteggere fisicamente i dati in un hardware wallet senza l'uso di un secure chip sia un obiettivo irraggiungibile.

Lo svantaggio del closed-source

I secure chip non sono particolarmente costosi, quindi perché non tutti gli hardware wallet li adottano? Il principale svantaggio è che i secure chip sono closed-source, quindi il loro codice sorgente è segreto e non divulgabile. Il firmware che opera su un secure chip non può essere reso open-source a causa degli accordi di non divulgazione imposti.

Quando si tratta di firmware che protegge i tuoi bitcoin, che genera seed phrases casuali e firma transazioni, affidarsi a software closed-source, non soggetto a verifica indipendente, non è sufficiente. A nostro avviso, non dovresti fare affidamento sul fatto che il produttore del tuo hardware wallet (e ciascuno dei suoi dipendenti) agisca in "buona fede", individuando e risolvendo i propri bug in maniera diligente senza il beneficio di revisioni indipendenti.

Il meglio di entrambi i mondi

Tuttavia, i microcontrollori generici non sono adatti a proteggere segreti digitali. In un mondo ideale, potremmo eseguire firmware open-source su un secure chip anch'esso open-source. Ci sono progetti in corso, come TropicSquare, che puntano a sviluppare un chip di questo tipo, ma al momento non esiste alcun chip open-source disponibile sul mercato. La soluzione più valida attualmente è quella di sfruttare i benefici di entrambi, firmware open-source e secure chip, combinandoli in modo che:

  • l'hardware wallet esegua esclusivamente firmware open-source,
  • il dispositivo sia protetto contro attacchi fisici tramite l'impiego di un secure chip,
  • non sia richiesta una fiducia assoluta nel secure chip, dato che questo non detiene alcun segreto

L'architettura di sicurezza di BitBox02 è stata sviluppata con questi obiettivi. Utilizziamo due chip in parallelo: un microcontrollore generico e un secure chip, ciascuno con le proprie caratteristiche uniche. Invece di eseguire direttamente il firmware Bitcoin sul secure chip, lo eseguiamo sul microcontrollore. Ciò significa che il codice è completamente open-source e può essere verificato da chiunque. I segreti sono conservati sul microcontrollore, ma criptati utilizzando più chiavi, inclusa una chiave presente esclusivamente sul secure chip, accessibile solo attraverso specifiche funzioni di derivazione della chiave (key derivation functions / KDF) fornite dal chip.

Confrontata con l'utilizzo di un solo microcontrollore generico, questa configurazione migliora la sicurezza con le seguenti caratteristiche:

  • Leggere dati criptati direttamente dal microcontrollore è inefficace di per sé.
  • Introduce un ritardo ad ogni tentativo di sblocco per ostacolare gli attacchi di brute force.
  • Impone un limite al numero totale di tentativi di sblocco durante il ciclo di vita del dispositivo.
  • Incorpora un vero generatore di numeri casuali (RNG), senza che sia necessario fidarsene ciecamente.
  • La conservazione sicura di chiavi di attestazione uniche permette la verifica crittografica dell’autenticità del BitBox02 tramite la BitBoxApp o altri software wallet.

Ancora una volta, non vogliamo riporre cieca fiducia nel secure chip. Per questo motivo, la nostra architettura di sicurezza è progettata in modo che il secure chip non possa mai venire a conoscenza di segreti relativi alla custodia delle tue criptovalute. Nel raro caso in cui il secure chip sia compromesso e agisca in modo malevolo, la sicurezza complessiva si riduce al livello di quei sistemi che non includono un secure chip, garantendo comunque la protezione dei tuoi segreti attraverso la tua password e la chiave del microcontrollore generico.

Come funziona effettivamente?

Protezione del seed

Il segreto principale, noto anche come seed del wallet da cui derivano tutte le chiavi private, è cifrato e memorizzato sulla memoria flash del microcontrollore. Per accedere al seed, sono necessari tre segreti individuali, come descritto nell'illustrazione seguente.

Ovviamente, se un attaccante riuscisse a eseguire un attacco brute force, provando milioni di password al minuto sul dispositivo, questa architettura potrebbe essere facilmente compromessa. Per prevenire tali tentativi di sblocco, vengono impiegati due contatori:

  • Sul microcontrollore, un contatore limita il numero di tentativi di sblocco a 10 fallimenti consecutivi, dopodiché il dispositivo si resetta.
  • In aggiunta, come ulteriore difesa, un contatore sul secure chip rende il dispositivo inutilizzabile dopo circa 730.000 tentativi di sblocco.

Per ostacolare ulteriormente i tentativi di brute force, è necessario eseguire la derivazione della chiave, che consente di accedere al segreto (K), tre volte tramite lo slot della Key Derivation Function (KDF) sul secure chip, introducendo così un ritardo.

Cosa implica ciò per un potenziale ladro? Se utilizzi una password alfanumerica di 8 caratteri, il ladro avrebbe bisogno, in media, di più di 1000 anni per violare la password. Questo calcolo è valido, anche se in pratica il contatore sul secure chip renderebbe il dispositivo inutilizzabile dopo circa un giorno di tentativi. Questo scenario presuppone che il contatore sul microcontrollore generico possa essere eluso in modo tale da non resettare il dispositivo dopo soli 10 tentativi di sblocco falliti.

Accedere al seed

Il seed diventa accessibile al firmware open-source solo dopo che il dispositivo è stato sbloccato con successo. Se anche solo uno dei tre segreti necessari non è presente, il seed criptato rimane inaccessibile.

Non fidarti del secure chip

In questa architettura, non è necessario fidarsi del secure chip. Il chip non è in grado di conoscere segreti relativi alla custodia delle criptovalute o di compromettere la casualità utilizzata per creare il seed del wallet.

Attestazione sicura del dispositivo

È fondamentale essere certi che il tuo BitBox02 sia un dispositivo autentico e non una replica malevola. Per questo motivo, durante la configurazione iniziale del BitBox02 in fabbrica, il secure chip genera una chiave di attestazione unica che viene poi firmata da BitBox.

Il secure chip crea:

  • una chiave privata che non può essere esportata dal secure chip, e
  • la corrispondente chiave pubblica, che viene firmata con una root key di BitBox.

Quando connetti il BitBox02 al tuo computer, la BitBoxApp invia una challenge (un numero casuale) al dispositivo. Questo viene firmato e inviato insieme alla relativa chiave pubblica precedentemente firmata da Shift. L'app è in grado di verificare l'intera catena di certificazione e mostra un avviso in caso di fallimento di questa verifica.

Grazie a questa architettura di sicurezza, implementiamo e utilizziamo un secure chip per migliorare notevolmente la sicurezza fisica, senza compromettere i nostri principi di open-source o ridurre la sicurezza complessiva, anche considerando gli scenari peggiori.

Sei interessato a saperne di più sulla trasparenza della sicurezza di BitBox02? Consulta il nostro threat model dettagliato!



Domande Frequenti (FAQ)

Quali sono i due principali approcci alla progettazione della sicurezza degli hardware wallet?

Nel settore degli hardware wallet, i due approcci principali sono basati sull'utilizzo di un secure chip (SC) trattato come una scatola nera, o sull'impiego di un firmware open-source su un microcontrollore (MCU) generico.

Perché è importante utilizzare un secure chip per gli hardware wallet?

Gli hardware wallet sono progettati per proteggere le chiavi private. I secure chip sono resistenti ad attacchi fisici quali decapsulazione, uso di sonde, fault injection, disturbi di tensione, buffer overflows o attacchi di tipo side-channel.

Qual è lo svantaggio dei secure chip?

Il principale svantaggio dei secure chip è che sono closed-source, ovvero a codice chiuso. Il firmware che opera su un secure chip non può essere reso open-source a causa degli accordi di non divulgazione, rendendo così le verifiche indipendenti più complesse.

Come combina BitBox02 i vantaggi del firmware open-source e del secure chip?

BitBox02 impiega due chip: un MCU generico e un secure chip. Il firmware Bitcoin viene eseguito sul microcontrollore, garantendo che sia open-source. I segreti sono conservati sul microcontrollore, ma sono criptati utilizzando chiavi multiple, incluse quelle presenti sul secure chip.

Come assicura BitBox02 l'autenticità del dispositivo?

Il secure chip crea una chiave di attestazione unica firmata da Shift durante la configurazione in fabbrica. La BitBoxApp verifica questa chiave, garantendo l'autenticità del dispositivo.


Non possiedi ancora un BitBox?

Il BitBox02 è disponibile in due edizioni: l'edizione Multi, che supporta diverse criptovalute e può essere utilizzata come dispositivo per l'autenticazione a due fattori (2FA). L'edizione Bitcoin-only invece offre un firmware focalizzato: meno codice significa una superficie di attacco ridotta, che migliora ulteriormente la sicurezza quando custodisci solo bitcoin.

Prendine uno nel nostro negozio!


Shift Cypto è un'azienda privata con sede a Zurigo, in Svizzera. Il nostro team di contributori di Bitcoin, esperti di criptovalute e ingegneri della sicurezza crea prodotti che consentono ai clienti di godere di un percorso senza stress dal livello principiante a quello di padronanza nella gestione delle criptovalute. La BitBox02, il nostro portafoglio hardware di seconda generazione, consente agli utenti di memorizzare, proteggere e effettuare transazioni in Bitcoin e altre criptovalute con facilità - insieme al suo compagno software, la BitBoxApp.