106 lines
3.9 KiB
Markdown
106 lines
3.9 KiB
Markdown
# Phase 1.0V: inactive one-shot shsrv collector model
|
|
|
|
Status: `INACTIVE_OFFLINE_COLLECTOR_MODEL_COMPLETE_NO_LIVE_CLIENT`
|
|
|
|
Date: 2026-07-22
|
|
|
|
Phase 1.0V implements and tests only an offline input model. It has no socket,
|
|
address, port, DNS, connection, command sender, timeout loop, retry or device
|
|
transport. No PS5 action was performed and no live action is authorized.
|
|
|
|
## Purpose
|
|
|
|
Phase 1.0T proved that a shsrv greeting automatically exposes serial and
|
|
telemetry and that existing metadata cannot establish an exact binary
|
|
identity. Phase 1.0U found no original host target to hash. This phase models
|
|
the minimum safe receive-and-sanitize boundary before deciding whether a later
|
|
separately approved live collector is justified.
|
|
|
|
The model accepts only synthetic or already-supplied bytes through stdin or a
|
|
host unit test. It cannot initiate collection.
|
|
|
|
## State and bounds
|
|
|
|
The state sequence is:
|
|
|
|
`READY -> RECEIVING -> SEALED`
|
|
|
|
Failure produces `INVALID`; an operator abort produces `ABORTED`. Input after
|
|
sealing/abort and a second finalize are rejected. Limits are:
|
|
|
|
- 65,536 total input bytes;
|
|
- 65,536 post-Telnet bytes;
|
|
- 256 chunks;
|
|
- strict UTF-8 after Telnet filtering;
|
|
- one finalize and one sanitized result only.
|
|
|
|
There is no automatic retry, reconnect, resume or fallback.
|
|
|
|
## Telnet handling
|
|
|
|
The incremental filter removes `WILL`, `WONT`, `DO`, `DONT` option exchanges
|
|
and bounded subnegotiation sequences. It supports control sequences split
|
|
across chunks. An incomplete control sequence at EOF fails closed. The model
|
|
does not send the negotiation replies a live Telnet client may require; that
|
|
is deliberately outside this phase.
|
|
|
|
## Sanitization
|
|
|
|
After filtering, Phase 1.0T parsing:
|
|
|
|
- discards serial, model, temperature and CPU-frequency values;
|
|
- retains compile metadata and firmware only;
|
|
- retains file metadata only for an exact pre-approved literal path;
|
|
- labels `sum` as a non-cryptographic 16-bit checksum;
|
|
- never returns raw transcript data;
|
|
- always returns `exact_identity=false`.
|
|
|
|
The internal bytearray is overwritten and cleared before return or invalidation.
|
|
Python and the operating system may have made copies outside that bytearray,
|
|
so `physical_memory_erasure_proven=false`. The guarantee is limited to no raw
|
|
transcript in the model's persistent output.
|
|
|
|
## CLI boundary
|
|
|
|
The only supported CLI input mode is:
|
|
|
|
```text
|
|
--offline-transcript [--expected-path LITERAL_PATH]
|
|
```
|
|
|
|
There is no target, host, address, port, command, connect or send option. The
|
|
CLI reads stdin in 4 KiB chunks and prints sanitized JSON. It is an offline
|
|
analysis tool, not a deviceclient.
|
|
|
|
## Future live requirements
|
|
|
|
A later live implementation would require a separate phase and review of:
|
|
|
|
- an exact inactive manifest and untracked approval;
|
|
- one pre-attested listener and literal address;
|
|
- one connection and one command window;
|
|
- an absolute monotonic deadline;
|
|
- no raw stdout/log/file persistence;
|
|
- explicit acceptance of automatic serial/telemetry reads;
|
|
- Telnet reply behavior and prompt framing;
|
|
- exclusive sanitized output creation;
|
|
- no retry, reconnect, resume, path discovery or fallback;
|
|
- a consumed-attempt receipt before opening a socket.
|
|
|
|
None of those live capabilities or approvals exists in Phase 1.0V.
|
|
|
|
## Phase 1.0W self-review remediation
|
|
|
|
Before using this model as an architecture dependency, self-review corrected
|
|
the doubled-`IAC` subnegotiation state, stopped empty chunks consuming the
|
|
chunk budget, added absolute normalized path allowlisting, gated firmware
|
|
metadata to exact `9.60`, validated compile date/time formats and normalized
|
|
numeric parser failures to a generic fail-closed result. The model was rehashed
|
|
after these changes. Physical memory erasure remains unproven.
|
|
|
|
## Decision
|
|
|
|
The offline sanitization model is ready for human review. Exact deployed shsrv
|
|
identity remains unproven. No launch-context experiment, target build,
|
|
connection, command, transfer or execution is enabled.
|