Sådan beskytter LifeVeil dine filer
Denne side forklarer med almindelige ord, hvad LifeVeil gør, og også hvad appen ikke kan. Vi vil hellere have, at du kender begrænsningerne, end at du stoler på et løfte, der er for stort.
Kort fortalt
- Al kryptering sker på din telefon. Der er ingen LifeVeil-server og ingen konto.
- Hver boks' filer krypteres med en tilfældig nøgle. Kun boksens mønster (med dens pinkode på det højeste niveau), dens gendannelsesfrase, hvis du har tilføjet en, eller dit fingeraftryk, hvis du har slået det til, kan låse den nøgle op.
- Hvert mønster åbner en boks. Et mønster, der ikke passer til nogen gemt boks, åbner en tom boks, og intet skrives, før du føjer en fil til den.
- Vi, udviklerne, har aldrig dit mønster, din pinkode, din frase eller dine nøgler. Vi kan ikke åbne dine filer, og vi kan ikke nulstille dit mønster.
- Vi bruger den kryptering, der er indbygget i Android, og det velkendte bibliotek libsodium. Vi har ikke skrevet vores egen kryptering.
- LifeVeil har endnu ikke været igennem en uafhængig sikkerhedsgennemgang.
Fra dit mønster til en nøgle
Du tegner et mønster på et 5×5-gitter uden at bruge den samme prik to gange. Et nyt mønster, du opretter, skal have mindst 6 prikker. LifeVeil gør mønsteret til en nøgle med Argon2id fra libsodium (version 1.0.20 på Android).
- Indstillinger: 64 MiB hukommelse, 3 gennemløb, 1 bane, 256-bit nøgle.
- Argon2id er langsom med vilje og kræver meget hukommelse for hvert gæt. Det gør det meget dyrere at gætte med grafikkort.
- På vores testtelefoner tager én oplåsning ca. 0,6 til 0,9 sekunder.
- Mønsteret blandes med et tilfældigt enhedssalt på 16 byte. Saltet gemmes i appen, krypteret med en nøgle i Android Keystore, som ikke kan kopieres ud af telefonen.
- Der gemmes ingen kopi af mønsteret, bortset fra den, der opbevares sammen med en gendannelsesfrase (se nedenfor). Appen kontrollerer et mønster ved at prøve at låse nøglen op.
- Det, du skriver i pinkodefeltet over prikkerne, indgår i samme nøgleafledning som mønsteret. Et tomt felt betyder kun mønsteret.
Sikkerhedsniveauer
Hver boks har ét niveau. Du vælger det, når du starter, og du kan ændre det senere under Indstillinger > Boks > Sikkerhedsniveau, når du har tegnet mønsteret igen.
- Højeste sikkerhed (Ultra): mønster og en pinkode på 6 til 8 cifre, begge kun i dit hoved. Sikkert selv mod gætning med AI. Glemmer du en af dem, kan boksen ikke gendannes.
- Niveau 1 (anbefalet): kun mønster. Sikkert, hvis du undgår almindelige former. Glemmer du det, kan boksen ikke gendannes.
- Niveau 2: mønster og en gendannelsesfrase skrevet på papir. Du kan komme ind igen, hvis du glemmer mønsteret, men den, der finder papiret, kan også åbne boksen.
- Niveau 3: mønster og fingeraftryk. Det mest bekvemme, men nogen kan tvinge din finger hen på sensoren. Fingeraftryk virker kun til én boks.
Sådan krypteres filerne
- Hver boks har en tilfældig hovednøgle på 256 bit. Din mønsternøgle og din gendannelsesnøgle "pakker" (krypterer) kun denne hovednøgle.
- Filer, miniaturer og listen over dine elementer (oprindelige filnavne, datoer, størrelser) krypteres med AES-256-GCM ved hjælp af den kryptering, der er indbygget i Android. GCM opdager også, om en fil er blevet ændret eller byttet ud.
- Filerne i appen har tilfældige navne. Store filer krypteres i stykker på 1 MiB, så videoer kan afspilles, uden at der nogensinde skrives en ukrypteret kopi til lageret.
- For JPEG-billeder gemmes de skjulte oplysninger (EXIF, f.eks. kamera og dato) separat, også krypteret.
- Når appen låses, overskriver den de nøgler, den har i hukommelsen, med nuller.
Gendannelsesfrase
- En gendannelsesfrase er valgfri. En boks får kun en, når du vælger Niveau 2, og den gemmes, når du har bestået en kort quiz.
- Telefonens sikre tilfældighedsgenerator vælger 9 engelske ord. De kommer fra to lister med 1.024 almindelige ord i en af 4 faste rækkefølger. Det giver 92 bit tilfældighed. Ordene er engelske på alle appens sprog.
- Frasen går gennem de samme Argon2id-indstillinger og låser hovednøglen op på egen hånd. Den har ikke brug for enhedssaltet, så den virker også, når mønsteret ikke længere gør.
- En kopi af frasen og en kopi af boksens mønster (og pinkode) gemmes på telefonen, hver krypteret to gange: én gang med hovednøglen og én gang med en nøgle i Android Keystore. Når frasen åbner boksen, viser appen mønsteret én gang. Det glemmes, når appen låser.
- Frasen forbliver den samme, når du ændrer mønsteret. En boks uden frase har ingen vej tilbage, hvis mønsteret er glemt.
Fingeraftryk
Oplåsning med fingeraftryk er valgfri og virker til én boks. Det er Android, der kontrollerer fingeraftrykket, ikke LifeVeil; appen modtager aldrig dit fingeraftryk. En nøgle i Android Keystore, der kun virker lige efter en stærk biometrisk kontrol, låser hovednøglen op. Hvis nogen tilføjer et nyt fingeraftryk på telefonen, holder denne nøgle op med at virke, og du skal bruge dit mønster igen.
Sikkerhedskopifil
- En sikkerhedskopi er én
.lvb-fil. Den indeholder dine elementer præcis som de allerede er krypteret, plus pakkede kopier af hovednøglen: én til det mønster, du tegnede, da du lavede sikkerhedskopien, og én til gendannelsesfrasen, hvis boksen havde en. - Mønsterkopien bruger et nyt tilfældigt salt for hver sikkerhedskopi, ikke enhedssaltet. Det er derfor, du kan åbne sikkerhedskopien på en ny telefon.
- Filens header er beskyttet, så ændringer eller udskiftede dele bliver opdaget.
- Du vælger selv, hvor den skal gemmes, via Androids egen gemmeskærm. Den går aldrig gennem os.
- For at gendanne åbner du filen med dens mønster eller dens frase. Derefter tegner du et nyt mønster. Den gendannede boks starter uden gendannelsesfrase.
Anden beskyttelse i appen
- Skærmbilleder, skærmoptagelse og forhåndsvisningen i listen over seneste apps er blokeret på alle skærme.
- Som standard låses appen, så snart du forlader den. Du kan i stedet vælge 30 sekunder eller 1 minut.
- Androids egen cloudbackup og overførsel fra telefon til telefon medtager ikke LifeVeils data. Brug sikkerhedskopifilen i stedet.
- Appen beder ikke om adgang til placering, kontakter eller "alle filer".
- En tom boks til hvert nyt mønster. En boks uden filer ser ens ud, uanset om den er gemt eller ej, så den, der tvinger dig til at åbne appen, ikke kan se, hvad der ellers findes. Du kan slå det fra under Indstillinger > Sikkerhed, og så viser et mønster, der ikke åbner noget, en fejl i stedet.
Bremse på gætteri
Fordi hvert mønster åbner en boks, ligner gætning, at mange tomme bokse bliver åbnet. LifeVeil bremser det uden at vise det på skærmen, og ventetiden er den samme for alle mønstre, også det rigtige.
- Inden for 24 timer lægger 10 åbninger af bokse uden filer 10 sekunder til hver oplåsning, 20 lægger 60 sekunder til, og 30 lægger 5 minutter til, som er det højeste.
- Tegn på automatisering går direkte til det højeste: mønstre, der afsluttes med under 2 sekunders mellemrum tre gange i træk, eller berøringer, der kommer fra hjælpefunktioner eller indsprøjtet input i stedet for en finger.
- Hver 24 timer uden åbning af en tom boks letter bremsen ét trin. At stille telefonens ur tilbage gør den ikke kortere.
- Det virker kun i appen. Det bremser ikke gætning på en computer med en kopieret fil (se begrænsningerne nedenfor).
AI og gætning af mønstre
- AI kan ikke springe matematikken over. Hvert gæt skal stadig køre Argon2id med 64 MiB hukommelse. AI bryder ikke Argon2id eller AES, så intet enkelt gæt bliver billigere.
- Det, AI ændrer, er rækkefølgen af gættene. Den kan lære de former, folk kan lide (bogstaver, firkanter, foretrukne starthjørner), og prøve dem først. Den kan også hjælpe med at aflæse et mønster fra en video optaget over din skulder eller fra fedtmærker på skærmen.
- Derfor handler forsvaret om mønsteret, ikke om matematikken. Appen advarer om almindelige former. Det højeste sikkerhedsniveau tilføjer en pinkode på 6 til 8 cifre, så et mønster, der er set på video, ikke er nok. Skjul mønsterlinje efterlader ingen linje at filme. Enhedssaltet i Android Keystore forhindrer gætning uden for telefonen.
Begrænsninger, du bør kende
Ingen app kan beskytte mod alt. Dette er de ærlige begrænsninger ved LifeVeil.
Enkle mønstre kan gættes
Korte eller almindelige former (et L, et Z, en lige linje) kan gættes ved at se dig over skulderen, ud fra fedtmærker på skærmen eller på få forsøg. Rigtige mønstre er meget nemmere at gætte, end antallet af mulige mønstre antyder. Brug flere prikker og flere sving. Appen advarer dig om meget enkle mønstre, og før den gemmer en boks, hvis mønster har færre end 6 prikker.
Hvor lang tid gætning kan tage
I appen tager hvert forsøg ca. et sekund, og gentaget gætning gør hver oplåsning langsommere, op til 5 minutter. Men en person, der har din sikkerhedskopifil, eller som har hentet enhedssaltet fra en rootet telefon, kan i stedet gætte på en computer uden ventetid. Argon2id gør det langsommere, men et mønster har langt færre muligheder end en lang adgangskode. Grove skøn for ét kraftigt grafikkort (RTX 4090-klassen) med ca. 1.000 gæt i sekundet:
| Hvad der gættes | Muligheder | Tid, ét grafikkort |
|---|---|---|
| De 10.000 mest almindelige mønstre | 104 | ca. 10 sekunder |
| Alle mønstre med 6 prikker | 1,28 × 108 | ca. 1,5 døgn |
| Alle mønstre med 7 prikker | 2,42 × 109 | ca. 28 dage |
| Alle mønstre med 8 prikker | 4,36 × 1010 | ca. 1,4 år |
| Gendannelsesfrase (92 bit) | 4,95 × 1027 | ca. 1,6 × 1017 år |
Det er skøn, ikke målinger. Antallet af mønstre er øvre grænser; rigtige mønstre er langt færre. Mere eller hurtigere hardware gør gætningen tilsvarende hurtigere. En pinkode på det højeste niveau ganger disse tal med op til 108.
Hold din sikkerhedskopifil privat
Sikkerhedskopifilen indeholder ikke enhedssaltet, så alle, der får fat i den, kan prøve mønstre offline som vist ovenfor. Gem den kun et sted, hvor kun du har adgang, f.eks. din egen cloudkonto, og brug et længere mønster.
Gendannelsesfrasen viser også mønsteret
Den, der har en boks' gendannelsesfrase, kan åbne boksen, og appen viser dem så dens mønster og pinkode. Hvis du bruger samme mønster andre steder, f.eks. som telefonens skærmlås, får de også det at vide. Opbevar papiret lige så sikkert som selve filerne.
Rootede eller inficerede telefoner
Hvis nogen kan køre kode med appens tilladelser (f.eks. på en rootet telefon eller med malware, der har fuld kontrol), kan de låse enhedssaltet op og gætte offline. Mens boksen er åben, ligger nøglerne i hukommelsen og kan læses med root-adgang eller en debugger. Visse kopier, der laves inde i Android og Flutter, og billeder, der vises på skærmen, kan ikke slettes fra hukommelsen med det samme.
Visse oplysninger er synlige
Antallet af krypterede filer i appens lager, deres omtrentlige størrelse, og hvornår de blev oprettet eller ændret, er ikke skjult. Det er det heller ikke, at LifeVeil er installeret.
Den tomme boks narrer kun skærmen
Den, der kan læse appens filer (for eksempel på en rootet telefon), kan tælle boksenes mapper og se, at denne indstilling er slået til. Bremsen tæller gemte og ikke-gemte tomme bokse på samme måde, så ventetiden i sig selv afslører ikke forskellen.
Forklædningen ændrer kun startskærmen
- Kun ikonet og navnet på startskærmen ændres. Telefonens liste under Indstillinger > Apps, appoplysningerne og lagerskærmene viser stadig LifeVeil.
- Skærmlæsere kan stadig sige "LifeVeil". For eksempel giver Samsung One UI-startskærmen TalkBack det rigtige appnavn, og det kan appen ikke ændre.
- Androids delingsmenu viser altid det rigtige appnavn, så LifeVeil fjerner sig selv fra den, når du skifter ikonet. Du kan slå det til igen.
- Androids anmodninger om tilladelser viser det rigtige navn, så appen beder om tilladelser, før du skifter ikonet.
- Mens ikonet er skiftet, sender appen ingen notifikationer.
- Forklædningskoden (4 til 8 cifre) viser kun låseskærmen. Den åbner ikke dine filer. Den gemmes som en saltet hash, men med så få muligheder er den let at finde, hvis nogen får fat i filen.
Fingeraftryk er en svagere vej
Oplåsning med fingeraftryk springer Argon2id over. Styrken afhænger af telefonens fingeraftrykssensor og Android Keystore. Du kan til enhver tid slå det fra under Indstillinger.
Billedoplysninger
- For HEIC-, PNG- og WebP-billeder bliver de skjulte oplysninger (EXIF) inde i filen. Hele filen er stadig krypteret.
- På Android 10 og nyere fjerner Android GPS-placeringen fra billeder, som LifeVeil læser, fordi appen ikke beder om adgang til placering. Når originalen slettes fra galleriet, er placeringen væk.
- Billeder, der tilføjes via Androids billedvælger, får nye navne ud fra datoen, fordi vælgeren ikke oplyser det oprindelige navn.
Låsning sættes på pause under systemskærme
Mens en systemskærm er åben (anmodning om tilladelse, bekræftelse af sletning, billed- eller filvælger, fingeraftryksdialog), og mens en import eller eksport kører, venter appen med at låse. Hvis du har forladt appen, låses den 2 sekunder efter, at det er afsluttet.
Bokse deler ét enhedssalt
Alle bokse på en telefon bruger det samme enhedssalt. Hvis nogen har det salt, tester ét gæt alle bokse på én gang. Omkostningen ved at angribe en enkelt boks er den samme.
Ting, ingen app kan forhindre
En person, der ser dig tegne dit mønster, eller et kamera, der filmer din skærm.
Uden en frase kan ingen hjælpe
Hvis du glemmer mønsteret til en boks uden gendannelsesfrase, eller du mister både mønsteret og frasen, kan ingen gendanne boksens filer. Heller ikke os.