Skip to content

feat/secure element offline bearer attestation#492

Merged
cryptskii merged 3 commits into
mainfrom
feat/secure-element-offline-bearer-attestation
Jun 14, 2026
Merged

feat/secure element offline bearer attestation#492
cryptskii merged 3 commits into
mainfrom
feat/secure-element-offline-bearer-attestation

Conversation

@cryptskii

Copy link
Copy Markdown
Collaborator
  • test(cdbrw): same-model silicon uniqueness research instrumentation
  • Promote secure-element offline-bearer authority; demote C-DBRW
  • feat(crypto): add device_anchor, fix SPHINCS+ malleability, wire crypto mod/signatures; update android manifest; prune stale docs

Adds research-only native capture + on-device collectors used to test
whether the C-DBRW orbit timing channel separates same-make/same-model
devices (3x Galaxy A16, mt6789). NOT a production path; no K_DBRW or
enrollment-schema change.

- siliconfp.cpp: captureOrbitRaw() exposing the walk-altering knobs
  (rotation r, mu injection cadence k, per-core lane via verified pin)
  and returning raw per-probe CNTVCT timing + per-probe perf-cycle
  deltas (for a two-clock ratio) + mu histogram, for host-side
  extractor sweeps.
- SiliconFingerprintNative.kt: captureOrbitRaw binding.
- SiliconFpExtractorSweepTest / SiliconFpScaleSweepTest: arg-driven
  collectors (rotation x cadence x lane x altitude).

Finding (3-device, no-pair-collapse gate, shuffle control): the timing
channel does NOT provide same-model separation — matched warm-state
pair collapses to ~1.08x; large gaps were transient thermal/DVFS state
(fresh device), shrinking as state matched. Die-to-die variation is
real but below this channel's noise floor; finer instruments
(perf_event_open) are SELinux-denied to untrusted_app. Same-model
anti-cloning rests on K_DBRW + per-device salt; the orbit remains a
SoC-family / liveness signal. Full evidence in
.claude/traces/sessions/TRACE-2026-06-11-001.json.
Secure-element attestation (Trezor Safe 7 / TROPIC01) becomes the controlling path for the optional offline-bearer authority tier, replacing C-DBRW silicon binding (retired per the dsm_anticlone ceiling theorem: no software-only physical channel can bind a transition against an off-device clone).

- crypto/classical_verify.rs: scoped classical verifiers (Ed25519 TROPIC01, ECDSA-P256/SHA256 OPTIGA), fenced to external attestation; DSM's own crypto stays PQ (BLAKE3/SPHINCS+).
- attestation/: frame_authenticate_device, dsm_island_challenge, verify_island_attestation (X.509 chain walk to pinned Safe 7 production roots; dev devices rejected), per-transition verify_island_intent_signature, SettlementPath decision (failure falls back to online, never a hard reject).
- types/device_state.rs: IslandAttestation folded into compute_chain_tip append-only-when-present (zero canonical change for non-attested tips); OfflineBearerAttestation capability (deny-unless-proven, reset-on-recovery).
- recovery/: faithful RelationshipChainStateProto codec carries island_attestation.
- proto/dsm_app.proto + frontend dsm_app_pb.ts: IslandAttestationProto (field 11).
- frontend: remove the C-DBRW dev screen + dbrw trust-protocol UI.
- formal: reconcile lean4/tla code-correspondence with current code.

Offline-bearer gate is implemented but activation-gated pending host transport. 1564 lib tests + clippy clean.
…to mod/signatures; update android manifest; prune stale docs
@cryptskii cryptskii merged commit 33359f4 into main Jun 14, 2026
4 of 6 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