Sandbox und Systemfunktionen

App-Berechtigungen – worauf Entwickler achten sollten

| Autor / Redakteur: Christian Rentrop / Stephan Augsten

Schon beim Entwurf einer App sollte sich der Entwickler fragen, welche Berechtigungen seine App nicht zwingend benötigt.
Schon beim Entwurf einer App sollte sich der Entwickler fragen, welche Berechtigungen seine App nicht zwingend benötigt. (Bild: FirmBee - Pixabay.com / CC0)

Damit Apps auf Mobilsystemen wie Android und iOS funktionieren, benötigen sie per Berechtigung den Zugriff auf Systemfunktionen. Um Misstrauen beim App-Nutzer vorzubeugen, sollten Entwickler die Zugriffe aber sinnvoll begründen können.

Moderne Apps müssen ihr Leben lang im Sandkasten spielen: Das sogenannte Sandboxing sorgt dafür, dass das Programm in einer geschützten Umgebung arbeitet, die das eigentliche Betriebssystem nicht verändern kann. Wie ein kleines Kind im Sandkasten zwar Schlösser bauen und Gräben ziehen kann, um diese anschließend unter lautem Getöse zu zerstören, kann die App dabei normal arbeiten, ohne in der „echten“ Umgebung einen Schaden anzurichten.

Gerade auf Betriebssystemen, die vom Hersteller geschlossen konzeptioniert sind – das betrifft hauptsächlich iOS und Android – ist diese Sandbox der Standard-Betriebsmodus einer jeden App, weil sie für Sicherheit und Stabilität sorgt. Gleichzeitig schränkt sie aber auch die Flexibilität der Entwickler ein: Systemnaher Hardwarezugriff ist nicht möglich, sofern der User nicht den Vollzugriff auf das Dateisystem per Rooting (Android) oder einen Jailbreak (iOS) freigeschaltet hat.

Das ist zwar nicht illegal, von den Herstellern aber auch alles andere als erwünscht: Manch einer ahndet den Root oder Jailbreak mit (Hardware-)Garantieverlust, weshalb auch nur wenige User diese Option nutzen. Für Entwickler bedeutet das, sich mit der Sandbox abfinden zu müssen, um eine maximal große User-Basis über die regulären App-Stores ansprechen zu können.

Manche Apps müssen auf Geräte-Hardware und -Software zugreifen

Dummerweise müssen Apps immer wieder auf Hardware-Funktionen des Mobilsystems zugreifen, etwa die Kamera, den GPS-Chip, diverse Sensoren oder die Helligkeits- und Farbsteuerung des Touch-Displays. Oder sie müssen auf zentrale Softwarefunktionen wie Kalender oder Kontaktliste, der Speicherkarte oder der Mediathek zugreifen, um voll funktionieren zu können – Informationen, die durch die Sandbox auch zunächst nicht ausgelesen werden können.

Ein typisches Beispiel wäre eine Shopping-App mit Barcode-Scanner, Teilen-Funktion und Location Based Services für die Einbindung ortsbasierter Sonderangebote. Damit das funktionieren kann, haben Google und Apple im Lauf der Zeit sogenannte App-Berechtigungen – oder App Permissions – ins Leben gerufen.

Über bestimmte Standard-Schnittstellen dürfen Apps auf einen bestimmten Pool von Systemfunktionen zugreifen. Allerdings nur, wenn der Nutzer dafür die Berechtigung gibt. Für die App bedeutet das, dass sie nicht vollständig auf ihren Sandkasten beschränkt ist: Sie kann durchaus mit anderen Apps auf dem Gerät kommunizieren und hat durch Kamera, GPS und Mikrofon-Zugriff Augen und Ohren, um Informationen zu sammeln und auszuwerten.

Der User muss die Zugriffe abnicken

Allerdings gibt es für Entwickler hier ein Problem: Durch die für die App-Berechtigung zwangsläufig notwendige Nutzer-Interaktion empfiehlt es sich nämlich, möglichst wenige und am besten nur für den User direkt nachvollziehbare App-Berechtigungen einzuholen.

Natürlich gibt es viele „Gewohnheitsklicker“, die einfach jede Berechtigung durchreichen. Der ein oder andere Anwender dürfte trotzdem schnell skeptisch werden, wenn Berechtigungen abgenickt werden sollen, die für den regulären Betrieb der App zunächst keine Relevanz haben. Da kann schlimmstenfalls ein Shitstorm am Horizont aufziehen, bestenfalls reagieren User nur durch Deinstallation und negative Bewertung der unter Spitzelverdacht stehenden App.

