Security Whitepaper
Teknisk säkerhetsöversikt – version 1.1 (2026-04-22)
1. Sammanfattning
LexCodex.ai är en AI-driven juridisk analysplattform. Denna whitepaper beskriver vår säkerhetsarkitektur, dataflöden, intrångsskydd och GDPR-mekanismer. Grundprincipen är zero data retention på juridiskt innehåll.
2. Arkitektur
Frontend: Vanilla JavaScript SPA med statiska HTML-sidor. Inga tredjepartsbibliotek för autentisering.
Backend: PHP 8 på Apache med MySQL/PDO. Hosting via Easywebbhotell (Plesk, Sverige).
AI-lager: Anthropic. Inga avtalstexter eller AI-svar lagras, och LexCodex använder inte data för modellträning.
3. Dataflöde
När en användare analyserar text:
- Text skickas krypterat (TLS 1.3) till vår PHP-proxy
- Proxyn validerar session, rate limit, användarplan och CSRF
- Texten skickas krypterat till Anthropic
- Svaret returneras till användaren
- Texten sparas inte på våra servrar — bara räkning av antal analyser och vilket verktyg som använts (utan innehåll, för aggregerad statistik)
4. Tenant isolation
Varje användarkonto är isolerat på databasnivå:
- Sessioner är kopplade till unik user_id
- Alla SQL-queries filtreras på user_id (prepared statements, aldrig konkatenering)
- session_version-mekanism invaliderar alla aktiva sessioner vid lösenordsbyte
- __Host-cookie-prefix förhindrar cross-subdomain-åtkomst
- Ingen delning mellan användare inom samma organisation utan uttryckligt val (delningslänkar)
5. Autentisering
- Lösenord hashade med bcrypt (cost 10) + unik salt
- Minsta lösenordslängd: 8 tecken
- E-postverifiering med 6-siffrig kod (30 min giltig, max 5 försök)
- MFA / TOTP — valfri tvåfaktorsautentisering via Google Authenticator, Authy, 1Password, Microsoft Authenticator. Backup-koder hashas med bcrypt och engångsanvänds.
- Brute force-skydd: 5 felaktiga försök → 15 min lockout
- Google SSO med state-parameter för CSRF-skydd
- Session cookie: Secure, HttpOnly, SameSite=Lax, __Host-prefix
- CSRF-token på alla autentiserade POST-anrop (timing-säker jämförelse via hash_equals)
- Sessionen regenereras vid inloggning och lösenordsbyte
6. Transport och lagring
- TLS 1.3 med HSTS preload (max-age 1 år, includeSubDomains)
- CSP (Content Security Policy) med strikt script-src och frame-src
- X-Frame-Options SAMEORIGIN, X-Content-Type-Options nosniff
- Cross-Origin-Opener-Policy same-origin
- Databas: MySQL med krypterat lösenord i isolerad config.local.php (ej i git, chmod 600)
- Inga avtalstexter, AI-svar eller uppladdade dokument skrivs till disk
7. Intrångsskydd
- Rate limiting: Per-IP på login (20/h), MFA-verify (15/h), resend/forgot (5/h), kontakt (5/h), registrering (5/h), kontoradering (5/h), delningslänkar (20/h)
- Prompt injection-skydd: System-prompts är serverside-låsta, messages valideras för roll och max-längd
- Honeypot-fält på registrering och kontakt
- reCAPTCHA v3 (score ≥ 0.5) på registrering och kontaktformulär
- Heuristik mot slumpmässiga strängar vid registrering (vokal/konsonant-ratio, case-mönster)
- Blockering av gratis-mejldomäner vid registrering (företagsmejl krävs)
- Webhook replay-skydd: Stripe event-ID sparas för att förhindra dubbelbehandling
8. GDPR-mekanismer (självbetjäning)
- Art. 15 + Art. 20 (insyn / portabilitet): Funktionell knapp "Ladda ner min data" på /account — genererar en JSON-fil med konto, delade analyser, bevakningsprofiler + rapporter, batch-jobb (metadata), verktygsanvändning och lämnad feedback. Lösenord, MFA-nycklar och backup-koder exkluderas.
- Art. 17 (radering): Funktionell knapp "Radera mitt konto" — kräver lösenord + bekräftelseord, raderar omedelbart konto och alla kopplade tabeller (tool_usage, shared_analyses, studie_feedback, batch_jobs+documents, watch_profiles+reports). Bekräftelsemejl skickas till användaren.
- Delningslänkar har 7 dagars auto-radering
9. Incidenthantering
- Misstänkta incidenter detekteras via audit log (admin_actions-tabell)
- Notifiering till drabbade kunder inom 72 timmar (GDPR art. 34)
- Rapportering till IMY inom 72 timmar (GDPR art. 33)
- Rotation av alla API-nycklar och lösenord vid bekräftat intrång
10. Revisioner och tester
Intern säkerhetsaudit genomförd april 2026 (dokumenterad, omfattar P0–P3-hot). Extern pentest kan arrangeras på begäran för företagskunder.
11. Underleverantörer
| Leverantör | Syfte | Plats | Certifieringar |
|---|---|---|---|
| Anthropic PBC | AI (Claude API) | USA / EU-routing | SOC 2 Type II, ISO 27001, ISO 42001, HIPAA |
| Easywebbhotell | Hosting (server + DB) | Sverige | GDPR-kompatibel |
| Stripe | Betalning | USA / Irland | PCI DSS Level 1 |
| reCAPTCHA, Analytics | USA / EU | ISO 27001/17/18 |
12. Transparens
LexCodex.ai är inte självt ISO 27001- eller SOC 2-certifierat. Vi bygger på säkerhet genom standardiserade webbplattformstekniker och tredjepartscertifierade leverantörer. För företagskunder med krav på egen certifiering, kontakta oss för att diskutera roadmap.
13. Kontakt
Säkerhetsincidenter: support@lexcodex.ai
Säkerhetsrevision / extra dokumentation: support@lexcodex.ai
Se även: Personuppgiftsbiträdesavtal (DPA) · Integritetspolicy · Dataskydd & Förtroende