Avec la mise à jour BitBox Bellinzona, nous avons introduit un nouveau mécanisme de sécurité pour votre BitBox02. Il peut sembler peu intuitif de mettre en place des mesures de sécurité supplémentaires sans qu’il y ait d’abord une vulnérabilité. C’est pourtant là que notre philosophie de « défense en profondeur » prend tout son sens.

Défense en profondeur

Le terme « défense en profondeur » a peut-être une origine militaire, mais il est aujourd’hui surtout utilisé dans le domaine de la cybersécurité. Il décrit une stratégie dans laquelle une ligne de défense n’est pas conçue comme un point de contact unique, mais comme plusieurs lignes de défense échelonnées. L’objectif est d’user au maximum un attaquant en ne lui offrant pas une cible unique, et en l’obligeant à vaincre tout un ensemble de fortifications aux forces variées. Une percée à un endroit ne provoque pas immédiatement l’effondrement de toute la ligne de défense.

Un exemple de « défense en profondeur »

Cette philosophie s’applique aussi à l’architecture de sécurité du BitBox02. Comme pour une ligne de défense, la sécurité du BitBox vise à n’avoir aucun point unique de défaillance susceptible d’entraîner une compromission complète. Au lieu d’offrir à un attaquant potentiel une cible unique à exploiter, le BitBox02 répartit ses mécanismes de sécurité de manière redondante et aussi largement que possible.

Compromettre un seul aspect du BitBox02 ne suffit généralement pas pour accéder au portefeuille. Un exemple est notre architecture à double puce, qui répartit entre le MCU généraliste et la puce sécurisée les secrets nécessaires pour déchiffrer la seed stockée sur le BitBox02. Sur d’autres hardware wallets, compromettre soit la puce sécurisée, soit le MCU suffit. Avec le BitBox02, les deux puces devraient être compromises, et la seed resterait encore protégée par le mot de passe de l’appareil, qui n’est pas stocké sur l’appareil. D’autres exemples de cette approche de « défense en profondeur » incluent les builds reproductibles, le protocole anti-klepto et le chiffrement de notre communication USB.

Chiffrement de la seed

Dans les versions précédentes du firmware, une fois l’appareil déverrouillé, la seed était déchiffrée et conservée dans la mémoire de travail du BitBox02 (également appelée « mémoire vive », ou RAM) sans chiffrement supplémentaire. Cela était nécessaire, car le BitBox02 doit avoir accès à la seed pour fonctionner, par exemple afin que l’utilisateur puisse créer des adresses ou signer des transactions.

Si, toutefois, une vulnérabilité permettant à un attaquant d’accéder au contenu de la RAM était découverte, les clés pourraient devenir vulnérables à une extraction. C’est un scénario très improbable, car l’attaquant devrait probablement avoir un accès physique à un appareil déverrouillé dans son laboratoire d’électronique, tout en maintenant l’appareil alimenté en permanence. Mais même pour une attaque de ce type, nous pouvons nous préparer et limiter les dégâts potentiels.

En gardant la seed chiffrée lorsqu’elle n’est pas utilisée activement, et en ne la déchiffrant que temporairement lorsque c’est absolument nécessaire, nous pouvons éviter une faille de sécurité même en cas de lecture possible de la RAM.

Mais comment cela fonctionne-t-il ? Si la clé de chiffrement de la seed est elle aussi conservée dans la RAM de l’appareil, un attaquant pourrait simplement lire les deux, puis déchiffrer la seed plus tard. Comment le BitBox02 peut-il garder la seed chiffrée tout en signant des transactions sans devoir saisir le mot de passe de l’appareil à chaque fois ?

Comment fonctionne le chiffrement de la seed

Chiffrer des données dans la mémoire de travail de l’appareil, alors qu’il doit aussi y conserver la clé de chiffrement sous une forme ou une autre, n’est pas simple. Voici comment nous l’avons mis en œuvre pour le BitBox02 :

  1. Déverrouillage du BitBox02 : lorsque vous branchez votre BitBox02, il vous est demandé de saisir le mot de passe de votre appareil. Le mot de passe de l’appareil, combiné aux secrets présents sur le MCU généraliste et la puce sécurisée, déchiffre la seed chiffrée stockée dans la mémoire flash du BitBox02. Cela est expliqué en détail dans notre article Le meilleur des deux mondes : utiliser une puce sécurisée avec un firmware open source
  2. Création de la clé de chiffrement : après ce déverrouillage initial, le MCU crée une clé aléatoire. Cette clé aléatoire est ensuite envoyée à la puce sécurisée, qui en dérive une nouvelle version via sa fonction de dérivation de clé. Pour cela, elle utilise le même secret stocké dans l’élément sécurisé pour le déverrouillage initial. Cela nous permet de conserver en toute sécurité dans la RAM un précurseur de la véritable clé de chiffrement. Pour obtenir la vraie clé de chiffrement, il faut le faire passer par la puce sécurisée.
  3. Chiffrement de la seed : la clé dérivée est renvoyée au MCU, qui l’utilise ensuite pour rechiffrer la seed qu’il conserve dans la RAM. La clé de chiffrement dérivée et la seed non chiffrée sont alors immédiatement supprimées.
  4. Déchiffrement de la seed : pour déchiffrer la seed, par exemple afin d’envoyer une transaction, le MCU redemande la clé dérivée à l’élément sécurisé. Avec cette clé dérivée temporaire, il peut déchiffrer la seed chiffrée et signer la transaction. Après la signature de chaque entrée, la clé dérivée est immédiatement supprimée et seule la clé chiffrée reste sur le MCU.

