You can also read the English version of this article.

Nel settore degli hardware wallet, si distinguono due filosofie opposte nella progettazione della sicurezza: affidarsi a un chip sicuro (Secure Chip / SC) come una scatola nera (black-box) il cui funzionamento non è trasparente per l’utente, o impiegare un firmware open-source su un microcontrollore (MicroController Unit / MCU) general purpose. Con BitBox02, abbiamo sviluppato un'architettura di sicurezza che ci consente di unire i benefici di entrambi gli approcci.

Perché usare un chip sicuro è 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 il tuo denaro digitale. Tuttavia, difendersi da attacchi fisici è ancora più complesso. Strumenti specializzati consentono a un aggressore di accedere ai dati presenti su un microcontrollore general purpose, 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 general purpose sono sviluppati prioritariamente per prestazioni, funzionalità e costo, non per resistere ad attacchi fisici. Al contrario, i chip sicuri 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 chip sicuro sia un obiettivo irraggiungibile.

Lo svantaggio del closed-source

I chip sicuri non sono particolarmente costosi, quindi perché non tutti gli hardware wallet li adottano? Il principale svantaggio è che i chip sicuri sono closed-source, quindi il loro codice sorgente è segreto e non divulgabile. Il firmware che opera su un chip sicuro 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 è adeguato. A nostro avviso, non dovresti dover riporre fiducia nel 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 general purpose non sono adeguati per il compito di mantenere un segreto digitale. In un mondo ideale, potremmo eseguire firmware open-source su un chip sicuro 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 chip sicuro, combinandoli in modo che:

  • l'hardware wallet esegua esclusivamente firmware open-source,
  • il dispositivo sia protetto contro attacchi fisici tramite l'impiego di un chip sicuro,
  • non sia richiesta una fiducia assoluta nel chip sicuro, 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 general purpose e un chip sicuro, ciascuno con le proprie caratteristiche uniche. Invece di far girare direttamente il firmware Bitcoin sul chip sicuro, 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 chip sicuro, accessibile solo attraverso specifiche funzioni di derivazione della chiave (key derivation functions / KDF) fornite dal chip.

Confrontata con l'utilizzo di un solo microcontrollore general purpose, 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 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 chip sicuro. Per questo motivo, la nostra architettura di sicurezza è progettata in modo che il chip sicuro non possa mai venire a conoscenza di segreti relativi alla custodia delle tue criptovalute. Nel raro caso in cui il chip sicuro 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 general purpose.

Come funziona effettivamente?

Protezione del seed

Il segreto principale, noto anche come seed del wallet da cui sono derivate 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 chip sicuro 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 chip sicuro, 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 chip sicuro renderebbe il dispositivo inutilizzabile dopo circa un giorno di tentativi. Questo scenario presuppone che il contatore sul microcontrollore general purpose possa essere eluso in modo tale da non resettare il dispositivo dopo soli 10 tentativi di sblocco falliti.

Sbloccare il 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 chip sicuro

In questa architettura, non è necessario fidarsi del chip sicuro. Il chip non è in grado di apprendere segreti relativi alla custodia delle criptovalute o di diminuire 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 chip sicuro genera una chiave di attestazione unica che viene poi firmata da BitBox.

Il chip sicuro crea:

  • una chiave privata che non può essere esportata dal chip sicuro, 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 rinviato indietro 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 chip sicuro 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 dettagliato threat model!



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 chip sicuro (SC) trattato come una scatola nera, o sull'impiego di un firmware open-source su un microcontrollore (MCU) general purpose.

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

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

Qual è lo svantaggio dei chip sicuri?

Il principale svantaggio dei chip sicuri è che sono closed-source, ovvero a codice chiuso. Il firmware che opera su un chip sicuro 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 chip sicuro?

BitBox02 impiega due chip: un MCU general purpose e un chip sicuro. 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 chip sicuro.

Come assicura BitBox02 l'autenticità del dispositivo?

Il chip sicuro 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.