Comment les autorisations d'application seront-elles gérées dans Ubuntu Touch?

19

La plupart des éléments du matériel ou des ensembles de données partagés entre les applications sur les plates-formes Android et iOS sont fortement contrôlés et fournis uniquement aux applications de manière explicite selon le besoin de savoir. Cela peut permettre à l'utilisateur de s'assurer, par exemple, qu'une application de lampe de poche malveillante ne télécharge pas sa position et sa liste de contacts.

Sur le bureau sur Ubuntu, il existe effectivement deux niveaux de contrôle d'autorisation: utilisateur et root. Dans le cas de l'utilisateur, peu de restrictions sont accordées. Il peut toujours se connecter à Internet, s'interfacer avec la plupart des matériels qu'il aime et lire / écrire tous les fichiers /home/user/. Ce modèle suppose que l'utilisateur est suffisamment compétent pour garantir qu'une application qu'il utilise est légitime (ce qui est très facile avec un logiciel open source).

Ma question est donc de savoir quelles sortes de restrictions et de contrôle sur les capacités d'une application seront en place sur la plate-forme mobile? Et comme il s'agit du même système d'exploitation, comment ce système va-t-il déborder sur le bureau? Tous les programmes devront-ils être mis en bac à sable?

J'ai hâte de connaître le plan :)

PS. Une chose que j'aime dans la façon dont iOS le fait sur Android est que de nombreuses autorisations doivent être explicitement approuvées par l'utilisateur lors de sa première exécution. Le résultat étant, si vous ne voulez pas dire à l'application Facebook où vous êtes, vous pouvez simplement la désactiver, par rapport à Android où vous n'avez qu'à désinstaller l'application et Get Over It ™.

Le système que je voudrais voir est - il demander la permission d'un « Juste pour cette fois » et une option « Toujours », lorsque l'application a besoin de cette autorisation d'exécuter une commande . Vous voulez vous retrouver sur la carte? Demandez l'autorisation de localisation. Tout comme la façon dont certaines API HTML5 sont gérées.

Jonas
la source
3
J'aime ta question. C'est l'une des choses ennuyeuses pour moi que certaines applications dans Android demandent trop de privilèges et je ne comprends même pas pourquoi elles en ont besoin. Compte tenu des premiers stades du système, il n'y a pas encore beaucoup d'attention sur cette question. Mais il gagnera en importance dans la phase ultérieure.
NilsB
2
Bien que j'aime votre question en théorie, en application, cela signifie faire disparaître la partie "pure linux on arm" de l'appareil (ce qui, à mon avis, était son avantage le plus cool). Peut-être - comme on l'espère - qu'ils implémenteront chaque application est un utilisateur similaire à ce que les services font maintenant.
RobotHumans
1
Cela ne veut vraiment rien dire sur l'accès au matériel. Cela est géré par des groupes comme sur Linux pur et simple. Les gens oublient cela parce que leur utilisateur fait magiquement partie du groupe audio ou d'un groupe de numérotation pour les clés USB ou autre. Accès sans fil? Les applications signent les demandes envoyées via dbus, problème résolu. Les autorisations Linux fonctionnent.
RobotHumans
1
Je ne fais pas partie de l'équipe de développement, mais les périphériques audio nécessitent que l'utilisateur soit dans le groupe approprié, tout comme les périphériques tty, etc. sur vanilla ubuntu.
RobotHumans
1
Au moins les périphériques audio, modems, WLAN, Ethernet, GPU, CPU, RAM, DVD, USB, lecteur de carte, Bluetooth, imprimantes, webcams, ATA, SATA, ESATA, clavier, souris, pavé tactile et lecteur d'empreintes digitales peuvent être limités en fonction de groupes OU / et utilisateurs. Chaque appareil accessible via le nœud de l'appareil a sa propre autorisation grp /. Si l'application utilise des sockets, définissez simplement des groupes / autorisations. Il existe également différentes façons ( oui, vous avez également des options ) de restreindre la communication entre les applications, les services, etc. ( déjà mentionné D-Bus et d'autres services de type RPC ). Même lspourrait être restreint. Cette boîte a une restriction de longueur ...
GoFundMonica - codidact.org

Réponses:

5

Ceci est en cours d'élaboration dans le cadre de la spécification Ubuntu App Developer Upload , en particulier, la section sur la sécurité .

Ceci est encore à ses débuts, mais en tant qu'extrait de la spécification et pour fournir un certain contexte:

Une fois qu'une application est installée, AppArmor fournira un sandbox de sécurité pour protéger l'utilisateur contre le code malveillant ou simplement cassé. Pour ce faire, chaque application aura besoin d'un profil correctement construit et au minimum permissif pour restreindre ce à quoi son application peut accéder sur le système local.

Les applications seront mises en sandbox via AppArmor et les autorisations seront accordées en fonction du profil de sécurité AppArmor de l'application.

David Planella
la source
Je suppose que cela signifie qu'ils obtiennent les autorisations lorsqu'ils sont installés?
Jonah