Security
Technical overview for security reviews. Version: August 2026.
Operator: Artur Parutkin (sole proprietorship), Isestraße 35, 20144 Hamburg, Germany.
This page describes technical operations. The binding commitments are the
DPA and the TOM (Annex 2, Art. 32 GDPR); where they differ,
the contracts govern.
Section 10 lists what we do not claim.
1. Where your data is processed
| What |
Where |
Provider |
| Application, database, backups |
Falkenstein, Germany |
Hetzner |
| AI inference (prompts & outputs) |
France, EU |
Scaleway |
| Transactional email (magic link, confirmations) |
USA — EU Standard Contractual Clauses |
Resend |
| Payment processing |
USA — EU Standard Contractual Clauses |
Stripe |
Your prompts and documents stay in the EU, processed exclusively by European providers. US
processors touch only ancillary data (email address for login delivery, payment data) under SCCs —
not your content.
Dedicated AI hosting in Germany: Enterprise option on request.
2. What we store — and what we don't
Not stored
- Your prompts and the model's responses. Processed and discarded.
- No content logs. Application logs contain no input or output content.
- No training on your data.
- No access by the model providers to your inputs and outputs. This statement concerns the inference path; for email and payment see Sub-processors.
Basis: Scaleway AI Conditions Art. 4.4. For the one exception, see section 10.
Stored
- Account: email address, plan, timestamps.
- Usage: counters (requests, tokens, cost) — without content.
- IP addresses: pseudonymised only, as a salted SHA-256 hash, for rate limiting and abuse
prevention. The plaintext IP is not persisted. One exception: two security alerts to
ourselves — admin login and blocked mass cancellation — carry the raw IP, because you cannot
block a hash (Art. 6(1)(f), Recital 49).
- API keys: as a SHA-256 hash only. Plaintext shown once at creation, never stored — database
access yields no usable keys.
- Billing: at Stripe, retained per §147 AO / §257 HGB.
Retention
Web server access logs 14 days. Application and container logs rotate, 30 days maximum.
Analytics and security telemetry (page views, bot visits, honeypot triggers) 90 days, enforced
by a nightly purge — IP addresses there exist only as a salted hash.
Account data until erasure on request (Art. 17 GDPR).
3. Encryption
- In transit: TLS, HSTS, modern cipher suites. No unencrypted access.
- At rest: no full-disk encryption on the server, no TDE in PostgreSQL. What is encrypted are
the most sensitive fields specifically: the identity data of DPA acceptances (Fernet), API keys
(SHA-256 hash only), IP addresses (salted SHA-256 hash). The database is not publicly reachable.
(Corrected 2026-08-17; the earlier statement was inaccurate.)
- Backups: GPG AES-256, throughout — including the off-site copy.
4. Access and authentication
- Passwordless login via magic link: 256-bit one-time tokens, single-use, short-lived. There is
no user password to steal.
- Rate limiting per email address and per IP; honeypot and timing checks against bots.
- Admin access is separate, rate-limited, constant-time password comparison. Every login
triggers a real-time alert to the operator.
- Server access is operator-only, SSH by key only (password authentication disabled).
Every session and every privilege escalation raises an alert.
- The application runs as non-root inside its container.
5. Backups and recovery
- Daily, automated, GPG-encrypted.
- Off-site copy outside the data centre. It is pulled, not pushed — the production server
holds no credential that can reach the backup target.
- Recovery is verified daily and automatically, not merely the existence of a file: decrypt,
restore into a throwaway database, assert table and row counts. What is tested is the same copy
we would actually recover from.
- Retention: 30 days on the server, 120 days off-site.
- An independent watchdog alerts if a backup fails to happen at all. Silence is not treated as
success.
6. Monitoring and incident response
Real-time alerts on: admin-panel login · changes to users, privileges, SSH keys, cron jobs, or
listening ports · failed backups.
Logs are retained off the server and therefore cannot be altered or deleted from the affected
system in the event of a compromise.
Documented procedure: detection, assessment of severity and affected data, containment
(blocking access and keys, isolation), notification, documentation.
- Notification of affected controllers: without undue delay, as a rule within 48 hours.
- Notification of the supervisory authority within 72 hours, where we are the controller.
7. Sub-processors
Complete, current list: Sub-processors. All are bound by a DPA under
Art. 28 GDPR; EU Standard Contractual Clauses apply for non-EU providers.
We announce changes 30 days in advance (§ 5 DPA), so you can object.
8. Compliance status
|
Status |
| GDPR |
DPA available, publicly readable, Art. 28 structure |
| EU AI Act |
Provider of a general-purpose AI system. Not high-risk, no Art. 5 practices. Art. 50 transparency obligations met. We do not train our own models. |
| § 203 StGB |
Confidentiality undertaking available |
| ISO 27001 / SOC 2 (our own) |
❌ None |
| External penetration test |
❌ Planned, not yet performed |
Certifications held by our sub-processors (not by us): Hetzner ISO 27001, Scaleway ISO 27001,
Resend SOC 2 Type II with a pen-test attestation.
Does your procurement require a certification of our own? Ask — we will give you the status and
timeline.
9. Reporting a vulnerability
security@privatai.com · machine-readable: /.well-known/security.txt
- Acknowledgement within 72 hours.
- No bug bounty programme, no rewards.
- For good-faith research that respects user data and does not degrade availability: no legal
action.
- Please allow reasonable time to remediate before publishing.
No social engineering, physical security testing, load testing / DoS, or access to other people's
data.
10. What we do not claim
- No absolute security. We harden to current standards. Nobody can promise "100% secure" or
"unhackable".
- No physical isolation. The Generative API we use is multi-tenant (shared). Your data is
not retained and not used for training, but the infrastructure is not physically reserved for you
alone. Dedicated isolation: Enterprise option.
- One narrow security-incident exception. The inference provider may temporarily retain a
flagged request to investigate abuse. Hence "not stored, not logged, not used for training" —
and never "under no circumstances, ever".
- Not anonymous. We process personal data (account, email, billing). We are data-minimal, not
anonymous.
- We do not certify your use case. PrivatAI provides the technical and contractual building
blocks. Whether your specific use is permissible under your professional rules — particularly
under § 203 StGB — is for you and your professional body or adviser to assess.
- Small team, no 24/7 SOC. Alerts reach the operator immediately; we do not promise
round-the-clock staffed coverage.
Security review or technical questionnaire? Get in touch.