The full security model.

ServerCrate is a privacy-first product. The way it works at the protocol level is the security model - there's no separate "trust us" layer.

Encryption

Your files are encrypted on your device by Restic before any data leaves your network. Restic uses authenticated encryption with AES-256 in counter mode and Poly1305 for integrity. The encryption key is derived from your repository password using scrypt - a memory-hard KDF designed to resist GPU and ASIC attacks.

We never see, store, or transmit your encryption key. We see ciphertext only. If you lose your password, your data is unrecoverable - including by us. That's not a bug; that's the contract.

Transport

All data in transit travels over SFTP (SSH File Transfer Protocol) using OpenSSH. Each vault has a unique SSH host key (no shared host keys across customers). Connections are authenticated with username + password generated at provision time and shown in the portal once.

Even if the SFTP connection were intercepted, all transferred data is already Restic-encrypted ciphertext. The SFTP layer is defense in depth, not the primary boundary.

Quantum resistance

Your backup data is sealed before it ever reaches the wire. Restic encrypts every chunk on your machine with AES-256, under a key generated at full entropy, shown to you once, and never stored on our systems. AES-256 has no practical quantum attack - Grover's algorithm only halves its effective strength, which leaves it far out of reach - so traffic an adversary records today to decrypt later, once a quantum computer exists, stays meaningless ciphertext without your key, whether the link is classical or not. The encryption that protects your data runs on your side, before transport, beyond the reach of both classical and quantum attackers.

The account portal goes one step further at the transport layer. Connections to portal.servercrate.net negotiate a hybrid post-quantum key exchange, X25519MLKEM768, pairing classical X25519 with ML-KEM-768 (the lattice KEM standardized by NIST as FIPS 203). Traffic an observer records today cannot be replayed against a future quantum computer to recover the session, because breaking the handshake means defeating both the classical and the post-quantum half. The vault transport carries the same protection one layer down: SFTP rides OpenSSH, and that SSH session negotiates mlkem768x25519-sha256, the same ML-KEM-768 hybridized with X25519 inside the SSH key exchange. In either case your backup data is already AES-256 ciphertext before it reaches any link, so its confidentiality never rested on the transport.

You can verify the portal's key exchange yourself with OpenSSL 3.5 or newer:

openssl s_client -connect portal.servercrate.net:443 -groups X25519MLKEM768 </dev/null | grep "Negotiated TLS1.3 group"

Storage isolation

Every customer gets a dedicated ZFS dataset on our storage pool. Datasets are isolated at the filesystem level - they cannot read each other's data, share inodes, or escape their boundaries. Each vault runs in its own LXC container with a chrooted SFTP user that cannot navigate above its dataset.

ZFS provides end-to-end data integrity via cryptographic checksums on every block read and write. If a disk silently corrupts a sector, ZFS detects it on the next read and (with the right pool topology) self-heals from redundancy. Your backup target won't quietly rot.

What we log

We do not log file names, file paths, snapshot contents, restore content, or anything that could reveal what's inside your vault. Restic's wire protocol doesn't expose that information to us, and we've made no effort to derive it.

Threat model

The system is designed against three threat classes:

The system is not designed against an attacker who has compromised your machine and exfiltrated your repository password. That's a separate boundary - your endpoint security is your responsibility. We recommend storing your Restic password in a hardware-backed password manager.

Infrastructure

Storage runs on owned hardware in a single Los Angeles location with redundant power and a business-grade network uplink. We are not a multi-region cloud provider, and we don't pretend to be one. For homelab and small-team use cases this is the right tradeoff between cost and reliability; for workloads that require geographic redundancy you should treat ServerCrate as one leg of a 3-2-1 strategy, not the whole thing.

Operating systems are Debian 12 stable on Proxmox VE host nodes. ZFS is the OpenZFS upstream. All systems are CrowdSec-enrolled with nftables-based bouncing for IP-level abuse mitigation.

We do not currently hold SOC 2, ISO 27001, or any other third-party audit attestation. For business customers conducting their own architecture review or DPIA, contact us and we'll walk through specifics directly - no NDA required, no compliance theatre.

Account security

Incident response

In the event of a confirmed security incident affecting customer data or service availability, we commit to:

What we don't have yet

The honest version, for evaluation purposes.

Responsible disclosure

Encrypt sensitive reports with our PGP public key (fingerprint AAB2 A06A E5F9 187B 9565 4584 C1B0 7D4D F41C B15F).

Security researchers: please email security@servercrate.net with findings. We aim to acknowledge within 48 hours and provide a remediation timeline within 7 days.

We don't yet operate a formal bounty program - we're a small operation - but verified vulnerability reports get public credit (with consent), free Pro plan time, and our genuine thanks. Please don't run automated scanners against production.

What you should do

Questions about anything on this page? Email security@servercrate.net. We answer security questions seriously and quickly.

What "zero-knowledge" actually means in practice

The term "zero-knowledge" gets misused in backup marketing. Some services describe themselves as zero-knowledge when they actually mean "server-side encryption with customer-managed keys" or "encrypted at rest." Those are real features, but they are not zero-knowledge.

Zero-knowledge, in the sense that applies to ServerCrate, means this: the cryptographic keys that decrypt your data never exist on our infrastructure. They are generated by Restic on your device during restic init, derived from a password we never see. The only keys present in your vault are themselves encrypted with your master key - so even reading the key files gives an attacker nothing without your password.

The practical consequence: if a court compels us to hand over your vault data, we can hand over encrypted blobs. Those blobs are worthless without your password, which we do not have and cannot produce. That is the same guarantee Signal provides for messages and that Bitwarden provides for passwords, applied to backup data.

Why this architecture matters more in 2026

Two things changed in the last five years that made client-side encryption a baseline requirement rather than a nice-to-have:

Operational security you should also handle

Zero-knowledge at the service level only gets you so far. These are the operational details that determine whether your encrypted backup actually stays private:

Get protected

Try a real encrypted vault.

10 GB free. No card. Setup in 5 minutes.

Bitcoin-friendly: We accept on-chain BTC and Lightning via self-hosted BTCPay. See Restic backup paid with Bitcoin for the full breakdown.