Wie werden App-Berechtigungen in Ubuntu Touch gehandhabt?

19

Die meisten Elemente der Hardware oder Datensätze, die von Apps auf der Android- und iOS-Plattform gemeinsam genutzt werden, werden streng kontrolliert und nur für Apps bereitgestellt, die explizit auf der Basis der erforderlichen Informationen bereitgestellt werden. Auf diese Weise kann der Benutzer sicherstellen, dass beispielsweise eine böswillige Taschenlampen-App seinen Standort und seine Kontaktliste nicht hochlädt.

Auf dem Desktop von Ubuntu gibt es effektiv zwei Berechtigungsstufen: user und root. Im Falle des Benutzers wird nicht viel Beschränkung gewährt. Es kann weiterhin eine Verbindung zum Internet herstellen, mit fast jeder Hardware, die es mag, kommunizieren und beliebige Dateien lesen / schreiben /home/user/. Dieses Modell setzt voraus, dass der Benutzer kompetent genug ist, um sicherzustellen, dass eine von ihm verwendete Anwendung legitim ist (was mit Open-Source-Software sehr einfach ist).

Meine Frage ist also, welche Einschränkungen und Kontrolle über die Fähigkeiten einer App auf der mobilen Plattform bestehen? Und da es sich um dasselbe Betriebssystem handelt, wie wird dieses System in den Desktop überlaufen? Müssen alle Programme in einer Sandbox gespeichert werden?

Ich bin sehr gespannt auf den Plan :)

PS. Eine Sache, die ich an iOS über Android mag, ist, dass viele Berechtigungen explizit vom Benutzer genehmigt werden müssen, wenn es zum ersten Mal ausgeführt wird. Wenn Sie der Facebook-App nicht mitteilen möchten, wo Sie sich gerade befinden, können Sie dies einfach ablehnen. Bei Android müssen Sie die App lediglich deinstallieren und Get Over It ™.

Das System würde ich gerne sehen ist es für die Erlaubnis , mit einem „nur dieses eine Mal“ und eine Option „Immer“ zu fragen, wenn die Anwendung , dass die Erlaubnis , einen Befehl auszuführen braucht . Willst du dich auf der Karte finden? Fragen Sie nach einer Standortgenehmigung. Genau wie bei einigen HTML5-APIs.

Jona
quelle
3
Ich mag deine Frage. Es ist eine der ärgerlichen Dinge für mich, dass einige Apps in Android zu viele Berechtigungen erfordern und ich nicht einmal verstehe, wofür die Apps sie benötigen. In Anbetracht des frühen Stadiums des Systems liegt der Schwerpunkt noch nicht auf diesem Thema. In der späteren Phase wird es jedoch an Bedeutung gewinnen.
NilsB
2
Während ich Ihre Frage theoretisch mag, bedeutet dies in der Anwendung, dass der "pure Linux on Arm" -Teil des Geräts wegfällt (was meiner Meinung nach der coolste Vorteil war). Vielleicht - so hoffentlich - werden sie implementieren, dass jede App ein Benutzer ist, der dem ähnlich ist, was Dienste jetzt tun.
RobotHumans
1
Es hat eigentlich nichts mit dem Hardwarezugriff zu tun. Das wird von Gruppen verwaltet, genau wie unter normalem Linux. Die Leute vergessen das, weil ihr Benutzer auf magische Weise Teil der Audio-Gruppe oder einer Wählgruppe für USB-Geräte oder was auch immer ist. Kabelloser Zugang? Apps melden Anfragen, die über dbus gesendet wurden, Problem behoben. Linux-Berechtigungen funktionieren.
RobotHumans
1
Ich bin nicht im Entwicklerteam, aber für Audiogeräte muss der Benutzer in der entsprechenden Gruppe sein, ebenso wie für tty-Geräte usw. auf Vanilla Ubuntu.
RobotHumans
1
Zumindest Audiogeräte, Modems, WLAN, Ethernet, GPU, CPU, RAM, DVD, USB, Kartenleser, Bluetooth, Drucker, Webcams, ATA, SATA, ESATA, Tastatur, Maus, Touchpad und Fingerabdruckleser können basierend auf eingeschränkt werden Gruppen ODER / und Benutzer. Jedes Gerät, auf das über den Geräteknoten zugegriffen wird, verfügt über eine eigene Gruppe / Berechtigung. Wenn die App Sockets verwendet, legen Sie einfach Gruppen / Berechtigungen fest. Es gibt auch verschiedene Möglichkeiten ( ja, Sie haben auch Optionen ), um die Kommunikation zwischen Apps, Diensten usw. einzuschränken ( bereits erwähnte D-Bus- und andere RPC-ähnliche Dienste ). Auch lskönnte eingeschränkt werden. Diese Box hat Längenbeschränkung ...
GoFundMonica - codidact.org

Antworten:

5

Daran wird im Rahmen der Ubuntu App Developer Upload- Spezifikation gearbeitet, insbesondere im Abschnitt zur Sicherheit .

Dies befindet sich noch in einem frühen Stadium, ist jedoch ein Auszug aus der Spezifikation und soll einen gewissen Kontext bieten:

Sobald eine Anwendung installiert ist, stellt AppArmor eine Sicherheits-Sandbox bereit, um den Benutzer vor böswilligem oder einfach kaputtem Code zu schützen. Zu diesem Zweck benötigt jede Anwendung ein ordnungsgemäß erstelltes und minimal zulässiges Profil, um den Zugriff ihrer Anwendung auf dem lokalen System einzuschränken.

Anwendungen werden über AppArmor in einer Sandbox gespeichert und Berechtigungen werden gemäß dem AppArmor-Sicherheitsprofil der App erteilt.

David Planella
quelle
Ich denke, das bedeutet, dass sie die Berechtigungen erhalten, wenn sie installiert sind?
Jonah