Tous les appareils Ledger sont soumis à la vérification de l’authenticité au cours du processus de prise en main, puis chaque fois qu’ils se connectent au Gestionnaire dans Ledger Live. Les appareils Ledger authentiques contiennent une clé secrète qui est définie pendant leur fabrication. Seul un appareil Ledger authentique peut utiliser sa clé pour fournir la preuve cryptographique requise afin de se connecter au serveur sécurisé de Ledger.
Les utilisateurs avancés peuvent également vérifier l’intégrité du matériel de leur appareil Ledger pour s’assurer qu’il n’a pas été compromis. Cet article contient des informations techniques détaillées relatives à la sécurité de votre appareil.
Information importante
- Veuillez noter que si vous ouvrez votre appareil Ledger, la garantie est annulée.
- De plus, une fois ouvert, votre appareil Ledger ne sera plus remboursable ni échangeable.
Microcontrôleur (MCU)
L’élément sécurisé (Secure Element) vérifie la totalité de la mémoire flash du microcontrôleur au démarrage, comme décrit dans cet article de blog. S’il a été modifié, vous recevrez un avertissement au démarrage. Pour effectuer un contrôle supplémentaire, vous pouvez ouvrir votre appareil et vérifier qu’aucune puce supplémentaire n’a été ajoutée. Comparez-la aux photos ci-dessous, et assurez-vous que le MCU est un STM32WB55 (sur les révisions 1, 2, 3) et STM32WB35 (sur la révision 4).
Révisions du matériel
Révision 4
- Circuit imprimé (PCB) vert
Face avant du circuit imprimé
Face arrière du circuit imprimé
Révision 3
- Circuit imprimé (PCB) noir
Face avant du circuit imprimé
Face arrière du circuit imprimé
Révision 2
- Circuit imprimé (PCB) noir
Face avant du circuit imprimé
Face arrière du circuit imprimé
Révision 1
- Circuit imprimé (PCB) noir
Face avant du circuit imprimé
Face arrière du circuit imprimé
Attestation de l’élément sécurisé
L’élément sécurisé (Secure Element) est lui-même personnalisé en usine avec une attestation prouvant qu’il a été fabriqué par Ledger. Vous pouvez le vérifier en exécutant :
pip install --no-cache-dir ledgerblue
python -m ledgerblue.checkGenuineRemote --targetId 0x33000004
Le code source est disponible ici.
Vérification de l’application
Lors de l’ouverture d’une application, un avertissement "Non Genuine" (Inauthentique) s’affiche si elle n’a pas été signée par Ledger. Une interface utilisateur modifiée (telle que celle visible à ce lien : https://github.com/LedgerHQ/nanos-ui) affichera également un message d’avertissement au démarrage.
Root of Trust
La Root of Trust (racine de confiance) pour le lot actuel est la clé publique secp256k1 suivante :
0490f5c9d15a0134bb019d2afd0bf2971497384597
06e7ac5be4abc350a1f818057224fce12ec9a65de18ec34
d6e8c24db927835ea1692b14c32e9836a75dad609
Vérifié sur Genuine.py
Microcontrôleur (MCU)
L’élément sécurisé (Secure Element) vérifie la totalité de la mémoire flash du microcontrôleur au démarrage, comme décrit dans cet article de blog. S’il a été modifié, vous recevrez un avertissement au démarrage. Pour effectuer un contrôle supplémentaire, vous pouvez ouvrir votre appareil pour vérifier qu’aucune puce supplémentaire n’a été ajoutée (en vous référant à la photo ci-jointe). Vérifiez également que le MCU est un stm2f042k6 (avec un flash de 32 Kb, car une mémoire flash plus grande pourrait contenir du code qui trompe la validation de l’élément sécurisé). Les marquages sur la puce peuvent varier mais vous devriez voir la chaîne "042K6".
Révisions du matériel
Révision 1
- Circuit imprimé (PCB) bleu
- Colle noire
Révision 2
- Circuit imprimé (PCB) vert
- Colle noire ou transparente [non illustrée ici]
Révision 3
- Circuit imprimé (PCB) bleu
- Colle noire
Révision 4
- Circuit imprimé (PCB) bleu
- Trou dans le circuit imprimé
Révision 5
- Circuit imprimé (PCB) bleu
Révision 5 bis
- Circuit imprimé (PCB) bleu
Révision 6
- Circuit imprimé (PCB) bleu
Révision 7
- Circuit imprimé (PCB) bleu ou Circuit imprimé (PCB) vert
- Câble fin pour écran
Attestation de l’élément sécurisé
L’élément sécurisé (Secure Element) est lui-même personnalisé en usine avec une attestation prouvant qu’il a été fabriqué par Ledger. Vous pouvez le vérifier en exécutant :
pip install --no-cache-dir ledgerblue
Et sur la version 1.3.1 du micrologiciel ou une version antérieure
python -m ledgerblue.checkGenuine --targetId 0x31100002
Ou sur la version 1.4.1 du micrologiciel ou une version ultérieure
python -m ledgerblue.checkGenuine --targetId 0x31100003
Le code source est disponible ici.
Vérification de l’application
Lors de l’ouverture d’une application, un avertissement "Non Genuine" (Inauthentique) s’affiche si elle n’a pas été signée par Ledger. Une interface utilisateur modifiée (telle que celle visible à ce lien : https://github.com/LedgerHQ/nanos-ui) affichera également un message d’avertissement au démarrage.
Root of Trust
La Root of Trust (racine de confiance) pour le lot actuel est la clé publique secp256k1 suivante :
0490f5c9d15a0134bb019d2afd0bf297
149738459706e7ac5be4abc350a1f818057224fce12ec9a65de18ec34d
6e8c24db927835ea1692b14c32e9836a75dad609
Vérifié sur Genuine.py
Microcontrôleur (MCU)
L’élément sécurisé (Secure Element) vérifie la totalité de la mémoire flash du microcontrôleur au démarrage, comme décrit dans cet article de blog. S’il a été modifié, vous recevrez un avertissement au démarrage. Pour effectuer un contrôle supplémentaire, vous pouvez ouvrir votre appareil et vérifier qu’aucune puce supplémentaire n’a été ajoutée. Comparez-la aux photos ci-dessous, et assurez-vous que le MCU est un STM32F042K6U6.
Révisions du matériel
(Face avant du circuit imprimé)
(Face arrière du circuit imprimé)
Attestation de l’élément sécurisé
L’élément sécurisé (Secure Element) est lui-même personnalisé en usine avec une attestation prouvant qu’il a été fabriqué par Ledger. Vous pouvez le vérifier en exécutant :
pip install --no-cache-dir ledgerblue
python -m ledgerblue.checkGenuine --targetId 0x33100004
Le code source est disponible ici.
Vérification de l’application
Lors de l’ouverture d’une application, un avertissement "Non Genuine" (Inauthentique) s’affiche si elle n’a pas été signée par Ledger. Une interface utilisateur modifiée (telle que celle visible à ce lien : https://github.com/LedgerHQ/nanos-ui) affichera également un message d’avertissement au démarrage.
Root of Trust
La Root of Trust (racine de confiance) pour le lot actuel est la clé publique secp256k1 suivante :
0490f5c9d15a0134bb019d2afd0bf297
149738459706e7ac5be4abc350a1f818057224fce12ec9a65de18ec34d
6e8c24db927835ea1692b14c32e9836a75dad609
Vérifié sur Genuine.py