Repository navigation
Should CLI/GUI tools expose checksum completion? #78
Replies: 4 comments 4 replies
Yeah. So, if they're starting with low entropy data there's not too much we can do. But I don't think users will be fooled into thinking that the checksum somehow makes "insecure data" into "secure data". I do think users will be fooled into thinking that they can take data with poor integrity (or data which is actually wrong/corrupted) and then "restore it" by using the checksum generation. I agree it seems plausible that users would drop a checksum that doesn't validate then attempt to "restore it". So my proposal is:
We should also extend the "are you recovering" warning. I think we should say something like: |
this is same as providing checksum calculator but with worse UI. Even tho I agree there exist some "footguns", calculating checksum is very useful (as hand calculation is extremely tedious). Not just to calculate it, but also to verify your hand calculation. |
|
One concrete finding from our implementation that can be useful for others: our calculator first validates the input as a complete checksummed string. If valid, it returns it unchanged. If validation fails, it tries treating the input as a header and payload without a checksum. The problem is that a failed checksum does not necessarily mean the checksum is missing. A complete shorter string can have exactly the same length as a longer string without its checksum. For MS1: • 128-bit complete ↔ 192-bit without checksum: 48 characters A shorter string with a bad checksum can therefore be mistaken for a longer payload awaiting a checksum. The calculator absorbs the old checksum into the payload and appends a new one, producing a valid string for different wallet material. The user doesn’t even need to delete the failed checksum. We encountered this with CW1. Coldcard/firmware#828 restricts checksum calculation to MS1. Our supported MS1 sizes—128/256/512 bits—have no such overlap. A calculator supporting all the lengths listed above would need to account for this ambiguity. Our calculator only allows the lengths that we support (128/256/512) |


Uh oh!
There was an error while loading. Please reload this page.
Before releasing python-codex32 v1, I’d appreciate feedback on whether checksum completion is useful enough to justify its misuse risk.
My candidate
ms32 checksumcommand completes a Codex32 Book worksheet. It saves manual checksum computation, but can also give wrong data a valid checksum. Users might interpret that as evidence their backup is secure/random.Safeguards:
These checks cannot guarantee data was generated correctly. Entering wrong data twice can still succeed.
Help
Proposed warning
Prompts, separated by terminal clearing
Input errors
Would you keep this command or remove user-facing checksum completion? What about for a GUI? My concern is users may checksum low entropy data or replace a damaged backup’s checksum.
All reactions