Skip to content

security: RFC 7638 JWK Thumbprint for TEE nonce key binding#321

Merged
imran-siddique merged 3 commits into
mainfrom
security/jwk-thumbprint-rfc7638
Jun 19, 2026
Merged

security: RFC 7638 JWK Thumbprint for TEE nonce key binding#321
imran-siddique merged 3 commits into
mainfrom
security/jwk-thumbprint-rfc7638

Conversation

@imran-siddique

Copy link
Copy Markdown
Contributor

Switches CRYPTO-001 TEE key binding from SHA-256(raw_pub_key_bytes) to the RFC 7638 JWK Thumbprint (SHA-256 of JSON-serialized sorted OKP members). Both startup.py (nonce construction) and verify.py (verification) now use _jwk_thumbprint_sha256(x_b64url) which produces the standard JWK identifier per RFC 7638 §3. Updates test helper and one inline test accordingly. All 23 verify tests pass.

Replace SHA-256(raw_pub_key_bytes) with the RFC 7638 JWK Thumbprint
(SHA-256 of sorted JSON OKP members) in the TEE nonce fingerprint and
verifier. Both sites now use _jwk_thumbprint_sha256(x_b64url) which
produces the standard JWK identifier per RFC 7638 §3.

Signed-off-by: Imran Siddique <imran.siddique@opaque.co>
…ance

Introduce evidence_class field on AuditEntry (hash-only | tls-pinned).
The proxy sets tls-pinned when the catalog entry carries a real TLS
fingerprint (not the dev placeholder) and the upstream URL is HTTPS.
Verifiers can use this field to distinguish responses received over
a verified TLS channel from those received without cert pinning.
Documents both classes and the non-repudiation limitation in LIMITATIONS.md.

Signed-off-by: Imran Siddique <imran.siddique@opaque.co>
validate base64 decoding without storing the result.

Signed-off-by: Imran Siddique <imran.siddique@opaque.co>
@imran-siddique imran-siddique merged commit 72d6b31 into main Jun 19, 2026
10 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