# Säkerhet

Läget 2026-10-30

Här står hur Bolagskvarnen skyddar konton, nycklar och uppgifter, så som tjänsten är byggd i dag.
Tjänsten är inte öppen än, och uppgifter ur registret lämnas ut först när den öppnar.

Hur vi behandlar personuppgifter står i [integritetspolicyn](/integritet/). Det vi åtar oss när vi
behandlar personuppgifter för kundens räkning står i [biträdesavtalet](/bitradesavtal/), och
leverantörerna står på sidan om [underbiträden](/underbitraden/).

## Inloggning i kundportalen

- Varje användare har en egen inloggning. Man loggar in med lösenord eller med en länk i mejlet.
- Lösenordet ska ha minst 12 tecken.
- Inloggningslänken gäller i 30 minuter och kan användas en gång. En ny länk gör de äldre ogiltiga.
- Att öppna länken loggar inte in. Det gör knappen på sidan som öppnas, så att e-postfilter som
  öppnar länkar i förväg inte kan logga in åt dig.
- Formuläret svarar likadant oavsett om adressen har ett konto eller inte, så det avslöjar inte
  vilka adresser som finns.
- Vi sparar bara ett hashvärde av koden i länken, aldrig koden själv.

## API-nycklar

- En nyckel hör alltid till en namngiven användare. Det finns inga delade nycklar.
- Nyckeln visas en gång, när den skapas. Vi sparar bara ett hashvärde (HMAC-SHA256) och kan inte
  visa den igen. Tappar du bort den skapar du en ny.
- Nyckeln börjar med `gb_live_` eller `gb_test_`, så att den går att känna igen om den hamnar i kod
  eller i en logg.
- Varje nyckel har behörigheter för vilka slags uppgifter den får hämta, och kan få ett eget tak för
  kostnaden per dag.
- En nyckel kan spärras i portalen när som helst. Stängs en användare av spärras användarens nycklar
  och kopplingar samtidigt.

## MCP-kopplingar

En AI-klient ansluter till MCP-servern med OAuth 2.1, inte med en API-nyckel.

- Kunden godkänner kopplingen inloggad i portalen, och kan stänga den där.
- Klienten måste använda PKCE med S256.
- En åtkomsttoken gäller en timme. En förnyelsetoken gäller 30 dagar och byts vid varje
  användning. Används en förbrukad förnyelsetoken igen stängs hela kopplingen, eftersom det tyder på
  att den har kommit på avvägar.
- Token gäller bara för MCP-servern, och vi sparar dem bara som hashvärden.

## Gränser för anrop

- Högst 120 anrop i minuten per nyckel eller koppling, och 600 per konto.
- Varje konto har ett tak för hur många bolag som kan slås upp per dag och ett tak för kostnaden per
  månad. Taken ändras på begäran.
- Inloggning, registrering och inloggningslänkar har egna gränser, mot den som försöker gissa
  lösenord eller skicka många mejl.
- Är krediterna slut lämnas inga uppgifter ut.

## Personuppgifter i svaren

- Fullständiga personnummer lämnas aldrig ut. En person anges med ett id, `person_ref`.
- `person_ref` är krypterat och bundet till kundens konto. Samma person får olika id hos två kunder,
  så kunderna kan inte para ihop sina uppgifter med varandras, och id:t går inte att räkna om till
  ett personnummer.
- Organisationsnumret för en enskild firma är innehavarens personnummer. Det visas bara för en kund
  som själv har angett numret.
- Tjänsten läser registret genom egna vyer där personnummer, hemadresser och kön inte finns med.
  Det som inte finns i vyerna kan inte heller lämnas ut.

## Vad som loggas

- Varje anrop loggas med konto, användare, nyckel eller koppling, vilken sorts uppslag, kostnad och
  tid. Det är underlaget för krediterna och för att kunden ska kunna följa sin användning.
- Vilket bolag ett uppslag gällde sparas som ett hashvärde med egen nyckel, inte som
  organisationsnumret.
- Innehållet i svaren loggas inte.
- Allt som en administratör gör med ett konto loggas, med vem, vad och när.
- Hur länge uppgifterna sparas står i integritetspolicyn.

## Var tjänsten körs

- Tjänsten, inloggningen och databasen körs på servrar hos Hetzner, i Finland och Tyskland. Vad vi
  har kontrollerat om det står på sidan om [underbiträden](/underbitraden/).
- Appen körs på samma server som databasen. Databasen går inte att nå utifrån, bara inom serverns
  eget nät.
- Tjänsten läser registret med en egen databasroll. Den kommer bara åt de vyer som tjänsten
  behöver och kan inte ändra något i registret.
- All trafik går över HTTPS.
- bolagskvarnen.se sätter inga kakor och laddar inget från andra webbplatser. Sidorna skickar en
  innehållspolicy (CSP) som bara tillåter skript från sajten själv, och det enda skriptet är
  kopieringsknappen på startsidan.

## Vem som kommer åt vad

- Bara de personer som driver tjänsten kommer åt servrarna, databasen och administrationen. Vilka
  som är administratörer står i tjänstens inställningar, och ingen kan bli administratör genom att
  registrera sig.
- En kund ser bara sitt eget konto. Kontots ägare kan stänga av en användare, och då spärras
  användarens nycklar och kopplingar.

## Rapportera ett säkerhetsproblem

Hittar du en sårbarhet, skriv till [support@getbolag.se](mailto:support@getbolag.se) med ordet
säkerhet i ämnesraden. Beskriv vad du hittade och hur det går att upprepa. Pröva inte mot andra
kunders konton eller uppgifter.

Har en av dina egna nycklar läckt: spärra den i portalen och skapa en ny.

Rör en personuppgiftsincident kundens uppgifter meddelar vi kunden senast 72 timmar efter att vi
fått kännedom om den, enligt [biträdesavtalet](/bitradesavtal/) avsnitt 6.
