Security you can actually verify.
Harbor holds the most sensitive information your family has. Here's exactly how it's protected, in plain language.
The short version
Sensitive fields — passwords, account numbers, usernames, seed phrases, PINs, and personal identifiers — are encrypted with AES-256-GCM in the application before they are inserted into the database. The key is held as a server secret, outside the database itself.
Uploaded files at rest are encrypted by the storage provider only; Harbor does not apply an additional application-layer encryption to files themselves.
Nightly backups of files and the database are encrypted off-platform with AES-256-GCM under a backup key separate from the vault key, and uploaded to Backblaze B2 using a write-only credential. We have manually verified restore by decrypting a backup; automated restore tooling is not yet built.
Credentials are masked by default in the app, revealed only when you click, and hidden again automatically after 30 seconds. Copied values clear from your clipboard after 20 seconds.
Two-factor authentication is required for every account, not only successors. It is enforced at the database level, not just in the interface, so it cannot be skipped by going around the app.
Every record is walled off to your household by database row-level security, evaluated by Postgres on every single query — not by application code that could be bypassed.
Your session locks itself after 15 minutes of inactivity and signs you out.
You can export everything — every account, document, contact, and uploaded file — as a single ZIP at any time, and delete your account yourself.
Uploaded documents live in a private bucket and are served only through links that expire after five minutes. There are no permanent file URLs.
What Harbor can and cannot see
This is the question technical readers are actually asking, so here is the direct answer.
Harbor can technically read everything. We hold the master encryption key and we operate the database. A Harbor administrator with production access could read plaintext fields directly and could decrypt encrypted fields using that key. Harbor is not zero-knowledge and not end-to-end encrypted, and we will not claim otherwise to make this page read better.
What limits that in practice. The key lives outside the database, in a managed secret store, so a database-only compromise yields ciphertext for the sensitive columns rather than credentials. Ordinary application code runs under your session with row-level security applied — even our own app cannot read across households on a normal request path. Every decryption performed through the application writes an audit row naming the user who asked for it. Interactive production database access is limited to a single person; standing backup credentials (Backblaze B2 application keys and the backup encryption key) are stored separately in the secret store and can decrypt off-platform backups.
When we would look. Only to resolve a specific support issue you have raised, to comply with a valid legal order, or to investigate a security incident. We do not browse vaults, and no automated process reads vault contents for analytics, marketing, or model training.
Successor access security
When the moment comes, access opens on a waiting period you set — it works whether you've died or simply can't act, with no company approving it and no death certificate required.
Every service that requires a support team to review a death certificate fails the case that matters most: incapacity, where no certificate is ever issued, and the weeks between the event and an estate being settled. We removed ourselves from that decision on purpose. The timer, the veto window, and the audit log are the controls — not our judgment about your condition.
A successor is a person you name who can reach your vault when you can't. The mechanism is a request-and-wait hold, and it works like this:
- You invite them by email, choosing the scope of what they'll see — everything, or a subset such as estate documents, critical accounts, wallets, or logins — and the length of the hold.
- They accept and enroll in two-factor. Acceptance is a required four-step sequence: context, TOTP enrollment, downloading recovery codes, and confirmation. There is no skip path, and the server enforces it — the underlying database policies require a completed two-factor challenge, so access cannot be obtained by going around the interface.
- They request access. Nothing opens immediately. A timer starts — 72 hours by default, selectable as 24 hours, 72 hours, or 7 days — and you and your named emergency contacts are emailed at the moment of request, again at the midpoint, and again if it completes.
- You can cancel instantly. One click, any time before the timer completes, ends the request and logs it.
- If the timer runs out, access is granted by a scheduled job running every 15 minutes inside the database. It is read-only, scoped to the single household on that link, and revocable by you at any time.
Mandatory two-factor for every account — owners and successors — is a design decision, not a caveat. The person who will need this vault will need it on the day they have to step in for someone else. Being locked out at that moment is the single worst outcome Harbor can produce — worse than the friction of setting up an authenticator app on a calm afternoon. So we require it at signup, while there is still someone around to help owners and successors do it, and we make successors download recovery codes before they can finish.
What a successor sees once granted: a read-only walkthrough of the one household on their link — your letter and key contacts, estate documents, critical and important accounts, wallets, and logins, filtered to the scope you chose. They cannot edit, delete, or add anything. They cannot see any other household, and they never gain write access to yours. Every view is logged and visible to you.
Harbor does not independently verify death or incapacity. We do not check death registries, require a death certificate, or make any judgment about your condition. The waiting period is the control. It exists so that a request made in bad faith gives you time to see it and stop it.
What we don't do
- No selling or renting your data. Harbor's only revenue is subscriptions.
- No training AI models on vault contents. Vault data is never sent to any AI service.
- No sharing beyond the infrastructure providers named above — hosting, database and auth, storage, transactional email, Stripe for payments, and Backblaze B2 for backups.
- No permanent file URLs and no public storage buckets.
- No deletion of your data if you stop paying. Frozen means read-only, not erased.
Responsible disclosure
If you find a vulnerability in Harbor, email help@harborvaults.com. We commit to acknowledging your report within 48 hours and telling you plainly what we've found and what we're doing about it. Please give us a reasonable window to fix an issue before publishing it, and please don't access, modify, or exfiltrate data belonging to anyone else while testing. We don't run a paid bounty program yet, and we won't pursue legal action against anyone reporting in good faith under these terms.
Harbor is early-stage software
Harbor is built by a very small team. That is not a disclaimer at the bottom of a marketing page — it is the most important thing on it.
What that means concretely:
- We hold no SOC 2, ISO 27001, or HIPAA certification, and no third-party security audit has been performed yet.
- Features, data model, and interface are still changing. Some controls described here are newer than others.
What we commit to:
- Keeping this page accurate as Harbor changes, including the parts that aren't flattering.
- Telling affected users directly and promptly if there is a security incident.
- Never deleting your data because of a billing lapse.
- Keeping full export available so you can leave with everything, at any time.
Harbor is not a substitute for a lawyer, an estate plan, or a safe deposit box. Please decide what you put in it accordingly.
Start free.
Build your vault, read the details, and decide for yourself. Export everything and leave whenever you want.