I see many people talking about Secure Element in hardware wallet like some mythical creature that will protect us from all evil, but in reality Secure Element is just a chip or microcontroller used in a similar way like in SIM cards, SDcards, IDs, Payment Cards or Phones, and they can potentially be exploited by malicious firmware updates.
In Hardware wallets they are used as second chip for storing private keys and seed words.
What are the benefits of Secure Element in Hardware Wallets?
- Seed words never leave device but they stay in Secure Element
- Secure updates
- Generating 'random' numbers
- No tempering
Secure Elements can be open source (can be verified and confirmed) or closed source (any firmware can be used including malicious), certified or not certified.
Current state of Secure Elements is Hardware wallets:
| ☵ | Name | ☵ | Open Source | ☵ | Secure Element | ☵ | SE Model + Microcontroller | ☵ | Evaluation Assurance Level | ☵ |
|
| ▮ | | ▮ | YES | ▮ | YES | ▮ | Infineon OPTIGA Trust M + Cortex M4 ARM | ▮ | N/A | ▮ |
| ▮ | | ▮ | YES | ▮ | No | ▮ | N/A + STM32F2/STM32F4 | ▮ | N/A | ▮ |
| ▮ | | ▮ | YES | ▮ | NO | ▮ | N/A + STM32 | ▮ | N/A | ▮ |
| ▮ | | ▮ | YES | ▮ | NO | ▮ | N/A | ▮ | N/A | ▮ |
| ▮ | | ▮ | NO (MIT+CC) | ▮ | YES | ▮ | ATECC608B or ATECC608A + STM32L496RGT6 | ▮ | outdated chip 608A | ▮ |
| ▮ | | ▮ | NO (MIT+CC) | ▮ | YES | ▮ | ATECC608B+Maxim DS28C36B + STM32L4S5VIT6 | ▮ | N/A | ▮ |
| ▮ | | ▮ | YES | ▮ | YES | ▮ | ATECC608B + ATSAMD51J20A | ▮ | N/A | ▮ |
| ▮ | | ▮ | YES | ▮ | YES | ▮ | ATECC608B + STM32H753 | ▮ | N/A | ▮ |
| ▮ | | ▮ | NO | ▮ | YES | ▮ | ST31H320 + STM32F042K6 | ▮ | EAL5+ | ▮ |
| ▮ | | ▮ | NO | ▮ | YES | ▮ | ST33J2M0 + STM32WB55 | ▮ | EAL5+ | ▮ |
| ▮ | | ▮ | NO | ▮ | YES | ▮ | ST33K1M5C + STM32... | ▮ | EAL5+ | ▮ |
| ▮ | | ▮ | NO | ▮ | YES | ▮ | ST33K1M5 + ? | ▮ | EAL5+ | ▮ |
| ▮ | | ▮ | NO | ▮ | YES | ▮ | NXP P60 | ▮ | EAL5+ | ▮ |
| ▮ | | ▮ | NO | ▮ | YES | ▮ | Unknown chip | ▮ | EAL5+ | ▮ |
| ▮ | | ▮ | NO (soon Y) | ▮ | YES | ▮ | NXP P5CD081 | ▮ | EAL5+ | ▮ |
| ▮ | | ▮ | NO (soon Y) | ▮ | YES | ▮ | NXP J3R110 | ▮ | EAL6+ | ▮ |
| ▮ | | ▮ | NO | ▮ | YES | ▮ | Infineon ? | ▮ | EAL6+ | ▮ |
| ▮ | | ▮ | NO | ▮ | YES | ▮ | ST31H320 A03 | ▮ | EAL5+ | ▮ |
| ▮ | | ▮ | NO | ▮ | YES | ▮ | Infineon Optiga Trust-P | ▮ | EAL5+ | ▮ |
| ▮ | | ▮ | NO | ▮ | YES | ▮ | Infineon CC ? | ▮ | EAL5+ | ▮ |
| ▮ | | ▮ | N/A | ▮ | YES | ▮ | unknown built-in SE + STM32MP157C | ▮ | EAL7+ | ▮ |
Ledger has just changed its website stating that LNS PLUS models are EAL6+ certified
[/td][/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
NO
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
Samsung SecureCore microchip ?
[/td][td]▮[/td]
[td]
EAL6+
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
NO
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
Military-grade CC security chip ?
[/td][td]▮[/td]
[td]
EAL6+
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
NO
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
Unknown chip
[/td][td]▮[/td]
[td]
EAL4+
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
N/A
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
Infineon SLE78
[/td][td]▮[/td]
[td]
EAL6+
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
NO
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
NXP ? + ARM Cortex M4
[/td][td]▮[/td]
[td]
EAL6+
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
HSC32I1
[/td][td]▮[/td]
[td]
EAL6+*/EAL 4+
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
ATECC608A
[/td][td]▮[/td]
[td]
outdated chip
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
ATECC608A
[/td][td]▮[/td]
[td]
outdated chip
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
Infineon ?
[/td][td]▮[/td]
[td]
EAL6+
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
probably MAX36010-BSN-T
[/td][td]▮[/td]
[td]
EAL5+
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
ARM Cortex-M0
[/td][td]▮[/td]
[td]
EAL5+
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
ATECC608B + Maxim DS28S60 (+ Maxim MAX32520)
[/td][td]▮[/td]
[td]
EAL?
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
N/A
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
NXP MCU + ?
[/td][td]▮[/td]
[td]
N/A
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
NXP J3H145 and NXP J3R110
[/td][td]▮[/td]
[td]
EAL6+
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
NO
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
ATECC608A
[/td][td]▮[/td]
[td]
outdated chip
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
NO
[/td][td]▮[/td]
[td]
N/A + STM32F205VG
[/td][td]▮[/td]
[td]
N/A
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
ATECC608A+NXP JCOP3 and ARM Cortex-M
[/td][td]▮[/td]
[td]
EAL5+ outdated chip 608A
[/td][td]▮[/td]
[/tr]
[tr]
[td][/td][td]▮[/td]
[td]
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
YES
[/td][td]▮[/td]
[td]
nRF5340
[/td][td]▮[/td]
[td]
N/A
[/td][td]▮[/td]
[/tr]
[/table]
Note that older hardware wallets models Passport, ColdCard, Onekey may have outdated chip version ATECC608A!
Credits and thanks
@SFR10 for making this wonderful table
Let's see some examples how Hardware Wallets got exploited before in presentation
Exploiting Hardware Wallet’s Secure Element by Riscure and Sergei Volokitin.
If you can choose, then always go for Open Source.
*
EAL = Evaluation Assurance Level
EAL1 - functionally tested
EAL2 - structurally tested
EAL3 - methodically tested and checked
EAL4 - methodically designed, tested, and reviewed
EAL5 - semi-formally designed and tested
EAL6 - semi-formally verified design and tested
EAL7 - formally verified design and tested
**Trezor is working on their own fully open source Secure Element chip and they started separate project for this purpose called
Tropic Square.
- Cobo hardware wallet stopped production and renamed to Keystone with some changes in software and hardware.
CC = Commons Clause License
https://commonsclause.com/
-
Seed Generation in Hardware Wallets-
Open Source Hardware Wallets[/quote]