With the uproar surrounding Ledger’s proposed software to encrypt and extract wallet seed, several crypto experts are claiming it has always been possible to deploy software that can extract hardware wallet seeds and that this is general to all hardware wallets. This was shocking news to me. So I’d like to find out here from an official Trezor community representative if it is at all possible that software, whether an official firmware update or malware, could be deployed to extract a Trezor wallet’s seed without access to the physical device. I understand the argument that if such software were deployed a wallet owner would still have to install/approve it. I still want to know if this is at all possible with Trezor wallets.
Does passphrase use also mitigate this potential exploit avenue? Thanks anyone who can definitively answer.
The firmware running on your Trezor must have access to private keys – otherwise it could not sign your transactions.
That means that, if the firmware turned malicious for whatever reason, it could exfiltrate the private keys. The only way to prevent that would be to freeze the device so that it could never be updated – and pray that there aren’t any problems in the frozen version already.
That’s the reason for all the talk about open source: we give our users a very solid set of tools to verify that nothing nefarious is going on under the hood. If you can see the source, you can make sure for yourself that this is not in fact happening.
I mean, someone needs to have access to the physical device. You need to approve the firmware installation, and then, at minimum, you need to connect the device to a PC that is connected to the internet, so that the hypothetical stolen seed has somewhere to go.
But if you mean “without physically breaking the device open and installing a hardware modification”, then yes.
No. A sufficiently malicious firmware will also record the passphrase. Remember: you are entering the passphrase into the device. The device knows it.
It’s technically incorrect to call this an “exploit”. This is a property of, well, every computer chip, I guess. The fact that you can set your admin password to 1234 is not an “exploit avenue”, and neither is the fact that software can be updated.
An “exploit” is a break in a security barrier. If someone managed to extract the seed without cooperative firmware, we would call that an exploit. If someone managed to install unsigned malware on Trezor, we would call that an exploit.
But once a malicious firmware is actually running, there are no more security protections to break.
To clarify further: it is possible to design a Secure Element that never ever gives out the private keys (as long as the hardware design is correct), and the software can send data into it for signing.
In practice, this wouldn’t make much of a difference. Malicious firmware might not be able to grab your actual seed, but it can sign any transaction (any data really) at any time.
Thanks for responding. So the answers are YES. Without enough expertise to monitor the code/updates ourselves, the rest of us are trusting in both Trezor the company, including its employees, and the community watching the code. Thanks for the honesty. Time for me to re-evaluate my options, especially being in a country that is becoming increasingly hostile towards crypto. While “exploit” may not be the term technicians use to describe the scenarios I asked about, for the non-technical like myself, they do constitute exploitations of trust (it is not true the seed can never leave the hardware wallet) and, arguably, the desperation of the financially disenfranchised looking for a safe haven for the pennies we can scrape together to survive. Very, very important to understand. For bringing this issue out to be clarified, I think the world owes Ledger a debt of gratitude. Thanks again for the honesty.