Replies: 2 comments
|
If an attacker doesn’t know what the device is, an inconspicuous startup alone #203 would already mitigate most risk. If the device is seized by authorities, it’s unclear whether erasing the seed provides more or less protection; in that scenario, only a strong encryption key really matters. See these Considerations. This approach seems better suited to devices that store secrets locally and protect them with a PIN (a weak key), where brute-force attacks are a concern. I’m not convinced this feature would benefit users overall, as it could create a false sense of security, especially if combined with a weak encryption key. Users can mitigate this risk by not storing secrets on the device, removing the SD card beforehand, or fully wiping the device before traveling. In the current code, data erasure from the SD card is even more reliable than from internal flash memory; however, we still cannot guarantee that the data is unrecoverable: src/krux/encryption.py def del_mnemonic(self, mnemonic_id, sd_card=False):
"""Remove an entry from encrypted mnemonics file"""
if sd_card:
self.stored_sd.pop(mnemonic_id)
with SDHandler() as sd:
orig_len = len(sd.read(MNEMONICS_FILE))
contents = json.dumps(self.stored_sd)
# pad contents to orig_len to avoid abandoned bytes on sdcard
if len(contents) < orig_len:
contents += " " * (orig_len - len(contents))
sd.write(MNEMONICS_FILE, contents)
else:
self.stored.pop(mnemonic_id)
with open(FLASH_PATH_STR % MNEMONICS_FILE, "w") as f:
f.write(json.dumps(self.stored)) |
|
Seems related to #814, since the current implementation of TC Hash at Boot could have influenced the direction of that discussion |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
RFC: Duress Event for Emergency Seed Wipe in Krux
Status
Proposal / Discussion
Summary
This RFC proposes adding an optional Duress Event to Krux, capable of invalidating (erasing) all locally stored seeds (internal flash and SD card) when a specific, preconfigured trigger is activated.
The goal is to provide extreme protection against physical coercion, assuming the user has reliable physical backups of their seeds, and that the device may be abandoned or confiscated after the event.
Motivation
In real-world threat scenarios (physical coercion, extortion, confiscation), denying access to the device or showing errors can increase physical risk to the user.
Some hardware wallets implement duress mechanisms that:
Krux currently has no equivalent mechanism. This RFC explores if and how such a feature could be implemented without compromising security, clarity, or user trust.
Assumptions (Explicit)
This RFC assumes that:
Users without backups must not enable this feature.
Threat Model
Threats addressed
Out of scope
This RFC intentionally limits scope to avoid unrealistic guarantees.
Invariants (Non-negotiable)
The proposed design must not:
Violation of any invariant should result in rejection.
Core Concept
The Duress Event represents an extreme, intentional action, comparable to an emergency wipe, triggered only through a preconfigured mechanism.
Duress Event Trigger (Proposal)
Primary model (Preferred)
Simplified logic:
Trigger properties
Duress Event Behavior
When triggered:
The goal is plausibility, not visible destruction.
Wipe Strategy (Technical Considerations)
Internal flash
SD card
Configuration UX (Where clarity is mandatory)
Duress configuration is not silent.
It must include:
Once enabled, execution may be silent.
Initial Scope (Proposed MVP)
To reduce risk and ease evaluation:
Future extensions can be discussed separately.
Known Risks
These risks are considered acceptable only because the feature is opt-in and explicit.
Alternatives Considered
Conclusion
This RFC proposes an optional, explicit, and extreme Duress Event, aligned with real-world threat models and comparable to mechanisms found in other hardware wallets, adapted to Krux’s design and usage model.
The proposal prioritizes:
Community feedback is essential before any implementation.
All reactions