- GrapheneOS combine le chiffrement du disque, la limitation des tentatives par force brute, l’atténuation des attaques contre le système d’exploitation et la protection contre l’accès physique, en s’appuyant sur les fonctionnalités de sécurité d’Android 17 et le matériel Pixel récent
- Les derniers éléments de sécurité limitent la saisie du PIN ou du mot de passe à 20 tentatives maximum, imposent un délai de 4 heures après 10 échecs et jusqu’à 41 jours après 15 échecs, et bloquent aussi les contournements internes en empêchant les modifications de firmware sans authentification du propriétaire
- La prise en charge de mots de passe jusqu’à 128 caractères et de l’option empreinte digitale + second PIN permet d’utiliser 6 à 8 mots Diceware aléatoires comme mot de passe principal tout en conservant un déverrouillage pratique au quotidien
- À l’état verrouillé, les nouvelles connexions USB sont bloquées à la fois côté logiciel et matériel, et le redémarrage automatique entre 10 minutes et 72 heures, associé à l’effacement de la mémoire, ramène l’appareil à l’état Before First Unlock
- Le PIN ou mot de passe de contrainte efface l’appareil lorsqu’il est saisi dans une fenêtre d’authentification de n’importe quel profil, mais la protection globale des données repose sur l’ensemble chiffrement, sécurité matérielle et atténuation des attaques, et non sur cette seule fonction
Chiffrement et limitation des tentatives d’authentification
- Casser directement le chiffrement du disque n’est pas une voie réaliste, même pour les attaquants les plus sophistiqués ; ils doivent exploiter une vulnérabilité du système d’exploitation à l’état After First Unlock ou tenter de deviner le PIN ou le mot de passe par force brute
- La limitation des tentatives par l’élément de sécurité d’Android 16 QPR2 augmente progressivement les délais selon le nombre d’échecs
- Après 10 échecs, le délai est de 4 heures ; après 15 échecs, il peut atteindre 41 jours, et le nombre total de tentatives autorisées est limité à 20
- Les 5 valeurs distinctes récemment échouées sont rejetées rapidement afin d’éviter de gaspiller des tentatives à cause d’erreurs répétées
- GrapheneOS ne prend en charge que les appareils qui implémentent la limitation des tentatives dans l’élément de sécurité de dernière génération
- Pour mettre à jour le firmware de l’élément de sécurité des appareils pris en charge, il faut non seulement une clé de signature valide et un numéro de version supérieur, mais aussi une authentification de l’utilisateur Owner
- Même si un gouvernement obligeait à produire un firmware supprimant la limitation des tentatives, il ne serait pas possible de l’installer pour contourner cette limite
- Depuis le Pixel 2, lancé fin 2017, les Pixel utilisent un élément de sécurité doté d’un minuteur interne et d’une protection contre les attaques internes, et son intégration au système d’exploitation s’est ensuite améliorée
- GrapheneOS a porté la limite de longueur des mots de passe de 16 à 128 caractères, ce qui permet d’utiliser des phrases de passe Diceware à forte entropie sans dépendre de la limitation des tentatives par l’élément de sécurité
- L’option empreinte digitale + second PIN permet de combiner un mot de passe principal robuste avec un déverrouillage quotidien pratique
- Avant le premier déverrouillage, on utilise un mot de passe principal composé de 6 à 8 mots Diceware aléatoires ; ensuite, on peut combiner empreinte digitale et PIN court
- Même après reconnaissance d’une empreinte valide, il faut saisir le second PIN pour déverrouiller l’écran et le magasin de clés matériel
- Le nombre de tentatives d’empreinte autorisées passe de 20 à 5, et les seconds PIN incorrects comptent aussi comme des échecs
Défense du système d’exploitation et contre l’accès physique
- GrapheneOS augmente la difficulté des attaques contre le système d’exploitation grâce à des fonctionnalités matérielles comme un allocateur mémoire renforcé et le marquage mémoire matériel (MTE) ; le détail est disponible dans les fonctions d’atténuation des attaques
- Pour contrer les attaques nécessitant un accès physique à l’appareil, les nouvelles connexions USB sont bloquées par défaut pendant le verrouillage aux niveaux logiciel et matériel, et les fonctions de données sont immédiatement désactivées lorsqu’une connexion USB active disparaît
- Le minuteur de redémarrage automatique des appareils verrouillés, introduit en juin 2021, peut être réglé entre 10 minutes et 72 heures
- La valeur par défaut était initialement de 72 heures, puis a été abaissée à 18 heures
- En arrêtant puis en redémarrant le système d’exploitation, la mémoire est effacée et l’appareil revient à l’état Before First Unlock
- En avril 2024, l’effacement de la mémoire a aussi été ajouté au démarrage en mode firmware fastboot des Pixel
- Apple et Google ont également ajouté le redémarrage automatique des appareils verrouillés dans iOS 18.1 et Android 16 ; sur Android, il peut être activé via Advanced Protection Mode
- Android utilise des clés de chiffrement distinctes pour chaque utilisateur secondaire et pour Private Space
- Dans GrapheneOS, la fermeture d’une session d’utilisateur secondaire et chaque interrupteur permettent de ramener la zone concernée à l’état Before First Unlock sans redémarrage
- Pour remettre les données de l’utilisateur principal dans un état chiffré et au repos, effacer complètement les résidus en RAM et bloquer jusqu’aux mises à jour de l’élément de sécurité, il vaut mieux redémarrer tout l’appareil
Effacement des données en situation de contrainte
- Le PIN ou mot de passe de contrainte efface l’appareil lorsqu’il est saisi dans n’importe quelle fenêtre d’authentification du système d’exploitation demandant le PIN ou le mot de passe du profil courant
- Il fonctionne non seulement sur l’écran de verrouillage, mais aussi dans toutes les fenêtres nécessitant une authentification, par exemple pour modifier des réglages sensibles
- Il peut être utilisé dans tous les profils, y compris l’utilisateur principal, les utilisateurs secondaires et Private Space
- Il fonctionne aussi lorsqu’il est saisi comme second PIN du déverrouillage par empreinte digitale, mais ne s’applique pas au PIN de la SIM
- Il est possible de noter le PIN ou mot de passe de contrainte sur un papier glissé dans une coque de téléphone ou un portefeuille, mais effacer l’appareil dans une situation de contrainte réelle peut entraîner des conséquences physiques ou juridiques ; son mode d’utilisation doit donc être évalué avec prudence
- La fonction de contrainte élimine totalement la possibilité de récupérer les données même si les PIN ou mots de passe de tous les profils sont connus, mais ce n’est pas une défense indispensable ; l’ensemble des protections est détaillé dans la liste des fonctionnalités de GrapheneOS et le journal des changements des versions
- À l’heure actuelle, seul Pixel fournit les fonctionnalités de sécurité matérielle et les mises à jour exigées par GrapheneOS, mais cela devrait changer à partir de 2027 grâce à la coopération avec Motorola Mobility et aux progrès de Qualcomm
1 commentaires
Avis sur Hacker News
Cet article semble avoir été publié en réponse à l’affaire où une personne a été inculpée après avoir réinitialisé un Pixel avec un PIN sous contrainte lors d’une fouille à la frontière américaine, afin de souligner clairement que les défenses de GrapheneOS contre l’extraction de données restent solides même sans PIN sous contrainte.
Récemment, un article de Computer Weekly expliquait aussi que le redémarrage automatique au bout de 18 heures de GrapheneOS avait protégé les documents d’enquête d’un journaliste et ses sources confidentielles en ramenant l’appareil à l’état BFU (Before First Unlock), empêchant ainsi l’extraction des clés.
GrapheneOS aurait besoin d’une fonction complète de sauvegarde et restauration permettant de réinitialiser préventivement son téléphone avant de franchir une frontière. Ce serait bien de pouvoir sauvegarder et restaurer toutes les apps et données vers un serveur SSH/SFTP personnel, comme avec Google Cloud ou iCloud.
Plutôt que d’utiliser un PIN sous contrainte et de risquer une inculpation, je préférerais réinitialiser le téléphone, y remettre seulement quelques contacts, une copie du passeport et un PDF du billet d’avion, puis fournir le vrai PIN si on me le demande à l’immigration. Pendant le voyage, il suffirait de retenir la phrase secrète du gestionnaire de mots de passe ou d’un serveur SSH distant, de ne restaurer que les données nécessaires et de pouvoir tout effacer à nouveau à tout moment.
Cela dit, si cette fonctionnalité devenait intégrée par défaut, les enquêteurs pourraient soupçonner tous les utilisateurs de GrapheneOS d’avoir un stockage distant et exiger l’accès ainsi que la restauration ; il serait donc peut-être préférable de la configurer séparément. On peut aussi préparer un faux compte Google, utilisé uniquement pour des achats ordinaires et des abonnements YouTube, afin que cela paraisse naturel.
Je pars à l’étranger pendant un mois dans trois semaines, et j’hésite entre réinitialiser mon téléphone ou laisser mon téléphone principal à la maison et emporter un nouvel appareil à 150 euros ne contenant que les contacts d’urgence de ma famille. Heureusement, le seul écran de verrouillage ne révèle pas qu’il ne s’agit pas d’un Android Pixel standard.
allowBackup="false", et prend aussi en charge tout service de synchronisation exposant une API compatible.Les sauvegardes étant par profil, on peut aussi les restaurer dans un utilisateur secondaire pour les tester. Une refonte complète est prévue afin de rendre l’implémentation et l’expérience utilisateur plus simples et plus propres ; pour l’instant, l’équipe refond d’abord d’autres apps.
Si la saisie d’un PIN spécial sur l’écran de verrouillage lançait, après un léger délai, une partition leurre, cela offrirait un déni plausible non seulement lors d’un contrôle frontalier anticipé, mais aussi lors d’une inspection inopinée.
Le verrouillage par schéma d’Android n’offre qu’une entropie de
Log2(389112) ≈ 18,57 bits. C’est plus faible que 3 caractères aléatoires, 4 lettres minuscules, ou même un PIN décimal à 6 chiffres.Pour les mots de passe longs, on peut utiliser des techniques de mémorisation, mais leur saisie est pénible. S’ils sont trop longs, il suffirait d’autoriser l’usage d’un condensé de hachage ; bloquer les mots de passe forts eux-mêmes encourage de mauvaises habitudes, comme la réutilisation ou l’envoi à soi-même.
On peut ajouter un second PIN d’authentification au déverrouillage par empreinte, ce qui permet d’utiliser commodément une phrase secrète forte sans les inconvénients d’une authentification purement biométrique. Le verrouillage par schéma pousse les gens à n’utiliser qu’une infime partie des combinaisons réellement possibles, ce qui le rend bien plus faible que le calcul ne le suggère, et donne un faux sentiment de sécurité ; il a donc été supprimé il y a plusieurs années. Une génération intégrée de PIN et de phrases secrètes aléatoires est également en cours de développement.
Les limites d’AOSP ont été modifiées pour autoriser des mots de passe jusqu’à 128 caractères. Une longue phrase secrète n’a besoin d’être saisie qu’après un redémarrage, avec l’avantage de rester protégée même si l’élément sécurisé est exploité.
Des attaques par canal auxiliaire contre la puce de sécurité sont théoriquement possibles, mais elles nécessitent une méthode d’attaque déjà validée, le démontage de l’appareil et des opérations précises et destructrices.
Il est absurde d’être traité comme un criminel quand on veut les mêmes garanties de sécurité que sur les appareils Apple. Apple propose aussi le redémarrage automatique, le chiffrement complet et le Lockdown Mode
Le résultat de la saisie d’un mot de passe sous contrainte ne devrait pas être détectable par la personne qui récupère le téléphone. Il faudrait supprimer les vraies informations de compte, tout en affichant un système d’exploitation rempli de contenus plausibles, comme des e-mails polis mais insignifiants, que les enquêteurs puissent examiner
Plusieurs systèmes d’exploitation et services, comme Google Photos ou Samsung, proposent des fonctions de données verrouillées
Lorsqu’un profil est supprimé, des métadonnées prouvant son existence restent dans le stockage chiffré de l’appareil et du profil propriétaire. Avec ADB, il est aussi facile de vérifier si une réinitialisation a eu lieu et à quel moment ; cela ne peut donc pas offrir de dénégation plausible, et faire croire aux utilisateurs que c’est furtif les mettrait en danger.
Le masquage de Private Space dans Android ne le dissimule que maladroitement dans l’interface utilisateur ; plusieurs méthodes publiques de détection existent, et le cacher complètement face à ADB est difficile en pratique. Une fonctionnalité imparfaite sera vite connue via les discussions en ligne et intégrée aux LLM, aux outils forensic et aux guides.
Les fonctionnalités de GrapheneOS doivent fonctionner même contre un adversaire qui connaît leur existence. Le PIN de contrainte est impossible à distinguer du vrai PIN, ce qui oblige à envisager que même un PIN reçu d’un utilisateur qui n’utilise pas la fonction puisse être un PIN de contrainte.
Sur de futurs appareils, l’objectif est d’ajouter la prise en charge du PIN de contrainte directement dans l’élément de sécurité, comme partie des limites de tentatives Weaver, afin qu’il ne puisse pas être contourné même via une vulnérabilité du système d’exploitation
Je me demande si l’appareil est aussi protégé lorsqu’il est verrouillé après le premier déverrouillage (AFU). Comme on l’utilise souvent, si les données AFU ne sont pas protégées même lorsqu’on verrouille l’appareil avant qu’une agence d’enquête ou un attaquant ne le saisisse, l’intérêt est limité ; les forces de l’ordre peuvent aussi l’analyser le jour même avec des outils comme Cellebrite.
C’est similaire à l’usage de VeraCrypt tout en laissant son PC allumé parce que redémarrer est pénible ; dans ce cas, une extraction de la mémoire peut permettre le déchiffrement
Les 18 heures ont été choisies pour que cela ne se déclenche presque jamais même chez quelqu’un qui n’utilise son téléphone que quelques fois par jour. En général, il suffit que ce soit un peu plus long que la durée maximale de sommeil ; un redémarrage pendant la nuit n’est pas un problème en soi, mais il peut faire manquer des contacts urgents qui ne passent pas par un appel opérateur.
Les documents récemment publiés de Cellebrite Premium montrent également qu’il n’existe pas de moyen d’attaquer les appareils GrapheneOS verrouillés et mis à jour au-delà d’un certain niveau de correctif de 2022
Je me demande si la collaboration entre GrapheneOS et Motorola est toujours en cours, et quand les appareils Motorola sortiront
Quand je passe la TSA ou l’immigration, j’éteins toujours mon téléphone et mon ordinateur portable. Aux États-Unis, je considère qu’on ne peut pas me forcer à fournir un mot de passe, et même si l’appareil est saisi, s’il est éteint il est difficile de casser le mot de passe
Le redémarrage automatique de GrapheneOS peut être réglé jusqu’à un minimum de 10 minutes, avec une valeur par défaut de 18 heures. Google et Apple ont ensuite aussi introduit un minuteur fixe de 72 heures.
Cela dit, ce serait bien que GrapheneOS propose un raccourci d’extinction plus rapide. À ma connaissance, il faut actuellement appuyer sur un bouton physique puis confirmer à nouveau à l’écran
xkcd lié : https://xkcd.com/538/
Il semble qu’il ait bien donné un mot de passe, mais que celui-ci réinitialisait le téléphone au lieu de le déverrouiller. Il est surprenant qu’il n’ait pas sauvegardé l’appareil avant la fouille
On pourrait créer un PIN de contrainte atténué qui n’efface que les applications choisies sans que cela se voie. Ou bien ramener les données des applications à un point de restauration donné pour donner l’impression que rien ne s’est passé, et faire en sorte que l’existence même de ce réglage ne soit pas traçable, ce qui aiderait à réduire le risque juridique
Mais l’existence d’un profil donné et le moment de sa suppression restent clairement visibles dans les métadonnées du système de fichiers et du système d’exploitation. Des traces de fichiers copiés ou modifiés subsistent aussi un peu partout sur le SSD, et après une longue utilisation normale, il est trop tard pour demander une suppression sécurisée d’une zone précise, avec un risque de récupération. Le simple fait que des métadonnées et statistiques attendues aient disparu devient lui-même une preuve.
Une fonction qui accepterait toutes les phrases secrètes comme valides dans un espace réservé, et produirait une sortie aléatoire si elles ne sont pas configurées ou sont incorrectes, est possible. Pour l’implémenter correctement, il faudrait des machines virtuelles et un espace réservé de base, mais même alors, une analyse bas niveau du SSD pourrait probablement prouver que la fonction a été utilisée