Slik beskytter LifeVeil filene dine
Denne siden forklarer med enkle ord hva LifeVeil gjør, og også hva den ikke kan gjøre. Vi vil heller at du kjenner begrensningene, enn at du stoler på et løfte som er for stort.
Kort fortalt
- All kryptering skjer på telefonen din. Det finnes ingen LifeVeil-server og ingen konto.
- Filene i hvert hvelv krypteres med en tilfeldig nøkkel. Bare mønsteret til det hvelvet (med PIN-koden på det høyeste nivået), gjenopprettingsfrasen hvis du har lagt til en, eller fingeravtrykket ditt hvis du har slått det på, kan låse opp den nøkkelen.
- Hvert mønster åpner et hvelv. Et mønster som ikke passer til noe lagret hvelv, åpner et tomt hvelv, og ingenting skrives før du legger til en fil i det.
- Vi som utvikler appen, har aldri mønsteret, PIN-koden, frasen eller nøklene dine. Vi kan ikke åpne filene dine, og vi kan ikke tilbakestille mønsteret ditt.
- Vi bruker krypteringen som er innebygd i Android, og det velkjente biblioteket libsodium. Vi har ikke skrevet vår egen kryptering.
- LifeVeil har ennå ikke hatt en uavhengig sikkerhetsrevisjon.
Fra mønsteret ditt til en nøkkel
Du tegner et mønster på et rutenett på 5×5, uten å bruke noe punkt to ganger. Et nytt mønster du setter opp, må ha minst 6 punkter. LifeVeil gjør mønsteret om til en nøkkel med Argon2id fra libsodium (versjon 1.0.20 på Android).
- Parametere: 64 MiB minne, 3 gjennomganger, 1 bane, 256-biters nøkkel.
- Argon2id er treg med vilje og trenger mye minne for hvert gjett. Det gjør gjetting med grafikkort mye dyrere.
- På testtelefonene våre tar én opplåsing omtrent 0,6 til 0,9 sekunder.
- Mønsteret blandes med et tilfeldig enhetssalt på 16 byte. Saltet lagres i appen, kryptert med en nøkkel som oppbevares i Android Keystore, og den kan ikke kopieres ut av telefonen.
- Ingen kopi av mønsteret lagres, bortsett fra den som lagres sammen med en gjenopprettingsfrase (se nedenfor). Appen sjekker et mønster ved å prøve å låse opp nøkkelen.
- Det du skriver i PIN-feltet over punktene, går inn i den samme nøkkelavledningen som mønsteret. Et tomt felt betyr bare mønsteret.
Sikkerhetsnivåer
Hvert hvelv har ett nivå. Du velger det når du starter, og du kan endre det senere under Innstillinger > Hvelv > Sikkerhetsnivå, etter at du har tegnet mønsteret på nytt.
- Høyeste sikkerhet (Ultra): mønster og en PIN-kode på 6 til 8 sifre, begge bare i hodet ditt. Trygt selv mot gjetting med KI. Hvis du glemmer en av dem, kan hvelvet ikke gjenopprettes.
- Nivå 1 (anbefalt): bare mønster. Trygt hvis du unngår vanlige former. Hvis du glemmer det, kan hvelvet ikke gjenopprettes.
- Nivå 2: mønster og en gjenopprettingsfrase skrevet på papir. Du kan komme inn igjen hvis du glemmer mønsteret, men den som finner papiret, kan også åpne hvelvet.
- Nivå 3: mønster og fingeravtrykk. Det mest praktiske, men noen kan tvinge fingeren din mot sensoren. Fingeravtrykk virker bare for ett hvelv.
Slik krypteres filene
- Hvert hvelv har en tilfeldig hovednøkkel på 256 biter. Mønsternøkkelen og gjenopprettingsnøkkelen din bare «pakker inn» (krypterer) denne hovednøkkelen.
- Filer, miniatyrbilder og listen over elementene dine (opprinnelige filnavn, datoer, størrelser) krypteres med AES-256-GCM, med krypteringen som er innebygd i Android. GCM oppdager også om en fil er endret eller byttet ut.
- Filene inne i appen har tilfeldige navn. Store filer krypteres i biter på 1 MiB, så videoer spilles av uten at en ukryptert kopi noen gang skrives til lagringen.
- For JPEG-bilder lagres de skjulte detaljene (EXIF, for eksempel kamera og dato) for seg, også kryptert.
- Når appen låses, overskriver den nøklene den har i minnet, med nuller.
Gjenopprettingsfrase
- En gjenopprettingsfrase er valgfri. Et hvelv får en bare når du velger Nivå 2, og den lagres etter at du har bestått en kort quiz.
- Telefonens sikre tilfeldighetsgenerator velger 9 engelske ord. De kommer fra to lister med 1 024 vanlige ord, i én av 4 faste rekkefølger. Det gir 92 biter med tilfeldighet. Ordene er engelske på alle språkene i appen.
- Frasen går gjennom de samme Argon2id-innstillingene og låser opp hovednøkkelen alene. Den trenger ikke enhetssaltet, så den virker også når mønsteret ikke gjør det lenger.
- En kopi av frasen og en kopi av hvelvets mønster (og PIN-kode) lagres på telefonen, hver kryptert to ganger: én gang med hovednøkkelen og én gang med en nøkkel i Android Keystore. Når frasen åpner hvelvet, viser appen mønsteret én gang. Det glemmes når appen låses.
- Frasen forblir den samme når du endrer mønsteret. Et hvelv uten frase har ingen vei tilbake hvis mønsteret er glemt.
Fingeravtrykk
Opplåsing med fingeravtrykk er valgfritt og virker for ett hvelv. Det er Android som sjekker fingeravtrykket, ikke LifeVeil; appen mottar aldri fingeravtrykket ditt. En nøkkel i Android Keystore som bare virker rett etter en sterk biometrisk sjekk, låser opp hovednøkkelen. Hvis noen legger til et nytt fingeravtrykk på telefonen, slutter denne nøkkelen å virke, og du må bruke mønsteret ditt igjen.
Sikkerhetskopifil
- En sikkerhetskopi er én
.lvb-fil. Den inneholder elementene dine nøyaktig slik de allerede er kryptert, pluss innpakkede kopier av hovednøkkelen: én for mønsteret du tegnet da du tok sikkerhetskopien, og én for gjenopprettingsfrasen, hvis hvelvet hadde en. - Mønsterkopien bruker et nytt tilfeldig salt for hver sikkerhetskopi, ikke enhetssaltet. Det er derfor du kan åpne sikkerhetskopien på en ny telefon.
- Filens hode er beskyttet, slik at endringer eller utbyttede deler blir oppdaget.
- Du velger hvor den skal lagres, i Androids egen lagringsskjerm. Den går aldri via oss.
- For å gjenopprette åpner du filen med mønsteret eller frasen som hører til den. Deretter tegner du et nytt mønster. Det gjenopprettede hvelvet starter uten gjenopprettingsfrase.
Annen beskyttelse i appen
- Skjermbilder, skjermopptak og forhåndsvisningen i listen over nylige apper er blokkert på alle skjermer.
- Som standard låses appen så snart du forlater den. Du kan velge 30 sekunder eller 1 minutt i stedet.
- Androids egen skysikkerhetskopi og overføring fra telefon til telefon tar ikke med dataene i LifeVeil. Bruk sikkerhetskopifilen i stedet.
- Appen ber ikke om tilgang til posisjon, kontakter eller «alle filer».
- Et tomt hvelv for hvert nytt mønster. Et hvelv uten filer ser likt ut enten det er lagret eller ikke, så den som tvinger deg til å åpne appen, ikke kan vite hva annet som finnes. Du kan slå dette av under Innstillinger > Sikkerhet, og da viser et mønster som ikke åpner noe, en feil i stedet.
Brems på gjetting
Fordi hvert mønster åpner et hvelv, ser gjetting ut som at mange tomme hvelv åpnes. LifeVeil bremser dette uten å si det på skjermen, og ventetiden er den samme for alle mønstre, også det riktige.
- I løpet av 24 timer legger 10 åpninger av hvelv uten filer til 10 sekunder på hver opplåsing, 20 legger til 60 sekunder, og 30 legger til 5 minutter, som er det meste.
- Tegn på automatisering går rett til det meste: mønstre som fullføres med under 2 sekunders mellomrom tre ganger på rad, eller berøringer som kommer fra tilgjengelighetstjenester eller injisert inndata i stedet for en finger.
- Hvert døgn uten at et tomt hvelv åpnes, letter bremsen ett trinn. Å stille telefonens klokke tilbake gjør den ikke kortere.
- Dette virker bare inne i appen. Det bremser ikke gjetting på en datamaskin med en kopiert fil (se begrensningene nedenfor).
KI og gjetting av mønstre
- KI kan ikke hoppe over matematikken. Hvert gjett må fortsatt kjøre Argon2id med 64 MiB minne. KI knekker ikke Argon2id eller AES, så ingen enkelt gjetning blir billigere.
- Det KI endrer, er rekkefølgen på gjetningene. Den kan lære seg formene folk liker (bokstaver, firkanter, favoritthjørner å starte i) og prøve dem først. Den kan også hjelpe med å lese et mønster fra en video filmet over skulderen din, eller fra flekker på skjermen.
- Derfor handler forsvaret om mønsteret, ikke matematikken. Appen advarer mot vanlige former. Det høyeste sikkerhetsnivået legger til en PIN-kode på 6 til 8 sifre, så et mønster som er sett på video, er ikke nok. Skjul mønsterlinjen gjør at det ikke er noen linje å filme. Enhetssaltet i Android Keystore hindrer gjetting utenfor telefonen.
Begrensninger du bør kjenne til
Ingen app kan beskytte mot alt. Dette er de ærlige begrensningene til LifeVeil.
Enkle mønstre kan gjettes
Korte eller vanlige former (en L, en Z, en rett linje) kan gjettes ved at noen ser på deg, ut fra flekker på skjermen eller på noen få forsøk. Virkelige mønstre er mye lettere å gjette enn antallet mulige mønstre tilsier. Bruk flere punkter og flere svinger. Appen advarer deg mot svært enkle mønstre, og før den lagrer et hvelv med et mønster på færre enn 6 punkter.
Hvor lang tid gjetting kan ta
Inne i appen tar hvert forsøk omtrent ett sekund, og gjentatt gjetting gjør hver opplåsing tregere, opptil 5 minutter. Men noen som har sikkerhetskopifilen din, eller som har hentet enhetssaltet fra en rootet telefon, kan gjette på en datamaskin i stedet, uten ventetid. Argon2id gjør dette tregere, men et mønster har langt færre muligheter enn et langt passord. Grove anslag for ett kraftig grafikkort (RTX 4090-klassen) med omtrent 1 000 gjetninger per sekund:
| Hva som gjettes | Muligheter | Tid, ett grafikkort |
|---|---|---|
| De 10 000 vanligste mønstrene | 104 | omtrent 10 sekunder |
| Alle mønstre med 6 punkter | 1,28 × 108 | omtrent 1,5 døgn |
| Alle mønstre med 7 punkter | 2,42 × 109 | omtrent 28 døgn |
| Alle mønstre med 8 punkter | 4,36 × 1010 | omtrent 1,4 år |
| Gjenopprettingsfrase (92 biter) | 4,95 × 1027 | omtrent 1,6 × 1017 år |
Dette er anslag, ikke målinger. Antallet mønstre er øvre grenser; virkelige mønstre er langt færre. Mer eller raskere maskinvare gjør gjettingen tilsvarende raskere. En PIN-kode på det høyeste nivået ganger disse tallene med opptil 108.
Hold sikkerhetskopifilen privat
Sikkerhetskopifilen inneholder ikke enhetssaltet, så alle som får tak i den, kan prøve mønstre uten nett, som vist ovenfor. Lagre den bare der bare du har tilgang, for eksempel i din egen skykonto, og bruk et lengre mønster.
Gjenopprettingsfrasen viser også mønsteret
Den som har gjenopprettingsfrasen til et hvelv, kan åpne hvelvet, og appen viser dem da mønsteret og PIN-koden. Hvis du bruker det samme mønsteret andre steder, for eksempel som skjermlås på telefonen, får de vite det også. Oppbevar papiret like trygt som selve filene.
Rootede eller infiserte telefoner
Hvis noen kan kjøre kode med appens tillatelser (for eksempel på en rootet telefon, eller med skadevare som har full kontroll), kan de låse opp enhetssaltet og gjette uten nett. Mens hvelvet er åpent, ligger nøklene i minnet og kan leses med root-tilgang eller en feilsøker. Noen kopier som lages inne i Android og Flutter, og bilder som vises på skjermen, kan ikke slettes fra minnet med en gang.
Noe informasjon er synlig
Antallet krypterte filer i appens lagring, den omtrentlige størrelsen deres og når de ble opprettet eller endret, er ikke skjult. Det er heller ikke det at LifeVeil er installert.
Det tomme hvelvet lurer bare skjermen
Den som kan lese appens filer (for eksempel på en rootet telefon), kan telle hvelvmappene og se at denne innstillingen er på. Bremsen teller lagrede og ulagrede tomme hvelv likt, så ventetiden i seg selv avslører ikke forskjellen.
Forkledningen endrer bare startskjermen
- Bare ikonet og navnet på startskjermen endres. Telefonens Innstillinger > Apper-liste, appinfo og lagringsskjermene viser fortsatt LifeVeil.
- Skjermlesere kan fortsatt si «LifeVeil». For eksempel gir Samsung One UI-startskjermen TalkBack det ekte appnavnet, og appen kan ikke endre dette.
- Androids delingsmeny viser alltid det ekte appnavnet, så LifeVeil fjerner seg fra den når du bytter ikon. Du kan slå den på igjen.
- Androids forespørsler om tillatelser viser det ekte navnet, så appen ber om tillatelser før du bytter ikon.
- Mens ikonet er byttet, sender ikke appen varsler.
- Forkledningskoden (4 til 8 sifre) viser bare låseskjermen. Den åpner ikke filene dine. Den lagres som en saltet hash, men med så få muligheter er den lett å finne hvis noen får tak i filen.
Fingeravtrykk er en svakere vei inn
Opplåsing med fingeravtrykk hopper over Argon2id. Styrken avhenger av fingeravtrykksensoren i telefonen din og Android Keystore. Du kan slå det av i Innstillinger når som helst.
Bildedetaljer
- For HEIC-, PNG- og WebP-bilder blir de skjulte detaljene (EXIF) værende inne i filen. Hele filen er likevel kryptert.
- På Android 10 og nyere fjerner Android GPS-posisjonen fra bilder som LifeVeil leser, fordi appen ikke ber om tilgang til posisjon. Når originalen slettes fra galleriet, er den posisjonen borte.
- Bilder som legges til via Androids bildevelger, får nye navn basert på datoen, fordi velgeren ikke gir det opprinnelige navnet.
Låsingen settes på pause under systemskjermer
Mens en systemskjerm er åpen (forespørsel om tillatelse, bekreftelse av sletting, bilde- eller filvelger, spørsmål om fingeravtrykk) og mens en import eller eksport pågår, venter appen med å låse seg. Hvis du har forlatt appen, låses den 2 sekunder etter at dette er ferdig.
Hvelvene deler ett enhetssalt
Alle hvelvene på en telefon bruker det samme enhetssaltet. Hvis noen har dette saltet, tester ett gjett alle hvelvene samtidig. Kostnaden for å angripe ett enkelt hvelv er den samme.
Ting ingen app kan stoppe
Noen som ser på mens du tegner mønsteret ditt, eller et kamera som filmer skjermen din.
Uten frase kan ingen hjelpe
Hvis du glemmer mønsteret til et hvelv uten gjenopprettingsfrase, eller mister både mønsteret og frasen, kan ingen gjenopprette filene i det. Ikke engang vi.