Scott,
Software libraries supporting U2F are generally written as experimental implementations to demonstrate the protocol, and to show software developers how it works. From a security pov, it is not advisable to use a software authenticator for production uses for a variety of reasons:
Could you work up mechanisms to put more controls around the
software authenticator to protect it from external attack? Yes,
you could; but now you might require users to do things that cross
their pain-threshold. Especially when hardware-based
authenticators with secure-elements are available for a little
over the price of a coffee at Starbucks and are no-brainers to use
and protect (I have mine on my key-chain with my car-keys).
On the other hand, if you're doing this as an exercise for a
school project, that's a different matter - and you should
probably highlight that in your posting to elicit the right answer
from the forum.
Arshad Noor
StrongAuth, Inc.
Scott,
Software libraries supporting U2F are generally written as experimental implementations to demonstrate the protocol, and to show software developers how it works. From a security pov, it is not advisable to use a software authenticator for production uses for a variety of reasons:
- The cryptographic key-pair will only be protected by a password - and we all know how secure they are;
- The private key of the Attestation Certificate that must be embedded in each Authenticator will be quickly compromised leading to spurious authenticators claiming to be the original;
- As FIDO Alliance ramps up Security Certification of authenticators, Relying Parties will surely reject any registration from a software-based authenticator (because of the first 2 problems).
Could you work up mechanisms to put more controls around the software authenticator to protect it from external attack? Yes, you could; but now you might require users to do things that cross their pain-threshold. Especially when hardware-based authenticators with secure-elements are available for a little over the price of a coffee at Starbucks and are no-brainers to use and protect (I have mine on my key-chain with my car-keys).
On the other hand, if you're doing this as an exercise for a school project, that's a different matter - and you should probably highlight that in your posting to elicit the right answer from the forum.
Arshad Noor
StrongAuth, Inc.
On 07/22/2017 09:17 PM, Scott Stephens wrote:
I'm interested in writing a software U2F token. It seems to be easy enough technically, with a simple software token already existing in the Chrome plugin in the reference implementation at https://github.com/google/u2f-ref-code. Out of the box the reference plugin only works on a demo site: https://crxjs-dot-u2fdemo.appspot.com . I got it to work with the Yubico U2F demo (https://demo.yubico.com/u2f) by overwriting the value the page sets for u2f.EXTENSION_ID in a content script. However, this approach didn't work at all for logging into Google accounts, and worked for registration but not for signing on Github. Is there a reliable way to have a Chrome plugin override the built-in U2F support so it can work with all or most sites supporting U2F?
--
You received this message because you are subscribed to the Google Groups "FIDO Dev (fido-dev)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fido-dev+unsubscribe@fidoalliance.org.
To post to this group, send email to fido...@fidoalliance.org.
Visit this group at https://groups.google.com/a/fidoalliance.org/group/fido-dev/.
To view this discussion on the web visit https://groups.google.com/a/fidoalliance.org/d/msgid/fido-dev/49e869d1-13fb-93df-6270-f7babb19cc1a%40strongauth.com.
Scott,
Software libraries supporting U2F are generally written as experimental implementations to demonstrate the protocol, and to show software developers how it works. From a security pov, it is not advisable to use a software authenticator for production uses for a variety of reasons:
- The cryptographic key-pair will only be protected by a password - and we all know how secure they are;
- The private key of the Attestation Certificate that must be embedded in each Authenticator will be quickly compromised leading to spurious authenticators claiming to be the original;
- As FIDO Alliance ramps up Security Certification of authenticators, Relying Parties will surely reject any registration from a software-based authenticator (because of the first 2 problems).
Let's not forget that phishing is the main problem U2F was designed to address.And no amount of fob certification will help much in presence of host malware.
Why are we on a certification binge, whilst phishing is still rampant?
We should strive to get the protocol out there everywhere first.And software implementations are a great low-threshold vehicle.
--
You received this message because you are subscribed to a topic in the Google Groups "FIDO Dev (fido-dev)" group.
To unsubscribe from this topic, visit https://groups.google.com/a/fidoalliance.org/d/topic/fido-dev/Wbcgjs-8UvY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to fido-dev+unsubscribe@fidoalliance.org.
To post to this group, send email to fido...@fidoalliance.org.
Visit this group at https://groups.google.com/a/fidoalliance.org/group/fido-dev/.
To view this discussion on the web visit https://groups.google.com/a/fidoalliance.org/d/msgid/fido-dev/bae37cd5-a658-47f4-940b-23b136de4a94%40fidoalliance.org.
Hi Scott,
Apologies for the slow response; so much to do and so little time...
If I followed your logic correctly, I presume you expect to generate a single key-pair for backup, store the private-key offline and use the public-key to keep registering yourself as a secondary key when you use your primary hardware Authenticator to generate a new key-pair for a specific site.
Unfortunately, this will not work with both the options you defined. The U2F protocol requires that the Attestation Certificate's (AC) private-key sign a dynamic challenge sent by the server to register a key. You will not only have to carry the User public-key, but the AC and its private-key around with you. And, Relying Parties can still reject your registration because they may have configured policies to restrict which ACs (or AC chains) they will accept.
IMO, people will wind up having multiple Authenticators on them in the not-too-distant future:
So, if you have at least 3 hardware-based Authenticators on you
at all times, is there a problem that needs to be solved? If
you're looking for a backup solution for the immediate future -
its as little as USD 10.00 on the internet. A solution not as
stimulating intellectually, but certainly allows us to go onto
solving bigger problems (hopefully).
Arshad :-)
--
You received this message because you are subscribed to the Google Groups "FIDO Dev (fido-dev)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fido-dev+u...@fidoalliance.org.
To post to this group, send email to fido...@fidoalliance.org.
Visit this group at https://groups.google.com/a/fidoalliance.org/group/fido-dev/.
To view this discussion on the web visit https://groups.google.com/a/fidoalliance.org/d/msgid/fido-dev/621c1d0f-9173-4d87-be8e-e2e3da98ac75%40fidoalliance.org.
To unsubscribe from this group and stop receiving emails from it, send an email to fido-dev+unsubscribe@fidoalliance.org.
To post to this group, send email to fido...@fidoalliance.org.
Visit this group at https://groups.google.com/a/fidoalliance.org/group/fido-dev/.
To view this discussion on the web visit https://groups.google.com/a/fidoalliance.org/d/msgid/fido-dev/621c1d0f-9173-4d87-be8e-e2e3da98ac75%40fidoalliance.org.
--
You received this message because you are subscribed to a topic in the Google Groups "FIDO Dev (fido-dev)" group.
To unsubscribe from this topic, visit https://groups.google.com/a/fidoalliance.org/d/topic/fido-dev/Wbcgjs-8UvY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to fido-dev+unsubscribe@fidoalliance.org.
To post to this group, send email to fido...@fidoalliance.org.
Visit this group at https://groups.google.com/a/fidoalliance.org/group/fido-dev/.
To view this discussion on the web visit https://groups.google.com/a/fidoalliance.org/d/msgid/fido-dev/db906fc2-a704-02c4-3e5a-ab56b5231937%40strongauth.com.
To view this discussion on the web visit https://groups.google.com/a/fidoalliance.org/d/msgid/fido-dev/CABppgTd8XWH-sEOq5gnSYayC4PV%2BmfgBi3Z1md8Cfx6p88-CfQ%40mail.gmail.com.
Scott,
I imagine, if you spent enough time on the mechanics, you might be able to come up with something that might work. But, once again, is this really a problem?
U2F allows you to connect multiple Authenticators at the same time to the desktop/laptop. A Registration challenge sent by a FIDO Server will be sent to all visible U2F Authenticators simultaneously; any Authenticator may respond and register a key at that point. But, if you had - let's say - three Authenticators connected simultaneously, if the RP did a good job with their Registration flow, after the first key is registered, you should be able to register the remaining 2 Authenticators by just clicking the Register button again. The challenge goes to all 3 Authenticators again - but this time you verify human-presence on one of the 2 unregistered Authenticators. This Authenticator is now registered. Click the Register button again and finally, verify human presence on the 3rd Authenticator.
In less than a minute, you've registered all 3 tokens sequentially - without having to deal with any convoluted cryptographic gymnastics. Is that so hard for an end-user to do that they need to be saved 10-15 seconds per Authenticator?
There are so many other FIDO-related problems that need to be addressed right now:
While I'm not disparaging your desire to make it convenient for
people to have backups, Scott, just getting consumers to know and
ask for, and use FIDO is priority #1, IMO. And, getting RPs to
FIDO-enable their sites and make FIDO visible on their landing
page is #2. We haven't achieved the "network effect" for
FIDO yet, so there's quite a lot of work to do, still, for
adoption.
Arshad Noor
StrongAuth, Inc.
After I realized my original 2nd method had the authentication problem, I came up with another idea, which I think is currently most promising: a group of hardware tokens that share the same (hardware protected)authentication[attestation] key, and can register each other. (I provided more details in a response earlier in the thread.) Do you see any issues with this approach?