bmalkow wrote:
Quote:
7. Allowing for Inexpensive U2F Devices
A key goal of this program is to enable extremely inexpensive yet secure devices. To enable new secure element chips to be as inexpensive as possible it is important to allow them to have minimal or no onboard memory.
A U2F device allows for this. The Key Handle issued by the U2F device does not have to be an index to the private key stored on board the U2F device secure element chip. Instead, the Key Handle can 'store' (i.e., contain) the private key for the origin and the hash of the origin encrypted with a 'wrapping' key known only to the U2F device secure element. When the Key Handle goes back to the secure element it 'unwraps' it to 'retrieve' the private key and the origin that it was generated for.
So the question is: does Yubikey stores private key onboard? Or maybe Yubikey uses 'wrapped' key schema?
My layman's understanding of the yubikey U2F implementation:
While they are generated on the yubikey, neither the public nor private key pair for the origin/site are stored on the yubikey.
The yubikey generates the unique pair for each registering origin/site, encrypts the private key with the yubikey's internal symmetric key (single internal symmetric key for all U2F) and sends the public key and encrypted private key to the registering origin/site.
This way no additional storage is required on the key, and an unlimited number of origins/sites can use the key. When authenticating, a one time secret is generated by the origin/site, encrypted with the public key, and that encrypted one time secret, along with the previously-encrypted private key are both sent to the yubikey by the origin/site. The yubikey uses the internal symmetric key to decrypt the private key for that origin/site, then uses the private key to decrypt the encrypted one time secret, allowing it to prove to the origin/site that it is the one and only key that registered with those two asymmetric keys.
Only that particular yubikey can do that because it is the only one with that internal symmetric key.
B