Solidaritet med Ukraina. Tjänsten erbjuds kostnadsfritt till ukrainska företag så länge kriget pågår. Begär gratis åtkomst
Säkerhet - offentligt dokument

Offentlig <em>threat model.</em>

Vad vi skyddar, mot vem, hur, och vad vi <em>inte</em> skyddar. Bättre en namngiven perimeter än dolda löften.

Version v1.0 · reviderad den {{ "now"|date("d/m/Y") }} · revideras vid varje större release.

Metodik: STRIDE (Spoofing / Tampering / Repudiation / Information disclosure / Denial of service / Elevation of privilege) tillämpad på fem ytor av produkten. Varje rad: hot - ARDNTECH-mitigering - antagen avvägning.

Dokument avsett för CISO:er, granskare och säkerhetsforskare. AGPL-källkoden är offentlig på github.com/aegirex/server. De detaljerade operativa runbooks förblir förbehållna design partners under NDA.

1. Modellerade aktörer

De nio angriparprofiler som beaktas i modellen.

Aktör Beskrivning Förmågor
Extern angripare Internet, ingen initial åtkomst Brute force, nätfiske, webbexploits, nätverks-MITM
Nätfiskad användare Användare som är mål för en klonad webbplats Lämnar sina inloggningsuppgifter till en angripardomän
Illvillig medhyresgäst Användare i en annan ARDNTECH-organisation Försöker läsa hemligheter från grannorganisationer
Komprometterad webbläsare Webbläsare infekterad av skadlig kod eller skadligt tillägg Åtkomst till DOM, kan läsa inmatningsfält
Serveradministratör Infrastrukturoperatör med SSH-åtkomst till servern Läser databasen, läser minnet, ändrar koden
Databasexfiltrering Stulen backup, läckt SQL-dump Komplett ögonblicksbild av databasen
Rättslig myndighet Rättslig rekvisition, administrativt förordnande Tvingar värden att lämna ut de lagrade uppgifterna
ARDNTECH-insider Framtida anställd eller leverantör hos ARDNTECH Kodgranskning, utrullningsåtkomst, läsning av loggar
Kvantmotståndare Operativ kvantdator (horisont > 2030) Knäcker RSA / ECC i polynomisk tid (Shor)

2. Skyddade data

Klassificering av data och skyddsnivå i vila.

Data Känslighet Lagring
Användarens huvudlösenord Kritisk Endast Argon2id-hash (RFC 9106)
Hemligheternas innehåll (payload) Kritisk Totalsträckskrypterat (OpenPGP), servern lagrar en ogenomskinlig blob
Användarens privata OpenPGP-nyckel Kritisk Aldrig på servern. Lagrad lokalt, skyddad av användarens passphrase
TOTP-hemligheter i vila Kritisk Krypterade med XChaCha20-Poly1305 (nyckel utanför databasen)
Webhook-hemligheter i vila Kritisk Krypterade med XChaCha20-Poly1305 (nyckel utanför databasen)
Hemlighets- och mappnamn Måttlig I klartext på serversidan. Avvägning dokumenterad 5.1
Revisionslogg Hög HMAC-SHA-256-kedja, tamper-evidence i O(1)

3. Hot och mitigeringar per yta

3.1 SaaS-webbapplikation

Hot Mitigering Status
Brute force på lösenordet Rate limiter 5 försök / 15 min per IP + Argon2id (256 MiB, 5 passes) - 1 s per lokalt försök Levererad
Credential stuffing Samma rate limiter + HIBP-skanning opt-in efter login (uttryckligt GDPR-samtycke) Levererad
Bypass av 2FA TOTP RFC 6238 med issuer pinning + engångsåterställningskoder + WebAuthn PRF Levererad
Lagrad eller reflekterad XSS Strikt CSP (script-src 'self' 'wasm-unsafe-eval'), Trusted Types aktiverade, automatisk Twig-escaping Levererad
Kompromettering av OpenPGP.js-beroendet Vendorerat bibliotek med SHA-256-avtryck verifierat vid build (SRI-integritetsmanifest) Levererad
Nätfiske av huvudlösenordet Stark mitigering kommande: WebAuthn PRF-passkeys, som tar bort överföringen av lösenordet och binds till ursprungsdomänen av webbläsaren. I väntan på det: användarutbildning + UI-indikatorer. Kommande

3.2 Krypterad lagring

Hot Mitigering Status
Stulen databasdump OpenPGP E2E-krypterad payload oläsbar utan användarens privata nyckel. Lösenord i Argon2id-hash, ej återställbara Levererad
Stulen backup Krypterade backuper (Argon2id + ChaCha20-Poly1305), flera mottagare. Automatiserat återställningstest i CI Levererad
Serveradministratör läser innehållet i en hemlighet Omöjligt utan användarens privata nyckel. Servern lagrar endast ogenomskinliga blobbar Levererad
Manipulering av revisionsloggen (tampering) HMAC-SHA-256-kedja, detektering i O(1) vid verifiering. Detaljer om kedjan Levererad

3.3 REST-API

Hot Mitigering Status
Dataläcka mellan organisationer Varje API-token knuten till en enda organisation. Systematisk filtrering vid varje endpoint. Explicita isoleringstester i CI vid varje commit Levererad
Stöld av API-token Token hashad med Argon2id i databasen. Fri rotation av användaren. Minimal scope (läsning / skrivning) konfigurerbar Levererad
Applikations-DoS Rate limiter per token och per IP (Symfony-ramverk) Levererad

