V0.55: Correct configuration handling
After the update only the Unencrypted and Encrypted Volumes data will be retained. Password Safe, OTPs and Hidden Volumes will be lost.
Update guide:
- Windows: https://docs.nitrokey.com/storage/windows/firmware-update.html#required-software
- macOS: https://docs.nitrokey.com/storage/mac/firmware-update.html
- Linux: https://docs.nitrokey.com/storage/linux/firmware-update.html
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.