Skip to content

@szszszsz szszszsz released this Dec 30, 2020

After the update only the Unencrypted and Encrypted Volumes data will be retained. Password Safe, OTPs and Hidden Volumes will be lost.

Update guide:

This firmware requires Nitrokey App v1.4 to fully operate. Otherwise the OTP slot writing and configuration update will not work.
Known limitations:
- Write to the 15th TOTP slot is disabled (until the next firmware) due to a bug - #91;
- Write to OTP slots in Nitrokey Apps v1.3.2 and older is silently (without a warning to user) disabled due to a modified authorization method (#22). At the moment only Nitrokey App v1.4 can handle it (will be released in coming days released already). Other features works as usual.

Firmware is signed with szczepan@nitrokey.com, key id: 868184069239FF65DE0BCD7D D9BAE35991DE5B22
(valid until 2021-01-12). ID can be confirmed to be the same with one on the main download site - https://www.nitrokey.com/download.

$ gpg2 --verify nitrokey-storage-V0.55.hex.sig
gpg: assuming signed data in 'nitrokey-storage-V0.55.hex'
gpg: Signature made Wed 30 Dec 2020 03:12:54 PM CET
gpg:                using RSA key 868184069239FF65DE0BCD7DD9BAE35991DE5B22
gpg: Good signature from "Szczepan Zalega <szczepan.zalega@gmail.com>"
gpg:                 aka "Szczepan Zalega (Nitrokey) <szczepan@nitrokey.com>"

Built with optimizations disabled (-O0), using GCC 4.3.3 (AVR_Toolchain_3.0_124).


Firmware changes:

  • Guard configuration structure access to avoid rare event resulting in data loss
  • Mark global variables volatile, where accessed between tasks
  • Timeout and reset DMA channels on failure
  • Introduce smart card start up delay to favor internal processes
  • Increased firmware version to v0.55
  • Configuration access refactorization for easier data manipulation

Development:

  • Import project to Atmel Studio 7
  • Allow to build using Makefile
  • Add stub for CMake usage
  • Remove obsolete code
  • Add initial support for stack guard protection

Connected: #98

Tested on:

  • macOS 10.15.2
  • Linux Fedora 32
  • Windows 10 20H2

with:

  • libnitrokey 3.6 (Python test suites; skipped on Windows)
  • Nitrokey App v1.4 (manual test)

For tests firmware was built using GCC 4.3.3 (AVR_Toolchain_3.0_124), -O0.
Firmware upgrade and downgrade tested on the previous latest firmware.

Test suite was modified to account TOTP#15 slot being disabled.

Assets 5
Pre-release

@szszszsz szszszsz released this Dec 16, 2020 · 29 commits to master since this release

This release focuses on fixing #100 #98 #97. So far during the tests the mentioned have not occurred.

Please check whenever possible.
After the update only the Unencrypted and Encrypted Volumes data will be retained. Password Safe, OTPs and Hidden Volumes will be lost.
Built with optimizations enabled (Os). Possibly increased throughput on the EV/HV (tested 8MBps read, 7MBps write).

GPG signed:

$ gpg2 --verify nitrokey-storage-firmware-linux-V0.55_rc1-g349cf6f.hex.sig
gpg: assuming signed data in 'nitrokey-storage-firmware-linux-V0.55_rc1-g349cf6f.hex'
gpg: Signature made Wed 16 Dec 2020 03:34:49 PM CET
gpg:                using RSA key 868184069239FF65DE0BCD7DD9BAE35991DE5B22
gpg: Good signature from "Szczepan Zalega <szczepan.zalega@gmail.com>" [ultimate]
gpg:                 aka "Szczepan Zalega (Nitrokey) <szczepan@nitrokey.com>" [ultimate]
Assets 4

@szszszsz szszszsz released this Jun 24, 2019 · 30 commits to master since this release

This firmware requires Nitrokey App v1.4 to fully operate. Otherwise the OTP slot writing and configuration update will not work.

In this update mostly OTP features are improved. Namely:

Known limitations:

  • Write to the 15th TOTP slot is disabled (until the next firmware) due to a bug - #91;
  • Write to OTP slots in Nitrokey Apps v1.3.2 and older is silently (without a warning to user) disabled due to a modified authorization method (#22). At the moment only Nitrokey App v1.4 can handle it (will be released in coming days). Other features works as usual.

Tested with libnitrokey Nitrokey/libnitrokey@a8028a7 (with TOTP slot count set to 14).

Firmware is signed with szczepan@nitrokey.com, key id:
868184069239FF65DE0BCD7D D9BAE35991DE5B22
(valid until 2020-01-11). ID can be confirmed to be the same with one on the main download site - https://www.nitrokey.com/download.

Assets 4
Pre-release

@szszszsz szszszsz released this Mar 18, 2019 · 59 commits to master since this release

Test release with features:

  • 320 bit OTP secret
  • 64 bit HOTP counter
  • OS startup HOTP verification

Contains DEBUG measures activated. Not rebased on master yet.

Assets 3
Mar 18, 2019
Test release for v0.54

@szszszsz szszszsz released this Nov 23, 2018 · 86 commits to master since this release

This update fixes Nitrokey App communication issue under Windows 10 1809: NitrokeyApp#392. It is optional for users not using this operating system, or not using the Nitrokey App there. The only change is redefining the HID descriptor, which will make the device to not be identified as a virtual keyboard and allow to connect by non-system applications. As a consequence of removing the virtual keyboard, the 'special key double press OTP insertion' feature will now not work (it might be restored in future firmware versions).

Issue affects only communication with the Nitrokey App. Smart card communication should not be affected.

Firmware is signed with szczepan@nitrokey.com, key id: 868184069239FF65DE0BCD7D D9BAE35991DE5B22 (valid until 2019-01-10). ID can be confirmed with the one on the main download site.

Update instructions

Since the update mode cannot be activated under Windows 10 1809 using the Nitrokey App (due to mentioned issue), we will provide alternative solution to execute the update in the following days. Users of multiple OSes can resort to activating the update on another system.

Assets 5

@szszszsz szszszsz released this Jun 27, 2018 · 88 commits to master since this release

Use Admin PIN to change Unencrypted Volume read-only/read-write state.
This feature requires Nitrokey App v1.3.1 to work.

Firmware is signed with szczepan@nitrokey.com, key id: 868184069239FF65DE0BCD7D D9BAE35991DE5B22. ID can be confirmed with the one on the main download site.

Edit 2018-07-02: Unencrypted Volume is now read-only by default. To change it to read-write please use 'Configuration' sub-menu in Nitrokey App. Older Nitrokey App versions will report, that supplied PIN is invalid, while trying to change the state due to protocol change. Please use v1.3.1 to do so.


Details

Reactivate old commands:

  • ENABLE_ADMIN_READONLY_UNCRYPTED_LUN
  • ENABLE_ADMIN_READWRITE_UNCRYPTED_LUN

Disable:

  • ENABLE_READONLY_UNCRYPTED_LUN
  • ENABLE_READWRITE_UNCRYPTED_LUN

Not changed:

  • ENABLE_ADMIN_READONLY_ENCRYPTED_LUN
  • ENABLE_ADMIN_READWRITE_ENCRYPTED_LUN

New: blinking command

Assets 5

@szszszsz szszszsz released this Jun 14, 2018 · 98 commits to master since this release

Handle missing AES key's DO (data object).
In older firmwares, if the DO was not found, empty AES key was used for encrypting data on Encrypted Volume. Removal of the AES key's DO is only possible by making a factory reset via CCID/smart card interface (e.g. using GnuPG). If the latter was never done or the AES key was regenerated afterwards (e.g. via the device's factory reset or Destroy encrypted data, issued in Nitrokey App), the key has the correct, randomized value and the data are encrypted correctly. New firmware tests for the key correctness and disallow Encrypted Volume unlock, if it is not random.

Update is strongly advised. Please make a backup of your data before proceeding, as they might not be accessible further.

Announcement with the details and an update guide will be sent in a near future. It will mention a new application created lately (for Windows and macOS) to ease the update process - Nitrokey Update Tool.
Please see the commit's messages for the technical details.

Firmware is signed with szczepan@nitrokey.com, key id: 868184069239FF65DE0BCD7D D9BAE35991DE5B22. ID can be confirmed with the one on the download site.

Assets 5

@rudbo rudbo released this Jan 21, 2018 · 109 commits to master since this release

Fix: Don't clear last HID APP command when CCID interface is active

Reactivate old commands
ENABLE_READONLY_UNCRYPTED_LUN
ENABLE_READWRITE_UNCRYPTED_LUN

Disable
ENABLE_ADMIN_READONLY_UNCRYPTED_LUN
ENABLE_ADMIN_READWRITE_UNCRYPTED_LUN
ENABLE_ADMIN_READONLY_ENCRYPTED_LUN
ENABLE_ADMIN_READWRITE_ENCRYPTED_LUN

Edit 31.01.2019 @szszszsz: Encrypted Volume read-only/read-write mode changing feature was suspended, due to side-effect in current implementation - removing (as in locking) the whole Encrypted Volume for a short period, which could end up in user data loss (due to not sync'ed host OS buffers).
Related issue: #55

Assets 10

@rudbo rudbo released this Jan 20, 2018 · 110 commits to master since this release

External Versionnr 0.49
Internal Versionnr 0

Fix: Don't clear last HID APP command when CCID interface is active

New commands in firmware, unlock with admin password
ENABLE_ADMIN_READONLY_UNCRYPTED_LUN
ENABLE_ADMIN_READWRITE_UNCRYPTED_LUN
ENABLE_ADMIN_READONLY_ENCRYPTED_LUN
ENABLE_ADMIN_READWRITE_ENCRYPTED_LUN

Disable commands
ENABLE_READONLY_UNCRYPTED_LUN
ENABLE_READWRITE_UNCRYPTED_LUN

Assets 6