Partie 2 – La sécurité
Comme je l’ai déjà indiqué plusieurs fois aux lecteurs de ce blog, je ne suis pas tech : je vais donc assez vite manquer d’arguments pour étayer mes propos ou rester sur des considérations assez générales en utilisant des termes techniques que je ne saurai pas expliquer. Je vous prie de m’en excuser, et je vous inviterai à poursuivre la lecture via des liens qui – à mes yeux – font autorité. Mon objectif sera plus ici de donner quelques éléments de vernis aux analphatiques comme moi et d’orienter les informatico-comprenants vers des ressources plus claires.
Je précise également que dans ma démarche, la sécurité n’est pas une fin en soi : je ne suis ni trafiquant international de drogue ni lanceur d’alerte de haut vol, qui auraient des raisons majeures de se préoccuper de la sécurité de leurs données, mais seulement un « average Joe », un citoyen qui n’a « rien à cacher » mais qui souhaite garder privée sa vie … privée.
Pour rédiger cet article, je vais m’inspirer fortement de précédents articles de Wonderfall qui, contrairement à moi, comprend les thématiques de sécurité informatique.
Mais revenons à nos moutons ! GrapheneOS s’appuie donc sur Android Open Source Project, qui est un système d’exploitation très sécurisé. En effet, contrairement aux autres distributions Linux, AOSP met en place
- une compartimentation des applications, appelée Sandbox (bac à sable) dans laquelle chaque application est scrupuleusement séparée des autres applications (sur la base de SELinux),
- un chiffrement indépendant des différents profils : un profil inactif est verrouillé et aucun accès n’est possible à ses données,
- une vérification de l’intégrité du système d’exploitation au démarrage : le système avertit l’utilisateur si son système est conforme ou non et peut rendre le terminal inutilisable dans certains cas de corruption du système,
- l’utilisation d’éléments de sécurisation matériels : des puces dédiées à la sécurité.
Ces éléments sont présents sur Android standard, et ils le sont aussi sur GrapheneOS. A deux différences près :
- comme nous l’avons vu dans l’article sur la confidentialité, Android standard appelle régulièrement Mountain View,
- mais surtout, dans Android standard, trois applications bénéficient de privilèges exorbitants et sortent du mode de fonctionnement du bac à sable : Google Play services, Google Services Framework et Google Play Store ; ces applications sont omnipotentes sur Android standard ; elles sont absentes de GrapheneOS, sur lequel elles peuvent être installées et sont alors contenues dans des bacs à sable comme toutes leurs congénères, avec des autorisations accordées par l’utilisateur comme toutes les autres.
Le modèle de GrapheneOS est donc, au sens de la sécurité, l’application ferme d’un modèle très rigoureux construit dans le cadre d’AOSP mais partiellement détourné dans Android standard. En complément, pour les téléphones vendus par d’autres fabricants que Google, les constructeurs ajoutent à Android standard des surcouches logicielles qui, aux fins d’améliorer l’expérience utilisateurs et de téléphoner (en complément de Mountain View) à la maison du constructeur, contribuent à dégrader la sécurité du logiciel, via des applications non-compartimentées dans des bacs à sable.
En complément de ces éléments déjà très précieux, GrapheneOS ajoute quelques couches spécifiques :
- une application Auditor, que je mentionnais sans plus d’explications dans l’article sur la confidentialité ; cette application vise à permettre le contrôle d’intégrité du système à la demande : l’audit peut être réalisé soit par un autre appareil Android, soit par un abonnement au service fourni par les serveurs de GrapheneOS ; il permet de s’assurer que le système est resté à l’identique, d’un audit au suivant,
- un renforcement de l’allocateur de mémoire : on va dire ici que cet outil réduit significativement les risques de fuite de mémoire ; si un expert tech est prêt à contribuer à ce billet pour expliquer les atouts de ce « hardened malloc », il est bienvenu.
Il est également à noter que lorsqu’un téléphone Android est éteint ou a été allumé mais n’a pas été déverrouillé (saisie du code secret du téléphone par opposition au code PIN de la carte SIM), l’ensemble de ses données sont cryptées. GrapheneOS propose à son utilisateur un redémarrage automatisé régulier (18 h en standard). Cela présente plusieurs avantages :
- d’une part, ce paramétrage vous invite à éteindre votre précieux compagnon pendant que vous dormez, période au cours de laquelle il est rarement très utile, vous économisez de l’énergie et réduisez votre empreinte carbone, … mais je m’égare,
- d’autre part, comme je l’ai indiqué plus haut, un contrôle d’intégrité du système est réalisé à chaque redémarrage ; donc si vous prenez l’habitude de faire dormir votre téléphone toutes les 24 h, le contrôle d’intégrité sera réalisé avec la même fréquence,
- enfin, pour les plus accro à la sécurité (les mafieux malfaisants ou les lanceurs d’alerte bienfaisants), si votre téléphone est saisi par un tiers et soumis à la Question par Cellebrite ou autre, le délai maximal au cours duquel ses détenteurs pourront essayer de le forcer ne sera que celui jusqu’au prochain redémarrage ; pour ceux qui auraient positionné un paramètre de redémarrage à 1 ou 2 h et qui auraient un code secret fort, le risque que le téléphone soit forcé en serait considérablement réduit.
Me voilà arrivé au moment d’expliquer pourquoi GrapheneOS n’est disponible que sur les téléphones de marque Google, ce qui – on en conviendra – est assez incongru. Cela est lié à deux points :
- Google développe ses propres puces de sécurité, appelées Titan (la dernière en date est la Titan M2) et qui fournissent le plus haut niveau de sécurité sur les téléphones Android,
- bien que Samsung produise des composants d’un niveau de sécurité comparable, il ne permet pas de reverrouiller l’utilitaire de démarrage après bascule vers GrapheneOS, ce qui laisse la porte grande ouverte à des corruptions du système ; si Samsung permettait le reverrouillage de cet utilitaire, il est probable que les développeurs adapteraient rapidement GrapheneOS aux terminaux du Coréen.
Dernier point, probablement le plus important, GrapheneOS procède a minima à deux mises à jour par mois :
- une mise à jour de sécurité et de mise à niveau technique, dans la foulée immédiate de celle d’AOSP, le 5 ou le 6 du mois,
- une mise à jour fonctionnelle, qui permet d’apporter des évolutions à l’utilisateur ou des renforcements en matière de sécurité.
On peut préciser également que le portage des nouvelles versions majeures d’Android est généralement réalisé sur GrapheneOS avant celui poussé par les fabricants, qui doivent construire et tester leurs surcouches propres.
Voilà. Comme vous l’avez compris, la technique n’est pas particulièrement mon point fort. Je vous invite donc à poursuivre la lecture sur le site de GrapheneOS ainsi que sur le blog de Wonderfall ici et là, et à suivre les liens qui y sont insérés. Et si vous avez envie de contribuer à cette page … surtout n’hésitez pas à me laisser un message.
A bientôt pour de nouvelles aventures sur la confidentialité cellulaire. Il se pourrait que je fasse une troisième partie sur les magasins d’applications … ou pas.
Si vous avez apprécié cet article, n’hésitez pas à laisser à son auteur un petit commentaire : il l’encouragera à le maintenir et à le développer.
Laisser un commentaire