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.
- Dina filer krypteras med en slumpmässig nyckel. Bara ditt mönster, din återställningsfras eller ditt fingeravtryck kan låsa upp den nyckeln.
- Vi, utvecklarna, har aldrig ditt mönster, 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, med minst 6 punkter och utan att använda någon punkt två gånger. 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. Appen kontrollerar ett mönster genom att försöka låsa upp nyckeln.
- Efter 5 felaktiga mönster i rad måste du vänta 30 sekunder. Väntetiden fördubblas efter varje ytterligare misstag, upp till 16 minuter.
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
- När du skapar ett valv väljer telefonens säkra slumptalsgenerator 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 lagras på telefonen, krypterad två gånger: en gång med huvudnyckeln och en gång med en nyckel i Android Keystore. Du kan se den i Inställningar efter att du har ritat ditt mönster igen.
- När du byter mönster eller använder frasen för att komma in igen får du en ny fras. Den gamla slutar fungera.
Fingeravtryck
Upplåsning med fingeravtryck är valfri. 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 två inslagna kopior av huvudnyckeln: en för mönstret du ritade när du gjorde säkerhetskopian och en för återställningsfrasen du hade då. - 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 och får en ny å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”.
- Tomt valv vid fel mönster. Ett mönster som inte öppnar något valv visar ett tomt valv i stället för ett fel, så den som tvingar dig att öppna appen kan inte veta vad mer som finns. Felaktiga försök räknas fortfarande, inkräktarfoton tas fortfarande och väntetiderna gäller fortfarande. Du kan stänga av det under Inställningar > Säkerhet > Tomt valv vid fel mönster.
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. Styrkemätaren varnar för vanliga former. Mönster + PIN lägger till en PIN-kod på 4–6 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.
Hur lång tid gissning kan ta
I appen tar varje försök ungefär en sekund, och väntetiderna växer efter 5 misstag. 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.
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.
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å. Och efter 5 felaktiga mönster får du vänta, vilket visar att de tidigare mönstren inte öppnade något.
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.
Inkräktarfoton
Appen spelar inget slutarljud, men telefoner som säljs i vissa länder, som Japan och Korea, spelar alltid ett. Inget foto tas om en annan app använder kameran eller om det inte finns någon främre kamera. Tills du låser upp det första valvet du skapade förseglas fotona med en nyckel i Android Keystore.
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.
Om du förlorar båda kan ingen hjälpa dig
Om du förlorar både ditt mönster och din återställningsfras kan ingen återställa dina filer. Inte ens vi.