Säkerhet och datahantering

Hur vi skyddar din och dina användares data — i klartext, utan marknadsföringspuffning. Denna sida är avsedd för kommunala IT-säkerhetsansvariga och upphandlare.

Senast uppdaterad: 2026-05-03

Datacenter och kryptering

Plats

All data lagras och behandlas i Google Clouds region europe-west1 (Belgien, EU). Vi använder ingen annan region för primär datalagring. Det innebär att din data stannar inom EU/EES och att GDPR:s krav på dataminimering och skydd gäller fullt ut.

Kryptering i vila (encryption-at-rest)

Firestore och Cloud Storage krypterar all data i vila med Google-hanterade nycklar (AES-256) som standard. Vi använder inte kundhanterade krypteringsnycklar (CMEK) i dagsläget — det är en funktion vi utvärderar inför framtida Pro-tier-åtaganden.

Kryptering under transport (in-transit)

All trafik till och från Skolkoll sker via TLS 1.2 eller senare. Firebase Hosting aktiverar HSTS (HTTP Strict Transport Security) automatiskt, vilket förhindrar nedgradering till okrypterad HTTP. Certifikat hanteras automatiskt av Google och förnyas utan manuell åtgärd.

Secrets och autentisering

Secrets Management

Alla hemligheter — inklusive ADMIN_TOKEN, STRIPE_SECRET_KEY och STRIPE_WEBHOOK_SECRET — lagras i Firebase Secret Manager (Google Cloud Secret Manager). Inga hemligheter finns hårdkodade i källkod eller miljöfiler. Cloud Functions v2 hämtar hemligheter vid driftsättning via IAM-kontrollerade bind-anrop.

ID-token revocation

Firebase Authentication-token verifieras med checkRevoked: true på alla skyddade admin-endpoints. Det innebär att inloggning på en annan enhet, lösenordsbyte eller manuell token-revokering omedelbart ogiltigförklarar befintliga sessioner, utan att vänta på token-expiry (standardlivslängd: 1 timme).

Admin-åtkomst

Admin-token roteras manuellt och lagras aldrig i klientkod. Admin-endpoints kräver HTTP-headern X-Admin-Token med korrekt värde, kontrollerat server-side. Inga admin-operationer är tillgängliga från webbläsaren utan explicit autentisering.

Kommunlicens SSO

Kommunlicens använder Firebase Authentication som kontolager. Standardflödet är e-postbaserad inloggning och organisationsinbjudningar. För kommuner som kräver central identitetshantering kan SAML 2.0 eller OIDC aktiveras som Enterprise SSO-tillägg.

Se även SSO-status i upphandlingspaketet.

Audit logging

Känsliga administratörsoperationer loggas i Firestore-kollektionen auditLog. Kollektionen har deny-all Firestore Security Rules — ingen klient kan läsa eller skriva till den. Åtkomst sker uteslutande via Firebase Admin SDK (server-side), vilket eliminerar risken för manipulation via klientkod.

Varje audit-loggpost innehåller: tidsstämpel, operation, utförande identitet och påverkat objekt. Loggen raderas inte automatiskt — den bevaras för granskningsändamål.

AI-chatbottens anrop loggas separat med pseudonymiserade poster (SHA-256-hash av IP, längd på fråga/svar, inte innehåll) och raderas automatiskt efter 90 dagar.

Backup och återställning

Firestore-databasen är konfigurerad med Point-in-Time Recovery (PITR) via Google Cloud. Det innebär att vi kan återställa databasens tillstånd till valfri tidpunkt inom de senaste 7 dagarna, utan att behöva manuella backup-rutiner. PITR-fönstret täcker alla oavsiktliga dataändringar eller korruption som kan uppstå under en incidentperiod.

Subprocessors (underbiträden)

Nedanstående tjänster behandlar data på Skolkolls uppdrag. Alla underbiträden är bundna av antingen EU:s standardavtalsklausuler (SCC) eller befinner sig inom EU/EES. En fullständig GDPR-beskrivning finns i vår integritetspolicy.

Tjänst Roll / funktion Plats GDPR-grund
Firebase / Google Cloud Hosting, databas (Firestore), Cloud Functions, Secret Manager, Cloud Storage EU (europe-west1) Avtal (art. 6.1.b); DPA med Google ingår i Firebase-villkoren
Stripe Betalningshantering för Pro-tjänster; kortuppgifter hanteras aldrig av Skolkoll USA (PCI DSS-certifierat) Avtal (art. 6.1.b); SCC; Stripes DPA
Google Analytics 4 (GA4) Anonym besöksstatistik; laddas bara efter samtycke USA Samtycke (art. 6.1.a); SCC; IP-anonymisering aktiverad
Sentry Felövervakning; samlar in anonymiserade stacktraces USA Berättigat intresse (art. 6.1.f); SCC
Anthropic (Claude API) AI-assistenten Kollen; bearbetar chatmeddelanden i realtid USA Samtycke (art. 6.1.a); SCC; Anthropics DPA; data bevaras max 30 dagar hos Anthropic
Resend E-postleverans för skolbevakning och transaktionsmail USA Berättigat intresse / samtycke (art. 6.1.f/a); SCC
Nominatim (OpenStreetMap) Geokodning för "Nära mig"-funktionen; ingen persondata lagras EU/EES Berättigat intresse (art. 6.1.f); ingen DPIA krävs
ResRobot (Trafiklab) Kollektivtrafikdata för pendlingsflik; koordinater proxas via Skolkolls server Sverige (EU) Berättigat intresse (art. 6.1.f)
JobTech (JobEd Connect) Yrkesmatchning för karriärfliken; utbildningstext skickas, ingen persondata Sverige (EU) Berättigat intresse (art. 6.1.f)
Skolverkets API Skoldata (öppen data); behandlar inte personuppgifter Sverige (EU) Ej tillämpligt (offentlig data)

