Senast granskat 1 november 2026 · version 0.9
Säkerhet och regelverk, öppet redovisat.
Öppen källkod får inte betyda osäkert. Här visar vi hur NONOX står sig, område för område, med det som är klart och det som återstår. Betygen ändras när koden ändras, och historiken finns i koden.
Egen granskning, inte ett oberoende intyg.
Det här är inte ett oberoende penetrationstest. Ett externt säkerhetsföretag ska testa den driftade tjänsten innan NONOX lämnar betan, och resultatet publiceras här.
Granskningen gäller programmets källkod och, för området Drift och säkerhetskopior, den driftade tjänsten på nonox.app. Kör du NONOX själv ansvarar du för driften, se NONOX i egen drift.
Fynd och rättelser
Granskning av hela källkoden (white box) i fem delar: inloggning och sessioner, isolering mellan företag och behörigheter, filer och e-post, det som nås utan inloggning, samt regelverk. Granskningen gjordes av oss själva med hjälp av AI-agenter (Claude, Anthropic) och följdes av rättelser med tester. Inga angrepp gjordes mot den driftade tjänsten.
16 / 17
Låga fynd rättade
Säkerhet
B
Inloggning och sessioner
Inloggning utan lösenord med engångskod på åtta siffror, som bara sparas som kontrollvärde och gäller en gång i tio minuter.
- ✓Engångskoder med åtta siffror, fem försök per kod och tak per adress, dag och för hela tjänsten.
- ✓Felaktiga koder spärrar bara den webbläsare som skrev dem, så ingen kan låsa ute någon annan.
- ✓Sessionen byts vid inloggning, har en absolut gräns på tolv timmar och kan avslutas överallt.
- ✓E-postadresser jämförs utan hänsyn till versaler, och en borttagen administratörs inbjudningar återkallas.
- ✓API-nycklar kan inte öppna sidor, de gäller bara API:t och slutar gälla efter 30 dagar.
- ○Återstår: Ingen andra faktor (till exempel passkey) för roller som ser hälsouppgifter och personnummer.
A
Isolering mellan företag
Varje rad tillhör ett företag, och varje fråga filtreras på det. Ett annat företags post svarar 404, inte 403.
- ✓En testsvit prövar varje modell med företagsdata: ingen data syns i ett annat företag.
- ✓Sidor som öppnats för ett företag slutar svara om användaren byter företag.
- ✓Den gemensamma inkorgsadressen tar bara post från någon som loggar in i företaget.
B
Behörigheter och roller
Sex roller med behörigheter per handling. Attest och betalning kräver två personer, och en öppen sida slutar fungera när rollen ändras.
- ✓Attest av leverantörsfakturor och godkännande av betalfiler kräver en annan person än den som skapade dem.
- ✓En betalfil kan varken laddas ner eller markeras som betald innan den är godkänd, och databasen spärrar ändringar efter godkännandet.
- ✓Behörigheten prövas igen när rollen eller modulerna ändras, även på en sida som redan är öppen.
- ○Återstår: Ett arkiverat företag är ännu inte helt skrivskyddat.
A
Filer, e-post och tolkning
Filer krypteras på disk, och typen avgörs av innehållet. Farliga bilagor spärras och virussöks innan något läses.
- ✓XML läses utan externa entiteter, PDF och SIE med storleks- och sidgränser.
- ✓E-post räknas som äkta bara när avsändardomänen bekräftas av mottagande server.
- ✓NONOX AI har inga verktyg och kan inte bokföra själv. En person godkänner alltid.
- ✓Inkorgens IMAP-anslutning når bara publika adresser på port 143 eller 993 med giltigt certifikat.
- ✓Bilagor i Peppol-fakturor virussöks, och filer visas i en sandlåda.
B
Personalliggarens kiosk
Kiosken fungerar utan internet. Personnummer finns på surfplattan bara låsta med chefens kod.
- ✓Kopplingskoder gäller i 15 minuter och en gång, kiosknyckeln sparas bara som kontrollvärde.
- ✓Varje händelse ingår i en hashkedja per enhet, och luckor och tidsavvikelser flaggas.
- ✓Personnummer lämnas ut i klartext först när servern prövat chefens kod.
- ✓Mobil incheckning märks som självrapporterad position i liggaren och exporten, och antalet försök är begränsat.
- ○Återstår: En kod med fyra siffror kan provas fram av den som kopierar surfplattans lagring.
- ○Återstår: Positionen vid mobil incheckning kommer från telefonen och kan inte bevisas.
A
Bokföringens integritet
En bokförd verifikation kan inte ändras eller tas bort, varken i appen eller direkt i databasen.
- ✓Spärrar på tre nivåer: behörighet, modell och databasutlösare.
- ✓Obrutna nummerserier och en hashkedja som kontrolleras varje natt.
- ✓Behandlingshistoriken kan bara skrivas till, aldrig ändras.
- ✓Belopp räknas i hela ören utan flyttal, och bokföring och periodlås väntar in varandra.
B
Webbsäkerhet
Innehållspolicyn tillåter bara NONOX egen adress, och sidor kan inte ramas in av andra.
- ✓Allt innehåll escapas, Markdown i e-post likaså.
- ✓Cookies är httpOnly och SameSite, HSTS är påslaget.
- ✓Inga kända sårbarheter i beroendena (composer audit och npm audit).
- ○Återstår: Livewire och Alpine kräver inline-skript, vilket gör policyn mindre sträng än den kunde vara.
C
Drift och säkerhetskopior
Krypterade säkerhetskopior varje natt på servern och två gånger per dygn på en annan plats i Sverige.
- ✓Databas och filer säkerhetskopieras krypterat varje natt och sparas i sju dagar, i Sverige.
- ✓Två gånger per dygn förs en krypterad kopia över till en annan plats i Sverige, i Stafes egen regi.
- ○Återstår: Återställningstest är inte dokumenterade som en regelbunden rutin.
- ○Återstår: Tjänsten delar server med andra webbplatser.
GDPR art. 32
Lagar och regelverk
A
Bokföringslagen och BFNAR 2013:2
Verifikationer, behandlingshistorik, systemdokumentation och arkiv enligt lagen.
- ✓Systemdokumentation och behandlingshistorik som uppdateras med varje ändring.
- ✓Arkivpaket per år som går att läsa utan NONOX.
- ✓Radering spärras under lagringstiden på sju år.
Bokföringslagen (1999:1078) · BFNAR 2013:2
B
GDPR
Kryptering, registerutdrag, radering, begränsning och gallring finns, med konsekvensbedömningar som kunden kan använda.
- ✓Personnummer och filer krypteras, och visning av hela personnummer loggas.
- ✓Registerutdrag för konton, kunder, leverantörer, anställda, personalliggarens personal och inkorgens avsändare.
- ✓Den som vill kan radera sitt konto. Det som Bokföringslagen kräver behålls pseudonymiserat.
- ✓Konsekvensbedömningar för lön, personalliggare, inkorg och AI, och ett uppdaterat personuppgiftsbiträdesavtal.
- ○Återstår: Ingen andra faktor vid inloggning för roller som ser hälsouppgifter.
- ○Återstår: Säkerhetskopior saknar kopia på annan plats.
- ○Återstår: Frågor om dataskyddsombud och AI-leverantörernas roll väntar på jurist.
Förordning (EU) 2016/679 · Dataskyddslagen (2018:218)
C
AI-förordningen
AI är avstängt som standard, kan inte agera själv och allt godkänns av en person. Varje AI-funktion är klassad och dokumenterad.
- ✓Vad som skickas till AI-leverantören loggas, aldrig innehållet.
- ✓Allt AI föreslår märks som förslag och kräver ett mänskligt godkännande.
- ✓Riskklassning per AI-funktion och en kundsida om vad AI gör och inte gör.
- ○Återstår: Kvittoläsaren bedömer om ett kvitto ser privat ut, vilket kan räknas som bedömning av anställda. Beslut om att ta bort bedömningen återstår.
- ○Återstår: Rollen som leverantör eller tillhandahållare väntar på jurist.
Förordning (EU) 2024/1689
D
NIS2 och cybersäkerhetslagen
Gäller sannolikt inte ett företag av vår storlek. Bedömningen är nedskriven och väntar på jurist.
- ✓Bedömning av omfattning finns i regelverksregistret.
- ○Återstår: Bekräftelse av storleken på koncernnivå.
Direktiv (EU) 2022/2555 · Cybersäkerhetslag (2025:1506)
D
Tillgänglighet
Målet är WCAG 2.2 AA, men ingen granskning är gjord och det finns ingen tillgänglighetsredogörelse.
- ✓Tangentbordsnavigering, synligt fokus och kontrast enligt designsystemet.
- ✓En ärlig tillgänglighetsredogörelse är publicerad i dokumentationen.
- ○Återstår: Ingen granskning mot WCAG 2.2 AA.
Lag (2023:254) om vissa produkters och tjänsters tillgänglighet
D
Cyberresiliensförordningen
Det finns en väg att rapportera sårbarheter. Rollen som tillverkare eller förvaltare av öppen källkod väntar på jurist.
- ✓SECURITY.md med kontaktväg, svarstider och skydd för den som granskar i god tro.
- ○Återstår: Förteckning över programvarukomponenter (SBOM).
- ○Återstår: Beslut om rollen enligt förordningen.
Förordning (EU) 2024/2847
Så sätts betygen
- AStark. Inga kända brister, skyddet är testat.
- BGod. Små kända förbättringar återstår.
- CGodkänd med brister. Det viktigaste finns, men kända luckor återstår.
- DBrister. Viktiga delar saknas.
- ESaknas eller inte bedömt.
Hittat en sårbarhet?
Hör av dig innan du publicerar något, så rättar vi det och berättar öppet om det här. Du som granskar i god tro behöver inte vara orolig för rättsliga följder. Skriv till nonox@stafe.se.