4 ms·
How do you keep people from simulating a fido key? There is intrinsically no way to detect if the hardware signature was actually done by hardware.
by blamestross 6y ago
How do you keep people from simulating a fido key? There is intrinsically no way to detect if the hardware signature was actually done by hardware.
- dandanua 6y agoFIDO has a device attestation https://developers.yubico.com/U2F/Attestation_and_Metadata/ https://developers.yubico.com/U2F/Attestation_and_Metadata/ But their scheme indeed looks like flawed. There is a way to make it correct, though. Device manufacturer also has to inject its own root private key into the device. So the device will use additional, third signature on behalf of manufacturer.
- sodality2 6y agoThen the root private key gets extracted, because there's lots of money to be had from doing so
- dandanua 6y agoIf you are the manufacturer, who already know the root private key and can make some fake users, you still won't be able to print new money from nowhere. Yes, you CAN make double spending, but this will just split the network, because every participant will accept only one spend, not both.
- spiorf 6y agoWho and how issues the new money? how do you decentralize that? Otherwise you have a central bank and a database is more efficient.
- dieortin 6y agoThat’s a problem that has already been solved in various ways by existing cryptocurrencies. For example, NANO was premined and then distributed via a faucet that required solving CAPTCHAs. Other cryptos just award holders more coins, or use other solutions.
- Rafert 6y agoThat is Yubico's flavor of U2F attestation. U2F has been succeeded by WebAuthn, you'll probably want to look at https://www.w3.org/TR/webauthn-2/#sctn-defined-attestation-formats https://www.w3.org/TR/webauthn-2/#sctn-defined-attestation-f... instead.
- infofarmer 6y agoWhy do you feel there's a flaw? The «root» key signs the batch keypair. It's a normal certificate chain.
- dandanua 6y agoAccording to this [1], keypairs are generated randomly on a registration request. To sign such keypairs root private key must be somewhere on the device. But I don't see a mention of this in the docs. [1] https://developers.yubico.com/U2F/Protocol_details/Key_generation.html https://developers.yubico.com/U2F/Protocol_details/Key_gener...
- infofarmer 6y agoThere's a separate attestation keypair that is static, is either unique per device or unique per 1k-100k batch of devices and signed by a manufacturer key. There's no need to keep a "root private key" on device. https://developers.yubico.com/U2F/Attestation_and_Metadata/ https://developers.yubico.com/U2F/Attestation_and_Metadata/ https://fidoalliance.org/fido-technotes-the-truth-about-attestation/ https://fidoalliance.org/fido-technotes-the-truth-about-atte...
- dandanua 6y agoThanks, the second link explains it quite clearly. It's indeed a safe and logical scheme of device verification.