Tablette-smartphone-logiciel-libre

De April MediaWiki
Aller à la navigationAller à la recherche
Logo-sensibilisation.png Bienvenue sur un projet Logo-sensibilisation.png
du groupe de travail Sensibilisation


Ambox warning red construction.png
/!\ Travail en cours /!\

Cette page présente une page de suivi en cours de réalisation.

Si vous souhaitez participer, n'hésitez pas à laisser votre avis sur la page de discussion en suivant au mieux ces recommandations.

Introduction

Les smartphones et les tablettes ont aujourd'hui envahi notre environnement que ce soit personnel, professionnel ou collectif :

  • D'un point de vu personnel: il existe des milliers de bonnes raisons d'utiliser des smartphones et autres tablettes. Il n'est pas question de remettre en cause cette évolution mais plutôt de s'interroger sur les dangers liés aux différents logiciels utilisés et à la protection des données personnelles;
  • D'un point de vu professionnel: si les opportunités existent et les smartphones sont source de gains de productivité palpables, il reste néanmoins de nombreuses zones d'ombre sur l'espionnage industriel, le traitement des données sans permission et les différentes portes dérobées des smartphones.
  • D'un point de vue collectif: les collectivités, les structures d'enseignement s'empressent d'intégrer les différentes technologies mobiles. Si cet engouement est légitime, il doit se faire dans avec transparence et objectivité.

Il est dans les missions de l'April de donner aux citoyens et aux décideurs politiques des éléments de réflexions et de sonner l'alarme sur les risques liés à l'usage de ces différentes technologies.

La lecture est complexe car elle renvoie à plusieurs niveaux que ce soit les composants matériels, le système d'exploitation jusqu’au traitement des données. Tous ces éléments doivent être étudiés afin d'apporter une analyse de la situation actuelle mais aussi apporter des solutions pour une informatique mobile plus citoyenne. Dans cette page vous retrouverez une analyse du degré de liberté actuel des smartphones et tablettes au travers différentes domaines :

  • Hardware : En amont, choisir le hardware en fonction de l'existence d'un bootloader/d'une amorce non verrouillé(e) et de pilotes libres et, lorsqu'il n'existe pas de pilotes libres pour un composant (cas de la puce GSM), en fonction de son isolation physique du reste des composants afin de limiter son pouvoir.
  • Le système d'exploitation
  • Les Applications
  • Gestionnaire d'applications
  • Données

Les différents domaines liés au mobile et problématiques associées (personne référente) :

Hardware & bootloader/amorce (todo:tbe)

  • Bootloader/amorce ouvert. Peut on installler l'hypothétique OS de son choix sur son téléphone ? -> conseils d'achat.

Installer un autre système sur son appareil à la place de celui existant :

En dehors des rares cas où vous pourrez acheter un smartphone ou une tablette avec le système libre de votre choix, il vous faudra, comme c'est le cas avec les ordinateurs personnels, « écraser » le système fourni et le remplacer par le système d'exploitation de votre choix.

Cette opération peut se faire suivant deux techniques :

  1. Soit on reflashe l'appareil en utilisant le bootloader quand le constructeur le permet (c'est-à-dire si le bootloader n'est pas verrouillé),
  2. Sinon il faudra « rooter » le système de l'appareil (c'est-à-dire obtenir l'accès au compte root grâce au noyau Linux présent dans le système existant).

La possibilité d'installer un autre système est un point à bien examiner lors de l'achat de votre appareil. Attention : cette opération, mal réalisée, peut rendre votre appareil inutilisable.

Hardware & pilotes (todo:tbe)

Pas de maîtrise des composants (ni par le fabricant de téléphone ni par le développeur de l'OS). Pour deux composants des téléphones mobiles/ordiphones en particulier il est complexe de développer des pilotes libres par rétro-ingénierie : la partie graphique (2D, 3D, vidéo) et la partie communication.

Pourquoi des pilotes libres ?

1) Pour savoir ce que fait le pilote, comme tout logiciel (contrôle de la machine).

2) Pour ne pas être empêché de mettre à jour le système (impliquant une mise à jour de composants fondamentaux comme une nouvelle version d'une bibliothèque logicielle du système ou de nouvelles API) au motif qu'un pilote binaire n'aurait pas été adapté (pérénité de la machine et sécurité)

1) Les puces graphiques en présence et leur prise en charge au moyen de pilotes libres

État des lieux en date de mars 2014 :

  • ARM Mali : pilote 2D/3D bien avancé mais pas encore intégré dans la pile graphique de Linux (il devrait l'être à relativement court terme probablement).
  • Qualcomm Adreno : pilote 2D/3D libre pour A2xx et A3xx intégré dans la pile graphique de Linux (A4xx à suivre à court-moyen terme probablement, étant une évolution des A3xx).
  • NVIDIA GeForce ULP (Tegra) : pilote 2D libre intégré dans la pile graphique de Linux pour Tegra 2/3 (pilote 2D pour Tegra 4 à suivre à court terme ; pilote 3D à suivre à court-moyen terme probablement).
  • Vivante Corporation Vivante : pilote 2D libre intégré dans la pile graphique de Linux limité aux SoCs Marvell Armada 510 pour l'instant (Armada 610 à suivre à court terme probablement).
  • Broadcom VideoCore : rétro-ingénierie complexe, pourtant il existe une initiative de pilote libre mais celle-ci est encore balbutiante. Surprise : en mars 2014 Broadcom a commencé à libérer code et documentation, mais il difficile de prédire l'impact que cela aura sur le développement du pilote libre.
  • Imagination Technologies PowerVR Series 5 (SGX) : mieux vaut ne rien attendre côté rétro-ingénierie eu égard à la complexité de la tâche.
  • Intel HD Graphics (apparu récemment, encore peu diffusé) : Intel fournit lui-même le pilote libre 2D/3D/vidéo et même temps que la documentation technique :).

=> À noter : L'accélération vidéo n'est pas indispensable car n'empêche pas l'affichage (d'autant que les shaders programmables du GPU peuvent être mis à contribution pour soulager le CPU). Mais ne pas recourir aux unités dédiées à la vidéo du SoC implique une consommation énergétique supérieure et donc une autonomie moindre.

=> Quel cœur graphique privilégier dans l'optique d'un pilote libre ?

Si les cœurs graphiques PowerVR d'Imagination sont à fuir comme la peste, les GeForce ULP (Tegra), Mali (200/400), Adreno et Vivante sont à privilégier pour qui espère un pilote libre à court ou moyen terme (En premier lieu Adreno bénéficie déjà d'un pilote 2D/3D communautaire, Mali n'est pas très loin derrière, et, si le pilote libre pour HD Graphics est directement fourni par Intel, la puce n'est pas encore très répandue dans le monde mobile. En deuxième lieu il sera intéressant de suivre les progrès des pilotes Vivante et Tegra. En troisième lieu il n'est pas interdit d'imaginer un jour un pilote libre pour les VideoCore, mais l'architecture alambiquée de la puce – tout comme celle des PowerVR – incite à la prudence)[1].

2) La partie communication : le problème de l'incontournable (à ce jour) pile GSM propriétaire et son emprise variable

=> État des lieux en date de mars 2014 : Tant que des composants aussi fondamentaux que l'accès au réseau resteront gérés par des pilotes binaires propriétaires, il sera difficile de s'assurer que la vie privée de l'utilisateur sera bien respectée. Hélas ! Il n'existe pas aujourd'hui de pilote libre pour la partie modem des téléphones (feature phone ou smartphone) (il y a bien le projet OsmocomBB, mais peu de téléphones sont supportés – et aucun smartphone – et ce n'est pas encore utilisable).

