Security Whitepaper
Teknisk säkerhetsöversikt – version 1.2 (2026-05-03)
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. AI/LLM-säkerhet
LexCodex tillämpar kontroller baserade på OWASP Top 10 for LLM Applications:
- LLM01 Prompt Injection — server-side
lex_detect_injection()blockerar 6 mönsterklasser (instruction override, role hijack, system impersonation, delimiter injection, instruction extraction, data exfiltration). System-prompter innehåller explicita instruktions-immunitet-direktiv. Per-meddelande-gräns 50 KB, per-request-gräns 200 KB. - LLM02 Insecure Output Handling — all LLM-output passeras genom
escapeHtml()före markdown-rendering. Endasthttps://-länkar tillåts. AI:n är instruerad att inte producera körbar HTML/JS. - LLM06 Sensitive Information Disclosure — Zero Data Retention via Anthropics enterprise-villkor. Ingen loggning av prompt/output-innehåll. AI:n är instruerad att aldrig avslöja system-prompter, andra användares data eller intern infrastruktur.
- LLM10 Model Theft — ej tillämplig (vi hostar inte egna modeller).
Hallucinationskontroll: varje påstående binds till en verifierad primärkälla där det är möjligt (lagen.nu, Sveriges Domstolar, Riksdagen, Lovdata, Stortinget, EUR-Lex och ~14 till). AI:n är instruerad att hellre säga "jag är osäker, konsultera primärkällan" än att fabricera referenser.
11. Revisioner och tester
- Intern säkerhetsaudit april 2026 — dokumenterad, omfattar P0–P3-hot.
- Tier 1-test 2026-05-03 — Mozilla Observatory B+ (80/100), securityheaders.com, OWASP Top 10-walkthrough, dependency audit, hidden-file probe. Resultat: 0 critical/high, 2 medium fixade samma dag.
- Akademisk säkerhetsgranskning Q2 2026 — säkerhetstestad mot OWASP Top 10. Detaljer på begäran under NDA.
- Extern penetrationstest — kan arrangeras på begäran för företagskunder. Standardleverantörer: Truesec, Sentor, Cure53.
12. 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 |
13. Transparens och ISO/IEC 27001:2022-kontroller
LexCodex.ai är inte självt ISO 27001- eller SOC 2-certifierat ännu — certifiering planerad våren 2027 (se compliance-roadmap nedan). Vi bygger redan idag på ISO/IEC 27001:2022 Annex A-kontroller som vägledande ramverk:
- A.5 Organisatoriska kontroller — informationssäkerhetspolicy (SECURITY.md), riskregister med 32 identifierade risker (kvartalsvis granskning), sub-processor-register (DPA), incidenthanteringsprocess (Art. 33 GDPR-flöde)
- A.6 Personalkontroller — awareness-rutiner, lösenordspolicy (bcrypt cost ≥ 10), MFA-krav på admin-konton
- A.7 Fysiska kontroller — ej tillämplig eget datacenter (cloud-only via Easywebbhotell, Sverige). Utvecklarmaskin: BitLocker + skärmlås
- A.8 Tekniska kontroller — åtkomstkontroll, kryptering (TLS 1.2+, bcrypt, AES-256), säker utveckling (npm audit, pre-commit secrets-hook, prompt injection-skydd), loggning + monitoring (security.log med metadata-only), webhook replay-skydd, backup (Easywebbhotell daglig, retention 30 dagar)
Statement of Applicability (SoA) och formell Annex A-bedömning genomförs som del av Q3 2026-implementation. Riskregister finns tillgängligt under NDA för företagskunder.
14. Compliance-roadmap
| Kvartal | Milstolpe |
|---|---|
| Q2 2026 | Whitepaper + DPA + extern penetrationstest (pågående) |
| Q3 2026 | ISO 27001:2022-implementation startar (gap-analys, ISMS) |
| Q4 2026 | ISO 27001 Stage 1-revision |
| Q1 2027 | ISO 27001 Stage 2-revision |
| Våren 2027 | ISO 27001-certifierat |
| Senare | ISO 42001 (AI management system) som tillägg; SOC 2 Type II om kunder kräver det |
Vi prioriterar medvetet ISO 27001 framför SOC 2 först eftersom vår marknad är Norden/EU och ISO mappar mot GDPR-vokabulär som köpare redan arbetar i.
15. Rapportera en sårbarhet (Responsible Disclosure)
Om du hittar en säkerhetsbrist, mejla support@lexcodex.ai med:
- En tydlig beskrivning av problemet
- Steg för att reproducera
- Berörd URL eller endpoint
- Dina kontaktuppgifter (för uppföljning)
Vi bekräftar din rapport inom 2 arbetsdagar och presenterar en åtgärdsplan inom 7 arbetsdagar för bekräftade brister. Vi tackar rapportörer skriftligen när en åtgärd shippats, och krediterar dig publikt med ditt godkännande efter att problemet är löst.
Inget bug bounty-program just nu. Utanför scope: denial-of-service-tester, social engineering av personal, fysiska attacker, automatiska scanner-utdrag utan manuell verifiering.
16. Kontakt
Säkerhetsincidenter och responsible disclosure: support@lexcodex.ai
Säkerhetsrevision / extra dokumentation: support@lexcodex.ai
Se även: Personuppgiftsbiträdesavtal (DPA) · Integritetspolicy · Dataskydd & Förtroende