Skip to content

fix(reset): stop displaying internal entropy - #336

Draft
BitHighlander wants to merge 1 commit into
developfrom
agent/remove-internal-entropy-display
Draft

fix(reset): stop displaying internal entropy#336
BitHighlander wants to merge 1 commit into
developfrom
agent/remove-internal-entropy-display

Conversation

@BitHighlander

@BitHighlander BitHighlander commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Security invariant

Production firmware must never render or return the 32-byte internal entropy used as seed pre-image material.

Change

  • removes the Internal Entropy OLED confirmation path from reset
  • removes display_random from the internal reset API
  • keeps the legacy protobuf field decodable but ignores it, preserving host wire compatibility
  • deletes more code than it adds

Before this change, a host could set ResetDevice.display_random, supply the external entropy, and reconstruct SHA256(internal_entropy || external_entropy) after observing the screen once.

Validation

  • clean isolated Docker build
  • direct make xunit execution: firmware 388/388, board 2/2, crypto 4/4, Pallas constant-time 7/7
  • source audit: no production read of display_random and no Internal Entropy screen remains
  • release device build passed (firmware.keepkey.bin: 649,748 bytes)
  • bitcoin-only release build passed (firmware.keepkey.bin: 361,076 bytes)

Compatibility

The protobuf schema is unchanged. Hosts that still send display_random=true receive normal reset behavior without an entropy screen.

Hardware check

On an uninitialized test device, send otherwise-identical reset requests with display_random false and true. Both must follow the same PIN/backup flow, and neither may display entropy bytes.

The wider hardening sequence and acceptance gates are tracked in #334.

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