Skip to content

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
  • MetadataEncryptionService encrypts ouranoos_metadata.json at rest
  • Manifests store plainSha256, cipherSha256, nonce, MAC — no plaintext names on providers

Trust boundaries

BoundaryRisk
App → local filesystemRansomware, metadata leak
App → providerMalicious provider, corrupt bytes
App → Eoonia deep linksScheme spoofing, amount tampering
App → EmpoorioChain RPCWrong network, incomplete events
Provider → chain proofsFalse proofs, Sybil, spam
KryptoOS → OuranoosFake VC, revoked DID
Logs → support exportPII, 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 disclosureOuranoosLogger redacts PII and truncates CIDs (tested)

Provider safe exit

Before releasing reserved disk space:

  1. Stop accepting new deals
  2. Mark node as exiting
  3. Request reassignment/drain on chain
  4. Replicate active chunks elsewhere
  5. Wait for proof confirmation
  6. Release reservation segments only after data is safe

See Providers Guide for device resource policy.

Security gates before public beta

  • flutter analyze and flutter test clean
  • 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