Skip to content

Record the assurance baseline at 40c521b in the roadmap - #223

Merged
404SecNotFound merged 2 commits into
mainfrom
claude/serene-carson-0739mv
Sep 28, 2026
Merged

404SecNotFound merged 2 commits into
mainfrom
claude/serene-carson-0739mv

Conversation

@404SecNotFound

@404SecNotFound 404SecNotFound commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

Summary

A reconciliation before any assurance change. Docs only, one file (docs/ROADMAP.md). Nothing in src/ or reference/ was modified to produce these results.

It adds Phase 9, 9.0, a dated baseline with five findings. Each was reproduced on this tree with synthetic inputs. The probes loaded the shipping worker as-is with a stand-in self, and called the shipping split function directly, rather than reimplementing either.

# Finding Status
9.1 The inheritance plan ignores "The strips need the password too". In Chromium, the plan still says any 2 of 3 shares open the backup on their own. Still present
9.2 Verify-only and rehearsal receive the plaintext in the page, which zeroes it without rendering it. Still present, mitigated
9.3 Creating a backup derives the password once per way in: 1, 2 and 3 times, for PBKDF2 and Argon2id alike. Password AND shares already derives once. Still present
9.4 Shamir polynomial coefficients are still non-zero after the split returns. Caller-supplied coefficients are untouched. Still present
9.5 Cold recovery from the four kit files with networking removed. It fails without wheels, recovers two containers byte for byte with the pre-downloaded wheels RECOVERY.md describes, and refuses a tampered file with no output. Works as documented

It also marks owner item O1 as done, because the description and 16 topics are set.

Status: 9.0 verified. 9.1 to 9.4 not_started, one PR each, based on main, in the order 9.1, 9.3, 9.2, 9.4.

Checks on this tree

All exit 0 on 40c521b:

  • typecheck, test:readme, test:calibration, test:release-gate, test:reproduced-manifest, build
  • test:keymaker 297 passed. test:keym2-dispatch 76 passed.
  • test:fuzz2 6,023 assertions. test:fuzz3 4,853 assertions. test:shamir 19 assertions. test:secret-erase-core passed.
  • keym2.py selftest 680 checks. crosstest2.py 445 passed, v2, v3 and v4 byte for byte. recovery_test.py 185 passed.

Not run

  • Firefox and WebKit are not installed in this environment, so their coverage is this PR's CI run.
  • No physical authenticator was available, so nothing here covers real passkeys.
  • No negative control applies, because this PR adds no test.

A reconciliation before any change. Five cases were reproduced on this
tree with synthetic inputs, driving the shipping worker and split
function rather than copies of them:

- The inheritance plan ignores "The strips need the password too" and
  still says any 2 of 3 shares open the backup on their own.
- Verify-only and rehearsal receive the plaintext in the page, which
  zeroes it without rendering it.
- Creating a backup derives the password once per way in: 1, 2 and 3
  times for PBKDF2 and Argon2id alike.
- Shamir polynomial coefficients are not erased after the split.
- Cold recovery from the kit fails offline without wheels and succeeds
  byte for byte with the pre-downloaded wheels RECOVERY.md describes.

All fifteen baseline checks pass on this tree. Owner item O1 is marked
done: the description and topics are set.
The baseline said the claim that authenticating an AEAD ciphertext
requires producing the plaintext was not found. It is in 2.3, the
verify-only entry, beside a statement that the plaintext stays in the
worker heap, which finding 9.2 contradicts. The search that missed it
used patterns too narrow to match the sentence as written.
@404SecNotFound
404SecNotFound merged commit d1e5779 into main Sep 28, 2026
15 checks passed
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