Incidentrespons

Vi är ett litet team och vill vara ärliga om vår process: vi har inte ett formellt Security Operations Center (SOC) eller 24/7-beredskap. Vad vi har är en definierad process som vi följer konsekvent.

  1. Övervakning och detektion: Sentry fångar applikationsfel i realtid. Google Cloud-konsolen har alerting på ovanliga CPU-toppar, quota-överskridanden och auth-fel. Vi granskar Sentry-dashboard dagligen.
  2. Triage (inom 24 timmar): När en möjlig säkerhetsincident detekteras gör ansvarig utvecklare en initial klassificering: påverkar incidenten personuppgifter? Är tjänsten otillgänglig? Finns tecken på obehörig åtkomst?
  3. Inneslutning och mitigering: Beroende på incidenttyp vidtas omedelbara åtgärder — revokering av komprometterade tokens, spärr av misstänkta IP-adresser, eller tillfällig nedstängning av berörd funktion.
  4. Notifiering: Om incidenten bedöms innebära en personuppgiftsincident enligt GDPR art. 33 notifierar vi Integritetsskyddsmyndigheten (IMY) inom 72 timmar. Drabbade registrerade kontaktas om incidenten sannolikt medför hög risk för dem (GDPR art. 34). Notifiering sker via markus@skolkoll.se.
  5. Återställning: Vid databaspåverkan återställs data via Firestores PITR-funktion (upp till 7 dagars historik). Statiska sidor byggs om från källdata.
  6. Post-incident review: Efter varje allvarlig incident dokumenterar vi rotorsak, åtgärder och förebyggande ändringar internt. Väsentliga säkerhetsförbättringar kommuniceras i releaseloggen.

Driftstatus och planerat underhåll publiceras på driftsstatussidan.

Compliance och certifieringar

Standard / krav Status Kommentar
GDPR Uppfyllt Fullständig integritetspolicy, samtyckesbanner, DPA tillgängligt på begäran, rätt att radera data
SOC 2 Type II Ej certifierat Vi följer SOC 2-principerna (säkerhet, tillgänglighet, konfidentialitet) men har inte genomgått en formell Type II-revision. Certifiering utvärderas inför storskalig kommunlansering.
ISO 27001 Ej certifierat ISO 27001-certifiering är inte genomförd. Vi arbetar strukturerat med informationssäkerhet men utan formell ISMS-implementation.
Extern penetrationstest Ej genomförd Ingen extern säkerhetsrevision av applikationen har genomförts under 2026. En extern pentest är planerad inför produktionslansering av public free-tier API.
PCI DSS Via Stripe Skolkoll hanterar inga kortuppgifter direkt. Stripe, som är PCI DSS Level 1-certifierat, hanterar all kortdata.

Responsible disclosure

Om du upptäcker en säkerhetsbrist i Skolkoll uppskattar vi att du rapporterar den till oss innan du publicerar den offentligt. Vi åtar oss att:

Vi erbjuder ingen ekonomisk belöning (bug bounty) i dagsläget, men vi tar alla rapporter på allvar och kommunicerar öppet om utredningens resultat.

Disclosure-policy: Vi tillämpar en 90-dagars koordinerad disclosure-period. Om en brist inte åtgärdats inom 90 dagar från din rapport förbehåller du dig rätten att publicera detaljerna. Vi kommunicerar proaktivt om vi behöver mer tid.

Kontakt: Skicka din rapport till security@skolkoll.se med ämnesraden "Security disclosure". Inkludera reproduktionssteg och bedömning av påverkan. Kryptera gärna med vår offentliga nyckel om du hanterar känslig information — kontakta oss så delar vi den.

Vänligen rapportera inte via GitHub Issues eller sociala medier.

DPA och avtalsdokumentation

Skolkoll fungerar som personuppgiftsbiträde för kommuner och skolor som ansluter sig till Pro-tjänsten. Vi tillhandahåller ett personuppgiftsbiträdesavtal (PuB-avtal / DPA) anpassat för kommunal upphandling.

Se även: Integritetspolicy · SLA och driftnivå · Kommersiell separation · Transparens