Security
Your data is safe with us
Security isn't a feature we bolt on — it's fundamental to how KwestDB works. Every layer is designed to protect your database credentials and data.
AES-256-GCM Encryption at Rest
All database credentials are encrypted using AES-256-GCM with keys derived from your account via PBKDF2. Credentials are encrypted client-side before transmission to our servers.
TLS 1.3 in Transit
All communication between your browser, our servers, and your database is encrypted with TLS 1.3. No plaintext data crosses the network.
Per-User Isolation
Each user's database connections, queries, and history are completely isolated. No user can access another user's data or connections.
Read-Only Execution
Queries are executed in read-only mode by default. The validation layer blocks INSERT, UPDATE, DELETE, DROP, TRUNCATE, and other write operations.
Query Validation & Sanitization
Every generated SQL is validated against your actual schema and sanitized to prevent injection attacks before execution.
No Result Storage
Query results are returned directly to your browser and are not stored on our servers. We only store query text for history purposes.
Security at a glance
| Feature | Details |
|---|---|
| Credential encryption | AES-256-GCM with PBKDF2 key derivation |
| Transport encryption | TLS 1.3 |
| Data isolation | Per-user with cryptographic separation |
| Query permissions | Read-only (SELECT only) |
| SQL validation | Schema-aware with injection prevention |
| Audit logging | All queries logged with timestamps |
| Data retention | Credentials deletable, results not stored |
| Infrastructure | SOC 2 Type II compliant hosting |
How encryption works
When you save a database connection, your credentials are encrypted in your browser before they ever leave your device. Here's how:
- A unique encryption key is derived from your account credentials using PBKDF2.
- Your database connection details are encrypted using AES-256-GCM with this key.
- Only the encrypted ciphertext is sent to our servers and stored.
- When you run a query, we decrypt the credentials server-side to connect to your database.
- At no point do we see or store your plaintext database password.
You can delete your connection credentials at any time, permanently removing them from our servers.
Have a security concern?
We take security seriously. If you've found a vulnerability, please report it responsibly.