Reviews of U2F devices
Adam Langley got the ball rolling with his reviews here, much of the content of which is reproduced here with his permission. I've used a number of U2F devices Adam hasn't, and played around with NFC and Bluetooth Low Energy (BLE) connectivity, as well as multifunction devices, so at the request of some friends here's an expanded set of reviews. It's set up as a GitHub repo and I encourage you to submit PRs with reviews of devices you've used that aren't listed here. -Brad
Table of Contents
I love U2F and use it everywhere I can. Unfortunately, that is very few places and, with a few exceptions, mostly only on Chrome on desktop computers. I have more TOTP (aka 'code generator' / 'authenticator app' / OATH) credentials than U2F registrations, and I have a TOTP credential set up for every site where I have a U2F registration, for use where U2F isn't available. For me, this means that the devices (the more expensive Yubico ones and the Fidesmo card) that support a hardware-based TOTP app on the same device are far more useful for an advanced user like myself who enables 2FA everywhere than is a U2F-only device. The ability to get these codes via NFC with the Yubico Authenticator app on Android is particularly convenient and secure.
I am dilligent and always register my new seeds redundantly on two devices, so loss or failure of one doesn't leave me locked out, and I also keep a few of my most used seeds in the DUO app on iOS. This strategy also makes moving between devices or getting a new phone a lot easier, since the most popular OATH apps don't have great backup/restore/export functionality.
If you are a sophisticated user of two-factor auth, it is well worth spending the extra money to get TOTP functionality even if you don't plan to use any of the other SmartCard or PGP features.
Review Author: Brad Hill
Brand: Yubico
Firmware: Yubico
Chip: NXP
Connection: USB-A
Features: U2F only
Price: $18
Buy: Yubico Store
Very reliable, from the co-originators of the technology. Implements the specification faithfully, has a reliable attestation certificate, physically resilient. Yubico devices are generally a good bet for corporate deployments where you want to check attestation to ensure that a real hardware device is being used, but also a solid general consumer choice.
Metadata for all Yubico devices can be found here: https://developers.yubico.com/U2F/yubico-metadata.json
The blue security key is among the most expensive of the devices that only does U2F, but I've used many of them and never heard of a defect.
If you're giving a U2F device to a non-technical person, I recommend this one over the more expensive Yubico devices because (as described below) the multifunction devices occasionally ship without U2F mode enabled, which is confusing and may be beyond the person's ability to self-remedy. No mistakes are possible with the blue, U2F-only devices.
Full Disclosure: I have at various times received complimentary Yubico devices from both Yubico and Google.
Review Author: AGL
Brand: Thetis
Firmware: Excelsecu
Chip: ?
Connection: USB-A
Features: U2F
Price: $13.95
Buy: Amazon
This security key is fashioned more like a USB thumb drive. The plastic inner part rotates within the outer metal shell and so the USB connector can be protected by it. The button is in the axis and is clicky, rather than capacitive, but doesn't require too much force to press. If you'll be throwing your security key in bags and worry about damaging them then perhaps this one will work well for you.
A minor nit is that the attestation certificate is signed with SHA-1. That doesn't really matter, but it suggests that the firmware writers aren't paying as much attention as one would hope. (I.e. it's a brown M&M.)
Brand: Feitian
Firmware: Feitian
Chip: NXP
Connection: USB-A, NFC
Features: U2F, OATH HOTP (USB only), CCID
Price: $13.95
Buy: Amazon
Review Author: AGL
This one is very much like the Yubico, just a little fatter around the middle. Otherwise, it's also a sealed plastic body and capacitive touch sensor. The differences are a dollar and NFC support—which should let it work with Android. However, I haven't tested this feature.
I don't know what the opposite of a brown M&M is, but this security key is the only one here that has its metadata correctly registered with the FIDO Metadata Service.
Additional comments from Brad Hill:
The ePass I bought on Amazon works well over NFC, but the USB interface never worked for me. There is Windows-only management software for these devices, but it is a bit rough for non-Chinese users, and I wasn't able to successfully enable the USB U2F onnectivity, so perhaps it is a manufacturing defect. Supposedly these devices also have an HOTP applet and JavaCard CCID functionality available over USB, but I've not used it. It is not compatible with the Yubico NFC protocol for TOTP.
Brand: Conorco
Firmware: Conor Patrick
Chip: Atmel
Connection: USB-A
Features: U2F
Price: $8.99
Buy: Amazon
Review Author: AGL
It's the only token on Amazon that has open source firmware (and hardware designs), and that was worth waiting for. It's also the cheapest of all the options here.
Sadly, I have to report that I can't quite recommend it because, in my laptop (a Chromebook Pixel), it's not thick enough to sit in the USB port correctly: Since it only has the “tongue” of a USB connector, it can move around in the port a fair bit. That's true of the other tokens too, but with the U2F Zero, unless I hold it just right, it fails to make proper contact. Since operating it requires pressing the button, it's almost unusable in my laptop.
However, it's fine with a couple of USB hubs that I have and in my desktop computer, so it might be fine for you. Depends how much you value the coolness factor of it being open-source.
Additional comments from Brad Hill:
A cool little device, and sturdier than it looks. I'm encouraged that they can source the materials, at hobbyist scale, for around $6, so there is definitely room for prices of more polished and mass produced devices to come down. I have the first version of this device, which suffers from some serious defects: First, it generates a device-specific attestation key, which makes it trackable cross-domain. Second, it only stores up to 8 registrations. You can use a Linux-only utility to clear the key storage but you have to delete them all. I understand the latest versions now use a key wrapping algorithm like the Yubico devices that addresses this limitation; unfortunately the firmware isn't upgradable. I can't recommend the original version for more than technical curiosity.
Brand: KEY-ID
Firmware: Feitian(?)
Chip: ?
Connection: USB-A
Features: U2F
Price: $9.95
Buy: Adafruit
Review Author: AGL
I photographed this one while plugged in in order to show the most obvious issue with this device: everyone will know when you're using it! Whenever it's plugged in, the green LED on the end is lit up and, although the saturation in the photo exaggerates the situation a little, it really is too bright. When it's waiting for a touch, it starts flashing too.
In addition, whenever I remove this from my desktop computer, the computer reboots. That suggests an electrical issue with the device itself—it's probably shorting something that shouldn't be shorted, like the USB power pin to ground, for example.
While this device is branded “KEY-ID”, I believe that the firmware is done by Feitian. There are similarities in certificate that match the Feitian device and, if you look up the FIDO certification, you find that Feitian registered a device called “KEY-ID FIDO® U2F Security Key”. Possibly Feitian decided against putting their brand on this.
Additional comments from Brad Hill:
I've used and given away a number of these because of their attractive price point and not heard of the reboot issues AGL describes above manifesting on MacBooks.
Brand: HyperFIDO
Firmware: Feitian(?)
Chip: ?
Connection: USB-A
Features: U2F
Price: $13.95
Buy: Amazon
Review Author: AGL
By observation, this is physically identical to the KEY-ID device, save for the colour. It has the same green LED too (see above).
However, it manages to be worse. The KEY-ID device is highlighted in Amazon as a “new 2017 model”, and maybe this an example of the older model. Not only does it cause my computer to reliably reboot when removed (I suffered to bring you this review, dear reader), it also causes all devices on a USB hub to stop working when plugged in. When plugged into my laptop it does work—as long as you hold it up in the USB socket. The only saving grace is that, when you aren't pressing it upwards, at least the green LED doesn't light up.
Brand: HyperFIDO
Firmware: Feitian(?)
Chip: ?
Connection: USB-A
Features: U2F
Price: $9.98
Buy: Amazon
Review Author: AGL
This HyperFIDO device is plastic so avoids the electrical issues of the KEY-ID and HyperFIDO Mini, above. It also avoids having an LED that can blind small children.
However, at least on the one that I received, the plastic USB part is only just small enough to fit into a USB socket. It takes a fair bit of force to insert and remove it. Also the end cap looks like it should be symmetrical and so able to go on either way around, but it doesn't quite work when upside down.
Once inserted, pressing the button doesn't take too much force, but it's enough to make the device bend worryingly in the socket. It doesn't actually appear to be a problem, but it adds a touch of anxiety to each use. Overall, it's cheap and you'll know it.
Additional comments from Brad Hill:
There is funny stuff going on with how the several of these I have present their attestation. Every time the device is registered, they generate a unique device name as part of the certificate. This has the upside of not presenting a cross-domain tracking identifier, but it tells me that the attestation private key is in the device somewhere. (or it may be generating a new random attestation key and cert every time, I don't recall) Anyway, they seem fine for consumer use - I've used one I leave installed in my monitor's USB hub on a daily basis for almost a year now. But I wouldn't recommend these if you care about checking attestations.
Brand: Plug-Up
Firmware: Plug-Up
Chip: ?
Connection: USB-A
Features: U2F
Price: N/A
Buy: Amazon
Review Author: Brad Hill
I've seen these mentioned a number of times and used in press photos. They are printed in a 1mm-depth credit-card format which you punch out and fold over to form the key. I have two from 2014, keepsakes of the FIDO plenary in Paris. These don't have a button, you must physically insert and remove the key every time.
The key I used sucessfully in my Chromebook at that time hasn't worked for several years now. I don't know if that's due to protocol changes or manufacturing quality. As much as I like the idea of keys cheap enough to give away, I'm not sure I'd recommend these, because the accounts you'll be protecting with them are quite valuable, and it would be a shame to be locked out because a $5 piece of cheap hardware failed. At any rate, it doesn't seem that Plug-Up is still manufacturing these, so this is mostly a historical curiousity.
Full Disclosure: These devices were given to me by Plug-Up.
Brand: Yubico
Firmware: Yubico
Chip: NXP
Connection: USB-A (4 and Nano), USB-C (4C)
Features: U2F, TOTP, Yubico OTP, PGP, PIV/CCID
Price: $40 / $50 / $50
Buy: Yubico Store
Review Author: Brad Hill
4C Photo Credit: AGL
I'll review these together as they are essentially the same device in different packaging. These have the same solid U2F implementation as the U2F-only key, plus a bunch of additional features. My favorite is the TOTP applet, accessible though the Yubico Authenticator application for Linux, Windows and Mac. I like having hardware TOTP key storage and backup, as I discuss in more detail below, so this is a killer feature for me.
I'm also interested in trying out the PGP features of the key for code signing on GitHub, though I otherwise try to avoid PGP.
Regarding the packaging, the 4 has the standard tried-and-true Yubikey packaging. The 4C is a bit thicker. I have heard reports that the first generation of the 4C devices do not withstand everyday carry on a keychain; hopefully current models are more durable. (I don't have one.) The Nano is a great choice to leave in your computer, monitor or other hub full-time, easily accessible with just a tap. I tried carrying a Nano with a small USB-C adapter on my keys for a few weeks, but the tiny bit of metal where a nylon camera-loop attachment goes tore out. It would be a big bummer to lose a $50 device and the associated credentials this way, so I can't recommend the Nano as an everyday carry device.
Troubleshooting:
I've had friends that purchased YubiKeys of these makes occasionally report that they don't work with U2F websites. This has always been due to the fact that these devices have several ways in which they can be configured (proprietary OTP, U2F and PIV/CCID) and the U2F mode was somehow turned off when it shipped to them. You can use the YubiKey Personalization Tool to make sure the U2F attachment mode is enabled. (If you're generous enough to be giving away $40 devices, you might want to double-check this first.)
Some people using the Nano have complained that it constantly blinks the LED at a slow interval when inserted. If this bothers you, disabling the PIV/CCID attachment mode with the Personalization Tool will stop this, and the LED will only blink (rapidly) when waiting a U2F touch.
Full Disclosure: I have at various times received complimentary Yubico devices from both Yubico and Google.
Brand: Yubico
Firmware: Yubico
Chip: NXP
Connection: USB-A and NFC
Features: U2F, TOTP, Yubico OTP, PGP, PIV/CCID
Price: $50
Buy: Yubico Store
Review Author: Brad Hill
This is shares all the features of the 4th generation YubiKeys above, but is a 3rd generation device so doesn't support the 4096 bit PGP features of the ones above. On the other hand, it does U2F, TOTP and PGP over NFC, which is the killer feature if you are an Android user.
The Yubico Authenticator App for Android [ Google Play Store ] allows you to save your TOTP seeds to the key's hardware with a tap, and access codes with another tap. I love this feature so much.
The Yubikey NEO is my "daily driver", attached to my badge lanyard and used every day for several years.
Full Disclosure: I have at various times received complimentary Yubico devices from both Yubico and Google.
I have two card form factor devices that do U2F over NFC only. I really like them, but there are some important caveats I'll get to.
Why do I like them?
- Easy to carry. They are the same dimensions (even thickness) as a credit card.
- Easy to use. The antenna in these devices is much more reliable than on the smaller form factor devices and often works without removing it from my wallet. I keep my NFC buss pass on one side and my NFC U2F on the other side - NFC where # of cards >= 3 requires a higher-dimensionality wallet.
- No batteries.
- No additional registration process, moves seamlessly between devices.
- Familiarity. I have high hopes for these as mass-market devices if some of the deployment concerns below can be addressed. People are very used to using proxcards for mass transit, building access, and are getting accustomed to NFC for payments. They have reliable and established habits for where to put and how to take care of valuable cards.
- Multi-use. U2F can sit easily on top of standard SmartCard platforms that are ubiquitious and have a wide variety of other applications available, from transit passes to EMV payments and even bitcoin wallets.
Caveats?
- Android only, for now. All iPhones have the necessary hardware and there are some moves towards opening APIs for NFC in iOS 11, so I hope this will bode well for the reach of NFC U2F. It would also be nice to see NFC readers integrated into laptops, as it would be cheap and easy to do so.
- Registration difficulties. Currently only https://m.facebook.com/ (not the app) on Chrome on Android has mobile-specific support for registering an NFC U2F authenticator. On GitHub, you can force browse to the desktop site and make it work if you can manage to read the itty-bitty type. Google supports authenticating with NFC to your account natively in Android, but at the time of this writing, you can only add a new U2F device to your account using desktop Chrome, which only supports USB. So, you can use NFC with a multi-attachment device like the YubiKey NEO or Feitian MultiPass that was registered over USB first, but you can't use one of the card devices below with your Google account. I hope they will fix this soon. These devices have or are available with smartcard chip physical interface, but I don't have compatible reader hardware to test if this can be used to bypass this registration difficulty.
Brand: Fidesmo
Firmware: Fidesmo
Chip: ? (probably a standard JavaCard chip)
Connection: NFC
Features: U2F, TOTP, PGP, Bitcoin wallet, more
Price: 10-15 EUR, plus additional for extra loadable apps
Buy: Fidesmo Store
Review Author: Brad Hill
A great device at a great price. The Fidesmo card is standard JavaCard hardware with custom firmware on top and an app store for Android [ Google Play Store ] that allows loading various modules that can be used over NFC. (or, for a few Euros more, through the physical chip-card interface, but I haven't tried that) I use the U2F and OTP applets, the latter of which is fully compatible with the Yubico Authenticator app for Android. There are also transit cards, a bitcoin wallet, a PGP app and more available, each for a few Euros.
I keep this in my wallet and backup all my TOTP seeds to it, in addition to my YubiKey NEO. I really can't say enough good things about this device, I just wish NFC support were more widespread for my other important accounts beyond Facebook.
The dual-interface cards are available blank and can be custom-printed. If you want a low-profile device for crossing a border, you might dress it up as a bus pass or similar.
Brand: SurePassID
Firmware: SurePassID
Chip: ? (SurePassID also sells the "TapID Treo" that looks like a re-branded Feitian ePass, so maybe Feitian?)
Connection: NFC
Features: U2F, more?
Price: $19.95
Buy: Amazon
Review Author: Brad Hill
U2F over NFC works. I haven't tried to do much else with this card. The manufacturer's website says there is a combo card available that does both EMV payments and U2F, which sounds neat. This card has a physical chip interface as well, but I have only used the NFC interface. They are available from 3rd party sellers on Amazon for $20 plus S&H, but it seems like they are mostly intended for bulk purchase direct from the manufacturer. They also mention some interesting support software on the manufacturer website like a Windows Login Credential Provider, Linux PAM/SSH library, FIDO integration for Outlook Web Access and more, so this might be a very interesting choice to investigate for a large enterprise deployment.
Personally, I find BLE U2F to be painful. The pairing experience is not obvious, (it has to start from within an app, not like normal Bluetooth) needs to be done per-device, and requires entering a code. Only Google has support for BLE authenticators, and I've found it consistently buggy on both Android and iOS. I have to make multiple attempts to register a new BLE authenticator on Android, and have not successfully completed a registration / authentication on iOS with SmartLock yet with either style of device I own. If you're hoping to deal with the USB-C issue of your new MacBook via BLE, don't get your hopes up there, either - Chrome desktop doesn't interact with BLE authenticators yet. Finally, as of the time I tried, you can't add a BTLE (or NFC) key to your Google account directly, you can only authenticate with one you've registered over USB in Chrome on the desktop. So you need to register it with a PC/Mac before you can use it with your mobile device.
I hope we'll see some rapid progress on this front and I can just keep a "magic button" on my keys in my pocket soon, that I press to authenticate anywhere without dongles or adapters, but I'm not holding my breath.
Brand: Feitian
Firmware: Feitian
Chip: ?
Connection: USB-A, NFC, BLE
Features: U2F
Price: $24.99
Buy: Amazon
Review Author: Brad Hill
This is the only device I've seen that supports all three major connectivity modes. It has a micro-USB interface that can be used (with an adapter cable) to register it with your Google account in Chrome, use it on PCs, and the battery for the BTLE also recharges through that USB port. The form factor is nice and durable and it fits well on a keychain.
I tried on several iOS devices to use the BTLE interface with Google SmartLock, but was never able to see the device from iOS. It works on Android after a few tries, but the responsiveness is very poor - pairing and authentication operations take a long time to complete.
There is an NFC interface on this device. It works with Android, but the antenna is very bad and it requires knowledge of the exact position of the antenna on your phone and a lot of patience to make it actually work.
This key does not support the Yubico TOTP over NFC protocol.
I put this on a keychain when I bought it, expecting it to be my new "daily driver", but the fiddly NFC antenna, lack of NFC TOTP support, and my overall disappointment so far with BLE means it now it stays in my bag as an emergency backup.
Brand: VASCO
Firmware: VASCO
Chip: ? (VASCO?)
Connection: USB-A and BLE
Features: U2F
Price: £32.21
Buy: Amazon UK
Review Author: Brad Hill
This is a Bluetooth Low-Energy U2F device. It is about the diameter of a American Quarter, and about the thickness of an old UK Pound coin. It comes with silicone keychain sleeves in three colors and a USB-A tranciever for use on desktop computers.
This device is easy to use on a desktop system with the included USB adapter, and no additional pairing procedure is needed, but you need to keep the adapter inserted to use it, so it burns a port and is troublesome on the new MacBooks. Exposing it this way as a USB device on a desktop system allows registering it with a Google or other account. The BLE pairing and authentication worked for me on Android. With Google SmartLock on iOS, I was able to pair the device and clicks are registered, but the iOS SmartLock app just gives me a 400 error page afterwards instead of completing the authentication. (I wasn't even able to get that far with the Feitian device, so I can't say if this is Google's fault or VASCO's, but I lean towards Google.)
The responsiveness of this device when pairing and authenticating is much better than the Feitian MultiPass.
The BLE pairing experience instructs you to enter a code "printed on the device". The Feitian MultiPass has such a code, this device does not, but '0000' worked.
The unit is sealed and the battery is not replacable. I am told it should last up to five years, which is a reasonable lifetime, but necessitates a backup in my opinion.
These do not appear to be available for purchase in the United States.
Full Disclosure: I received several of these devices for evalutation courtesy of VASCO.