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

FeatureDetails
Credential encryptionAES-256-GCM with PBKDF2 key derivation
Transport encryptionTLS 1.3
Data isolationPer-user with cryptographic separation
Query permissionsRead-only (SELECT only)
SQL validationSchema-aware with injection prevention
Audit loggingAll queries logged with timestamps
Data retentionCredentials deletable, results not stored
InfrastructureSOC 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:

  1. A unique encryption key is derived from your account credentials using PBKDF2.
  2. Your database connection details are encrypted using AES-256-GCM with this key.
  3. Only the encrypted ciphertext is sent to our servers and stored.
  4. When you run a query, we decrypt the credentials server-side to connect to your database.
  5. 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.