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 dine krypteres med en tilfeldig nøkkel. Bare mønsteret ditt, gjenopprettingsfrasen din eller fingeravtrykket ditt kan låse opp den nøkkelen.
- Vi som utvikler appen, har aldri mønsteret, 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, med minst 6 punkter og uten å bruke noe punkt to ganger. 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. Appen sjekker et mønster ved å prøve å låse opp nøkkelen.
- Etter 5 feil mønstre på rad må du vente i 30 sekunder. Ventetiden dobles etter hver ny feil, opptil 16 minutter.
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
- Når du oppretter et hvelv, velger telefonens sikre tilfeldighetsgenerator 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 lagres på telefonen, kryptert to ganger: én gang med hovednøkkelen og én gang med en nøkkel i Android Keystore. Du kan se den i Innstillinger etter at du har tegnet mønsteret ditt på nytt.
- Når du endrer mønsteret ditt eller bruker frasen for å komme inn igjen, får du en ny frase. Den gamle slutter å virke.
Fingeravtrykk
Opplåsing med fingeravtrykk er valgfritt. 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 to innpakkede kopier av hovednøkkelen: én for mønsteret du tegnet da du tok sikkerhetskopien, og én for gjenopprettingsfrasen du hadde da. - 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 og får en ny 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».
- Tomt hvelv ved feil mønster. Et mønster som ikke åpner noe hvelv, viser et tomt hvelv i stedet for en feil, så den som tvinger deg til å åpne appen, ikke kan vite hva annet som finnes. Feil forsøk telles fortsatt, det tas fortsatt bilder av inntrengere, og ventetidene gjelder fortsatt. Du kan slå det av under Innstillinger > Sikkerhet > Tomt hvelv ved feil mønster.
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. Styrkemåleren advarer mot vanlige former. Mønster + PIN legger til en PIN-kode på 4–6 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.
Hvor lang tid gjetting kan ta
Inne i appen tar hvert forsøk omtrent ett sekund, og ventetiden øker etter 5 feil. 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.
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.
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å. Og etter 5 feil mønstre må du vente, noe som viser at de tidligere mønstrene ikke åpnet noe.
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.
Bilder av inntrengere
Appen spiller ikke av noen lukkerlyd, men telefoner som selges i enkelte land, som Japan og Korea, spiller alltid av en. Det tas ikke noe bilde hvis en annen app bruker kameraet eller det ikke finnes noe frontkamera. Frem til du låser opp det første hvelvet du opprettet, er bildene forseglet med en nøkkel i Android Keystore.
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.
Hvis du mister begge, kan ingen hjelpe
Hvis du mister både mønsteret og gjenopprettingsfrasen, kan ingen gjenopprette filene dine. Ikke engang vi.