Tempo di lettura: 2 minuti

Una delle soluzioni che più spesso vengono suggerite per mantenere al sicuro i nostri Bitcoin e le nostre alt-coin sono gli Hardware Wallet, in particolare il Ledger Nano S!

Nonostante la fama di questo hardware wallet, ognuno di noi si sarà chiesto almeno una volta la fatidica domanda: il Ledger Nano S è davvero sicuro? Andiamo ad analizzare e verificare la sicurezza del nostro Nano S! Ti ricordiamo inoltre di leggere la recensione del Ledger Nano S.

IMPORTANTE: La procedura indicata di seguito andrà ad annullare la garanzia e il diritto al cambio del prodotto.

Analizziamo per prima cosa l’hardware, al fine di scoprire eventuali manomissioni o sostituzioni del software ufficiale, ecco un paio di cose che dovresti sapere:

  1. Il “Secure Element” controlla il 100% della memoria flash del microcontrollore in fase di boot, come descritto qui. In caso di manomissione, verrà notificato un warning in fase di accensione. Un altro controllo può essere messo in atto verificando l’assenza di chip aggiuntivi, e che l’MCU sia un stm2f042k6 (con 32Kb di memoria flash, visto che una più grande potrebbe del codice per violare il Secure Element. La scritta sopra il chip può cambiare, però deve comparire la sequenza “042K6”.
    sicurezza nano s
    Revisione 1 – PCB blu, colla nera
    ledger nano s sicurezza
    Revisione 2 – PCB verde, colla nera o trasparente (non presente in foto)
    ledger nano s sicurezza
    Revisione 3 – PCB blu, colla nera
    nano s hardware
    Revisione 4 – PCB blu
  2. Secure Element è personalizzato in fabbrica con un certificato che possa dimostrare l’approvazione sulla provenienza e sulla produzione. È possibile verificarlo con un semplice comando python! Installiamo il pacchetto ledgerblue attraverso pip:
    pip install --no-cache-dir ledgerblue
    Successivamente eseguiamo sempre dal nostro terminale:
    python -m ledgerblue.checkGenuine --targetId 0x31100002
    Il codice di questo modulo è ovviamente open source, potete trovarlo in questo repository Github.
  3. Ogni applicazione manomessa lancerà sul display un avviso di “Non genuine software” all’apertura, mentre adottando una user interface modificata (potete trovarne una qui) verrà mostrato un warning anche in fase di boot!
  4. Tutti i check di cui abbiamo precedentemente parlato si basano sulla seguente chiave pubblica, generata con algoritmo secp256k1: 0490f5c9d15a0134bb019d2afd0bf297149738459706e7ac5be4abc350a1f818057224fce12ec9a65de18ec34d6e8c24db927835ea1692b14c32e9836a75dad609 – che potete trovare nel file checkGenuine.py, visualizzabile e scaricabile a questo indirizzo.

Riccardo Masutti
Autore

Sono uno startupper, ethical hacker e consulente di Blockchain/Bitcoin e Digital Marketing. Mi considero una persona intraprendente e molto determinata, faccio del learning transfer il mio punto di forza e questo spiega il perchè sono sempre interessato nelle nuove tecnologie ed innovazioni. Ho una mentalità Open-Source oriented, amo la crittografia e tengo molto alla sicurezza, sia relativa a Bitcoin ma non solo… Bitcoin user and miner since 2011.

Scrivi un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.