HostDock
Security

What we encrypt, what we can see

HostDock holds the keys to your servers, so we'd rather be precise than reassuring. This page lists what is encrypted, with what, what our server can still see, and the weaknesses we know about.

In short

On your Mac

HostDock runs in the macOS App Sandbox and is signed with an Apple Developer ID and notarized by Apple. It can only read files you choose in a file dialog.

Passwords, private keys, passphrases, proxy passwords and AI API keys are encrypted with XChaCha20-Poly1305 before they are written to HostDock's local SQLite database. The encryption key is stored only in the macOS Keychain. Revealing a saved password or exporting credentials requires Touch ID or your Mac password.

SSH, SFTP and TLS are implemented in Rust (russh and rustls). HostDock does not call the system ssh or scp and does not link OpenSSL. On first connect it shows the server's host-key fingerprint, and warns you if it ever changes.

The sync vault

When you turn on sync, your first device generates a random 256-bit data key. Every vault record is encrypted with a key derived from it before it leaves your Mac.

Record encryptionXChaCha20-Poly1305, random 24-byte nonce per record. The record's ID and the vault generation are bound in as associated data, so ciphertext can't be swapped between records or replayed after a reset
Record keyHKDF-SHA256 from the data key
Sync passwordAt least 10 characters. Argon2id (64 MiB memory, 3 passes, 16-byte random salt) turns it into a key that wraps the data key
Recovery code160 random bits shown once as 32 characters. It wraps a second copy of the data key
What we storeYour email, the Argon2id salt and parameters, the two wrapped copies of the data key, and the encrypted records
What we never receiveYour sync password, recovery code or data key

What our server can still see. Each vault record carries a plain label for its kind (server, secrets, credential, forwarding rules, setting), so we can enforce plan limits. That means we can see how many servers and saved credentials you have, plus record sizes and when they changed. We cannot see names, addresses, usernames, passwords or keys.

Deletes need your key. HostDock only removes local data because of a delete record it can decrypt. If a record is simply missing on the server, HostDock treats that as the server having lost it and uploads it again. Older ciphertext replayed by the server is rejected.

Cloud Space is not end-to-end encrypted

Notes, the script library, File Station files and their folders, appearance settings and your profile sync through a separate channel that does not use the vault's encryption. They are protected in transit with HTTPS and stored as-is, which means our server can read and modify them. The app says this when you sign in.

We made this trade-off so Cloud Space works the moment you sign in, without a sync password. HostDock never puts vault data (server addresses, credentials) on this channel, but if you write a password into a note, it is stored unencrypted. Keep secrets in the vault.

File contents go directly between your Mac and object storage through short-lived signed URLs (15 minutes). The bytes don't pass through our API server, and HostDock checks each file's SHA-256 after download.

Your account

AI assistant and MCP

Known weaknesses

Reporting a vulnerability

Email security@hostdock.dev with the details. Please give us a chance to fix the issue before disclosing it publicly.

Bring your servers into one window

Free download for macOS 12 Monterey or later.