Skip to content

7.15 (3/5): Device robustness — BIP-85, BIP-39 recovery validation, fault-injection hardening#446

Open
BitHighlander wants to merge 11 commits into
release/7.15.0-pr2-new-chainsfrom
release/7.15.0-pr3-robustness
Open

7.15 (3/5): Device robustness — BIP-85, BIP-39 recovery validation, fault-injection hardening#446
BitHighlander wants to merge 11 commits into
release/7.15.0-pr2-new-chainsfrom
release/7.15.0-pr3-robustness

Conversation

@BitHighlander

Copy link
Copy Markdown
Collaborator

3/5 of the 7.15 stack. Stacks on 2/5 (release/7.15.0-pr2-new-chains).

Independent device-robustness work — no chain or clear-signing dependencies.

  • BIP-85 — child mnemonic derivation (display only).
  • BIP-39 recovery — per-word validation during cipher recovery, so a mistyped word is caught on entry instead of producing a silently wrong seed.
  • Fault-injection hardening — the signature-verification path is hardened against glitch / fault attacks.
  • Plus the small build/lint fixes these need to pass ARM -Werror and cppcheck.

Same base pins as 1/5. Builds green.

Signature-index bytes in flash metadata are attacker-writable, so their
presence must not stand in for cryptographic verification. Call the
fault-injection-hardened signatures_ok() again before deciding
flash_collectHWEntropy() and bootloader compatibility checks.
… prev-word label

- B4: finalize guard fails on any non-auto-completed word regardless of
  enforce_wordlist; the flipped guard let the default (host-omitted) path
  store a mistyped/garbage phrase as the seed and report success
- B5: recovery_delete_character resyncs the current-word accumulators
  (decoded_word from mnemonic, coded_word via reverse cipher) so a
  backspace-corrected word validates on its real value instead of stale
  bytes — stale bytes wrongly aborted and storage_reset a real recovery
- B6: the previous-word indicator is snapshotted at the word boundary
  (auto-expanded) instead of on every keystroke
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant