Hogyan védi a LifeVeil a fájljaidat
Ez az oldal egyszerű szavakkal elmagyarázza, mit csinál a LifeVeil, és azt is, mire nem képes. Jobb, ha ismered a korlátokat, mint ha egy túl nagy ígéretben bíznál.
Röviden
- Minden titkosítás a telefonodon történik. Nincs LifeVeil-szerver, és nincs fiók.
- Minden széf fájljai egy véletlenszerű kulccsal vannak titkosítva. Ezt a kulcsot csak az adott széf mintája (a legmagasabb szinten a PIN-kódjával együtt), a helyreállítási kifejezése, ha adtál hozzá, vagy az ujjlenyomatod, ha bekapcsoltad, oldhatja fel.
- Minden minta megnyit egy széfet. Az a minta, amely egyetlen mentett széfhez sem tartozik, üres széfet nyit, és semmi sem íródik ki, amíg nem adsz hozzá fájlt.
- Mi, a fejlesztők, soha nem ismerjük a mintádat, a PIN-kódodat, a kifejezésedet vagy a kulcsaidat. Nem tudjuk megnyitni a fájljaidat, és a mintádat sem tudjuk visszaállítani.
- Az Androidba épített titkosítást és a jól ismert libsodium könyvtárat használjuk. Nem saját titkosítást írtunk.
- A LifeVeil még nem esett át független biztonsági auditon.
A mintától a kulcsig
Egy 5×5-ös rácson rajzolsz mintát, és egyik pontot sem érintheted kétszer. Egy új minta beállításához legalább 6 pont kell. A LifeVeil a mintát az Argon2id segítségével alakítja kulccsá, amely a libsodium része (Androidon az 1.0.20-as verzió).
- Beállítások: 64 MiB memória, 3 menet, 1 sáv, 256 bites kulcs.
- Az Argon2id szándékosan lassú, és minden próbálkozáshoz sok memóriát igényel. Ez sokkal drágábbá teszi a videokártyás találgatást.
- A tesztelésre használt telefonjainkon egy feloldás körülbelül 0,6–0,9 másodpercig tart.
- A minta egy véletlenszerű, 16 bájtos eszközsóval keveredik. A só az alkalmazásban van tárolva, egy olyan kulccsal titkosítva, amelyet az Android Keystore őriz, és amely nem másolható le a telefonról.
- A mintáról nem készül tárolt másolat, kivéve azt, amelyet a helyreállítási kifejezés mellett őriz (lásd lent). Az alkalmazás úgy ellenőrzi a mintát, hogy megpróbálja vele feloldani a kulcsot.
- Amit a pontok feletti PIN-mezőbe írsz, ugyanabba a kulcsszármaztatásba kerül, mint a minta. Üres mező esetén csak a minta számít.
Biztonsági szintek
Minden széfnek egy szintje van. Az elején választod ki, és később módosíthatod itt: Beállítások > Széf > Biztonsági szint, miután újra lerajzoltad a mintát.
- Legmagasabb biztonság (Ultra): minta és egy 6–8 számjegyű PIN-kód, mindkettő csak a fejedben. A mesterséges intelligenciás találgatás ellen is biztonságos. Ha bármelyiket elfelejted, a széf nem állítható helyre.
- 1. szint (ajánlott): csak minta. Biztonságos, ha kerülöd a gyakori alakzatokat. Ha elfelejted, a széf nem állítható helyre.
- 2. szint: minta és egy papírra írt helyreállítási kifejezés. Ha elfelejted a mintát, vissza tudsz jutni, de aki megtalálja a papírt, szintén megnyithatja a széfet.
- 3. szint: minta és ujjlenyomat. Ez a legkényelmesebb, de valaki rákényszerítheti az ujjadat az érzékelőre. Az ujjlenyomat csak egy széfhez működik.
Hogyan titkosítja a fájlokat
- Minden széfnek van egy véletlenszerű, 256 bites mesterkulcsa. A mintádból és a helyreállítási kifejezésből készült kulcs csak „becsomagolja” (titkosítja) ezt a mesterkulcsot.
- A fájlok, a bélyegképek és az elemeid listája (eredeti fájlnevek, dátumok, méretek) AES-256-GCM titkosítással védettek, az Android beépített titkosításával. A GCM azt is észleli, ha egy fájlt módosítottak vagy kicseréltek.
- Az alkalmazásban lévő fájlok véletlenszerű nevet kapnak. A nagy fájlok 1 MiB-os darabokban vannak titkosítva, így a videók lejátszhatók anélkül, hogy titkosítatlan másolat kerülne a tárhelyre.
- A JPEG fotóknál a rejtett adatok (EXIF, például a fényképezőgép és a dátum) külön, szintén titkosítva vannak tárolva.
- Amikor az alkalmazás zárol, nullákkal írja felül a memóriában tartott kulcsokat.
Helyreállítási kifejezés
- A helyreállítási kifejezés nem kötelező. Egy széf csak akkor kap ilyet, ha a 2. szintet választod, és egy rövid teszt sikeres kitöltése után mentődik el.
- A telefon biztonságos véletlenszám-generátora 9 angol szót választ. A szavak két, egyenként 1024 gyakori szót tartalmazó listából származnak, 4 rögzített sorrend egyikében. Ez 92 bit véletlenszerűséget jelent. A szavak az alkalmazás minden nyelvén angolok.
- A kifejezés ugyanazokkal az Argon2id-beállításokkal kerül feldolgozásra, és önmagában is feloldja a mesterkulcsot. Nincs szüksége az eszközsóra, így akkor is működik, ha a minta már nem.
- A kifejezés és a széf mintájának (és PIN-kódjának) egy-egy másolata a telefonon van tárolva, mindkettő kétszeresen titkosítva: egyszer a mesterkulccsal, egyszer pedig egy Android Keystore-kulccsal. Amikor a kifejezés megnyitja a széfet, az alkalmazás egyszer megmutatja a mintát. Az alkalmazás zárolásakor ez törlődik a memóriából.
- A kifejezés változatlan marad, ha módosítod a mintát. Egy kifejezés nélküli széfhez nincs visszaút, ha elfelejted a mintát.
Ujjlenyomat
Az ujjlenyomatos feloldás nem kötelező, és egy széfhez működik. Az ujjlenyomatot az Android ellenőrzi, nem a LifeVeil; az alkalmazás soha nem kapja meg az ujjlenyomatodat. A mesterkulcsot egy olyan Android Keystore-kulcs oldja fel, amely csak közvetlenül egy erős biometrikus ellenőrzés után működik. Ha valaki új ujjlenyomatot ad hozzá a telefonhoz, ez a kulcs megszűnik működni, és ismét a mintádat kell használnod.
Mentési fájl
- A mentés egyetlen
.lvbfájl. Az elemeidet pontosan úgy tartalmazza, ahogy már titkosítva vannak, valamint a mesterkulcs becsomagolt másolatait: egyet a mentés készítésekor lerajzolt mintához, egyet pedig a helyreállítási kifejezéshez, ha a széfnek volt ilyen. - A mintához tartozó másolat minden mentésnél új, véletlenszerű sót használ, nem az eszközsót. Ez teszi lehetővé, hogy a mentést új telefonon is megnyisd.
- A fájl fejléce védett, így a módosítások vagy a kicserélt részek kiderülnek.
- Azt, hogy hová mented, az Android saját mentési képernyőjén választod ki. A fájl soha nem halad át rajtunk.
- Visszaállításkor a fájlt a hozzá tartozó mintával vagy kifejezéssel nyithatod meg. Ezután új mintát rajzolsz. A visszaállított széf helyreállítási kifejezés nélkül indul.
További védelmek az alkalmazásban
- A képernyőképek, a képernyőrögzítés és a legutóbbi alkalmazások listájában megjelenő előnézet minden képernyőn le van tiltva.
- Alapértelmezés szerint az alkalmazás azonnal zárol, amint kilépsz belőle. Helyette 30 másodpercet vagy 1 percet is választhatsz.
- Az Android saját felhőalapú biztonsági mentése és a telefonok közötti átvitel nem tartalmazza a LifeVeil adatait. Használd helyette a mentési fájlt.
- Az alkalmazás nem kér hozzáférést a helyadatokhoz, a névjegyekhez vagy az „összes fájlhoz”.
- Üres széf minden új mintához. Egy fájlok nélküli széf ugyanúgy néz ki, akár el van mentve, akár nincs, így aki az alkalmazás megnyitására kényszerít, nem tudja meg, mi van még benne. Ezt kikapcsolhatod itt: Beállítások > Biztonság; ekkor az a minta, amely semmit sem nyit meg, hibaüzenetet jelenít meg.
A találgatás lassítása
Mivel minden minta megnyit egy széfet, a találgatás úgy néz ki, mintha sok üres széf nyílna meg. A LifeVeil ezt lelassítja anélkül, hogy a képernyőn jelezné, és a várakozás minden mintánál ugyanannyi, a helyesnél is.
- 24 órán belül 10 fájlok nélküli széf megnyitása után minden feloldás 10 másodperccel tovább tart, 20 után 60 másodperccel, 30 után pedig 5 perccel, ami a legtöbb.
- Az automatizálás jelei azonnal a legnagyobb lassítást váltják ki: háromszor egymás után 2 másodpercnél rövidebb időközzel befejezett minták, vagy olyan érintések, amelyek ujj helyett kisegítő szolgáltatásból vagy beinjektált bevitelből származnak.
- Minden 24 óra, amely üres széf megnyitása nélkül telik el, egy fokozattal enyhíti. A telefon órájának visszaállítása nem rövidíti meg.
- Ez csak az alkalmazáson belül működik. A lemásolt fájllal számítógépen végzett találgatást nem lassítja (lásd a lenti korlátokat).
A mesterséges intelligencia és a minta kitalálása
- A mesterséges intelligencia nem kerülheti meg a matematikát. Minden próbálkozásnak továbbra is le kell futtatnia az Argon2id-t 64 MiB memóriával. A mesterséges intelligencia nem töri fel az Argon2id-t vagy az AES-t, így egyetlen próbálkozás sem lesz olcsóbb.
- A mesterséges intelligencia a próbálkozások sorrendjén változtat. Megtanulhatja, milyen alakzatokat kedvelnek az emberek (betűket, négyzeteket, kedvelt kezdősarkokat), és ezeket próbálhatja először. Abban is segíthet, hogy a mintát kiolvassák egy a vállad fölött készült videóból vagy a képernyőn lévő ujjnyomokból.
- A védekezés ezért a mintáról szól, nem a matematikáról. Az alkalmazás figyelmeztet a gyakori alakzatokra. A legmagasabb biztonsági szint egy 6–8 számjegyű PIN-kódot ad hozzá, így a videón látott minta önmagában nem elég. A Mintavonal elrejtése nem hagy lefilmezhető vonalat. Az Android Keystore-ban tárolt eszközsó megakadályozza a telefonon kívüli találgatást.
Korlátok, amelyekről tudnod kell
Egyetlen alkalmazás sem véd meg mindentől. Ezek a LifeVeil őszinte korlátai.
Az egyszerű minták kitalálhatók
A rövid vagy gyakori alakzatok (egy L, egy Z, egy egyenes vonal) kitalálhatók, ha valaki figyel közben, a képernyőn lévő ujjnyomokból, vagy néhány próbálkozással. A valódi mintákat sokkal könnyebb kitalálni, mint azt a lehetséges minták száma sugallja. Használj több pontot és több fordulatot. Az alkalmazás figyelmeztet a nagyon egyszerű mintákra, és mielőtt elment egy olyan széfet, amelynek mintája 6-nál kevesebb pontból áll.
Mennyi ideig tarthat a találgatás
Az alkalmazásban minden próbálkozás körülbelül egy másodpercig tart, és az ismételt találgatás minden feloldást lelassít, legfeljebb 5 percig. Aki viszont megszerzi a mentési fájlodat, vagy egy rootolt telefonról kinyeri az eszközsót, az számítógépen is találgathat, várakozás nélkül. Az Argon2id ezt lelassítja, de egy mintának sokkal kevesebb lehetősége van, mint egy hosszú jelszónak. Durva becslések egyetlen csúcskategóriás videokártyára (RTX 4090 kategória), másodpercenként körülbelül 1000 próbálkozással:
| Mit találgatnak | Lehetőségek | Idő egy videokártyával |
|---|---|---|
| A 10 000 leggyakoribb minta | 104 | körülbelül 10 másodperc |
| Minden 6 pontos minta | 1,28 × 108 | körülbelül 1,5 nap |
| Minden 7 pontos minta | 2,42 × 109 | körülbelül 28 nap |
| Minden 8 pontos minta | 4,36 × 1010 | körülbelül 1,4 év |
| Helyreállítási kifejezés (92 bit) | 4,95 × 1027 | körülbelül 1,6 × 1017 év |
Ezek becslések, nem mérések. A mintaszámok felső határok; a valódi minták jóval kevesebben vannak. Több vagy gyorsabb hardverrel a találgatás arányosan gyorsabb. A legmagasabb szinten a PIN-kód ezeket a számokat legfeljebb 108-szorosára növeli.
Tartsd titokban a mentési fájlt
A mentési fájl nem tartalmazza az eszközsót, így aki megszerzi, offline próbálgathatja a mintákat, ahogy fent látható. Csak olyan helyen tárold, amelyhez egyedül te férsz hozzá, például a saját felhőfiókodban, és használj hosszabb mintát.
A helyreállítási kifejezés a mintát is megmutatja
Akinél egy széf helyreállítási kifejezése van, meg tudja nyitni azt a széfet, és az alkalmazás ekkor megmutatja neki a mintát és a PIN-kódot. Ha ugyanezt a mintát máshol is használod, például a telefonod képernyőzárához, azt is megtudja. A papírt ugyanolyan gondosan őrizd, mint magukat a fájlokat.
Rootolt vagy fertőzött telefonok
Ha valaki az alkalmazás jogosultságaival tud kódot futtatni (például egy rootolt telefonon, vagy teljes irányítást szerzett kártevővel), feloldhatja az eszközsót, és offline találgathat. Amíg a széf nyitva van, a kulcsok a memóriában vannak, és root-hozzáféréssel vagy hibakeresővel kiolvashatók. Az Android és a Flutter által belül készített egyes másolatok, valamint a képernyőn megjelenített fotók nem törölhetők azonnal a memóriából.
Néhány információ látható
Az alkalmazás tárhelyén lévő titkosított fájlok száma, hozzávetőleges mérete, valamint létrehozásuk és módosításuk ideje nincs elrejtve. Az sem, hogy a LifeVeil telepítve van.
Az üres széf csak a képernyőt téveszti meg
Aki el tudja olvasni az alkalmazás fájljait (például rootolt telefonon), megszámolhatja a széfek mappáit, és láthatja, hogy ez a beállítás be van kapcsolva. A lassítás a mentett és a nem mentett üres széfeket egyformán számolja, így maga a várakozás nem árulja el, melyik melyik.
Az álcázás csak a kezdőképernyőt változtatja meg
- Csak az indítóikon és a név változik meg. A telefon Beállítások > Alkalmazások listája, az alkalmazásinformációk és a tárhelyképernyők továbbra is a LifeVeil nevet mutatják.
- A képernyőolvasók továbbra is kimondhatják a „LifeVeil” nevet. A Samsung One UI indítója például a valódi alkalmazásnevet adja át a TalkBacknek, és ezen az alkalmazás nem tud változtatni.
- Az Android megosztási menüje mindig a valódi alkalmazásnevet mutatja, ezért a LifeVeil az ikon váltásakor eltűnik onnan. Ezt visszakapcsolhatod.
- Az Android engedélykérései a valódi nevet mutatják, ezért az alkalmazás az ikon váltása előtt kéri el az engedélyeket.
- Amíg az ikon módosítva van, az alkalmazás nem küld értesítéseket.
- Az álcakód (4–8 számjegy) csak a zárolási képernyőt jeleníti meg. A fájljaidat nem nyitja meg. Sózott hash-ként van tárolva, de ilyen kevés lehetőség mellett könnyen kideríthető, ha valaki megszerzi a fájlt.
Az ujjlenyomat gyengébb út
Az ujjlenyomatos feloldás kihagyja az Argon2id-t. Az erőssége a telefonod ujjlenyomat-érzékelőjétől és az Android Keystore-tól függ. A Beállításokban bármikor kikapcsolhatod.
Fotóadatok
- HEIC, PNG és WebP fotóknál a rejtett adatok (EXIF) a fájlon belül maradnak. A teljes fájl ettől még titkosítva van.
- Android 10 és újabb rendszeren az Android eltávolítja a GPS-helyadatot a LifeVeil által beolvasott fotókból, mert az alkalmazás nem kér hozzáférést a helyadatokhoz. Ha az eredetit törlöd a galériából, ez a helyadat elvész.
- Az Android fotóválasztójával hozzáadott fotók dátumon alapuló új nevet kapnak, mert a választó nem adja át az eredeti nevet.
A zárolás szünetel a rendszerképernyők alatt
Amíg egy rendszerképernyő nyitva van (engedélykérés, törlés megerősítése, fotó- vagy fájlválasztó, ujjlenyomat-kérés), és amíg importálás vagy exportálás fut, az alkalmazás vár a zárolással. Ha közben kiléptél az alkalmazásból, ezek befejezése után 2 másodperccel zárol.
A széfek egy közös eszközsót használnak
Egy telefonon minden széf ugyanazt az eszközsót használja. Ha valaki megszerzi ezt a sót, egyetlen próbálkozással egyszerre az összes széfet tesztelheti. Egyetlen széf támadásának költsége ugyanannyi marad.
Amit egyetlen alkalmazás sem tud megakadályozni
Ha valaki figyeli, ahogy a mintádat rajzolod, vagy egy kamera filmezi a képernyődet.
Kifejezés nélkül senki sem tud segíteni
Ha elfelejted egy helyreállítási kifejezés nélküli széf mintáját, vagy a mintát és a kifejezést is elveszíted, senki sem tudja visszaállítani a fájljait. Még mi sem.