Skip to content

v1.10.5

Latest

Choose a tag to compare

@miketlk miketlk released this 06 Sep 02:58
Immutable release. Only release title and notes can be modified.
v1.10.5
b2d87e5

Maintenance release: security hardening for the hardware RNG and for transaction/change handling. Firmware-only upgrade, the secure bootloader is unchanged since v1.10.3, so specter_upgrade_v1.10.5.bin contains no boot section.

Release notes

Full Changelog: v1.10.3...v1.10.5

Upgrade process

Copy specter_upgrade_v1.10.5.bin to the SD card and insert it into the device. The bootloader will check the
signatures of the upgrade file and update the firmware.

Devices running v1.9.0 or earlier must install v1.10.3 first because it rotated the bootloader signing keys. v1.10.5 is signed with that same key set.

Flashing an empty board

Initial programming is intended for a blank or recovery device. Back up any required wallet information first: flashing this image is not the normal upgrade path for an initialized device and may overwrite existing device storage.

If your Discovery board is empty or has very old firmware (below v1.4.0), connect it over mini-USB with the power jumper set to STLK and copy-paste initial_firmware_v1.10.5.bin to the mounted drive.

With stlink-tools:

st-flash write path/to/initial_firmware_v1.10.5.bin 0x8000000

If you want to use a self-signed bootloader and firmware, see the instructions in the bootloader repo.

sha256.signed.txt
contains the SHA-256 hashes of the firmware binary files, GPG-signed by release signer Mike Tolkachev (@miketlk) — the same identity as the second upgrade-file signature.

Fingerprint: F2DB C4C6 14C1 13E2 B15F 879A DD5C 1264 EBD6 45BE

Get the public key from an independent keyserver:

Download the public key as an ASCII-armored .asc file from keys.openpgp.org

The key is also available as a GitHub mirror.

curl -sL https://keys.openpgp.org/vks/v1/by-fingerprint/F2DBC4C614C113E2B15F879ADD5C1264EBD645BE | gpg --import
gpg --fingerprint F2DBC4C614C113E2B15F879ADD5C1264EBD645BE

Confirm that the complete fingerprint matches the value above. The key is also available from keyservers as 0xDD5C1264EBD645BE. Then verify the OpenPGP signature and the downloaded firmware files:

gpg --verify sha256.signed.txt
gpg --decrypt sha256.signed.txt > sha256.verified.txt
shasum -a 256 -c sha256.verified.txt

On Linux, sha256sum -c sha256.verified.txt can be used instead of shasum.

The SECURITY.md release-signer table lists this key. Note: earlier releases' sha256.signed.txt (v1.10.3, v1.9.0) used different keys, check that document for the key that matches the release you are verifying.

Reproducible build

You can build binaries identical to the ones in this release yourself. Follow this instruction. When the build is almost complete the script outputs a message for signing and asks you for the signatures.

Verify that the upgrade message is:

1.10.5-1fychyfccs5a0l4xhgskqutqzmkpfga7fd49waatccalglpecxr5qkm92z0

Add first signature (k9ert):

IIc0ZJD4Y4Ll2efRUwwdxgrMiYkxK1DPY3PzqVFyU3ifd2pvZ8WQqNGuJjErHCJxvN48DES/i3J77zzMYtJ+W7w=

Add second signature (Mike):

JLqLFabJRKGRFPHce1jzKq52m++hRp4eWxyyKFEsl3W+OIHYeDydfb6FQZckw1Ofdcrui4sXG7+ZPF4X2rOjuQM=

Then hit enter and check that release/sha256.txt has the same hashes as
sha256.signed.txt.

Source commit: b2d87e55338289a258ee985b26c7b064d5b49132 (tag v1.10.5).