โ† Dashboard ยท Docs ยทSecurity

Grove Security Model

Trust Model

Grove uses a peer-to-peer trust model โ€” you explicitly choose who to connect with. There is no central authority.


Encryption Summary

What Algorithm Key Size
File chunks ChaCha20-Poly1305 256-bit
Key derivation HKDF-SHA256 โ€”
Chunk hashing SHA-256 โ€”
Cell identity Ed25519 256-bit
Chat key exchange X25519 256-bit
Chat messages ChaCha20-Poly1305 256-bit
Password hashing PBKDF2-SHA256 100k iterations
Peer secret comparison HMAC (timing-safe) โ€”

Authentication

Dashboard

Peer-to-Peer

Relay


What Peers Can See

Data Visible to Peers?
Your file contents โŒ No (encrypted chunks)
Your file names โŒ No (manifests only shared with friends via grants)
Your chunk hashes โœ… Yes (needed for deduplication)
Your cell's pubkey โœ… Yes (identity)
Your cell's name โœ… Yes (you choose what to share)
Your IP address โœ… Yes (needed to connect)
How much storage you use โœ… Yes (chunk count visible)
Chat messages โŒ No (end-to-end encrypted)

What Relay Operators Can See

Data Visible?
Message contents โŒ No (E2E encrypted)
Who's connected โœ… Yes (pubkeys + IPs)
Message size/timing โœ… Yes (metadata)
Which cells communicate โœ… Yes (routing info)

Key Files & Permissions

All private key files should be chmod 600 (owner read/write only):


~/.grove/node.key          # Ed25519 private key โ€” NEVER share
~/.grove/node_x25519.key   # X25519 private key โ€” NEVER share
~/.grove/.key              # Master encryption key โ€” NEVER share
~/.grove/peer_secret       # API auth secret โ€” NEVER share
~/.grove/dashboard_auth    # Password hash โ€” keep private

If you lose .key, your encrypted files are unrecoverable. Back up keys regularly.


Threat Model

Protected against:

NOT protected against:

Mitigations: