Resurser
Simulator Journal Ordlista Tillägg Tillit Tjänstestatus KontaktByt språk
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.
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) |
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) |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
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 |
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.
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.
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.
| 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.
Denna threat model är ett levande dokument. Om du är CISO, granskare eller säkerhetsforskare och ett hot är felaktigt modellerat, kontakta oss direkt.