=> Que faire en attendant ? Dans la mesure où aucune solution matérielle actuelle n'offre une partie réseau libre, le cloisonnement du modem limite le risque d'espionnage de l'utilisateur. Ainsi les modèles sur lesquels le système d'exploitation libre Replicant est porté sont choisis dorénavant notamment en fonction de l'isolation du modem : Il s'agit des plate-formes Exynos de Samsung, ou encore de la plateforme OMAP de Texas Instruments (qui équipe notamment le smartphone GTA04 et dont le modem est un CPU distinct exécutant son propre système d'exploitation (suggestion : évaluer la taille du « pilote » – en fait un miniOS – pour rendre l'argument significatif. NB : dans leRaspberry Pi par exemple, c'est le cœur graphique, au pilote privateur, qui initialise les autres composants du SoC : on voit bien qu'il est le véritable coeur du SoC), certes non-libre, mais dialoguant avec le reste du matériel au moyen de logiciels libres dans le cas de Replicant ce qui permet de limiter son action à sa fonction de modem). À l'inverse le SoC Qualcomm QSD qui a le modem embarqué dans le SoC, lequel modem a accès à la mémoire etc. est à éviter. Hélas les SoC Qualcomm QSD sont ceux choisis pour faire tourner les smartphones Firefox OS pour le moment. De même le SoC choisi par Fairphone a le modem inclus sur le SoC ce qui ne permet pas de contrôler son activité[2] ).

En cliquant sur la page dédiée du wiki Replicant de chaque appareil supporté par cet OS, on a le diagnostic de l'emprise du modem sur le reste des composants http://redmine.replicant.us/projects/replicant/wiki#Technical-infos-on-the-devices. Par exemple pour les Samsung Galaxy S2 et S3 le risque est "limité" à "Modem could access GPS" (en sachant que par ailleurs l'opérateur localise son client par triangulation) alors que le GTA04 profite de l'isolation complète du modem. Comparer avec les HTC Dream/HTC Magic construits sur un SoC Qualcomm : "The modem controls sound, GPS, main CPU memory (read/write)"... effrayant, non ?

Lire à ce sujet : Entretien avec Paul Kocialkowski, développeur Replicant

Systèmes d'exploitation (todo:fpo)

