08-11-2018 | Remy van Elst | Text only version of this article
Last week I received several newsletters from Nitrokey. As you might know, I'm a fan of their (mostly open source) hardware security devices. I've written articles on the NitroKey HSM (even on extracting private key material), on the NitroKey Start and some firmware update guides.
Their newsletters introduced two new keys, the Nitrokey Pro 2 and the Nitrokey FIDO-U2F key. On their website I also saw the Nitrokey Storage Pro 2. This article is a summary of the newsletters and goes over the new features in the new hardware. It boils down to a new OpenPGP smartcard version (3.3, it was 2.1) in the Nitrokey Pro 2 and Storage 2. The FIDO-U2F device is an entirely new Nitrokey (with a button).
I recommend you get a Nitrokey. The open hardware and mostly open software part is what I like the most, next to the pricing and their support. I've been in contact with the company a few times, both with the CEO Jan and a developer Szczepan. That guy is active on the Gnuk mailing list and does, as far as I can tell, most of their embedded development.
If you ask me if I prefer a Nitrokey over a yubikey, then I would choose the Nitrokey. The yubikey is closed source all together, relying on their infrastructure in the default (otp) mode. The nitrokey gives you more freedom. The nitrokey is a full USB A plug as well, where as the yubikey is half, or in the USB slot all together. So, the Nitrokey is more durable.
In the past I got hardware sponsored from Nitrokey. Not for this article.
NitroKey creates hardware security tokens. The Nitrokey Pro is a OpenPGP smartcard in a USB stick with a companion application. It allows you to securely store your GPG key, among other things.
The Nitrokey HSM is a hardware security module. It is also a smartcard in a USB key, but this time it utilizes different firmware to present itself as a Smartcard-HSM, using PKCS-11 (cryptoki) as the protocol.
The Nitrokey Start is a soft-token (meaning no smartcard). It uses the gnuk firmware to also be a OpenPGP-token. That hardware and software is fully open source, the Pro and HSM are up until the smartcard software.
The Nitrokey storage is a Nitrokey Pro with USB storage that is encrypted (by the smartcard). I haven't used a Nitrokey Storage, so no experience with that.
The feature most exciting in this new hardware version is ECC support. Copying from their newsletter, all the new features:
In addition to RSA (2048-4096 bit), Nitrokey Pro 2 supports elliptic curve cryptography (ECC. Brainpool and NIST). Because RSA-2048 is not considered safe for use beyond 2022, ECC is becoming increasingly important as a fast and secure alternative. See instructions. This feature requires the new Nitrokey Pro 2 hardware and cannot be installed by upgrading the firmware.
Editors addition: the ECC key length is between 256 and 512 bit. Bernstein's Curve 25519 is not supported do to lack of support in the smartcard. The Nitrokey start does support 25519.
It is now possible to roll out company certificates via Active Directory on Windows devices. These certificates can be used for Windows logon and for e-mail encryption using S/MIME. In addition, OpenPGP and S/MIME email encryption can be easily used in parallel on a single Nitrokey Pro 2. This feature requires the new Nitrokey Pro 2 hardware and cannot be installed by upgrading the firmware.
The Nitrokey Pro 2 can be used as a part of the tamper-evident boot protection which Purism integrates into their Librem Linux laptops. Read more.
Reading through the forum, the exact hardware change is a new version of the OpenPGP smartcard (namely, version 3). On the gnupg site you can download the specification for 3.3 as well as the specification for 2.2. Major difference is support for ECC crypto, as is reflected in the new nitrokey.
An important note is that you do need a recent version of Gnupg (> 2.1.16). The version with Ubuntu 16.04 or 16.10 will not work and you manually need to upgrade it. Either by installing newer packages (not recommended) or by compiling the newer version of GnuPG yourself. You could also update your entire distro to at least 18.04.
More information and getting started with ECC can be found here
This was the first of the new hardware, available since June as far as I can see. Since the NitroKey Storage is based on the Nitrokey pro (it is an OpenPGP card), the above new features (ECC support and Active Directory integration) are new in the hardware of the Storage 2 as well. (The storage 2 also has an OpenPGP 3 smartcard). The nitrokey storage has an extra SD card which houses the encrypted storage part, whereas the Smartcard does the encryption of said storage. You can read more in the manual on how the exact storage encryption works.
The new features exclusive to the Nitrokey Storage are, as you might expect, related to it's storage functions. In addition to what I listed above, here are the new features for the Storage 2:
On delivery, the device's storage is already initialized with random numbers and an encrypted partition is set up. This eliminates manual setup and Nitrokey Storage 2 can be used immediately.
The Nitrokey App for Windows, macOS and Linux (AppImage) is now pre-installed on the unencrypted storage. In addition, the unencrypted storage is read-only, which can only be changed with the Admin PIN (requires Nitrokey App 1.3.1). This prevents the unintentional distribution of viruses and the unintentional storage of sensitive data on the unencrypted storage. This function is particularly interesting for enterprise customers who configure Nitrokey Storage 2 centrally and whose employees only use the user PIN.
Early dev version of the Nitrokey U2F
The Nitrokey Fido U2F is an entirely new key. It's based on the U2F Zero, It is open hardware and the software is open source as well. It differs physically from the other nitrokey devices in that it has a touch button.
With the Nitrokey FIDO U2F, after the initial configuration, you just need to touch the button on the device each time you are logging in to your various accounts.
Universal Second Factor, or FIDO U2F is a standard for 2 factor auth with USB dongles. It is developed by Google and Yubico There is a site with more information and a list of supported sites. There is also an unofficial FAQ here.
More information on the site
FIDO U2F and FIDO2 and WebAuthn are not the same. This Nitrokey does not support FIDO2 at the moment, but I suspect it could be added in a later firmware version. I'll try to give a simple explanation of the FIDO's:
Websites can utilize the WebAuthn standard together with a protocol like CTAP1 or CTAP2 to provide functionality so that the user can use their USB token to authenticate.
A more technical explanation of CTAP can be found here
I have not used this standard (u2f) before but it seems to be comparable with the Yubikey process (press a button for 2 factor). It is the cheapest of Nitrokeys so far (22 euro's) and works with all major operating systems (Windows, Linux, OS X and BSD (but which bsd?)) and all major browsers, including Opera.
There is a lot of documentation on the security and key generation here.