REALITY.3: forged cert omits AIA/SCTs (best-effort cert-mimicry fidelity gap) #75
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
femboy/yip#75
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
REALITY.3's on-the-fly stolen-cert acceptor (
bin/yip-rendezvous/src/reality_cert.rs) forges a leaf that copies the realdestleaf's subject, all SANs, validity, serial, keyUsage, EKU, basicConstraints, but does not copy AIA (Authority Information Access) or SCTs (Signed Certificate Timestamps). This is a deliberate, accepted scope cut in REALITY.3 — tracking it here so the fidelity gap is explicit and revisitable.Why it was deferred
boring4.22 exposes clean accessors for subject/SAN/validity/serial but not for the AIA extension. Copying it faithfully needs DER-level extension parsing (e.g.x509-parseron the leaf DER), which was out of scope for the initial server milestone.Why it's low-severity today
In TLS 1.3 the Certificate message is encrypted, and REALITY.3 pins the authed acceptor to TLS-1.3-only, so these extensions are never visible to passive DPI. The gap only matters to an adversary who already holds a valid REALITY key (a legitimate-client-turned-prober) and decrypts the Certificate to compare the forged cert against dest's live one — which is REALITY's accepted threat-model boundary (possessing the config already reveals the server).
Possible follow-up work
References
docs/superpowers/specs/2026-07-15-reality-3-server-cert-steal-design.mdbin/yip-rendezvous/src/reality_cert.rs(extract_fields/forge_leaf)