Système d'exploitation[3].

  • 4 libertés ?
  • problèmes des pilotes (pas de pilotes)
  • + logiciels, services de base
  • forks privateurs (samsung va "personnaliser" son android, Orange va ajouter des applications et des réglages imposés, etc.)
  • API (-> libre -> gouvernance -> publique -> patent free ... sous ensembles des problématiques d'interop)

Android et dérivés

Android Open Source Project (AOSP) est un système d'exploitation open source, développé de façon non-communautaire par Google sur la base du noyau Linux, à la base de la distribution Android que l'on retrouve dans les téléphones de différentes marques certifiés par Google, mais aussi à la base de CyanogenMod, de Replicant (qui est soutenu par la Free Software Foundation), de Fire OS (qui équipe les tablettes Kindle Fire d'Amazon) ou encore de Nokia X Software Platform (qui équipe les téléphones Nokia X).

Voici un tableau pour illustrer les différences entre ces versions :

Système Identification requise auprès d'une autre entité que l'opérateur télécom pour certaines fonctions ? Magasin(s) d'applications ou de contenus Possibilité d'installer d'autres magasins ? Possibilité d'installer des applications sans passer par un magasin ? Jeu d'applications intégrées Caractéristiques/problèmes identifiés
Android certifié par Google Oui : auprès de Google, pour accéder au Play Store Magasin non-libre de Google : Google Play Store Oui Oui Jeu d'applications et de services non-libres de Google, packagé avec le Google Play Store (« Google Apps ») : Gmail, Maps, Hangouts, YouTube, Drive... Ces applications sont accompagnées d'API propriétaires proposées aux développeurs tiers dans le but, pour Google, de forcer le passage d'un écosystème d'applications Android à un écosystème d'applications dépendantes de Google et donc de ses conditions contractuelles http://arstechnica.com/gadgets/2013/10/googles-iron-grip-on-android-controlling-open-source-by-any-means-necessary/4/. Auxquelles il faut ajouter les applications et surcouches graphiques non-libres des constructeurs. Système non-libre. Anti-fonctionnalités inhérentes aux applications non-libres (notamment : Google Play Store possède une porte dérobée par laquelle Google peut installer ou désinstaller des applications ; certains constructeurs modifient les applications pour espionner les utilisateurs http://www.beneaththewaves.net/Projects/Motorola_Is_Listening.html ; parmi les applications qu'ajoutent certains constructeurs se trouvent des applications permettant l'espionnage intégral des actions de l'utilisateur http://ecrans.liberation.fr/ecrans/2011/11/30/carrier-iq-le-mouchard-de-poche-d-android_954914) ; l'utilisateur n'a pas non plus la main sur le système lui-même (difficulté/impossibilité de supprimer les Google Apps pour qui souhaite ne garder que des applications libres). Un certain nombre d'appareils ont un chargeur de démarrage verrouillé et/ou ne peuvent être « rootés » par l'utilisateur. Côté développement, le SDK de Google exige de signer un contrat de licence privatrice (a contrario le SDK de Replicant est libre http://code.paulk.fr/article0008/what-s-up-with-the-android-sdk)
Android Open Source Project Non Aucun Oui Oui Jeu d'applications libres que Google laisse péricliter au profit de ses variantes non-libres http://arstechnica.com/gadgets/2013/10/googles-iron-grip-on-android-controlling-open-source-by-any-means-necessary/ Idem probablement pour les API d'Android indépendantes des services Google que ce dernier commence à remplacer par des versions non-libres, telle l'API de géolocalisation http://arstechnica.com/gadgets/2013/10/googles-iron-grip-on-android-controlling-open-source-by-any-means-necessary/4/ Système libre (à part quelques firmwares cf https://linuxfr.org/nodes/89719/comments/1450809) mais il n'inclut pas les pilotes nécessaires pour pouvoir fonctionner sur un appareil mobile.
Fire OS ? Magasins non-libres d'Amazon : Amazon Appstore, Kindle Store, Amazon Instant Video, Amazon MP3 ? ? Jeu d'applications et de services non-libres alternatifs : Nokia's Here Maps, navigateur Amazon Silk, Amazon Cloud Drive... Système non-libre.
Nokia X Software Platform ? Magasin non-libre de Nokia : Nokia Store ? ? Jeu d'applications et de services non-libres alternatifs : Nokia's Here Maps, Nokia Xpress Browser, MixRadio, Skype, Outlook, OneDrive... Système non-libre.
CyanogenMod ? ? ? ? ? Système non-libre ?
Replicant Non Magasin libre F-Droid ? ? Jeu d'applications libres (celui de l'Android Open Source Project ?) Système libre (à part quelques firmwares et pilotes ?). Côté développement, le SDK est libre aussi.

Firefox OS

Firefox OS est un système d'exploitation open source, développé de façon communautaire sous la direction de la fondation à but non-lucratif Mozilla sur la base du noyau Linux et en s'appuyant sur les pilotes (pour la plupart non-libres) conçus pour Android.

Système Identification requise auprès d'une autre entité que l'opérateur télécom pour certaines fonctions ? Magasin(s) d'applications ou de contenus Possibilité d'installer d'autres magasins ? Possibilité d'installer des applications sans passer par un magasin ? Jeu d'applications intégrées Caractéristiques/problèmes identifiés
Version téléchargeable sur le site du projet Non ? Firefox Marketplace Oui Oui ? S'appuie sur des API Web libres. N'inclut pas les pilotes nécessaires pour pouvoir fonctionner sur un appareil mobile.
Version pré-installée sur les appareils mobiles ? Firefox Marketplace et éventuellement d'autres ? Oui ? S'appuie sur des API Web libres. Recourt aux pilotes Android généralement non-libres pour la plupart.

Tizen

Tizen est un système d'exploitation open source, développé de façon communautaire notamment avec le concours de Samsung et Intel, sur la base du noyau Linux et en s'appuyant sur les pilotes des distributions GNU/Linux.

Système Identification requise auprès d'une autre entité que l'opérateur télécom pour certaines fonctions ? Magasin(s) d'applications ou de contenus Possibilité d'installer d'autres magasins ? Possibilité d'installer des applications sans passer par un magasin ? Jeu d'applications intégrées Caractéristiques/problèmes identifiés
Version téléchargeable sur le site du projet ? ? ? ? ? S'appuie sur des API Web libres (d'autres API possibles en sus). Le SDK complet n'est pas libre https://developer.tizen.org/tizen-sdk-license-agreement bien que s'appuyant sur des briques libres https://developer.tizen.org/sites/default/files/page/sdk_opensource_license_announcement.pdf
Version pré-installée sur les appareils mobiles ? ? ? ? ? S'appuie sur des API Web libres (d'autres API possibles en sus). Le SDK complet n'est pas libre https://developer.tizen.org/tizen-sdk-license-agreement bien que s'appuyant sur des briques libres https://developer.tizen.org/sites/default/files/page/sdk_opensource_license_announcement.pdf