Dieses Verhalten hängt natürlich schwer vom App-Typ und dem Grad der Skepsis gegenüber dem App-Hersteller ab: Kamera-Apps etwa benötigen relativ viele App-Berechtigungen, darunter den Zugriff auf die Kamera, den Speicher, das Mikrofon oder die Ortungsfunktion, jedoch nicht zwingend Zugriff auf den Kalender oder die Kontaktliste.

Gleichzeitig wird unter generellem Spitzelverdacht stehenden Serviceanbietern wie Microsoft oder Google vermutlich automatisch größere Datensammelwut unterstellt, als kleinen Independent-Softwareschmieden – ein psychologischer Effekt, der nicht unterschätzt werden sollte. Letztendlich sollten die angeforderten App-Berechtigungen also zu den feilgebotenen Features der App passen.

App-Berechtigungen richtig kommunizieren

Genau deshalb hat Google auf seiner Developer-Website auch vier deutliche Gebote für das Einfordern der Android-App-Berechtigungen aufgestellt, die natürlich auch problemlos auf iOS-Systeme (und andere teilweise Sandbox-basierte Betriebssysteme wie etwa MacOS oder Windows 10) übertragbar sind:

1. Benutze nur die Berechtigungen, die Deine App zum Arbeiten benötigt.

2. Achte auf Berechtigungen, die von System-Bibliotheken eingefordert werden.

3. Sei transparent.

4. Gibt Systemzugriffe deutlich an.

Für Entwickler bedeutet das vor allem, dass sie die Einforderung der App-Berechtigungen jederzeit im Auge behalten sollten: Es fiele aus Sicht der Flexibilität natürlich leicht, jeder App einfach alle Berechtigungen zuzusprechen – hier machen die User aber in aller Regel nicht mit. Von daher sollten Entwickler an jedem Punkt der Entwicklung darüber nachdenken, wie sie als Nutzer auf den Zugriff ihrer App auf Funktionen, die diesen Zugriff anscheinend nicht benötigen, reagieren würden. Höchstwahrscheinlich wären gerade Entwickler hier skeptisch.

Auch Punkt zwei ist relativ schlüssig: Werden System-Libraries oder wird Code aus anderen Apps eingebunden, kann es natürlich sein, dass sich auch hier separate Berechtigungen verbergen. So kann je nach Programmiergeschick beispielsweise der Zugriff auf die Kamera gleichzeitig den Mikrofon-Zugriff anfordern – obwohl dieser zum Beispiel für die oben angesprochene Shopping-App gar nicht benötigt wird. Entwickler sollten den Code und Bibliotheken dementsprechend im Auge behalten.

Punkt drei geht auf die Nachvollziehbarkeit durch den User ein: Je besser dieser versteht, warum diese und jene App-Berechtigung angefordert wird, desto eher wird er sie freigeben. Das bedeutet, dass Berechtigungs-Anfragen – sofern anpassbar – erklärende Elemente enthalten sollten: Schon die Anfrage sollte klarstellen, welche App nun warum welchen Zugriff haben möchte warum welchen Zugriff? Gerade weniger erfahrene Anwender dürften diese Handreichung als positiv empfinden.

Punkt vier weist zu guter Letzt darauf hin, dass Entwickler darauf achten sollten, dass der Zugriff auf datenschutzrelevante Funktionen wie Kamera oder Mikrofon klar kommuniziert wird. So sollte eine App den Nutzer darüber aufklären, wenn sie aktuell Daten sammelt – auf diese Weise wird auch die in Punkt drei angesprochene Transparenz gewährleistet. Gleichzeitig kann ein allzu häufiger Hinweis Anwender aber auch abschrecken. Hier empfehlen sich Aktivitäts-Buttons in der App oder ähnliche Elemente.

Fazit: Immer aus User-Sicht entwickeln

Wie immer bei der App-Entwicklung gilt auch bei den App-Berechtigungen, dass Entwickler versuchen sollten, die App aus User-Sicht zu betrachten. Das ist nicht immer einfach, da Techniker und Endanwender ein und dieselbe Software oft mit unterschiedlichen Augen sehen.

Die App-Berechtigungen können durch das Sandboxing von iOS und Android aber eben auch nicht ignoriert werden, weshalb die damit einhergehenden Hinweise schlimmstenfalls über Erfolg und Misserfolg einer App entscheiden können. Für Entwickler bedeutet das, sich vor allem an Googles Gebot Nummer eins zu halten: Nutzen Sie nur die Berechtigungen, die für den Betrieb der App notwendig sind! In aller Regel sollte es dann zu keinen Schwierigkeiten kommen.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44535526 / Mobile Apps)