General product-specific questions and answers.
Yes, at time when generating new keys only. If you use Thunderbird or GnuPG for instance it allows you to do a backup when generating new keys. Technically the keys are generated on your computer, backed-up, and then loaded to the Nitrokey so that they cannot leave it afterwards. Alternatively you can generate keys on the Nitrokey directly but this does not allow a backup.
See the frontpage for an overview of supported use cases.
Supported operating systems: Windows, Linux, and Mac OS X.
Supported applications: See the documentation.
Nitrokey Pro, Nitrokey Start, Nitrokey HSM and Nitrokey U2F don't contain storage capability for ordinary data (it can only store cryptographic keys and certificates).
Nitrokey Storage can store and encrypt 8, 32, or 64 GB of data (depending on particular model).
We strongly recommend to change these PINs/password to user-chosen values before using the Nitrokey.
The Nitrokey Pro, Nitrokey Start and Nitrokey Storage can store three RSA key pairs. All keys use the same identity but are used for different purposes: authentication, encryption and signing.
Nitrokey HSM can store 48 RSA and 60 ECC key pairs.
Nitrokey U2F stores a single ECC key pair but can be used with an unlimited amount of user accounts.
As part of hybrid encryption, additional symmetric encryption (e.g. AES) is performed on the computer and only the session key is send to the Nitrokey (to be decrypted with RSA). This is a standard mechanism and allows optiomal performance even for large amounts of data.
In general the encryption and decryption of emails, hard disks and any other type of (large) data with the Nitrokey has almost no performance reduction. This is because of hybrid encryption approach. It means that AES for example is used to encrypt gigabytes of data at the computer and only the session key is send to the Nitrokey to be decrypted with RSA.
Nitrokey Storage's mass storage: Storing files on the encrypted mass storage is 5-6 MByte/s fast (both read/write).
Nitrokey Pro, Nitrokey HSM and Nitrokey Storage contain a tamper resistant smart card. To some extent this also applies to Nitrokey U2F but it's of lower quality. Nitrokey Start is implemented in the microprocessor.
Nitrokey uses PINs instead of passwords. The main difference is that the hardware limits the amount of tries to three while a limit doesn't exist for passwords. Because of this, a short PIN is still secure and there is not need to choose a long and complex PIN.
Nitrokey Pro's PINs can be up to 30 digits long and can consist of numbers, characters and special characters.
Nitrokey HSM: In OpenSC the function C_GenerateRandom is mapped to the random number generator of the device. However, engine-pkcs11 doesn't contain a mapping for OpenSSL to C_GenerateRandom. Hence, it doesn't work yet. It would be required to implement the mapping in engine-pkcs11 to C_GenerateRandom.
Nitrokey Pro and Nitrokey Storage: Both devices are compatible to the OpenPGP Card, so that scdrand should work (untested).
Nitrokey Pro and Nitrokey Storage:
Nitrokey Pro and Nitrokey Storage use a True Random Number Generator (TRNG) for generating keys on the device. The entropy generated by the TRNG is used for the entire key length. Therefore the TRNG is compliant to BSI TR-03116.
Nitrokey HSM uses the TRNG of JCOP 2.4.1r3 which has a quality of DRNG.2 (according to AIS 31 of the BSI).
Die Anzahl der Datenobjekte (DF, EF) ist auf 65536 beschränkt. Die maximale Größe eines EF beträgt 65535 Byte. Der maximale Speicher von ca. 35 KByte wird dynamisch zwischen Schlüssel- und Datenobjekten geteilt.
Usage-specific questions and answers.
If you experience the following error under Linux:
$ gpg --card-status OR $ gpg --card-edit
gpg: selecting openpgp failed: unknown command
gpg: OpenPGP card not available: general error
Now, plug in your Nitrokey and use it with GnuPG.
To undo the change in order to use it with OpenSC:
Linux: $ tail -v /var/log/syslog
Mac OS: $ tail -f /var/log/system.log
Windows: Start -> Preferences -> Control Panel -> System -> Hardware -> Device Manager -> Smart card adapter
Check if GnuPG recognizes the device: gpg --card-status resp. gpg2 --card-status (depending on the version) should deliver some status information of the Nitrokey.
Verify to use a current version of GnuPG, at least 1.4.10 resp 2.0.18.
Try using GnuPG 1 instead of GnuPG 2.
Remove the packages openct and opensc because they may interfere with GnuPG.
Use 2048 bit keys instead of 3072 or 4096 bit keys.
Test the Nitrokey on another computer or with another operating system.
Reset the device and delete all keys.
Add the following lines to ~/.gnupg/scdaemon.conf and provide the resulting log file for debugging purposes, where <username> is the name of your user account.
Delete the file /Library/Preferences/com.apple.keyboardtype.plist and restart your computer.
Option 1, if the device is not fully locked and if you remember the valid Admin PIN use Nitrokey App:
Open a terminal (on Windows: Press the Start button and enter "cmd") and start the Nitrokey App with "nitrokey-app --admin". Klick on the Nitrokey App's tray icon, select "Configuration" and "factory settings".
Option 2, to reset a blocked device, Windows only:
Option 3, to reset a blocked device with GnuPG 2 and Windows:
Option 4, to reset a blocked device with GnuPG 2 and Linux:
Option 5, to reset a blocked device with GnuPG 2.1:
In order to reset a Nitrokey Start, you need to define a public key for firmware updates beforehand! In case of a blocked device it enables your to perform a firmware update which resets the device.
You may also define a reset code which enables the reset of the User PIN (not Admin PIN).
There is no way of resetting the Nitrokey HSM if the SO-PIN is forgotten or entered wrongly 15 times. In such case the device can't be used anymore.
Prerequisite: An initialized Nitrokey with keys being generated.
On another computer, than the one you generated the keys on, you need to inform GnuPG about the Nitrokey. You have two options for doing so:
If you published your public key on your website you should program that URL into your smartcard in the "URL of public key" section (gpg --card-edit, admin, url). In addition or instead you may want to publish your public key on a key server. When you get to a new computer, you can insert the card, run "gpg --card-edit", then run "fetch" and GPG will fetch the public key from the URL. If there's no URL entered then it will attempt to retrieve the public key from the keyserver.
Alternatively, you can copy and import the public key manually from a flash drive for instance. In this case you have to insert the device and run "gpg --card-status". (Now the general key info will be correctly populated, and new pseudo-secret stubs will be created.)
In any case the keyring file (e.g. ~/.gnupg/pubring.gpg) which contains the public keys of your contacts has to be copied manually.
See this more detailed description.
See these instructions.
Execute the following commands in a terminal.
$ sudo apt-add-repository ppa:gurqn/systray-utopic
$ sudo apt-get update
$ sudo apt-get upgrade
Logout and login again to your computer account.