Grâce à ce processus, la seed reste protégée même si un attaquant parvient à lire la mémoire de travail du BitBox02.

Comme la clé aléatoire n’est conservée qu’en RAM, le fait de débrancher le BitBox02 l’efface. Cela garantit que le mot de passe de l’appareil sera de nouveau nécessaire pour déchiffrer la seed.

Conclusion

Le fait de ne déchiffrer la seed qu’en cas de nécessité rend le BitBox02 plus sûr. En tant que fabricant d’un appareil utilisé pour conserver d’importantes sommes d’argent, nous devons tenir compte du fait que nos hypothèses de sécurité actuelles ne resteront pas forcément valables à l’avenir. C’est pourquoi il est important de ne pas s’appuyer sur ce qui pourrait devenir un point unique de défaillance, mais de construire plusieurs couches de sécurité dans son architecture et d’améliorer en permanence la sécurité globale du BitBox02.

Comme un château qui ajoute un mur supplémentaire à l’intérieur de son enceinte, le BitBox02 dispose désormais d’une couche de défense supplémentaire.

Vous n’avez pas encore de BitBox ?

La sécurité de vos cryptos n’a pas à être compliquée. Le portefeuille matériel BitBox02 stocke hors ligne les clés privées de vos cryptomonnaies. Vous pouvez ainsi gérer vos actifs en toute sécurité.

Le BitBox02 existe aussi en version Bitcoin-only, avec un firmware résolument ciblé : moins de code signifie moins de surface d’attaque, ce qui améliore encore votre sécurité si vous ne stockez que du Bitcoin.

Commandez le vôtre dans notre boutique !

Questions fréquentes (FAQ)

Qu’est-ce que l’approche « défense en profondeur » dans le BitBox02 ? Elle désigne une stratégie dans laquelle il n’existe pas une seule ligne de défense. À la place, plusieurs lignes de défense échelonnées sont mises en place pour user au maximum un attaquant. Une percée à un endroit ne provoque pas l’effondrement de toute la ligne de défense.

Comment le BitBox02 garantit-il l’absence de point unique de défaillance ? Le BitBox02 répartit ses mécanismes de sécurité de manière redondante et aussi largement que possible. Par exemple, il utilise une architecture à double puce, qui répartit entre le MCU et la puce sécurisée les secrets nécessaires pour déchiffrer la seed. En compromettre une seule ne suffit pas ; les deux puces et le mot de passe de l’appareil sont nécessaires.

Pourquoi le chiffrement de la seed en RAM a-t-il été introduit dans le BitBox02 ? Auparavant, une fois déverrouillée, la seed était déchiffrée dans la RAM du BitBox02 sans chiffrement supplémentaire. Si une vulnérabilité permettait à un attaquant d’accéder à la RAM, les clés pourraient devenir vulnérables. En gardant la seed chiffrée lorsqu’elle n’est pas utilisée et en ne la déchiffrant que lorsque c’est nécessaire, la sécurité est renforcée.

Comment le BitBox02 gère-t-il le chiffrement de la seed sans saisie permanente du mot de passe ? Après le déverrouillage initial avec le mot de passe de l’appareil, le MCU crée une clé aléatoire. Cette clé, combinée aux secrets du MCU et de la puce sécurisée, est utilisée pour rechiffrer la seed dans la RAM. Pour déchiffrer la seed lors des transactions, le MCU demande la clé dérivée à l’élément sécurisé.

Shift Crypto est une entreprise privée basée à Zurich, en Suisse. Notre équipe, composée de contributeurs Bitcoin, d’experts crypto et d’ingénieurs en sécurité, conçoit des produits qui permettent à nos clients de progresser sereinement, du niveau débutant à expert en gestion des cryptomonnaies. Le BitBox02, notre hardware wallet de deuxième génération, permet aux utilisateurs de stocker, protéger et utiliser facilement Bitcoin et d’autres cryptomonnaies, avec l’aide de son compagnon logiciel, la BitBoxApp.

This post was translated with the help of AI