Table of Contents
- Supported NFC/USB Security Keys
- NOT supported
- NFC on-card key-gen
- Can I use my OpenPGP smartcard that has no NFC?
- Are external USB Smartcard Reader supported?
- No OpenPGP support
- How to import an existing key onto a Security Key?
- How to use two different apps with a USB Security Key (Yubico Authenticator and OpenKeychain)?
- OpenPGP Applets for Java Cards
- Problems with Smartphones and NFC
Supported NFC/USB Security Keys
Hardware | Supported? | NFC | USB | Supported algos | Implementation |
---|---|---|---|---|---|
Fidesmo Card | ✔ | ✔ | ? | fork of ykneo-openpgp | |
Gnuk | ✔ (key gen only on >= 1.2.5) | OTG | RSA <= 4096, EdDSA, ECDSA (NIST P256, secp256k1), ECDH (X25519, NIST P256, secp256k1) | gnuk | |
Ledger Nano S | ✔ (no key gen) | OTG | ? | blue-app-openpgp-card | |
Nitrokey Start | ✔ (key gen only on >= 1.2.5) | OTG | same as Gnuk | fork of gnuk | |
Nitrokey Pro | ✔ | OTG | ? | nitrokey-pro-firmware CcidLocalAccess.c | |
Nitrokey Storage | ✔ | OTG | ? | nitrokey-storage-firmware OpenPGP_V20.c | |
Secalot | ✔ | OTG | ? | secalot | |
YubiKey NEO | ✔ | ✔ | OTG | RSA 2048 | ykneo-openpgp |
YubiKey 4 | ✔ | OTG | RSA 2048, 4096 | closed | |
YubiKey 4 Nano | ✔ | OTG | RSA 2048, 4096 | closed | |
YubiKey 4C | ✔ | USB-C | RSA 2048, 4096 | closed | |
YubiKey 4C Nano | ✔ | USB-C | RSA 2048, 4096 | closed | |
YubiKey 5 NFC | ✔ | ✔ | OTG | RSA 2048, 4096 | closed |
YubiKey 5 Nano | ✔ | OTG | RSA 2048, 4096 | closed | |
YubiKey 5C | ✔ | USB-C | RSA 2048, 4096 | closed | |
YubiKey 5C Nano | ✔ | USB-C | RSA 2048, 4096 | closed |
NOT supported
Hardware | Supported? | NFC | USB | Implementation |
---|---|---|---|---|
TREZOR 2 | ❌ | OTG | Not OpenPGP Card Spec compatible |
NFC on-card key-gen
Roughly every third key generation on card fails with all tested smart cards and YubiKey NEO. For more details see our research paper. OpenKeychain currently generates keys on the smartphones and then moves them to the card.
Can I use my OpenPGP smartcard that has no NFC?
You can try a USB smartcard reader as described below.
Are external USB Smartcard Reader supported?
Not officially. However, you can turn on "Allow untested USB Devices", under experimental settings and try your reader.
- It must have a CCID interface and you should insert the OpenPGP card before plugging in the reader.
- We found that Nexus 5X reboots, but Nexus 6P works.
- Readers on this page will work with higher probability but we cannot provide any recommendations.
- Some discussions about this is in #1912
- One user reported that it works fine with "ACS ACR39U-NF PocketMate II Smart Card Reader (USB Type-C)"
No OpenPGP support
These Security Keys do not support OpenPGP:
- Yubico FIDO U2F Security Keys
- YubiKey Edge (discontinued)
- Other U2F Security Keys
How to import an existing key onto a Security Key?
Follow https://developers.yubico.com/PGP/Importing_keys.html
How to use two different apps with a USB Security Key (Yubico Authenticator and OpenKeychain)?
Never set one app as the default in Android's selection dialog! Only the app selected in this dialog gets the permission to communicate with the USB device! To reset the default open the app details page and clear the default associations with the button at the bottom.
OpenPGP Applets for Java Cards
OpenPGP Card Specification
OpenPGP applets for Java Cards
- https://github.com/ANSSI-FR/SmartPGP (OpenPGP card spec v3)
- https://github.com/Yubico/ykneo-openpgp (OpenPGP card spec v2)
- https://github.com/FluffyKaon/OpenPGP-Card (not completely following spec)
- https://github.com/jderuiter/javacard-openpgpcard , previously http://sourceforge.net/p/javacardopenpgp/
Other Implementations
Problems with Smartphones and NFC
- HTC One M7
- Samsung Galaxy S3
- Samsung Galaxy S5 Mini (APDU chaining, i.e., decryption does not work, probably because NFC stack crashes)
- Samsung Note 3 LTE (SM-N900W8) running Android 4.3 stock ROM
Try out
- Hold the NEO between your forefinger and thumb with the NEO's "button" facing away from your palm
- Make sure that the NEO is slightly inset between your thumb and finger - by about 1/4"
- Place your thumb and forefinger against the back of the HTC One with the NEO parallel to the phone and the NEO's "button" directly over the camera lens.
- When you do this the NEO will not be touching the phone - but be about 1/4" away from the phone.
Just placing the NEO directly against the back of the phone over the camera lens area mostly led to failed NFC communication attempts and sometimes nothing happening at all. Having the NEO further than about a 1/4" away also resulted in failures.
from Yubico forum