Update v1.0.2 documentation and security guidance
This commit is contained in:
1 parent
f4c4beb6b5
commit
a1a2e9d571
7 files changed
+84
-18
No files matched your search
+10
-1
@@ -16,7 +16,7 @@ ChronoSeal is a **self-hosted, cryptographic attestation daemon**. This document
|
|||||||
|
|
||||||
## Detailed Analysis
|
## Detailed Analysis
|
||||||
|
|
||||||
### 1. ChronoSeal (v0.6.0)
|
### 1. ChronoSeal (v1.0.2)
|
||||||
|
|
||||||
**Strengths:**
|
**Strengths:**
|
||||||
- Strongest **cryptographic foundation** (Ed25519 signatures + Blake3 hash chain + Synthetic Gene Mutation Engine)
|
- Strongest **cryptographic foundation** (Ed25519 signatures + Blake3 hash chain + Synthetic Gene Mutation Engine)
|
||||||
@@ -118,3 +118,12 @@ It is particularly well-suited for:
|
|||||||
- Developers who value auditability
|
- Developers who value auditability
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
## v1.0.2 Security Hardening Additions
|
||||||
|
|
||||||
|
- Fingerprint validation bounds enforcement
|
||||||
|
- Security response headers
|
||||||
|
- DashMap-backed concurrent rate limiting
|
||||||
|
- WASM panic hardening
|
||||||
|
- Non-root container execution
|
||||||
@@ -378,3 +378,10 @@ Avoid debug logging in production because internal identifiers may be written to
|
|||||||
- Protect SQLite and log directories with correct ownership.
|
- Protect SQLite and log directories with correct ownership.
|
||||||
- Monitor `/health`, `/stats`, and `/metrics`.
|
- Monitor `/health`, `/stats`, and `/metrics`.
|
||||||
- Verify `chronoseal config check` after environment or config changes.
|
- Verify `chronoseal config check` after environment or config changes.
|
||||||
|
|
||||||
|
|
||||||
|
## v1.0.2 Deployment Notes
|
||||||
|
|
||||||
|
- Containers run as a dedicated non-root user.
|
||||||
|
- Reverse proxies should forward X-Forwarded-For or X-Real-IP.
|
||||||
|
- Security headers are enabled by default.
|
||||||
+26
-17
@@ -31,16 +31,16 @@ The optimal values depend on your threat model and expected client hardware.
|
|||||||
| Profile | `gene_size` | `mutation_rounds` | Security Level | Recommended Usage |
|
| Profile | `gene_size` | `mutation_rounds` | Security Level | Recommended Usage |
|
||||||
| ----------------- | ----------- | ----------------- | ---------------- | -------------------------------- |
|
| ----------------- | ----------- | ----------------- | ---------------- | -------------------------------- |
|
||||||
| Default | 512 | 4 | Moderate | Development and testing |
|
| Default | 512 | 4 | Moderate | Development and testing |
|
||||||
| Recommended | 2048 | 16 | Strong | Most production deployments |
|
| Recommended | 2048 | 4 | Strong | Most production deployments |
|
||||||
| High Security | 4096 | 32 | Very Strong | Sensitive applications |
|
| High Security | 4096 | 8 | Very Strong | Sensitive applications |
|
||||||
| Maximum Practical | 8192 | 64 | Extremely Strong | High-value targets |
|
| Maximum Practical | 4096 | 10 | Extremely Strong | High-value targets |
|
||||||
| Experimental | 65536 | 65536 | Research Only | Benchmarking and experimentation |
|
| Experimental | 4096 | 10 | Research Only | Benchmarking and experimentation |
|
||||||
|
|
||||||
### Recommended Production Configuration
|
### Recommended Production Configuration
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
gene_size = 2048
|
gene_size = 2048
|
||||||
mutation_rounds = 16
|
mutation_rounds = 4
|
||||||
```
|
```
|
||||||
|
|
||||||
This configuration provides a strong balance between security and runtime overhead for most deployments.
|
This configuration provides a strong balance between security and runtime overhead for most deployments.
|
||||||
@@ -55,7 +55,7 @@ Edit your configuration file:
|
|||||||
# Mutation Engine Settings
|
# Mutation Engine Settings
|
||||||
|
|
||||||
gene_size = 2048
|
gene_size = 2048
|
||||||
mutation_rounds = 16
|
mutation_rounds = 4
|
||||||
```
|
```
|
||||||
|
|
||||||
Common configuration locations:
|
Common configuration locations:
|
||||||
@@ -137,7 +137,7 @@ Browser developer tools can also be used to monitor:
|
|||||||
|
|
||||||
```toml
|
```toml
|
||||||
gene_size = 2048
|
gene_size = 2048
|
||||||
mutation_rounds = 16
|
mutation_rounds = 4
|
||||||
```
|
```
|
||||||
|
|
||||||
Deploy and observe normal usage patterns.
|
Deploy and observe normal usage patterns.
|
||||||
@@ -158,11 +158,10 @@ Increase one parameter at a time.
|
|||||||
Recommended progression:
|
Recommended progression:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
2048 / 16
|
2048 / 4
|
||||||
4096 / 16
|
4096 / 4
|
||||||
4096 / 32
|
4096 / 8
|
||||||
8192 / 32
|
4096 / 10
|
||||||
8192 / 64
|
|
||||||
```
|
```
|
||||||
|
|
||||||
This makes it easier to identify performance bottlenecks.
|
This makes it easier to identify performance bottlenecks.
|
||||||
@@ -194,9 +193,9 @@ Future deployments may choose to dynamically increase mutation strength based on
|
|||||||
Example policy:
|
Example policy:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
New session → 2048 / 16
|
New session → 2048 / 4
|
||||||
Suspicious session → 4096 / 32
|
Suspicious session → 4096 / 8
|
||||||
Elevated-risk action → 8192 / 64
|
Elevated-risk action → 4096 / 10
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -213,7 +212,7 @@ wasm-pack build wasm --target web --release
|
|||||||
|
|
||||||
### General Guidance
|
### General Guidance
|
||||||
|
|
||||||
* Keep `mutation_rounds` below 64 for most deployments.
|
* Keep `mutation_rounds` at or below 10 for all deployments.
|
||||||
* Prefer increasing `gene_size` before dramatically increasing rounds.
|
* Prefer increasing `gene_size` before dramatically increasing rounds.
|
||||||
* Benchmark on representative client hardware.
|
* Benchmark on representative client hardware.
|
||||||
* Monitor browser CPU utilization during load testing.
|
* Monitor browser CPU utilization during load testing.
|
||||||
@@ -260,7 +259,7 @@ For most production deployments:
|
|||||||
|
|
||||||
```toml
|
```toml
|
||||||
gene_size = 2048
|
gene_size = 2048
|
||||||
mutation_rounds = 16
|
mutation_rounds = 4
|
||||||
```
|
```
|
||||||
|
|
||||||
This configuration provides a strong balance between security, performance, and compatibility across desktop and mobile devices.
|
This configuration provides a strong balance between security, performance, and compatibility across desktop and mobile devices.
|
||||||
@@ -281,3 +280,13 @@ chronoseal config check
|
|||||||
chronoseal stats
|
chronoseal stats
|
||||||
chronoseal health
|
chronoseal health
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## v1.0.2 Limits
|
||||||
|
|
||||||
|
Current supported range:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
gene_size = 1..=4096
|
||||||
|
mutation_rounds = 1..=10
|
||||||
|
```
|
||||||
@@ -86,3 +86,13 @@ The client VM executes instructions sequentially. The instruction set consists o
|
|||||||
* `0x08`: Unary Bitwise Not (`!a`). Requires at least 1 element on the stack.
|
* `0x08`: Unary Bitwise Not (`!a`). Requires at least 1 element on the stack.
|
||||||
* `0x09`: Hash Stack. Hashes all stack elements using BLAKE3 and reduces it to a single `u32` value, clearing the stack and pushing the hash.
|
* `0x09`: Hash Stack. Hashes all stack elements using BLAKE3 and reduces it to a single `u32` value, clearing the stack and pushing the hash.
|
||||||
* *Any other opcode:* Terminates VM execution immediately.
|
* *Any other opcode:* Terminates VM execution immediately.
|
||||||
|
|
||||||
|
|
||||||
|
## v1.0.2 Protocol Hardening
|
||||||
|
|
||||||
|
- Fingerprint aspect ratio validation
|
||||||
|
- Device pixel ratio validation
|
||||||
|
- Hardware concurrency validation (1..=256)
|
||||||
|
- Entropy event cap (500 events)
|
||||||
|
- IP-based rate limiting
|
||||||
|
- Silent rejection preserved for protocol failures
|
||||||
@@ -31,3 +31,10 @@ ChronoSeal is a **cost-raising security layer**. It is designed to force automat
|
|||||||
1. **Chain Continuity:** A session state cannot bifurcate. Every heartbeat must advance the state head using the latest salt.
|
1. **Chain Continuity:** A session state cannot bifurcate. Every heartbeat must advance the state head using the latest salt.
|
||||||
2. **VM Parity:** Stack state must exactly match the execution output of the server's issued opcode sequence.
|
2. **VM Parity:** Stack state must exactly match the execution output of the server's issued opcode sequence.
|
||||||
3. **Dynamic Challenges:** Client gene updates must match the server-issued mutation program.
|
3. **Dynamic Challenges:** Client gene updates must match the server-issued mutation program.
|
||||||
|
|
||||||
|
|
||||||
|
## Additional Assumptions (v1.0.2)
|
||||||
|
|
||||||
|
- Fingerprints are sanity signals, not identity proofs.
|
||||||
|
- Rate limiting assumes client IP visibility.
|
||||||
|
- Security headers reduce browser attack surface.
|
||||||
@@ -255,3 +255,17 @@ Recommended:
|
|||||||
## Disclosure
|
## Disclosure
|
||||||
|
|
||||||
See [../SECURITY.md](../SECURITY.md) for the vulnerability disclosure policy.
|
See [../SECURITY.md](../SECURITY.md) for the vulnerability disclosure policy.
|
||||||
|
|
||||||
|
|
||||||
|
## Additional Mitigations (v1.0.2)
|
||||||
|
|
||||||
|
### Fingerprint Abuse
|
||||||
|
- Bounds enforcement
|
||||||
|
- Numeric sanity validation
|
||||||
|
|
||||||
|
### Resource Exhaustion
|
||||||
|
- Entropy event cap
|
||||||
|
- Rate limiting
|
||||||
|
|
||||||
|
### Browser Hardening
|
||||||
|
- Security response headers
|
||||||
@@ -54,3 +54,13 @@ To deny attackers a feedback oracle, the ChronoSeal heartbeat endpoint (`POST /h
|
|||||||
* **Error Cause:** The client submitted more requests than allowed by the server's rate-limiting config (e.g., `rate_limit_count` per `rate_limit_window_secs`).
|
* **Error Cause:** The client submitted more requests than allowed by the server's rate-limiting config (e.g., `rate_limit_count` per `rate_limit_window_secs`).
|
||||||
* **Diagnostic Signal:** The server returns `200 OK` with `{"status": "ok"}` but no next state data.
|
* **Diagnostic Signal:** The server returns `200 OK` with `{"status": "ok"}` but no next state data.
|
||||||
* **Remediation:** Reduce heartbeat frequency or adjust rate limit parameters in the daemon configuration.
|
* **Remediation:** Reduce heartbeat frequency or adjust rate limit parameters in the daemon configuration.
|
||||||
|
|
||||||
|
|
||||||
|
## Additional v1.0.2 Failure Modes
|
||||||
|
|
||||||
|
- Invalid aspect ratio
|
||||||
|
- Invalid device pixel ratio
|
||||||
|
- Invalid hardware concurrency
|
||||||
|
- NaN or infinite fingerprint values
|
||||||
|
- Entropy event count exceeds 500
|
||||||
|
- Client IP rate limited
|
||||||
Reference in new issue
Block a user