Stop using hardware wallets that don’t take security seriously (sadly, all of them except Jade and BitBox). This is a novel construction, but the class of attacks is very old. A laptop purchased in person, immediately installing Linux without ever connecting it to the Internet is a much better way to store coin than hardware wallets. Which, frankly, is just embarrassing incompetence for the hardware wallet industry. https://darkskippy.com/
I wanna know: what makes Jade and BitBox better than others?
They bothered to implement anti-exfil (provably random nonces). This means that a malicious firmware or even malicious hardware wallet can’t steal your coin! For every other hardware wallet, you’re blindly trusting Amazon/UPS/five factories in China/the webserver you got the firmware from/etc/etc. The idea that none of these parties have anyone working there who might want to go steal people’s coin is absurd, frankly.
I think this is also a good time to bring this up. It's possible for Nunchuk and Coinkite to have malicious actors in their supply chain. They could collaborate and compromise someone's Tapsigner.
cc nostr:nprofile1qqsw3znfr6vdnxrujezjrhlkqqjlvpcqx79ys7gcph9mkjjsy7zsgygpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz8thwden5te0dehhxarj9ekh2arfdeuhwctvd3jhgtnrdakj7qgkwaehxw309ajkgetw9ehx7um5wghxcctwvshspg7dju 👀?
Anyone in the supply chain with access to the Tapsigner can take a photo of the back of it. Someone with access to Nunchuk's server can get a copy of the encrypted backup.
nostr:nprofile1qqsvxq03xdev3uxehjqcdkr5lfzl5vawmcf7vm6ps73m6ghwg8y4k2spz3mhxue69uhh5cts9ehx7um5wgcjucm0d5q35amnwvaz7tmjv4kxz7fj9ehx7um5wfshx6tp9ehx2aqpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhga0f5u9 nostr:nprofile1qqsqqch4qlpjrhnrnquw5a6k6cpqnxpzr3l8ljxv5gj5t8nyzv8wg6gpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs4va347 Can you comment?
Gotcha, sounds like that should be common practice. More on that in their blog: Anti-Klepto protocol To solve this, Shift Crypto and Blockstream developed Anti-Klepto. Instead of solely relying on the randomness that the hardware wallet provides for the nonce, additional randomness is provided by the host device. This prevents the hardware wallet firmware from manipulating the nonce in a way so that it contains hidden data. https://bitbox.swiss/blog/how-almost-all-hardware-wallets-can-steal-your-seed/
You're exaggerating. Every competent hww checks firmware signature. Something an average joe can't do kn their laptop.
Unless it was compromised while shipping through Amazon/UPS/five factories in China ...
If that happens you're screwed anyway. A compromised HWW might as well contain a radio transmitter. We need better tamper-proof seals.
That’s not a scalable attack. In that model the attacker has to be kinda nearby when you use the HWW.
Ever heard of GSM?
I wonder how you would pull that off. How small is the smallest GSM and how would it know when to strike as GSM is quite detectable. If it blares out its presence on every power-up, that hardware would make the news in a week. So ... scaling is a problem with GSM, too.
I don't know how small GSM is today but I know that ten years ago the smallest widely available wifi module was around 100 times larger and 10 times costlier than today. So it migh become feasible in the future. There are other radio communication protocols as well.
You can definitely include a GSM chip for cheap, but now the device board actually looks visually different, which people can identify, even if admittedly relatively few would. Still, if you did this en-masse it’d likely be discovered before too long, whereas a malicious firmware likely would not.
I'm just wondering if something like the AirTag infrastructure could be used for minimal power antennas. By Apple I'm pretty sure the answer is yes. All the phones are spying on us in more ways than we imagine.
In theory, but I’m not sure if you can transmit arbitrary messages over that without being Apple.
The attacker could pretend it's 256 devices and transmit the seed by simply sending or not sending a message. It's not that high number.
My point was I’m not sure you can pretend you’re *any* devices without being an Apple device. In any case nostr:nevent1qqsqac7czr2hk05gkf0l5s59tg3tz8xyspn9ea7aqxrvg9pswev8y8spzfmhxue69uhk7enxvd5xz6tw9ec82cspz3mhxue69uhkummnw3ezummcw3ezuer9wcq3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7qglwaehxw309ahx7um5wgkhyetvv9ujucnfw33k76tw9ehxjmn2vy728fpa
They have cheap BLE tags. If those cannot be reverse-engineered maybe you can record their beacons without the reach of any other device and then just replay them. Buying 256 tags may be worth it if the victim stores tens of millions satoshis. I'd be really surprised if there isn't any way to sneak out 256 bits of data. Or less if the attacker wants to do some brute forcing.
I understand the data to be signed and tied to an Apple ID. It may well also be tied to some per-device factory-sealed key. I mean you can always buy 256 real AirTags but hardware modifications are much more likely to be detected than software ones.
Even without it, there are other similar networks which relay information.
And there are hacks to make other components work as antennas, so there it is again, the dependency on a clean firmware. But the range without a dedicated radio chip is considerably less, reducing the risk in theory for many users.
Yes, that too. You can use Rpis pin to transmit FM radio for instance. Which gives me crazy idea: if you transmitted a fake ad "call <number> and say <seed> to win 1M dollars" how many people could hear it and would call?
I mean the power available to do that from inside a hardware wallet is probably not gonna make it far enough for much anyone to do much with it, doubly so if you only have a relatively limited time to get it through before you run out of power.
Yep, this specific idea was just funny thought, not a serious attack.
Seems like yes, Coldcard and others should implement this… but you’re seriously recommending hardware without a secure element, or even a general purpose computer over this??? Did you comment already on why you think those tradeoffs are worth it?
We have Anti-Klepto implemented. https://bitbox.swiss/blog/anti-klepto-explained-protection-against-leaking-private-keys/
@BitcoinUniversity has tried to call attention to this many times
BitBox has something called Anti-Klepto that makes this attack impossible. You can read more about it here: https://bitbox.swiss/blog/anti-klepto-explained-protection-against-leaking-private-keys/
Well this is spicy. Haha. I'd like to run my own oracle for Jade but this is all (bitcorn in general...) so complicated. UX/UI upgrades where the backends are obfuscated away is what I'm here for.
Any hardware wallet could have implemented anti-exfil signing at any point in the last 5 or more years, with minimal/no UX change. The fact that none bothered is sheer incompetence bordering on maliciousness.
Here's an easy explainer on how this works and how we mitigate it: https://bitbox.swiss/blog/how-almost-all-hardware-wallets-can-steal-your-seed/
I hope my multisig protects me from this because I just yolo'd without building firmware myself
tails with #Sparrow on a stick > hw wallet
Didn’t someone release a bitcoin-specific version of tails?
IDK, but it comes with electrum wallet I think.
I’d not use the version that comes with the os 5 or so years back tails had the vulnerable electrum for some time So it’s better to have it downloaded from the website first and then use it on tails (offline)
Well, self-custody comes with a lot of responsibilities. However, it might still work better. Like when you dig up the capsule with a stick from a secret location in deep swamps, boot the shit up and update everything before you proceed 😂
Bails might be what you’re thinking https://github.com/BenWestgate/Bails
What do you think of using tails and electrum in it for seed generation?
Don’t you work for @jack who created the Bitkey? Do they not take security seriously?
nostr:nevent1qqswpqgdzswxs7c46u9sg4lzg9v2s63gx9ney9ghwqh5pslut6qz4kgpramhxue69uhkummnw3ez6un9d3shjtnzd96xxmmfdchxu6twdfssz9mhwden5te0dehhxarj9enx6apwwa5h5tnzd9aqzynhwden5te0danxvcmgv95kutnsw43qz8rhwden5te0dehhxarj9ekh2arfdeuhwctvd3jhgtnrdaksqu5896
Ledger is aware of anti-klepto - but apparently won't bother due to shitcoinery exhibit a: https://www.ledger.com/blog/towards-a-trustless-bitcoin-wallet-with-miniscript (scroll down to leaking information) exhibit b: https://m.primal.net/JpFo.png
source for image in exhibit b: https://www.reddit.com/r/ledgerwallet/comments/10loki9/does_ledger_supports_antiklepto_protocol/
Ledger is closed source so their claim that their chip is secure is what they said but what cannot be audited publicly.
That much is true, but does not hinder an anti-klepto implementation regardless. Their excuse is shitcoins and being lazy to build the tooling around it
Closed source and lack of anti-klepto is a red flag. nostr:nevent1qvzqqqqqqypzq3huhccxt6h34eupz3jeynjgjgek8lel2f4adaea0svyk94a3njdqy88wumn8ghj7mn0wvhxcmmv9uq3uamnwvaz7tmwdaehgu3dwp6kytnhv4kxcmmjv3jhytnwv46z7qpqms59v4syvcssf0msyxa9pk393ndnvdz4wyz6t257v2urms6e7q5qxfv8q8
Why would I even own an electronic hardware wallet? Non electronic hardware wallets are the only way to go.
You sign your transactions rolling dice to get the nonce and pen and paper to calculate the signature? Ok ...
Once it goes into cold storage. I am not using for it transactions. Software and devices do fail. Who said anything about pen and paper?
At some point you will want to move your coins at which you will need an electronic device. With key exfiltration, you might sign one tiny transaction and seconds later somebody signs another transaction with your keys sending all the rest away. Or even worse: You send a transaction and seconds later somebody does a replace by fee and sends all your funds to another address. The point being that this issue can affect you on your very first transaction if you are using a compromised device.
I agree that more projects should follow, or improve, the anti-klepto solution, but a laptop suffers the same exact problem, and it has a larger (software) attack surface. I cannot see any other solution than open source software with a strong peer-review procedure, paired with signed and reproducible builds.
A Laptop is not a device purpose-built to store millions of dollars in bearer-assets. It’s a much less juicy target.
What about SeedSigner? Seems to be the best combination, especially when used in a MultiSig setup?
SeedSigner has no secure element and uses a Raspberry Pi.
That's not the problem; since it has not a battery and you need to load the seed every time, having a secure element would be pointless. SeedSigner is a *great* tool, but it is not immune to the attack described in the article, you you must be careful about the software you are running. A basic precaution is not to leave the microSD inserted, so that an attacker cannot simply overwrite it and let you run a tampered version.
But this is exactly why you do want a purpose built device. I own a 2014 macbook pro and started using crypto currency in 2017. I started with shitcoins, now I'm only bitcoin. But regardless I had a wallet file saved to a USB stick but one day, I checked my funds and they were gone. I consider myself pretty computer literate and to this day, I still don't know how my wallet was swept. Was this laptop air gapped as you're proposing? No, but IMO that is way easier to fuck up than just using a HWW.
It's not just a problem of individual juicy targets, if people start using airgapped laptops, we will definitely see an increase in attacks on Tails, Sparrow, etc.
You can just download those software packages once and rarely upgrade and you’re safe. Unlike a compromised HWW which can lie to you about the status of its firmware.
If you are a power user this could work, although you still have to check the software before installing it. But for the average user, the one who thinks that putting the seed in a USB stick is an airgap solution (!) as he only connect it to the PC for "few minutes"... Sorry it doesn't work, at the first phishing email he will connect to wifi and update applications, or install a new one. Hardware wallet, although they are not perfect, are quite good to minimize this kind of error. At the end the solution is in the mantra: don't trust, verify.
I feel safer with VMs and kernel level reviews
Woah, this is seriuos stuff nostr:nevent1qqsd02n5swf5nqdgjznh50lduc70xapt0kyr4cvy26ys5h90m3qk86qpz4mhxue69uhhyetvv9ujumn0wd68ytnzvuhsygpa9eg4pp5elx8s727mu7j9keeudpl7vss0geku99kepwgg65w4jspsgqqqqqqsg74wy4
Does the usage of a passphrase protect against this attack?
No. The leak happens on the signing part and the passphrase only changes the signing key you use. The problem is that signing requires a random number and if that number is not perfectly random, a party that knows about the bias can learn about the private key that was used. If the attacker knows the full "random number" it can extract the private key from just two signatures.
Thanks for this explanation in terms so simple that even I understand!
Yeah right on. I've audited most of the professionally including the Trezor glitch attack. I use an old laptop with tails and sparrow. Hardware wallets are general purpose computers besides anyway. They are all Turing machines and even the most open source of the "hardware wallets" is running on top of closed source ROMs that boot the chip.
Check out airgapos. It’s made for this sort of thing: https://git.distrust.co/public/airgap
"All of them except Jade and BitBox" LMAO @Coinkite
So in this case I am forced to use the manufacturer's software and cannot use Sparrow?
Should we take Bitcoin Core seriously? To @NVK's credit there is no established standard for PSBTs with anti-klepto and people go on about recommending TAILS instead of hardware wallets missing one of my favorite aspects of hardware wallets: Not only are hardware wallets designed to protect the user from a compromised companion app but the companion app also can verify what the hardware wallet is doing. Just as with multi vendor multi signature you can remove single points of failure, multi vendor between companion app and hardware wallet can remove single points of failure. With TAILS, that TAILS boot device and the PC it runs on are single points of failure. Bitcoin Core should support anti-klepto between an online networking instance and an offline signing instance. The TAILS with Sparrow stack is way too complex to safely say it won't use biased nonces else but if it has to use anti-klepto, there is no room for leaking keys.
AFAIU you can implement it entirely in the driver rather than in the wallet itself (BitBox apparently did this for their HWI driver).
My point is how can I use my Bitcoin Core 0.23 on an offline rPi as a signing device and my Bitcoin Core 0.25 on my laptop such that any of the two can be compromised or both by competing parties without my funds being at risk? The anti-klepto issue is not a hardware wallet issue. It's a PSBT issue, too. If I export a PSBT on Sparrow and get back the signature, I don't know if a coldcard signed it or a bitcoin core. Both can be compromised so both should use anti-klepto as only then the Sparrow instance could protect me from the signing device.