Security

BriefGate asks your clients for logos, copy — and passwords. That last one changes what this product is: a service that collects credentials is infrastructure, and infrastructure has to say plainly what it does and does not protect you from.

Everything below describes the system as it is built today. Where a protection does not exist, this page says so rather than leaving it out.

What BriefGate is not

It is not zero-knowledge. A secret value is encrypted with a libsodium sealed box the moment it arrives, and the private half of that key pair lives in the server environment, not in the database. A stolen database dump therefore yields ciphertext alone. But the server that receives the value can read it — that is how it hands the value to your agent — so an attacker who owns the running process could read a secret in flight. Any product claiming otherwise while holding the key is claiming something it cannot deliver.

It holds no certification. There is no ISO 27001, no SOC 2, and no external penetration test. BriefGate is operated by one person. This is stated because a security assessment should rest on what exists.

Secrets

A secret item is the only field type that gets its own handling end to end.

What this buys you: a client can send a WordPress password to your agent without it sitting in an inbox, a chat log, or a support ticket.

Credentials and sessions

Account passwords argon2id
API keys, portal tokens 256 bits of randomness, stored as a SHA-256 digest; plaintext shown once at creation
Two-factor TOTP, optional, per user
Client portal access single-use magic link, exchanged for a session cookie scoped to that one intake
Portal session lifetime 14 days
Login and sign-up 10 attempts per hour per IP address

API keys are hashed with SHA-256 rather than argon2id on purpose. The key is 256 random bits, so there is no dictionary to slow an attacker down with, and a password hash on every agent request would cost tens of milliseconds for no security gain. Passwords, which people choose, get argon2id.

A password reset invalidates every session and does not issue a new one, so TOTP still stands between an attacker with a reset link and the account.

Files

Webhooks

The endpoint you register receives every event on the account, so it is treated as an account-wide decision: only the account owner can add, remove or test one, and creating one issues a signing secret shown once.

The payload never contains a portal link. A portal link is a bearer credential into your client's intake, and a chat channel usually has more readers than the intake does.

Where the data is

Application and database netcup GmbH, Nuremberg, Germany
Files Cloudflare R2, EU jurisdiction restriction
Transactional email Resend (US) — EU-U.S. Data Privacy Framework and SCCs 2021/914
SMS, only if you enable it Twilio (US) — same basis
Payments Stripe (US) — billing data only, never client data

The full list, with the transfer basis for each, is in the Data Processing Agreement.

Retention and deletion

Auditing

Sensitive operations are written to an append-only audit log recording the actor, the action, the IP address and the timestamp: secret reveals, key creation and revocation, seat changes, logins. The application exposes no path that deletes from it. You can read your own account's log in the dashboard or through GET /v1/audit.

Abuse and rate limits

Tracking

There is none. No analytics, no tag manager, no session recording, no error reporting service, no advertising pixel — on the marketing site, in the dashboard, or in the client portal. The only cookies are the ones that make sign-in and the portal session work; they are listed in the Privacy Policy.

Reporting a vulnerability

Email [email protected] with enough detail to reproduce it. You will get a human reply. Please do not run automated scanners against the production service or test against another customer's account or portal — report it and it will be checked properly.