L’actualité récente a montré que les fournisseurs de service peuvent prendre beaucoup de libertés avec l’accès à des ressources sur les périphériques mobiles. Pourtant, ces équipements permettent à l’utilisateur d’avoir un certain contrôle sur ce sur quoi l’application a droit. Mais ces autorisations sont elles bien comprise ? D’après Fox News, l’appli Facebook lirait le contenu des SMSs sans qu’aucune fonctionnalité n’y soit aujourd’hui rattachée. Ignorance ? Laxisme de l’utilisateur ? Rappel sur la gestion de droits sous Android.

Les autorisations sous Android

Lorsqu’on souhaite installer une application sous Android, celle-ci demande à accéder à un ensemble de services. Celles-ci ont une granularité assez fine, et sont définies par l’éditeur de l’application en fonction de ce que réalise l’application. Sous Android, c’est du tout ou rien : une fois les autorisations données, l’application accédera à ces ressources librement sans aucune confirmation de l’utilisateur. Le seul moyen de ne pas donner ces autorisations est de ne pas installer l’application.

A la base, une application n’accède à aucune ressource. Pour consulter une entrée du carnet d’adresse, il faut l’autorisation en question. Pour déterminer la position, il faut l’autorisation d’utiliser la géolocalisation (qui peut être fine, c’est à dire via GPS ou grossière, c’est à dire via réseau GSM ou WiFi). Pour envoyer ou lire un SMS, il faut l’autorisation adéquat.

A titre d’information, la documentation pour les développeurs montre que le nombre d’autorisation est assez importante, donc que la granularité peut être assez fine.

Pertinence des autorisations demandées

Lorsqu’un utilisateur souhaite installer une application, il est confronté une liste de demande d’autorisations. L’application Facebook par exemple, demande un nombre important d’autorisation comme en témoigne la page du Market. Malgré la volonté de transparence, cette liste est peu informative car on ne sait pas à quoi elles vont servir. Si nous prenons l’application RATP, celle-ci demande l’accès à notre liste de contacts. Cette demande peut paraître incongrue pour ceux qui pensent que l’appli se contente de donner des informations sur les services de la RATP, mais une des fonctionnalités est le calcul d’itinéraire, et un des paramètres peut être l’adresse d’un contact. L’accès est donc tout à fait justifié et on remarquera que l’application se contente de lire la donnée, non de la modifier.

Maintenant, supposons que l’application que vous utilisez souhaite partager une information avec vos contacts, la première idée est de se dire qu’elle doit demander l’accès aux données de contacts et d’envois de SMS, mail, appels…

Pour quoi faire ? Sous Android, les applications sont capable d’exposer des services et sur votre appareil, vous avez déjà une application de gestion de SMS, mail, téléphonie… capable de répondre à ce besoin. Lorsque vous souhaitez partager une information, l’application doit demander au système quelle application sait répondre à ce besoin, vous proposer de choisir, et passer les informations à l’application en question.

C’est ce que proposer par exemple l’app Brothers In Games lorsque vous souhaitez partager un tournoi : l’application demande au système quelle application permet de consommer du texte, et vous choisissez ensuite l’application que vous souhaitez. Le partage de texte est un choix assez large, et permet de choisir aussi bien entre un client SMS, mail, réseaux sociaux… Mais on peut considérer que la liste de choix est polluée par exemple par Google Traduction ou Google Docs. Ce choix a été volontaire et motivée par l’exhaustivité du choix offert. Via l’application choisie, l’utilisateur pourra choisir son destinataire (c’est cette dernière qui a les autorisations d’accès au carnet d’adresse) et modifier le texte (qui est fourni par l’application Compagnon MiniWar).

Alors dans quel cas une application doit elle demander disons l’accès au gestionnaire de SMS ? Le privilège d’envoyer un SMS ne doit revenir qu’aux applications de gestion des SMS, ainsi qu’à celles qui gèrent un envoi automatique de SMS. Si un envoi de SMS doit se faire de manière interactive, l’application doit se reposer sur les applications dédiées. Le privilège de lecture de SMS ne doit revenir qu’aux applications de gestion des SMS. Une application ne devrait demander l’accès à la lecture des SMS que si elle doit déclencher une action de manière automatique sur la réception de celui-ci. Mais si l’application ne doit que consommer le contenu du SMS, il est plus judicieux et rassurant qu’elle expose le service de consommation de texte et de lui fournir manuellement le contenu.

Dans le cas de l’application Facebook, un utilisateur avisé ne devrait pas installer l’application en question. La gestion des SMS est inacceptable.

Quand une application accède-elle à une ressource ?

Un autre sujet d’inquiétude en général est le traçage. On ne souhaite pas que l’application récupère nos informations de localisation. Sous iOs, il est possible d’interdire l’accès aux données de localisation. Sous Android, on peut se dire qu’on coupe le service de localisation et on ne l’active qu’une fois l’application éteinte. Oui mais ce n’est pas si simple. Une fois l’accès au service accordé, vous ignorez comment il est exploité. Android a la particularité d’accepter que les applications tournent en service, c’est à dire en tache de fond. Une application peut donc très bien s’activer suite à l’activation (en fait au changement d’état) du service de localisation. Mis à part de surveiller quelles sont les applications actives à quel moment, vous ne saurez pas quand le service est exploité.

L’une des faiblesses du système Android est donc bien que une fois les autorisations accordées, l’utilisateur n’a aucun contrôle de la manière dont elles sont exploitées.

L’utilisateur, éternel maillon faible ?

Malgré la bonne volonté des éditeurs de systèmes, et parfois des éditeurs d’applications, il semblerait qu’une fois de plus, l’utilisateur ne prenne pas assez ses précautions. En effet, d’après l’article de FoxNews, 70% des utilisateurs ne lisent pas la liste des autorisations demandées. Après tout, quel comportement va avoir un utilisateur face à l’application qui répond à son besoin (se connecter à son réseau social par exemple) mais qui est trop intrusive ? Je n’ai pas de sondage mais ne me fais pas d’illusion sur la réponse à cette question. Le problème est donc l’éternel balance entre l’offre et la demande : si les utilisateurs faisaient majoritairement preuve de rigueur, les éditeurs devraient faire attention aux produits qu’ils proposent. Mais si les utilisateurs sont prêts à fermer les yeux sur certains points pour se contenter des services qu’ils jugent comme indispensable, alors les éditeurs auraient tord de s’en priver. Et hélas, c’est de plus en plus en faveur du géant : un petit éditeur comme Path n’aura nul doute plus de conséquences qu’un éditeur comme Facebook.

À propos de... Darko Stankovski

iT guy, photographe et papa 3.0, je vous fais partager mon expérience et découvertes dans ces domaines. Vous pouvez me suivre sur les liens ci-dessous.