GuiGui's Show - LiensMes notes concernant le talk sur Replicant qui a eu lieu le 17 octobre 2015 à Brest. Les slides et l'enregistrement vidéo ne semblent pas être encore dispos en ligne.
Je vous recommande vivement de lire ces notes (faute de mieux), on y apprend vraiment beaucoup sur les avancées du libre dans le monde mobile, sur ce qu'est (et n'est pas) Replicant. Très, très intéressant.
Introduction par Benjamin Bayart :
[NDLR : il manque environ 5-10 minutes dans mes notes, j'suis arrivé à la bourre...]
Exemple du lecteur DVD de salon qui ne m'obéit pas : je ne peux pas zapper les pubs et les avertissements anti-piratage. Bizarrement, VLC y arrive. Ce n'est donc pas une difficulté technique mais un choix des fabricants de lecteurs DVD et des vendeurs de culture sur galette.
Jusque--là, il n'y a pas de grands enjeux. Mais on a le même problème sur les ordiphones Apple/Android : ces systèmes ne sont pas conçus pour rendre service à l'utilisateur. Pour avoir le contrôle, il faut jailbreaker son téléphone... que l'on traduit par casser la prison.
Les métadonnées (avec qui vous communiquez, quand, à quelle heure, pendant les horaires de taff ou en dehors, quelle durée, quelle fréquence, depuis où (géolocalisation)) sont très importantes et elles disent tout, pas besoin d'avoir le contenu des conversations / messages échangés. Exemple : deux personnes qui ne se parlent jamais et qui se mettent à échanger 15/20 messages par jour, tu sais que Cupidon est passé dans le coin. Facebook avait d'ailleurs fait une étude : deux personnes se rendent à une soirée (elles ont liké la soirée donc tu le sais), le lendemain elles deviennent amies sur FB, la fréquence de leurs échanges augmente jusqu'à un certain point puis leurs échanges s'arrêtent pendant 3 jours, précisément 3 jours... avant de recommencer. Cupidon again et les 3 jours, c'est le week-end que ces personnes ont passé ensemble. Comment le sait-on ? La géolocalisation de leur tél était identique.
Sur un ordiphone, la géolocalisation par autrui, ce n'est pas le GPS, c'est l'opérateur : pour recevoir un appel, il faut que le réseau de l'opérateur puisse communiquer avec votre téléphone et donc savoir quelles sont les antennes les plus proches de votre téléphone. Pour y échapper, il suffit d'éteindre le téléphone, non ? Hé bah non car dans nos ordiphones modernes, il y a deux processeurs : le processeur qui fait tourner Android ou IOS et l'autre qui pilote toute la partie radio. Et ce dernier processeur se fait piloter par le réseau : configuration et instructions à exécuter comme indication de la modulation radio à utiliser, le signalement que la prochaine antenne ne sera pas sur la même fréquence,...
Ça va même au-delà avec les fonctionnalités d'effacement du tél à distance. Ça signifie que le réseau est capable de donner l'ordre au processeur radio d'effacer tout le contenu géré habituellement par l'autre processeur. S'il peut effacer, il peut lire/écrire les données... Toutes les données du téléphone.
Chiffrer son téléphone, c'est cool mais il faut saisir une passphrase... et le contrôleur qui gère le clavier peut l'intercepter et possiblement le transmettre (voir point précédent).
Rooter son téléphone, c'est avoir le contrôle des applications installées/installables. Avec Cyanogenmod, toute la partie haute du noyau devient libre en plus mais les drivers ne le sont toujours pas. Replicant s'occupe des drivers. Il reste le problème du contrôle de la puce radio/baseband et des microcontrôleurs.
Le logiciel libre, c'est la pérennité du code au-delà des sociétés commerciales qui coulent.
Paul Kocialkowski :
But : libérer toutes les couches : microcontrôleurs qui font des tâches indépendantes, microcodage du processeur,...
Obsolescence : on met du temps à libérer, ce qui amène certaines personnes à se demander : est-ce que ça a un intérêt ? C'est sûr qu'on ne peut pas suivre le rythme de sortie de tous les ordiphones de toutes les marques.
Pas toujours possible de remplacer les bouts proprios par du code libre :
* Problématiques légales : reverse engineering autorisée en EU pour interopérabilité mais pas aux USA, par exemple ;
* Manque de compétences/temps : le reverse engineering n'empêche pas d'avoir besoin de documentation car on ne peut pas tout deviner avec un binaire or, c'est justement ce qui fait défaut à moins de signer des clauses de confidentialité... ce qui va à l'encontre de l'objectif. Il faut ouvrir la bête, se connecter aux broches, reprogrammer la puce, ce n'est pas permis à tous/toutes ;
* Contraintes matérielles : puces mémoire en lecture seule, le matos vérifie souvent le logiciel (signatures cryptographiques), risque de rendre le matos inopérant (ce qui représente un coût -> pas permis à toutes les bourses).
Microcontrôleurs :
* Audio et capteurs (accéléromètre par exemple) : on a du logiciel libre ;
* WiFi, Bluetooth, GPS, USB récent : pas de logiciel libre disponible ou très très peu.
* GPU : privateur mais la situation s'améliore : adreno pour Qualcomm, lima pour Mali, nouveau pour Nvidia ;
* Caméra : on a des drivers libres mais sans l'accélération matérielle (voir point précédent) donc ça rame à mort ;
* Modem / processeur de communication / baseband : processeur puissant (l'équivalent du proc' principal de nos ordiphones d'il y a 4/5 ans). Il peut parfois même être en charge du processeur principal (reboot, accès à la mémoire,...). On voit donc que le lien d'autorité est inversé. Backdoor sur les Sansung Galaxy (voir :
http://code.paulk.fr/article0018/the-samsung-galaxy-back-door-was-bullshit-really) : le modem a accès à tous les fichiers. :D
* À l'heure actuelle, on n'a pas de logiciel libre (osmocombb existe mais nécessite un ordinateur à côté et n'est pas abouti). Sans compter que nombre de modems vérifient les signatures...
* Du coup, plutôt que de lutter contre le modem, on préfère l'isoler matériellement (limiter ce à quoi il a accès (RAM, autres microcontrôleurs,...) voire l'isoler électriquement pour l'éteindre à la demande). Ce n'est pas facile car il n'y a pas de documentation officielle et quand il y en a, on n'a aucune raison d'avoir confiance.
Processus de boot :
* Boot ROM : située dans la puce du proc', en lecture seule, on ne pourra pas la remplacer ;
* Chargeur de démarrage : la boot ROM va souvent vérifier les signatures donc on ne peut pas souvent le remplacer. Coreboot/u-boot prennent en charge quelques plateformes ;
Note : sur certaines plateformes, on a des boot ROM en deux versions : une qui vérifie et l'autre non. "HS ou GT" dans la référence de la puce
Les drivers libres liés au noyau ne servent à rien car l'intelligence est déportée dans l'espace utilisateur (firmwares/blob proprios).
Frameworks : couches d'abstraction qui permettent d'accéder au matériel. Firefox OS, c'est ça mais ils se tapent quand même des morceaux privateurs. Libre dans CyanogenMod/Omni.
Au niveau des puces, il y a des sociétés commerciales sympas pour en produire, mais rien ne se fait en communautaire. On aura donc un problème de coût (à cause du faible volume d'unités produites) et de confiance envers la société qui produira les puces.
Actuellement, il n'y a aucun modèle d'ordiphone totalement libre. Chacun doit donc définir la limite qu'il s'autorise. On peut choisir un ordiphone qui rend possible un chargeur de démarrage alternatif ou l'isolation du modem (c'est à dire que, pour commencer le modem ne doit pas être sur la même puce physique que le processeur principal).
Android libre ou pas ?
* Android c'est une famille d'OS hétéroclites. Au début, dev par Google avec très peu d'apports communautaires. Google finit par libérer dans Google Android Open Source Project (sauf les couches d'abstraction du matériel, faut pas rêver). Gros fabricants reçoivent ce code et font leur version pour supporter leurs ordiphones. De tout ça, rien n'est libéré.
* Flicage de Google genre les ordiphones utilisés avec la version communautaire pinguent Google pour dire qu'un nouvel ordiphone vient d'être mis en service avec cette version communautaire.
Replicant :
* Petite chronologie :
* 2008 : Debian GNU/Linux (openmoko) et Android. Libération partielle d'Android (framework principalement et applications de base)
* 2010 : Naissance de Replicant : version fonctionnelle d'Android pour HTC Dream
* Être totalement libre, sans utiliser ni recommander du logiciel privateur. Les fonctionnalités essentielles sont prises en charge pour chaque téléphone supportés ;
* Comment ? Basé sur Google Android Open Source Project et Cyanogenmod pour le support d'ordiphones supplémentaires + on vire les trucs privateurs + f-droid comme logithèque + maintenance/mises à jour de sécurité + remplacer les couches d'abstraction du matériel par du code libre + réécrire des drivers audio/caméra/capteurs ;
* On délaisse les micrologiciels et les microcontrôleurs types GPU ou baseband/modem car trop complexes, il faut faire les choses de manière incrémentale. Néanmoins, comme dit plus haut, les GPU sont pris en charge par d'autres communautés, par exemple donc on peut très bien imaginer la même chose pour les autres microcontrôleurs ;
* 12 appareils pris en charge à l'heure actuelle. Pourquoi quasi tous sont des Sansumg Galaxy ?
* Meilleure chance d'isolation du matériel. Les Nexus supportés sont, en revanche, bien mauvais pour une éventuelle isolation de la baseband...
* Logiciel assez coopératif, moins de trucs à libérer. Radio Interface Layer implémentée depuis 2011. Sur d'autres ordiphones, on a des problèmes avec, par exemple le format de fichiers pour une caméra qui filme et photographie en même temps. Il est possible de faire passer des infos avec les dev' et Replicant (Paul raconte une très bonne expérience où un tech lui a expliqué, par mail, tout le fonctionnement d'une puce) pour peu qu'on ne s'adresse pas s'adresser aux services communication des sociétés commerciales mais c'est extrêmement rare : de manière générale, il y a très peu de coopération.
Les tablettes n'ont pas de modem/baseband et sont donc plus faciles à prendre en charge.
* Ce qu'il manque : accélération graphique (y compris encodage vidéo donc il manque la prise de vidéos), WiFi/Bluetooth/GPS (car ça doit être distribué avec le système et comme ce n'est pas libre, Replicant s'interdit de le faire.
* Replicant c'est :
* Principalement 1 dev', il y a assez peu de contributions externes (sauf en ce qui concerne la sécurité) ;
* Exclusivement des dons (pas de subventions) ;
* Futur de Replicant / comment contribuer :
* Cyanogen Inc compte Microsoft en investisseur, peut-on avoir confiance ? Faudra-t-il que Replicant prenne son indépendance de Cyanogen ?
* Aujourd'hui, Replicant se base sur Android 4.2, il faudra mettre à jour ;
* Il est nécessaire d'écrire des applis libres même simples genre appareil photo et compagnie ;
* Documentation : la traduire dans plusieurs langues mais aussi documenter/faire un inventaire des ordiphones : est-ce qu'on a une chance d'isoler le modem sur ce modèle, est-il possible d'y installer un chargeur de démarrage alternatif ? Paul a des infos sur des modèles d'ordiphones qu'il n'a pas encore eu le temps de mettre en ligne ;
* Amélioration de la vie privée : virer tous les bouts de code connus pour avoir des failles de sécurité pas fixées comme le moteur de rendu web d'Android 4.2.
Niveau matériel :
* OpenPhoenux fournit du bon matos notamment le futur Neo900 (campagne de financement en cours, voir
http://neo900.org/) qui aura sa puce baseband isolée électriquement (on pourra donc l'arrêter intégralement sans retirer la batterie de l'ordiphone).
* LG Optimus black P970 autorise un chargeur de démarrage libre non signé. Le support par Replicant est en cours.
* (durant la séance de questions/réponses) Osmocom a bossé sur des modems Mediatek (utilisés par Wiko, par exemple). Les processeurs Nvidia Tegra sont compatibles avec la radio logicielle, ce qui signifie qu'on peut faire tourner une stack GSM logicielle libre (ça existe, cf openbts & co) sur le processeur principal, ce qui constitue une évolution intéressante.
Questions/réponses [NDLR : je n'ai pas noté toutes les questions et toutes les réponses ] :
* Discussion sur l'inadéquation des téléphones sécurisés fournis dans les ministères et les usages modernes qu'en attendent les fonctionnaires de ces ministères : la première version n'avait pas le support des SMS, la version actuelle n'a pas Twitter donc ça ne répond pas aux besoins. Hervé Morin a déclaré qu'il faut 10 minutes pour l'allumer et que ça marche une fois sur deux. Benjamin Bayart souligne que Replicant, axé sur le respect des utilisateurs et de leur vie privée, constitue une alternative pour cet usage-là. Pas pire que Thales & co ;
* Des ordiphones modulaires existent mais ils sont encore à l'état de projets de recherche bien qu'ils constituent une piste intéressante dans l'idée mais pas (encore ?) dans la réalité.
* Le durcissement du matériel n'intéresse-t-il pas des entreprises qui pourraient contribuer au projet (dev', financement,...) ? Car il y a le Blackphone, certes, mais tous les bouts de crypto sont privateurs ce qui va à l'encontre du principe de Kerckhoffs.
(
Permalink)