Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Assuming any adversary can:
- Control any computer the token gets plugged into
- Gain physical access to the U2F token
That adversary will not be able to glean any secret information or be able to duplicate the key. If the key is to be stolen, however, then obviously he could use the U2F token to maliciously pose as someone else. So the threat model is similar to a modern car key in that it cannot be duplicated but could physically be stolen.
There are 3 main requirements that are implemented:
- Cryptographic acceleration
- Tamper resistance
- Good random number generation
These requirements are implemented with the ATECC508 chip by Atmel. It's a security peripheral that handles 256 bit ECC operations over the full key life cycle, all implemented in hardware. It has an on chip true random number generator (TRNG) and atomic counters. It also includes voltage and temperature sensors to detect tampering. All secret keys are write only -- keys can only be generated on chip using the internal TRNG which ensures that no one will know any secret key used.
Despite having a perfect, "to-spec" implementation, embedded systems can leak secrets through other side channels. Particularly, differential power analysis and fault injection methods have been able to recover keys from embedded systems. This typically requires high end equipment, training, and physical access to the target embedded system. So TL;DR if you potentially could be targeted by well sponsored adversaries, then you should be wary of the security of any embedded system. Side channels are largely an unsolved problem.