Så skyddar LifeVeil dina filer
Den här sidan förklarar med enkla ord vad LifeVeil gör, och även vad appen inte kan göra. Vi vill hellre att du känner till begränsningarna än att du litar på ett löfte som är för stort.
I korthet
- All kryptering sker på din telefon. Det finns ingen LifeVeil-server och inget konto.
- Varje valvs filer krypteras med en slumpmässig nyckel. Bara valvets mönster (med dess pinkod på den högsta nivån), dess återställningsfras om du har lagt till en, eller ditt fingeravtryck om du har aktiverat det kan låsa upp den nyckeln.
- Varje mönster öppnar ett valv. Ett mönster som inte matchar något sparat valv öppnar ett tomt, och ingenting skrivs förrän du lägger till en fil i det.
- Vi, utvecklarna, har aldrig ditt mönster, din pinkod, din fras eller dina nycklar. Vi kan inte öppna dina filer och vi kan inte återställa ditt mönster.
- Vi använder krypteringen som är inbyggd i Android och det välkända biblioteket libsodium. Vi har inte skrivit någon egen kryptering.
- LifeVeil har ännu inte genomgått någon oberoende säkerhetsgranskning.
Från ditt mönster till en nyckel
Du ritar ett mönster på ett 5×5-rutnät, utan att använda någon punkt två gånger. Ett nytt mönster som du ställer in behöver minst 6 punkter. LifeVeil gör om mönstret till en nyckel med Argon2id från libsodium (version 1.0.20 på Android).
- Inställningar: 64 MiB minne, 3 omgångar, 1 spår, 256-bitars nyckel.
- Argon2id är långsamt med avsikt och kräver mycket minne för varje gissning. Det gör det mycket dyrare att gissa med grafikkort.
- På våra testtelefoner tar en upplåsning ungefär 0,6 till 0,9 sekunder.
- Mönstret blandas med ett slumpmässigt enhetssalt på 16 byte. Saltet lagras i appen, krypterat med en nyckel som förvaras i Android Keystore och som inte kan kopieras från telefonen.
- Ingen kopia av mönstret lagras, utom den som sparas tillsammans med en återställningsfras (se nedan). Appen kontrollerar ett mönster genom att försöka låsa upp nyckeln.
- Det du skriver i pinkodsrutan ovanför punkterna går in i samma nyckelhärledning som mönstret. En tom ruta betyder bara mönstret.
Säkerhetsnivåer
Varje valv har en nivå. Du väljer den när du börjar och kan ändra den senare under Inställningar > Valv > Säkerhetsnivå, efter att du har ritat mönstret igen.
- Högsta säkerhet (Ultra): mönster och en pinkod på 6 till 8 siffror, båda bara i ditt huvud. Säkert även mot gissning med AI. Om du glömmer någon av dem kan valvet inte återställas.
- Nivå 1 (rekommenderas): bara mönster. Säkert om du undviker vanliga former. Om du glömmer det kan valvet inte återställas.
- Nivå 2: mönster och en återställningsfras nedskriven på papper. Du kan komma in igen om du glömmer mönstret, men den som hittar papperet kan också öppna valvet.
- Nivå 3: mönster och fingeravtryck. Det smidigaste, men någon skulle kunna tvinga ditt finger mot sensorn. Fingeravtryck fungerar bara för ett valv.
Så krypteras filerna
- Varje valv har en slumpmässig huvudnyckel på 256 bitar. Din mönsternyckel och din återställningsnyckel ”slår bara in” (krypterar) den här huvudnyckeln.
- Filer, miniatyrer och listan över dina objekt (ursprungliga filnamn, datum, storlekar) krypteras med AES-256-GCM, med hjälp av Androids inbyggda kryptering. GCM upptäcker också om en fil har ändrats eller bytts ut.
- Filer i appen har slumpmässiga namn. Stora filer krypteras i delar om 1 MiB, så att videor kan spelas upp utan att en okrypterad kopia någonsin skrivs till lagringen.
- För JPEG-foton lagras de dolda uppgifterna (EXIF, till exempel kamera och datum) separat, också krypterade.
- När appen låses skriver den över nycklarna den har i minnet med nollor.
Återställningsfras
- En återställningsfras är valfri. Ett valv får en bara när du väljer Nivå 2, och den sparas efter att du har klarat ett kort test.
- Telefonens säkra slumptalsgenerator väljer 9 engelska ord. De kommer från två listor med 1 024 vanliga ord, i en av 4 fasta ordningar. Det ger 92 bitar slumpmässighet. Orden är engelska på alla språk i appen.
- Frasen går igenom samma Argon2id-inställningar och låser upp huvudnyckeln på egen hand. Den behöver inte enhetssaltet, så den fungerar även när mönstret inte längre gör det.
- En kopia av frasen och en kopia av valvets mönster (och pinkod) lagras på telefonen, var och en krypterad två gånger: en gång med huvudnyckeln och en gång med en nyckel i Android Keystore. När frasen öppnar valvet visar appen mönstret en gång. Det glöms när appen låses.
- Frasen förblir densamma när du byter mönster. Ett valv utan fras har ingen väg tillbaka om mönstret glöms bort.
Fingeravtryck
Upplåsning med fingeravtryck är valfri och fungerar för ett valv. Det är Android som kontrollerar fingeravtrycket, inte LifeVeil; appen får aldrig ditt fingeravtryck. En nyckel i Android Keystore, som bara fungerar direkt efter en stark biometrisk kontroll, låser upp huvudnyckeln. Om någon lägger till ett nytt fingeravtryck på telefonen slutar den här nyckeln att fungera och du måste använda ditt mönster igen.
Säkerhetskopia
- En säkerhetskopia är en enda
.lvb-fil. Den innehåller dina objekt precis som de redan är krypterade, plus inslagna kopior av huvudnyckeln: en för mönstret du ritade när du gjorde säkerhetskopian och en för återställningsfrasen, om valvet hade en. - Mönsterkopian använder ett nytt slumpmässigt salt för varje säkerhetskopia, inte enhetssaltet. Det är därför du kan öppna säkerhetskopian på en ny telefon.
- Filens huvud är skyddat så att ändringar eller utbytta delar upptäcks.
- Du väljer var den ska sparas i Androids egen sparskärm. Den passerar aldrig oss.
- För att återställa öppnar du filen med dess mönster eller dess fras. Sedan ritar du ett nytt mönster. Det återställda valvet börjar utan återställningsfras.
Andra skydd i appen
- Skärmbilder, skärminspelning och förhandsvisningen i listan över senaste appar blockeras på alla skärmar.
- Som standard låses appen så fort du lämnar den. Du kan välja 30 sekunder eller 1 minut i stället.
- Androids egen molnsäkerhetskopiering och överföring mellan telefoner tar inte med LifeVeils data. Använd säkerhetskopian i stället.
- Appen ber inte om åtkomst till plats, kontakter eller ”alla filer”.
- Ett tomt valv för varje nytt mönster. Ett valv utan filer ser likadant ut oavsett om det har sparats eller inte, så den som tvingar dig att öppna appen kan inte veta vad mer som finns. Du kan stänga av det under Inställningar > Säkerhet, och då visar ett mönster som inte öppnar något ett fel i stället.
Bromsa gissningar
Eftersom varje mönster öppnar ett valv ser gissning ut som att många tomma valv öppnas. LifeVeil bromsar detta utan att visa det på skärmen, och väntetiden är densamma för varje mönster, även det rätta.
- Inom 24 timmar lägger 10 öppningar av valv utan filer till 10 sekunder på varje upplåsning, 20 lägger till 60 sekunder och 30 lägger till 5 minuter, som mest.
- Tecken på automatisering går direkt till det högsta: mönster som avslutas med mindre än 2 sekunders mellanrum tre gånger i rad, eller beröringar som kommer från tillgänglighetstjänster eller injicerad inmatning i stället för från ett finger.
- Varje dygn utan att ett tomt valv öppnas sänker bromsen ett steg. Att ställa tillbaka telefonens klocka förkortar den inte.
- Detta fungerar bara i appen. Det bromsar inte gissning på en dator med en kopierad fil (se begränsningarna nedan).
AI och gissning av mönster
- AI kan inte hoppa över matematiken. Varje gissning måste fortfarande köra Argon2id med 64 MiB minne. AI knäcker inte Argon2id eller AES, så ingen enskild gissning blir billigare.
- Det AI ändrar är ordningen på gissningarna. Den kan lära sig vilka former människor gillar (bokstäver, kvadrater, favorithörn att börja i) och prova dem först. Den kan också hjälpa till att läsa av ett mönster från en video som filmats över din axel, eller från fläckar på skärmen.
- Därför handlar skyddet om mönstret, inte om matematiken. Appen varnar för vanliga former. Den högsta säkerhetsnivån lägger till en pinkod på 6 till 8 siffror, så att ett mönster som syns på video inte räcker. Dölj mönsterlinjen lämnar ingen linje att filma. Enhetssaltet i Android Keystore förhindrar gissning utanför telefonen.
Begränsningar du bör känna till
Ingen app kan skydda mot allt. Det här är LifeVeils ärliga begränsningar.
Enkla mönster kan gissas
Korta eller vanliga former (ett L, ett Z, en rak linje) kan gissas genom att någon tittar på dig, genom fläckar på skärmen eller på några få försök. Verkliga mönster är mycket lättare att gissa än antalet möjliga mönster antyder. Använd fler punkter och fler svängar. Appen varnar dig för mycket enkla mönster, och innan den sparar ett valv vars mönster har färre än 6 punkter.
Hur lång tid gissning kan ta
I appen tar varje försök ungefär en sekund, och upprepade gissningar gör varje upplåsning långsammare, upp till 5 minuter. Men den som har din säkerhetskopia, eller som har tagit enhetssaltet från en rootad telefon, kan i stället gissa på en dator, utan väntetider. Argon2id bromsar detta, men ett mönster har betydligt färre möjligheter än ett långt lösenord. Ungefärliga uppskattningar för ett enda kraftfullt grafikkort (i klass med RTX 4090) med cirka 1 000 gissningar per sekund:
| Vad som gissas | Möjligheter | Tid, ett grafikkort |
|---|---|---|
| De 10 000 vanligaste mönstren | 104 | cirka 10 sekunder |
| Alla mönster med 6 punkter | 1,28 × 108 | cirka 1,5 dygn |
| Alla mönster med 7 punkter | 2,42 × 109 | cirka 28 dygn |
| Alla mönster med 8 punkter | 4,36 × 1010 | cirka 1,4 år |
| Återställningsfras (92 bitar) | 4,95 × 1027 | cirka 1,6 × 1017 år |
Detta är uppskattningar, inte mätningar. Antalet mönster är övre gränser; verkliga mönster är betydligt färre. Mer eller snabbare hårdvara gör gissningen snabbare i motsvarande grad. En pinkod på den högsta nivån multiplicerar dessa tal med upp till 108.
Håll din säkerhetskopia privat
Säkerhetskopian innehåller inte enhetssaltet, så den som får tag i den kan prova mönster offline, som visas ovan. Förvara den bara där endast du har åtkomst, till exempel i ditt eget molnkonto, och använd ett längre mönster.
Återställningsfrasen visar också mönstret
Den som har ett valvs återställningsfras kan öppna valvet, och appen visar då valvets mönster och pinkod. Om du använder samma mönster någon annanstans, till exempel som telefonens skärmlås, får personen veta det också. Förvara papperet lika säkert som själva filerna.
Rootade eller infekterade telefoner
Om någon kan köra kod med appens behörigheter (till exempel på en rootad telefon, eller med skadlig kod som har full kontroll) kan hen låsa upp enhetssaltet och gissa offline. Medan valvet är öppet finns nycklarna i minnet och kan läsas med root-åtkomst eller en felsökare. Vissa kopior som görs inuti Android och Flutter, och foton som visas på skärmen, kan inte raderas från minnet direkt.
Viss information syns
Antalet krypterade filer i appens lagring, deras ungefärliga storlek och när de skapades eller ändrades döljs inte. Inte heller det faktum att LifeVeil är installerad.
Det tomma valvet lurar bara skärmen
Den som kan läsa appens filer (till exempel på en rootad telefon) kan räkna valvmapparna och se att inställningen är på. Bromsen räknar sparade och osparade tomma valv på samma sätt, så väntetiden i sig avslöjar inte skillnaden.
Förklädnaden ändrar bara startskärmen
- Bara ikonen och namnet på startskärmen ändras. Listan i telefonens Inställningar > Appar, appinformationen och lagringsskärmarna visar fortfarande LifeVeil.
- Skärmläsare kan fortfarande säga ”LifeVeil”. Till exempel ger startskärmen i Samsung One UI TalkBack det riktiga appnamnet, och appen kan inte ändra det.
- Androids delningsmeny visar alltid det riktiga appnamnet, så LifeVeil tar bort sig själv från den när du byter ikon. Du kan aktivera det igen.
- Androids behörighetsförfrågningar visar det riktiga namnet, så appen ber om behörigheter innan du byter ikon.
- Medan ikonen är bytt skickar appen inga aviseringar.
- Förklädnadskoden (4 till 8 siffror) visar bara låsskärmen. Den öppnar inte dina filer. Den lagras som en saltad hash, men med så få möjligheter är den lätt att hitta om någon får tag i filen.
Fingeravtryck är en svagare väg
Upplåsning med fingeravtryck hoppar över Argon2id. Hur stark den är beror på telefonens fingeravtryckssensor och Android Keystore. Du kan stänga av den i Inställningar när som helst.
Fotouppgifter
- För HEIC-, PNG- och WebP-foton stannar de dolda uppgifterna (EXIF) kvar i filen. Hela filen är ändå krypterad.
- På Android 10 och senare tar Android bort GPS-platsen från foton som LifeVeil läser, eftersom appen inte ber om platsåtkomst. När originalet raderas från galleriet försvinner den platsen.
- Foton som läggs till via Androids fotoväljare får nya namn baserade på datumet, eftersom väljaren inte ger det ursprungliga namnet.
Låsningen pausas under systemskärmar
Medan en systemskärm är öppen (behörighetsförfrågan, bekräftelse av radering, foto- eller filväljare, fråga om fingeravtryck) och medan en import eller export pågår väntar appen med att låsa. Om du har lämnat appen låses den 2 sekunder efter att det är klart.
Valven delar ett enhetssalt
Alla valv på en telefon använder samma enhetssalt. Om någon har det saltet testar en gissning alla valv på en gång. Kostnaden för att angripa ett enskilt valv är densamma.
Sådant som ingen app kan stoppa
Någon som tittar när du ritar ditt mönster, eller en kamera som filmar din skärm.
Utan fras kan ingen hjälpa dig
Om du glömmer mönstret till ett valv som saknar återställningsfras, eller förlorar både mönstret och frasen, kan ingen återställa valvets filer. Inte ens vi.