Files
TEESimulator-RS/module/changelog.md
T
Enginex0 f50004d9a5 docs(release): write v3.2 changelog and point update.json to fork
Changelog covers all 22 commits since v3.1: rate limiter,
importKey hardening, key persistence, supervisor daemon,
security patch consistency, and lifecycle scripts.
update.json now targets Enginex0/TEESimulator releases.
2026-02-06 23:50:30 +01:00

44 lines
2.9 KiB
Markdown

## TEESimulator v3.2: Anti-Detection Hardening & Key Persistence
This release hardens TEESimulator against active attestation probing by detector apps (DuckDetector, Luna, GarfieldHan) while introducing persistent key storage that survives daemon restarts and reboots.
### Anti-Detection Hardening
* **Per-UID Hardware Keygen Rate Limiter**: Caps hardware key generation at 2 per 30-second window with 2 max concurrent requests per UID. Overflow requests fall back to software certificate generation, preventing binder thread starvation from flood attacks.
* **importKey Eviction Defense**: Retains patched attestation chains when `importKey` overwrites an attested alias. Blocks the generate-then-import attack vector used by GarfieldHan and similar detectors.
* **Native Binder Payload Cap**: Bypasses interception for payloads exceeding 256KB, preventing thread starvation from oversized binder transactions.
* **Oversized Alias Rejection**: Rejects aliases that would exhaust the binder buffer, closing another flooding vector.
### Security Patch Consistency
* **Three-Way Patch Level Alignment**: When `system=prop` in `security_patch.txt`, boot and vendor patch levels are forced to `prop` as well. All three ASN.1 attestation tags (706/718/719) now resolve via `SystemProperties.get()` to match what detector apps see through `getprop`.
### Key Persistence
* **Generated Key Persistence Layer**: Keys from `generateKey` are persisted to disk in binary format with version headers and atomic writes (tmp + rename).
* **Automatic Restoration**: Persisted keys are restored on daemon startup without re-attestation.
* **Keybox Rotation Survival**: Generated keys survive keybox.xml changes — only PATCH-mode cert chains are invalidated.
* **File-Level Locking**: Concurrent read/write access to persisted keys is serialized to prevent corruption.
### Process Reliability
* **Fork-Based Supervisor Daemon**: Replaces the restart loop with a native fork-based supervisor for near-instant recovery.
* **Attestation Leak Blocking**: Returns `DEAD_OBJECT` to callers when the interceptor service is unavailable, preventing unpatched attestation from leaking through.
* **Global Exception Handler**: Catches uncaught exceptions and triggers clean daemon restart instead of silent death.
* **FileObserver NPE Fix**: Prevents crash when config files are deleted while being observed.
### Upstream Cherry-Picks
* **KeyUsage per HAL spec** (#119): Correct certificate KeyUsage based on KeyPurpose.
* **Reference leak fix** (#122): Resolve strong reference leak and warnings in binder interception.
### Module Lifecycle
* **`action.sh`**: Purge persistent key storage via KSU Manager Action button. Shows key count and storage size before clearing.
* **`uninstall.sh`**: Clean module removal — kills daemon, removes generated data, preserves `target.txt`, `keybox.xml`, and `security_patch.txt`.
### PKI Fixes
* Strip HTML comments from PEM blocks before parsing.