Applications (todo: jollfr)

  • Variante: personnalisation, privatisation (4 libertés), choix par défaut, backdoor, bundling
  • Langage: framework, SDK, Javascript
  • Application: 4 libertés, cross-platform
  • Sandboxing

Gestionnaire d'applications (todo:fpo)

  • Gestion/contrôle des applications : puis-je installer ou supprimer les logiciels de mon choix ? Les partager ? Les étudier/modifier ?
  • Choix du magasin : puis-je choisir l'origine de mes programmes ? Exemple : application RATP Androïd accessible uniquement dans le Playstore. L'appli est gratuite (et non libre) mais impose qu'on se vende à Google.
  • Politique de gestion de contenus via les applicatifs

Données (todo: jollfr)

  • Choix des données par défaut
  • Accès aux données : qui à accès à quoi ? Comment ? ai-je le contrôle là dessus ?
  • Informations liées au traitement des données : suis-je informé de ce qui est fait de mes données ?
  • Localisation des données: Device (ou est-ce ? Chez moi ? chez un ami ? chez un inconnu ?), Fournisseurs (qui contrôle ?), données sur serveurs physiques (juridiction impliquée)
  • Point à approfondir : La différence avec les PC. Quels spécificités posent les mobiles sur le pb des datas.

Terminologie

  • SoC : « System on Chip », ou système sur puce : Tous les composants sont réunis sur une même puce conçue à la manière de légos : un coeur graphique 2D de chez X, un coeur 3D de chez Y, un coeur vidéo de chez Z...
  • ARM : jeu d'instructions qui domine l'embarqué, concurrent du jeu d'instructions x86 (processeurs Intel Atom et Core, AMD A et FX) qui domine le desktop
  • GPU : « Graphics Processing Unit », ou processeur graphique (par oposition au CPU qui est un processeur généraliste)
  • feature phone : téléphone simple sans les fonctions d'un ordinateur (à l'inverse d'un smartphone qui est un ordinateur avec fonction téléphone)
  • smartphone : Benjamin Bayart parle d' « ordinateur de poche » avec téléphone et appareil photo comme périphériques (source : http://data.confs.fr/enjeux_bayart/360p/), je trouve ça bien trouvé car ça situe bien les enjeux en faisant appel à toutes les questions déjà soulevées dans le domaine des ordinateurs « de bureau ».

Références

La première version de ce document a été mis au point sur le pad : http://pad.april.org/p/mobile-april

Liens