iMOTION
Titelbild: App-Sicherheit in iOS 9
25.05.2016 - Andreas Schenk

App-Sicherheit in iOS 9

Der dritte und letzte Teil der Reihe „Sicherheit in iOS“ beschäftigt sich nun mit der Sicherheit der Daten in Apps, nachdem die beiden letzten iMOTION-Ausgaben die Gerätesicherheit und die Übertragungssicherheit im Netzwerk beleuchtet haben. Wie sicher sind die Daten in einer App vor fremdem Zugriff? Auf diese Frage gibt es leider keine immer gültige, einfache Antwort. Auf der einen Seite enthält iOS schon immer seitens Apple mit dem sogenannten Sandboxing eine Funktion, die die Daten der verschiedenen Apps klar voneinander trennt.

Sandboxing

In iOS bekommt jede App ihre eigene, von anderen Apps getrennte Sandbox. Das ist ein abgetrennter Bereich, auf den nur die jeweilige App Zugriff hat. Eine App kann nur innerhalb der eigenen Sandbox Dateien ablegen und auch nur auf Dateien zugreifen, die in dieser liegen. Auf die Daten einer anderen App, die in deren Sandbox liegen, kann nicht zugegriffen werden. Dieses Prinzip ist im iOS Betriebssystemkern verankert. Damit ist es ausgeschlossen, dass eine App die Daten einer anderen App auslesen kann. Somit muss z. B. ein Unternehmen keine Angst haben, dass eine private App eines Mitarbeiters die vertraulichen Daten einer Unternehmensapp ausliest und missbräuchlich verwendet. Durch das Sandboxing ist jede App auf ihren eigenen kleinen Sandkasten beschränkt. Das Prinzip des Sandboxing gilt auch für die mitgelieferten Apps und Systemdienste, wie Kontakte, Kalender, Notizen, Fotos und mehr. Allerdings sollen diese ja meist auch von den Apps aus dem  App Store mitbenutzt werden können. Das Sandboxing gilt hier insofern, dass die anderen Apps sich nicht so einfach die Daten dieser Systemdienste aus dem Dateisystem holen können. Eine App, die z. B. Zugriff auf die Kontakte möchte, muss durch eine sogenannte API – ein Application Programmers Interface – gehen. Bevor das Betriebssystem über diese Schnittstelle den Zugriff gewährt, wird der Anwender mit einer Meldung gefragt, ob der jeweiligen App Zugriff auf den angefragten Systemdienst gegeben werden soll.

Es liegt also in der Hand des Anwenders, ob er diesen Zugriff gewähren oder ablehnen will.

Die Zustimmung oder Ablehnung hierbei gilt natürlich nicht fest bis in alle Zeit, sondern kann jederzeit in den Einstellungen unter dem Punkt Datenschutz geändert werden. Hat man z. B. versehentlich einer App den Zugriff auf die Photo Mediathek eingeräumt, so kann man das später jederzeit wieder abschalten. Der Grundsatz sollte hier sein, dass man nur die Zugriffe gewährt, die man wirklich benötigt und alles andere abschaltet, denn hat man einer App den Zugriff auf einen Systemdienst erlaubt, kann die App grundsätzlich die Daten frei nutzen. Man muss sich dann darauf verlassen, dass der Entwickler der App diese nicht missbräuchlich nutzt.

Die Datenschutzklassen von iOS

Neben der Überlegung, ob und wie eine App auf die Daten einer anderen App zugreifen kann, ist ja auch noch wichtig, inwiefern die Daten in einer App sicher sind gegenüber einem externen Angreifer, der physischen Zugriff auf das Telefon hat. Ob ein solcher Zugriff möglich ist oder nicht, hängt in erster Linie davon ab, wie wichtig dem Entwickler der App das Thema Datenschutz war, als er die App geschrieben hat. Apple hat schon recht früh ein sehr ausgeklügeltes Verschlüsselungssystem in iOS integriert. Dieses System baut auf Datenschutzklassen auf, über die geregelt ist, zu welchen Zeitpunkten überhaupt die Daten verfügbar sind.

Sicherheit in iOS 9 auf dem iPhone

