Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
df6b019
test: add fixture-derived family lane oracle contracts
Jun 8, 2026
ce7706f
test: make corpus iteration tier names truthful
Jun 8, 2026
46c82bd
test: expose reviewed evidence availability in family baselines
Jun 8, 2026
1874934
test: fail closed on unavailable release similarity evidence
Jun 8, 2026
3d77539
test: compare generated TLS fields to reviewed fixture invariants
Jun 8, 2026
13a543f
test: gate generated extension counts against reviewed fixture catalogs
Jun 8, 2026
271fa80
test: use reviewed fixture wire lengths for similarity gates
Jun 8, 2026
f7c6fe7
test: gate Chrome shuffle against reviewed corpus policy
Jun 8, 2026
c0466d9
test: remove silent skips from release similarity tests
Jun 8, 2026
eb3ab51
docs: distinguish real-corpus gates from seed-stress diagnostics
Jun 8, 2026
297fe0c
docs: add stealth corpus similarity closeout evidence
Jun 8, 2026
d847f70
fix(test): stream-safe enum assertions for EvidenceFieldStatus
Jun 9, 2026
fb0d98c
test: hoist duplicated family/lane literals to constants (SonarCloud …
Jun 9, 2026
300a3c5
test(stealth): enforce catalog-status fields and byte-model wire leng…
Jun 11, 2026
2a1d3cc
docs: PR #21 review response mapping findings to fixes and CI gate
Jun 11, 2026
d813a74
fix(mtproto): fail closed when emulate_tls stealth activation fails
Jun 11, 2026
3078bcc
feat(stealth): per-install selection entropy and independent firefox …
Jun 11, 2026
0b2a40f
fix(stealth): bind decorator record-size cap to platform floor (TOCTOU)
Jun 11, 2026
a195226
feat(stealth): make verified iOS Chromium lane reachable (release-gra…
Jun 11, 2026
3b9d852
feat(stealth): harden runtime profile rotation and release gating
DavidOsipov Jun 12, 2026
7f52cc6
Fixed sqlite issues
DavidOsipov Jun 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 0 additions & 25 deletions artifacts/active_probing_nightly_observations.json

This file was deleted.

8 changes: 8 additions & 0 deletions docs/Documentation/FINGERPRINT_GENERATION_PIPELINE.md
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,14 @@ Release-mode suppression of advisory selections is observable via advisory_block
3. Route matrix hardening: test_tls_route_ech_quic_block_matrix.cpp
4. Classifier gate shape: test_tls_wire_pattern_distinguisher_contract.cpp

### Real-Corpus Similarity Gates vs Seed-Stress Diagnostics

A real-corpus similarity gate compares generated TLS ClientHello fields against reviewed browser-capture evidence for the same `(family_id, cohort_id, route_lane, evidence_lane)`. These gates consume `test/analysis/fixtures/clienthello/` through generated reviewed baselines and fail closed when exact release-critical evidence is unavailable or mixed. Examples: `TlsReleaseSimilarityUnavailableFailClosed`, `TlsGeneratorFixtureExactFieldsGate`, `TlsGeneratorExtensionCountSimilarity`, `TlsGeneratorWireLengthFixtureGate`, `TlsGeneratorShuffleSimilarity`.

A seed-stress diagnostic exercises runtime variability across deterministic seeds. Seed-stress diagnostics are valuable for detecting degenerate RNG behavior, duplicate wire images, weak GREASE diversity, and pinned shuffle positions, but generated seeds are not independent browser evidence and may not be used as release-facing denominators. Example: `TLS_NightlyWireBaselineMonteCarlo`.

As a rule, self-calibrated generator tests are not real-browser similarity evidence. A test that derives expected wire lengths, extension counts, or envelopes from the generator under test can only prove internal stability. Note that some fixture-derived gates (for example wire length) still admit the builder's documented padding-target entropy as an explicit tolerance; this is bounded by the reviewed catalog, not self-calibrated from the generator.

---

## Trust Tiers and Release Gates
Expand Down
8 changes: 8 additions & 0 deletions docs/Documentation/Lessons_Learnt.md
Original file line number Diff line number Diff line change
Expand Up @@ -319,3 +319,11 @@ All three passed after the test logic was corrected.
| Existing Chromium shuffle regression tests | `test/stealth/test_tls_extension_order_policy.cpp` |
| New contract tests from this session | `test/stealth/test_tls_extension_order_template_catalog_contract.cpp` |
| Fixture-derived Chrome extension-set coverage | `test/stealth/test_tls_corpus_chrome_extension_set_1k.cpp` |

---

## Real-Corpus Similarity Evidence

Self-calibrated generator tests are not real-browser similarity evidence. Release-facing fingerprint claims must use reviewed fixture evidence from real packet captures, disclose the cohort denominator, and fail closed when exact release-critical fields are unavailable or mixed. Seed-stress diagnostics remain useful, but they prove generator diversity and stability rather than similarity to browser dumps.

A practical corollary learned while wiring the fixture-derived wire-length gate: a byte-exact wire-length equality check is the wrong gate, because `TlsHelloBuilder` injects 0..255 bytes of per-build padding-target entropy as an anti-DPI measure. The release gate must bound the generated length to the reviewed catalog with a tolerance derived from that documented entropy budget, not assert a single byte length.
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
},
"notes": "",
"observation_generated_at_utc": "2026-04-26T00:00:00Z",
"observation_input_path": "/tmp/tmpfd8yppnf/transport_observations.json",
"observation_input_path": "/tmp/.ctx-mode-q5fBni/tmp4mbn9mor/transport_observations.json",
"required_metrics": [
"ttl_bucket_match_rate",
"syn_option_order_class_match_rate",
Expand Down
Loading
Loading