3.4 Webbläsartillägg

Hot Mitigering Status
Kompromettering av build-pipelinen Verifiering av SHA-256-avtryck för beroenden kedjad till build. Signerad SBOM planerad Levererad
Stängning av popupen = tillfällig åtkomstförlust Avvägning i första versionen: den privata nyckeln persisteras inte för att begränsa attackytan. Kommande: konfigurerbar autolås + persistens via kontrollerad service worker. Kommande
Fångst av inloggningsuppgifter på en nätfiskewebbplats Användaren ser det verkliga domännamnet i tilläggets popup innan klick på "Spara" Levererad

3.5 Självhostad infrastruktur

Hot Mitigering Status
Komprometterad Docker-image Automatiserad sårbarhetsskanning i CI. Sigstore-signering planerad för användarverifiering på utrullningssidan Pågående
Otestad backup Automatiserat återställningstest i CI vid varje release. Ingen overifierad backup i produktion Levererad
mTLS i produktion Aktiverbar via konfiguration. Lägena audit (endast loggar) och därefter enforcement tillgängliga Levererad

4. Skyddsperimeter - antagna begränsningar

Redaktionell ärlighet: här är de ytor som ARDNTECH inte täcker på egen hand, och den rekommenderade mitigeringen.

Begränsning Varför Rekommenderad mitigering
Fullständig kompromettering av användarens enhet En skadlig kod med åtkomst till webbläsarens RAM kan läsa den dekrypterade privata nyckeln Hårdvarupasskey (YubiKey, TPM) som innesluter nyckeln i ett säkert element
Kompromettering av ARDNTECH-servern (root) En root-angripare kan läsa de aktiva HTTP-sessionerna De lagrade hemligheterna förblir oläsbara (zero-knowledge). Endast de sessioner som är öppna vid komprometteringstillfället är i riskzonen. Kort autolås rekommenderas
Förlust av huvudlösenordet Direkt följd av strikt zero-knowledge: inget sätt på serversidan att återställa nyckeln Återställningskoder utskrivna vid skapandet. Kommande: Shamir-delning M-av-N för Enterprise-planerna
Kvantmotståndare (horisont > 2030) OpenPGP v6 + AES-256 bedöms som säkra i 5 till 10 år enligt RGS ANSSI 2024 Postkvant-migrering (ML-KEM, ML-DSA) under långsiktig utvärdering
Fysisk attack på användarens enhet ARDNTECH är ett logiskt valv, inte ett fysiskt kassaskåp Kort autolås av valvet + hårdvarubaserad WebAuthn-passkey
ARDNTECH-insider (framtida anställd) Antagen begränsning hos förtroendemodellen för en SaaS-utgivare NDA, ansvarsfördelning, obligatorisk kodgranskning, tamper-evident revisionskedja, principen om minsta privilegium

5. Antagna avvägningar

5.1 Hemlighets- och mappnamn i klartext på serversidan

Val: namn lagrade i klartext på serversidan.

Varför: omedelbar sökning på serversidan, visning av trädstrukturen utan dekryptering vid varje navigering, hierarkisk mappdelning möjlig.

Påverkan: en angripare som exfiltrerar databasen ser att en hemlighet med namnet "AWS Prod" finns i mappen "DevOps / Cloud". Hen ser INTE innehållet (E2E-krypterad payload).

Övervägt alternativ: en "anonymise me"-option som även krypterar namnen. Betydande UX-kostnad: ingen sökning på serversidan, fullständig klientskanning vid varje förfrågan.

5.2 Lösenord i klartext i DOM vid inmatning

Val: OpenPGP krypterar payloaden efter att användaren har skrivit sitt lösenord.

Varför: inget alternativ - webbläsaren måste se klartexten för att användaren ska kunna skriva det.

Mitigeringar: Trusted Types CSP förhindrar DOM XSS från att injicera exfiltrerande JavaScript. Kommande: WebAuthn-passkeys som helt tar bort överföringen av lösenord.

5.3 Huvudlösenord = valvets enda nyckel

Val: ingen återställning om användaren förlorar både sitt huvudlösenord OCH sina återställningskoder.

Varför: strikt zero-knowledge. Om vi kunde återställa skulle det finnas en dekrypteringsväg på serversidan.

Kommande mitigering: Shamir-delning av den privata nyckeln (M-av-N delar), en del hos ARDNTECH med procedurella skyddsmekanismer (upplåsning endast med närvaro av N-1 andra delar validerad av användaren). Förbehållet Enterprise-planerna.

6. Plan för incidenthantering

Nivå Utlösare Åtgärd
L1 Misstanke Anomali i revisionsloggen, användaranmälan Intern utredning inom 24 h, verifiering av revisionskedjan
L2 Bekräftad kompromettering Teknisk kompromettering bekräftad av utredningen Notifiering av användare inom 72 h (GDPR Art. 33), rotation av påverkade nycklar, införande av mitigeringar
L3 Allvarlig kompromettering Databas eller källkod komprometterad Notifiering av CNIL och ANSSI, offentlig transparency report, extern rättsteknisk granskning

Ansvarsfullt avslöjande: I enlighet med RFC 9116 anger en fil /.well-known/security.txt i webbplatsens rot vår kontaktadress security@aegirex.eu. Tid för bekräftelse av mottagande: 72 h.

Precisera dokumentet?

Denna threat model är ett levande dokument. Om du är CISO, granskare eller säkerhetsforskare och ett hot är felaktigt modellerat, kontakta oss direkt.