Diese Schutzklassen haben verschiedene Abstufungen. So ist z. B. die niedrigste Schutzklasse „Available after boot“ sofort nach dem Gerätestart ohne weitere Passworteingabe verfügbar. Dateien dieser Klasse verfügen also über fast keinen Schutz. Sie sind zwischen Start und Herunterfahren des iPhones immer frei verfügbar. Die höchste Schutzklasse „Always protected“ dagegen funktioniert so, dass der kryptografische Schlüssel zum Zugriff auf diese Schutzklasse nur erstellt werden kann, wenn neben dem einzigartigen Hardwareschlüssel des jeweiligen iPhones auch die Eingabe des Gerätecodes erfolgt. Dieser Klassenschlüssel wird dann nur im Hauptspeicher gehalten und nicht auf den Flash-Speicher geschrieben und kann nur benutzt werden, solange das iPhone entsperrt ist, denn sobald das iPhone in den Sperrzustand geht, wird der Klassenschlüssel aus dem Hauptspeicher gelöscht. Und da er nirgendwo im Dateisystem existiert, kann er auch von keinem Angreifer ausgelesen oder benutzt werden. Solange das Gerät gesperrt ist, existiert dieser Schlüssel einfach nicht.

Die App-Entwickler können für die App-Daten frei wählen, in welcher Datenschutzklasse die App Ihre Daten speichert. Allerdings kann nicht jede App die höchste Schutzklasse – „always protected“ – verwenden, denn dann würde die App nicht im Hintergrund funktionieren können, während das iPhone gesperrt ist. Aus diesem Grund gibt es noch eine Reihe weiterer Datenschutzklassen, die eine feinere Abstufung möglich machen – eine sei hier noch erwähnt, v. a. auch weil diese Datenschutzklasse seit iOS 8 für alle Apps Standard wurde, bei denen der Entwickler nicht explizit eine andere gewählt hat: „Protected until first authentication“.

Bei dieser Schutzklasse wird der kryptografische Schlüssel ähnlich wie bei der höchsten Schutzklasse „Always protected“ sowohl vom eindeutigen Hardwareschlüssel als auch vom Gerätecode abgeleitet. Und auch dieser Schlüssel wird nur im Hauptspeicher gehalten und nicht auf den Flash-Speicher geschrieben. Allerdings wird er nicht aus dem Hauptspeicher gelöscht, wenn das iPhone in den Sperrzustand geht. Damit können die Daten dieser Klasse nach einem Neustart erst genutzt werden, wenn das Gerät zum ersten Mal entsperrt wurde. Danach sind sie dann aber auch im Hintergrund verfügbar. Dies ist z. B. für die allermeisten Musik- oder Navigations-Apps wichtig. Alle seitens Apple mitgelieferten Apps benutzen auch diese Schutzklasse.

Welche Schutzklasse eine App aber verwendet, kann ein Anwender nicht direkt sehen. Wenn Sie als Unternehmen also interessiert sind, welche Schutzklassen die von Ihnen verwendeten Apps benutzen, müssen Sie beim jeweiligen Entwickler nachfragen.

Touch ID für App

Ein App-Entwickler kann inzwischen auch die Touch-ID-Schnittstelle nutzen, um den Zugriff auf die Daten seiner App zusätzlich zu sichern. Die App fragt dann beim Start nach einer Authentifizierung durch einen in Touch ID gespeicherten Finger. Dabei gibt es keine stärkere Verschlüsselung, es ist lediglich ein weiterer Schlüssel (hier: der Finger) zum Entsperren der Daten möglich. Touch ID bringt also auch in Bezug auf die Daten einer App keine zusätzliche Sicherheit, sondern nur einen höheren Komfort, wenn man eine stärkere Sicherheit verwendet. Aber auch das ist ja eine gute Sache.

Fazit

Als Fazit kann man also sagen, dass die Daten in den Apps vor anderen Apps sicher sind. Bei externen Angreifern steigt die Sicherheit der App-Daten mit der verwendeten Schutzklasse. Da wohl die meisten Apps die Standardklasse „Protected until first authentication“ verwenden, bei der die kryptografischen Schlüssel nach dem ersten Entsperren existieren, sollte man sein Telefon immer ausschalten, wenn man es aus der Hand gibt. Dadurch übergibt man ein Gerät, bei dem die meisten Daten so geschützt sind, dass ohne eine Eingabe des korrekten Gerätecodes keine Daten extrahiert werden können.
Andreas Schenk
#Andreas Schenk

Andreas Schenk

Geschäftsführer Apfelwerk GmbH & Co. KG

Andreas Schenk ist IT-Berater, Buchautor und zertifizierter Apple Trainer. Mit seiner Firma Apfelwerk betreut und berät er bundesweit Firmen und Schulen bei ihren IT-Projekten. Im Auftrag von Apple Deutschland hält er auch Vorträge, Workshops und Trainings für Reseller und Unternehmenskunden. Sein Ziel dabei ist immer, für seine Kunden den Erfolg mit der Apple Plattform sicherzustellen. Mit über 17 Jahren Erfahrung im Bereich Apple Clients, Server und Netzwerke gehört er zu den gefragtesten Apple Consultants in Deutschland.

Ganzen Artikel lesen