CR-YK-001: Add hardware-backed human authorization receipts#110
Merged
Conversation
✅ Deploy Preview for poetic-quokka-0fd859 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
coreytshaffer
marked this pull request as ready for review
July 24, 2026 23:20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Status
Draft — implementation-complete and hardware-verified within the declared CR-YK-001 scope.
This PR adds request-bound WebAuthn human-authorization receipts and their
deterministic verification foundation. It does not integrate authorization
into runtime execution, authorize CR-YK-002, or claim race-safe capability
consumption.
What changed
policy, identity, nonce, and expiry metadata.
through
python-fido2.credentials per normalized human identity and revocation tombstones.
sequential one-use capability lane.
optional-dependency and non-Windows failure behavior.
mistaken for a security key.
DISCOURAGED, enabling the intended touch-onlyYubiKey path instead of prompting for a PIN through
PREFERRED.fido2regression coverage plus thehardware-verification record and README posture.
Hardware and assurance status
user verification plus touch, touch-only user-presence assertion, and
offline cryptographic verification.
and REQUIRED-UV assertion through Windows QR/cross-device WebAuthn, followed
by offline verification.
is a useful secondary pathway, but it is not a second hardware security key
and is not described as assurance-equivalent.
and firmware are operator-reported rather than cryptographically proven.
WebAuthn pathway.
Negative-path evidence
The physical receipts and isolated stores were used to verify rejection of:
The initial Windows Hello enrollment and the initial PIN-prompting non-UV
attempt were retained as non-counting evidence in isolated smoke stores. The
main
.triagecore/authzcredential store was not modified.Known limitations and explicit non-goals
concurrency race remains encoded as a strict
xfail.tc run,--confirmed-plan, saved-plan execution, router, backend,cloud-authority, or CR-DD-012B integration is added.
interaction over one exact request digest; it does not prove comprehension,
non-repudiation, or an attested device model.
Exact scope
Exactly six aggregate changed paths across two commits:
README.mddocs/change/requests/CR-YK-001-hardware-authorization-receipts.mdpyproject.tomltests/test_authz.pytriage_core/authz.pytriage_core/fido2_adapter.pyValidation
git diff --check origin/main...HEAD: passed.main, zero behind.Final review gate
field.
user verification, enrolled identity, revocation, and assertion signature.
explicitly distinct.
content, or other secret task material.
xfailremain visible.introduced.