Comment LifeVeil protège vos fichiers
Cette page explique avec des mots simples ce que fait LifeVeil, et aussi ce qu’il ne peut pas faire. Nous préférons que vous connaissiez les limites plutôt que de vous fier à une promesse trop belle.
En bref
- Tout le chiffrement se fait sur votre téléphone. Il n’y a ni serveur LifeVeil ni compte.
- Vos fichiers sont chiffrés avec une clé aléatoire. Seuls votre schéma, votre phrase de récupération ou votre empreinte digitale peuvent déverrouiller cette clé.
- Nous, les développeurs, n’avons jamais votre schéma, votre phrase ni vos clés. Nous ne pouvons pas ouvrir vos fichiers, ni réinitialiser votre schéma.
- Nous utilisons le chiffrement intégré à Android et la bibliothèque reconnue libsodium. Nous n’avons pas écrit notre propre chiffrement.
- LifeVeil n’a pas encore fait l’objet d’un audit de sécurité indépendant.
De votre schéma à une clé
Vous tracez un schéma sur une grille de 5×5, avec au moins 6 points et sans passer deux fois par le même point. LifeVeil transforme le schéma en clé avec Argon2id, issu de libsodium (version 1.0.20 sur Android).
- Paramètres : 64 Mio de mémoire, 3 passes, 1 voie, clé de 256 bits.
- Argon2id est lent volontairement et demande beaucoup de mémoire pour chaque tentative. Deviner avec des cartes graphiques coûte donc beaucoup plus cher.
- Sur nos téléphones de test, un déverrouillage prend environ 0,6 à 0,9 seconde.
- Le schéma est combiné à un sel de l’appareil aléatoire de 16 octets. Ce sel est stocké dans l’application, chiffré avec une clé conservée dans l’Android Keystore, qui ne peut pas être copiée hors du téléphone.
- Aucune copie du schéma n’est stockée. L’application vérifie un schéma en essayant de déverrouiller la clé.
- Après 5 schémas erronés d’affilée, vous devez attendre 30 secondes. L’attente double à chaque nouvelle erreur, jusqu’à 16 minutes.
Comment les fichiers sont chiffrés
- Chaque coffre a une clé principale aléatoire de 256 bits. La clé issue de votre schéma et la clé de récupération ne font qu’« envelopper » (chiffrer) cette clé principale.
- Les fichiers, les miniatures et la liste de vos éléments (noms de fichiers d’origine, dates, tailles) sont chiffrés avec AES-256-GCM, grâce au chiffrement intégré à Android. GCM détecte aussi si un fichier a été modifié ou échangé.
- Dans l’application, les fichiers portent des noms aléatoires. Les gros fichiers sont chiffrés par blocs de 1 Mio, ce qui permet de lire les vidéos sans jamais écrire de copie en clair dans le stockage.
- Pour les photos JPEG, les informations cachées (EXIF, comme l’appareil photo et la date) sont stockées à part, elles aussi chiffrées.
- Quand l’application se verrouille, elle remplace par des zéros les clés qu’elle garde en mémoire.
Phrase de récupération
- Lorsque vous créez un coffre, le générateur de nombres aléatoires sécurisé du téléphone choisit 9 mots anglais. Ils proviennent de deux listes de 1 024 mots courants, dans l’un de 4 ordres fixes. Cela représente 92 bits d’aléatoire. Les mots sont en anglais dans toutes les langues de l’application.
- La phrase passe par les mêmes paramètres Argon2id et déverrouille à elle seule la clé principale. Elle n’a pas besoin du sel de l’appareil, elle fonctionne donc même quand le schéma ne fonctionne plus.
- Une copie de la phrase est stockée sur le téléphone, chiffrée deux fois : une fois avec la clé principale et une fois avec une clé de l’Android Keystore. Vous pouvez la voir dans les Paramètres après avoir tracé à nouveau votre schéma.
- Quand vous changez de schéma ou utilisez la phrase pour revenir dans l’application, vous recevez une nouvelle phrase. L’ancienne cesse de fonctionner.
Empreinte digitale
Le déverrouillage par empreinte digitale est facultatif. C’est Android qui vérifie l’empreinte, pas LifeVeil ; l’application ne reçoit jamais votre empreinte. Une clé de l’Android Keystore, utilisable uniquement juste après une vérification biométrique forte, déverrouille la clé principale. Si quelqu’un ajoute une nouvelle empreinte sur le téléphone, cette clé cesse de fonctionner et vous devez de nouveau utiliser votre schéma.
Fichier de sauvegarde
- Une sauvegarde est un seul fichier
.lvb. Il contient vos éléments tels qu’ils sont déjà chiffrés, plus deux copies enveloppées de la clé principale : une pour le schéma que vous avez tracé en créant la sauvegarde, et une pour la phrase de récupération que vous aviez alors. - La copie liée au schéma utilise un nouveau sel aléatoire pour chaque sauvegarde, et non le sel de l’appareil. C’est ce qui vous permet d’ouvrir la sauvegarde sur un nouveau téléphone.
- L’en-tête du fichier est protégé, de sorte que toute modification ou tout échange de parties est détecté.
- Vous choisissez l’emplacement d’enregistrement avec l’écran d’enregistrement d’Android. Le fichier ne passe jamais par nous.
- Pour restaurer, ouvrez le fichier avec son schéma ou sa phrase. Vous tracez ensuite un nouveau schéma et recevez une nouvelle phrase de récupération.
Autres protections dans l’application
- Les captures d’écran, l’enregistrement de l’écran et l’aperçu dans la liste des applications récentes sont bloqués sur tous les écrans.
- Par défaut, l’application se verrouille dès que vous la quittez. Vous pouvez choisir 30 secondes ou 1 minute à la place.
- La sauvegarde dans le cloud d’Android et le transfert d’un téléphone à l’autre n’incluent pas les données de LifeVeil. Utilisez plutôt le fichier de sauvegarde.
- L’application ne demande pas l’accès à la position, aux contacts ni à « tous les fichiers ».
- Coffre vide si le schéma est incorrect. Un schéma qui n'ouvre aucun coffre affiche un coffre vide au lieu d'une erreur : une personne qui vous force à ouvrir l'application ne peut pas savoir ce qu'il y a d'autre. Les essais ratés sont toujours comptés, les photos d'intrus sont toujours prises et les délais d'attente s'appliquent toujours. Vous pouvez désactiver cette option dans Paramètres > Sécurité > Coffre vide si le schéma est incorrect.
L’IA et la devinette du schéma
- L’IA ne peut pas sauter le calcul. Chaque tentative doit toujours exécuter Argon2id avec 64 Mio de mémoire. L’IA ne casse ni Argon2id ni AES, donc aucune tentative ne devient moins coûteuse.
- Ce que l’IA change, c’est l’ordre des tentatives. Elle peut apprendre les formes que les gens aiment (lettres, carrés, coins de départ favoris) et les essayer en premier. Elle peut aussi aider à lire un schéma sur une vidéo filmée par-dessus votre épaule, ou à partir des traces de doigts sur l’écran.
- Les défenses portent donc sur le schéma, pas sur le calcul. L’indicateur de robustesse signale les formes courantes. Schéma + code PIN ajoute un code PIN de 4 à 6 chiffres, pour qu’un schéma vu sur une vidéo ne suffise pas. Masquer le tracé du schéma ne laisse aucun trait à filmer. Le sel de l’appareil dans l’Android Keystore empêche de deviner hors du téléphone.
Les limites à connaître
Aucune application ne peut protéger contre tout. Voici, en toute honnêteté, les limites de LifeVeil.
Les schémas simples peuvent être devinés
Les formes courtes ou courantes (un L, un Z, une ligne droite) peuvent être devinées en vous observant, grâce aux traces de doigts sur l’écran, ou en quelques essais. Les schémas réels sont bien plus faciles à deviner que ne le laisse penser le nombre de schémas possibles. Utilisez plus de points et plus de changements de direction. L’application vous avertit des schémas très simples.
Combien de temps pourrait prendre la devinette
Dans l’application, chaque essai prend environ une seconde, et les attentes s’allongent après 5 erreurs. Mais une personne qui a votre fichier de sauvegarde, ou qui a récupéré le sel de l’appareil sur un téléphone rooté, peut deviner sur un ordinateur, sans aucune attente. Argon2id ralentit cela, mais un schéma offre bien moins de possibilités qu’un long mot de passe. Estimations approximatives pour une seule carte graphique haut de gamme (classe RTX 4090), à environ 1 000 tentatives par seconde :
| Ce qui est deviné | Possibilités | Temps, une carte graphique |
|---|---|---|
| Les 10 000 schémas les plus courants | 104 | environ 10 secondes |
| Tous les schémas de 6 points | 1,28 × 108 | environ 1,5 jour |
| Tous les schémas de 7 points | 2,42 × 109 | environ 28 jours |
| Tous les schémas de 8 points | 4,36 × 1010 | environ 1,4 an |
| Phrase de récupération (92 bits) | 4,95 × 1027 | environ 1,6 × 1017 ans |
Ce sont des estimations, pas des mesures. Les nombres de schémas sont des maximums ; les schémas réels sont bien moins nombreux. Un matériel plus nombreux ou plus rapide accélère la devinette en proportion.
Gardez votre fichier de sauvegarde privé
Le fichier de sauvegarde ne contient pas le sel de l’appareil : toute personne qui l’obtient peut donc essayer des schémas hors ligne, comme indiqué ci-dessus. Stockez-le uniquement à un endroit auquel vous seul avez accès, comme votre propre compte cloud, et utilisez un schéma plus long.
Téléphones rootés ou infectés
Si quelqu’un peut exécuter du code avec les autorisations de l’application (par exemple sur un téléphone rooté, ou avec un logiciel malveillant qui en a le contrôle total), il peut déverrouiller le sel de l’appareil et deviner hors ligne. Tant que le coffre est ouvert, les clés sont en mémoire et peuvent être lues avec un accès root ou un débogueur. Certaines copies faites à l’intérieur d’Android et de Flutter, ainsi que les photos affichées à l’écran, ne peuvent pas être effacées de la mémoire immédiatement.
Certaines informations sont visibles
Le nombre de fichiers chiffrés dans le stockage de l’application, leur taille approximative et leurs dates de création ou de modification ne sont pas cachés. Le fait que LifeVeil soit installé ne l’est pas non plus.
Le coffre vide ne trompe que l'écran
Une personne qui peut lire les fichiers de l'application (sur un téléphone rooté, par exemple) peut compter les dossiers des coffres et voir que ce réglage est activé. Et après 5 schémas incorrects, l'application vous fait attendre, ce qui montre que les schémas précédents n'ont rien ouvert.
Le déguisement ne change que l’écran d’accueil
- Seuls l’icône et le nom sur l’écran d’accueil changent. La liste Paramètres > Applications du téléphone, les infos de l’application et les écrans de stockage affichent toujours LifeVeil.
- Les lecteurs d’écran peuvent encore annoncer « LifeVeil ». Par exemple, le lanceur Samsung One UI donne à TalkBack le vrai nom de l’application, et l’application ne peut pas changer cela.
- Le menu de partage d’Android affiche toujours le vrai nom de l’application : LifeVeil s’en retire donc quand vous changez l’icône. Vous pouvez l’y remettre.
- Les demandes d’autorisation d’Android affichent le vrai nom : l’application demande donc les autorisations avant que vous changiez l’icône.
- Tant que l’icône est changée, l’application n’envoie pas de notifications.
- Le code du déguisement (4 à 8 chiffres) affiche seulement l’écran de verrouillage. Il n’ouvre pas vos fichiers. Il est stocké sous forme de hachage salé, mais avec si peu de possibilités, il est facile à retrouver si quelqu’un obtient le fichier.
L’empreinte digitale est une voie moins solide
Le déverrouillage par empreinte digitale contourne Argon2id. Sa solidité dépend du capteur d’empreinte de votre téléphone et de l’Android Keystore. Vous pouvez le désactiver à tout moment dans les Paramètres.
Photos des intrus
L’application ne fait pas de bruit d’obturateur, mais les téléphones vendus dans certains pays, comme le Japon et la Corée, en font toujours un. Aucune photo n’est prise si une autre application utilise la caméra ou s’il n’y a pas de caméra avant. Tant que vous n’avez pas déverrouillé le premier coffre que vous avez créé, les photos sont scellées avec une clé de l’Android Keystore.
Informations des photos
- Pour les photos HEIC, PNG et WebP, les informations cachées (EXIF) restent dans le fichier. Le fichier entier reste chiffré.
- Sur Android 10 et versions ultérieures, Android retire la position GPS des photos que lit LifeVeil, car l’application ne demande pas l’accès à la position. Une fois l’original supprimé de la galerie, cette position est perdue.
- Les photos ajoutées avec le sélecteur de photos d’Android reçoivent de nouveaux noms basés sur la date, car le sélecteur ne fournit pas le nom d’origine.
Le verrouillage est suspendu pendant les écrans système
Tant qu’un écran système est ouvert (demande d’autorisation, confirmation de suppression, sélecteur de photos ou de fichiers, invite d’empreinte digitale) et pendant une importation ou une exportation, l’application attend avant de se verrouiller. Si vous avez quitté l’application, elle se verrouille 2 secondes après la fin.
Les coffres partagent un même sel de l’appareil
Tous les coffres d’un téléphone utilisent le même sel de l’appareil. Si quelqu’un possède ce sel, une seule tentative teste tous les coffres à la fois. Le coût pour attaquer un seul coffre reste le même.
Ce qu’aucune application ne peut empêcher
Quelqu’un qui vous regarde tracer votre schéma, ou une caméra qui filme votre écran.
Si vous perdez les deux, personne ne peut vous aider
Si vous perdez à la fois votre schéma et votre phrase de récupération, personne ne peut récupérer vos fichiers. Pas même nous.