Security
Ouranoos treats the provider as untrusted — all file bytes leave the device encrypted. This document summarizes the public threat model from docs/security/THREAT_MODEL.md.
Critical assets
- Local keys: seed, wallet keys, KEK, per-file DEK, DID keys
- User data: plaintext files, encrypted chunks, metadata, paths
- Contracts: deal id, provider id, allowance, tx hash, proof records
- Provider resources: reserved storage, battery, mobile data, reputation
- Identity: DID, device VC, SSI commitments
Client encryption
- AES-256-GCM per file with envelope encryption
- KEK versioned in secure storage; DEK wrapped per file
MetadataEncryptionServiceencryptsouranoos_metadata.jsonat rest- Manifests store
plainSha256,cipherSha256, nonce, MAC — no plaintext names on providers
Trust boundaries
| Boundary | Risk |
|---|---|
| App → local filesystem | Ransomware, metadata leak |
| App → provider | Malicious provider, corrupt bytes |
| App → Eoonia deep links | Scheme spoofing, amount tampering |
| App → EmpoorioChain RPC | Wrong network, incomplete events |
| Provider → chain proofs | False proofs, Sybil, spam |
| KryptoOS → Ouranoos | Fake VC, revoked DID |
| Logs → support export | PII, full CIDs, addresses |
STRIDE highlights
- Tampering — chunk/manifest tamper rejected via AEAD MAC and hash verification (tested)
- Spoofing — deep link callbacks require tx hash and amount binding (Eoonia signature pending)
- Information disclosure —
OuranoosLoggerredacts PII and truncates CIDs (tested)
Provider safe exit
Before releasing reserved disk space:
- Stop accepting new deals
- Mark node as exiting
- Request reassignment/drain on chain
- Replicate active chunks elsewhere
- Wait for proof confirmation
- Release reservation segments only after data is safe
See Providers Guide for device resource policy.
Security gates before public beta
flutter analyzeandflutter testclean- Tamper tests for chunks, manifests, metadata
- Replay/amount tampering tests for wallet callbacks
- Path traversal tests on local provider
- External audit on encryption, deep links, and cloud pallets