Security
Security, in plain sight.
01Architecture
How the keys fit together.
Three layers, each protecting the next. The password never touches your data; your data never meets a key in the clear.
02Building blocks
Every primitive, named.
Implementation: OpenSSL 3.5, the most widely deployed open-source cryptography library, built into Node.js.
03Threat model
What it protects. What it doesn't.
Protects against
- A stolen database dump or leaked backup: attackers only get ciphertext.
- "Harvest now, decrypt later": stored data stays locked even once classical key exchange is broken.
- Anyone with raw SQL access (DBA, contractor, attacker) reading sensitive columns.
- Values swapped or copied between rows: decryption fails.
- Any modified byte of a ciphertext: authentication fails.
Does not protect against
- A compromised application server: it holds the vault and its password, so it can decrypt, like any application-side encryption.
- A weak, reused or leaked vault password.
- Data in transit between your app and your users: that is TLS's job.
- Sorting, prefix or range searches on encrypted columns: only exact lookups stay possible, through a keyed fingerprint.
- Malicious people with legitimate access to the application itself.
04Verification
Tested like it matters.
- 190+
- automated tests, all passing
- 2
- official test-vector suites (RFC 5869, RFC 7748)
- 1
- independent implementation cross-checked (ML-KEM & X25519)
- 4
- real database servers tested: PostgreSQL 14 & 18, MySQL 8.0 & 8.4
Every single byte of a ciphertext is flipped in our tests to prove tampering is always caught. Migrations run on real PostgreSQL and MySQL servers and on SQLite, including crashes mid-way, full reverts, and an application writing to the table during the migration. 50,000 rows are encrypted and indexed in about 4 seconds.
Not yet independently audited. An external audit is planned as the company grows; we'd rather tell you than let you assume.
05Responsible disclosure
Found a vulnerability?
Write to contact@quorvault.com with the subject "Security report". We acknowledge within 72 hours, keep you informed, and credit you if you wish. Please don't access data that isn't yours or disrupt the service.
06Roadmap
What's next.
Key separation
Private keys held by a KMS or HSM, away from the data they protect.
SQL Server & Oracle
After PostgreSQL, MySQL, MariaDB and SQLite.
Independent audit
An external cryptography review of the engine.
Composite keys
Tables whose primary key spans several columns.
Questions about your setup?
Let's go through it together.
Every environment is different. We'll look at yours and tell you honestly what QuorVault would and wouldn't change.
or write to contact@quorvault.com · read the FAQ
