Security Whitepaper
Teknisk sikkerhedsoversikt – version 1.2 (2026-05-03)
1. Sammendrag
LexCodex.ai er en AI-drevet juridisk analyseplattform. Denne whitepaperen beskriver vår sikkerhedsarkitektur, dataflyt, inntrengingsbeskyttelse og GDPR-mekanismer. Grunnprinsippet er zero data retention på juridisk innhold.
2. Arkitektur
Frontend: Vanilla JavaScript SPA med statiske HTML-sider. Ingen tredjepartsbiblioteker for autentisering.
Backend: PHP 8 på Apache med MySQL/PDO. Hosting via Easywebbhotell (Plesk, Sverige).
AI-lag: Anthropic. Ingen aftaletekster eller AI-svar gemmes, og LexCodex bruger ikke data til modelltrening.
3. Dataflyt
Når en bruger analyserer tekst:
- Tekst sendes kryptert (TLS 1.3) til vår PHP-proxy
- Proxyen validerer session, rate limit, brugerplan og CSRF
- Teksten sendes kryptert til Anthropic
- Svaret returneres til brugeren
- Teksten gemmes ikke på serverne vores — bare telling af antall analyser og hvilket værktøjer som er brukt (uden innhold, for aggregert statistikk)
4. Tenant isolation
Hver brugerkonto er isolert på databasenivå:
- Sesjoner er knyttet til unik user_id
- Alle SQL-queries filtreres på user_id (prepared statements, aldrig konkatenering)
- session_version-mekanisme invaliderer alle aktive sessioner ved passordbytte
- __Host-cookie-prefiks forhindrer cross-subdomain-tilgang
- Ingen deling mellom brugere innen samme organisasjon uden uttrykkelig valg (delelenker)
5. Autentisering
- Passord hashet med bcrypt (cost 10) + unik salt
- Minste passordlengde: 8 tegn
- E-postverificéring med 6-sifret kode (30 min gyldig, maks 5 forsøg)
- MFA / TOTP — valgfri tofaktorautentisering via Google Authenticator, Authy, 1Password, Microsoft Authenticator. Sikkerhedskopikoder hashes med bcrypt og bruges kun én gang.
- Brute force-beskyttelse: 5 feilaktige forsøg → 15 min lockout
- Google SSO med state-parameter for CSRF-beskyttelse
- Sesjonscookie: Secure, HttpOnly, SameSite=Lax, __Host-prefiks
- CSRF-token på alle autentiserte POST-anrop (timing-sikker sammenligning via hash_equals)
- Sesjonen regenereres ved log-ind og passordbytte
6. Transport og lagring
- TLS 1.3 med HSTS preload (max-age 1 år, includeSubDomains)
- CSP (Content Security Policy) med streng script-src og frame-src
- X-Frame-Options SAMEORIGIN, X-Content-Type-Options nosniff
- Cross-Origin-Opener-Policy same-origin
- Database: MySQL med kryptert passord i isolert config.local.php (ikke i git, chmod 600)
- Ingen aftaletekster, AI-svar eller uploadede dokumenter skrives til disk
7. Inntrengingsbeskyttelse
- Rate limiting: Per-IP på login (20/t), MFA-verify (15/t), resend/forgot (5/t), kontakt (5/t), registrering (5/t), kontosletting (5/t), delelenker (20/t)
- Prompt injection-beskyttelse: System-prompts er serverside-låste, messages valideres for rolle og maks-lengde
- Honeypot-felt på registrering og kontakt
- reCAPTCHA v3 (score ≥ 0.5) på registrering og kontaktskjema
- Heuristikk mot tilfeldige strenger ved registrering (vokal/konsonant-ratio, case-mønster)
- Blokkering af gratis e-postdomener ved registrering (bedrifts-e-post kræves)
- Webhook replay-beskyttelse: Stripe event-ID gemmes for å forhindre dobbeltbehandling
8. GDPR-mekanismer (selvbetjening)
- Art. 15 + Art. 20 (innsyn / portabilitet): Funksjonell knapp "Last ned mine data" på /da/konto — genererer en JSON-fil med konto, delte analyser, overvågningsprofiler + rapporter, batch-jobber (metadata), værktøjerbruk og avgitt tilbakemelding. Passord, MFA-nøkler og sikkerhedskopikoder ekskluderes.
- Art. 17 (sletting): Funksjonell knapp "Slett kontoen min" — kræver passord + bekreftelsesord, sletter umiddelbart konto og alle koblede tabeller (tool_usage, shared_analyses, studie_feedback, batch_jobs+documents, watch_profiles+reports). Bekreftelses-e-post sendes til brugeren.
- Delelenker har 7 dagers auto-sletting
9. Hendelseshåndtering
- Mistenkte hendelser oppdages via audit log (admin_actions-tabellen)
- Varsling til berørte kunder innen 72 timer (GDPR art. 34)
- Rapportering til Datatilsynet innen 72 timer (GDPR art. 33)
- Rotasjon af alle API-nøkler og passord ved bekræftet inntrengning
10. AI/LLM-sikkerhed
LexCodex anvender kontroller basert på OWASP Top 10 for LLM Applications:
- LLM01 Prompt Injection — server-side
lex_detect_injection()blokkerer 6 mønsterklasser (instruction override, role hijack, system impersonation, delimiter injection, instruction extraction, data exfiltration). System-prompter indeholder eksplisitte instruksjons-immunitet-direktiver. Per-melding-grense 50 KB, per-request-grense 200 KB. - LLM02 Insecure Output Handling — all LLM-output passeres gjennom
escapeHtml()før markdown-rendering. Kunhttps://-lenker tillates. AI-en er instruert til ikke å produsere kjørbar HTML/JS. - LLM06 Sensitive Information Disclosure — Zero Data Retention via Anthropics enterprise-vilkår. Ingen logging af prompt/output-innhold. AI-en er instruert til aldrig å avsløre system-prompter, andre brugeres data eller intern infrastruktur.
- LLM10 Model Theft — ikke gældende (vi hoster ikke egne modeller).
Hallusinasjonskontroll: hver påstand bindes til en verificeret primærkilde der det er mulig (Retsinformation, Folketinget, lagen.nu, Sveriges Domstolar, Riksdagen, EUR-Lex og ~14 til). AI-en er instruert til heller å si "jeg er usikker, konsulter primærkilden" enn å fabrikere referanser.
11. Revisjoner og tester
- Intern sikkerhedsrevisjon april 2026 — dokumentert, omfatter P0–P3-trusler.
- 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 fikset samme dag.
- Akademisk sikkerhedsgranskning Q2 2026 — sikkerhedstestet mod OWASP Top 10. Detaljer på forespørsel under NDA.
- Ekstern penetrasjonstest — kan arrangeres på forespørsel for bedriftskunder. Standardleverandører: Truesec, Sentor, Cure53.
12. Underleverandører
| Leverandør | Formål | Sted | Sertifiseringer |
|---|---|---|---|
| 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 | Betaling | USA / Irland | PCI DSS Level 1 |
| reCAPTCHA, Analytics | USA / EU | ISO 27001/17/18 |
13. Transparens og ISO/IEC 27001:2022-kontroller
LexCodex.ai er ikke selv ISO 27001- eller SOC 2-sertifisert ennå — sertifisering planlagt våren 2027 (se compliance-roadmap nedenfor). Vi bygger allerede i dag på ISO/IEC 27001:2022 Annex A-kontroller som veiledende rammeverk:
- A.5 Organisatoriske kontroller — informasjonssikkerhedspolicy (SECURITY.md), risikoregister med 32 identifiserte risikoer (kvartalsvis gennemgang), sub-processor-register (DPA), hendelseshåndteringsprosess (Art. 33 GDPR-flyt)
- A.6 Personellkontroller — awareness-rutiner, passordpolicy (bcrypt cost ≥ 10), MFA-krav på admin-kontoer
- A.7 Fysiske kontroller — ikke gældende eget datasenter (cloud-only via Easywebbhotell, Sverige). Utviklermaskin: BitLocker + skjermlås
- A.8 Tekniske kontroller — tilgangskontroll, kryptering (TLS 1.2+, bcrypt, AES-256), sikker utvikling (npm audit, pre-commit secrets-hook, prompt injection-beskyttelse), logging + monitoring (security.log med metadata-only), webhook replay-beskyttelse, backup (Easywebbhotell daglig, retention 30 dager)
Statement of Applicability (SoA) og formell Annex A-vurdering gjennomføres som del af Q3 2026-implementering. Risikoregister tilgjengelig under NDA for bedriftskunder.
14. Compliance-roadmap
| Kvartal | Milepæl |
|---|---|
| Q2 2026 | Whitepaper + DPA + ekstern penetrasjonstest (pågående) |
| Q3 2026 | ISO 27001:2022-implementering starter (gap-analyse, ISMS) |
| Q4 2026 | ISO 27001 Stage 1-revisjon |
| Q1 2027 | ISO 27001 Stage 2-revisjon |
| Våren 2027 | ISO 27001-sertifisert |
| Senere | ISO 42001 (AI management system) som tilføjelser; SOC 2 Type II hvis kunder kræver det |
Vi prioriterer bevisst ISO 27001 fremfor SOC 2 først fordi vores marked er Norden/EU og ISO mapper mot GDPR-vokabular som kjøpere allerede arbejder i.
15. Rapporter en sårbarhet (Responsible Disclosure)
Hvis du finner en sikkerhedsbrist, send e-post til support@lexcodex.ai med:
- En tydelig beskrivelse af problemet
- Steg for å reprodusere
- Berørt URL eller endpoint
- Dine kontaktopplysninger (for oppfølging)
Vi bekræfter rapporten din innen 2 arbeidsdager og presenterer en handlingsplan innen 7 arbeidsdager for bekreftede brister. Vi takker rapportører skriftlig når en fix er sendt, og krediterer deg offentlig med din godkjennelse etter at problemet er løst.
Ingen bug bounty-program nå. Utenfor scope: denial-of-service-tester, social engineering af personell, fysiske angrep, automatiske scanner-utdrag uden manuell verifikasjon.
16. Kontakt
Sikkerhedshendelser og responsible disclosure: support@lexcodex.ai
Sikkerhedsrevisjon / ekstra dokumentasjon: support@lexcodex.ai
Se også: Databehandleraftale (DPA) · Privatliverklæring · Privatliv & tillit