Projekt

Allmänt

Profil

Handlingar

Features #404

öppen
CA CA

Inför krypterat backupkuvert med Argon2id och AES-GCM

Features #404: Inför krypterat backupkuvert med Argon2id och AES-GCM

Tillagd av Codex API för 4 dagar sedan. Uppdaterad för 4 dagar sedan.

Status:
Done
Prioritet:
Normal
Tilldelad:
Startdatum:
2026-09-27
Deadline:
% Klart:

100%

Beräknad tid:
Risknivå:
Normal
Driftsättningspåverkan:
Ingen
Berörd miljö:
Ej tillämpligt
Regression krävs:
Ja
Reported by:

Beskrivning

Inför det kryptografiska grundformatet för användarstyrda säkerhetskopior innan profilurval, dokumentväljare och databasexport kopplas in. Filformatet ska kunna återställas på en annan telefon med användarens separata backuplösenord.

Acceptanskriterier:

  • Ett versionsmärkt binärt kuvert innehåller endast format- och kryptoparametrar i klartext; nyttolasten kan innehålla persondata först efter kryptering.
  • Nya filer använder Argon2id v1.3 med 64 MiB minne, tre iterationer, fyra lanes, 128-bitars slumpat salt och 256-bitars nyckel.
  • Nyttolasten skyddas med AES-256-GCM, ny 96-bitars nonce per fil och det fullständiga filhuvudet som associerad data.
  • Läsning validerar version, algoritmer, längder och resursgränser innan Argon2id körs.
  • Fel lösenord och manipulerad kryptotext ger samma neutrala felutfall; okänd version och ogiltigt format avvisas utan dekrypterad data.
  • Produktionsparametrar är fasta för skapande medan tester kan använda godkända lägre kostnader; lösenord lagras inte och känsliga arbetsbuffertar nollställs där implementationen tillåter.
  • Automatiska tester täcker rundtur, olika slumpvärden, fel lösenord, manipulation, trunkering, okänd version och osäkra KDF-parametrar.
  • Säkerhetsdesign, arkitektur och README versionsuppdateras med formatets införda status och kvarvarande enhetsmätning/UI/databasexport.

Acceptanskriterier

Se acceptanskriterier i beskrivningen.


Testresultat

Enhetstester för format, kryptografisk rundtur och felvägar samt Android-bygg- och lintkontroll.

CA Uppdaterad av Codex API för 4 dagar sedan Handlingar #1

  • Status ändrad från New till In progress
  • % Klart ändrad från 0 till 40

Arbetet har startat på grenen codex/404-backup-encryption. Bouncy Castle används direkt för Argon2id; AES-GCM utförs via plattformens JCA.

CA Uppdaterad av Codex API för 4 dagar sedan Handlingar #2

  • Status ändrad från In progress till Resolved
  • % Klart ändrad från 40 till 70

Implementerat i commit 56aa985. Backupkuvertet använder Bouncy Castle 1.86 Argon2id v1.3 med fasta produktionsparametrar 64 MiB/3 pass/4 lanes, nytt salt per fil och AES-256-GCM med unik nonce samt hela filhuvudet som associerad data. Läsaren validerar format, längder, version och exakt KDF-kostnad före härledning. Fel lösenord och manipulerad fil lämnar ingen nyttolast. Tillfälliga lösenords-, nyckel-, salt- och noncebuffertar nollställs. Releasebyggen kan inte använda testkostnaden.

CA Uppdaterad av Codex API för 4 dagar sedan Handlingar #3

  • Status ändrad från Resolved till Verification
  • % Klart ändrad från 70 till 80

Verifierat med 70 enhetstester, 38 instrumenterade tester på Android 15 x86_64 med 16 kB sidstorlek, lint, debugbyggnad, releasekompilering och zipalign -P 16. Android-testet kör kryptografisk rundtur med de fulla produktionsparametrarna och syntetisk data. En ren omkörning av hela Android-sviten passerade efter ett tillfälligt ADB-avbrott i en tidigare körning.

CA Uppdaterad av Codex API för 4 dagar sedan Handlingar #4

  • Status ändrad från Verification till Ready for deploy
  • % Klart ändrad från 80 till 90

Kryptokuvertet är dokumenterat i README 0.36, Architecture Document 0.33 och Security Design 0.21. Profilurval, nyttolastmodell, dokumentväljare och återställning hanteras i efterföljande leveranser.

CA Uppdaterad av Codex API för 4 dagar sedan Handlingar #5

  • Status ändrad från Ready for deploy till Done
  • % Klart ändrad från 90 till 100

Leveransen för backupformatets kryptografiska grund är färdig och committad på codex/404-backup-encryption.

Handlingar

Finns även som: PDF Atom