13.01.2014 Aufrufe

PDF 941kB - Hochschule Ulm

PDF 941kB - Hochschule Ulm

PDF 941kB - Hochschule Ulm

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Aufbau eines sicheren Kanals über NFC<br />

6.2 Sicherheitsanforderungen an das Smartphone Betriebssystem<br />

Sensible Daten von Apps müssen sicher gespeichert werden können. Wie in Kapitel 4.1<br />

erläutert wurde, ist es nicht möglich, dass z.B. eine App A auf die Daten von einer<br />

App B zugreifen kann. Dennoch unterliegen Smartphone Betriebssysteme verschiedenen<br />

Angriffsvektoren. Ein typisches Ziel eines Angreifers ist es eine Privilege Escalation<br />

durch fehlerhafte Softwareimplementierung zu erreichen. Dadurch, dass die Rechte vom<br />

Angreifer erhöht werden, kann dieser je nach Berechtigungsstufe und der konsequenten<br />

Umsetzung der Defense-in-Depth-Schutzmaßnahmen vom Betriebssystem unterschiedlich<br />

großen Schaden anrichten. Ein erster Schritt z.B. wäre der Zugriff auf die Sandbox<br />

einer anderen App. Sollte dieser Zugriff gelingen, ist ein Angreifer möglicherweise<br />

in der Lage vertrauenswürdige Daten von der App zu kopieren oder zu manipulieren.<br />

Daher empfiehlt es sich, sensible Informationen, wie z.B. einen Private Key, nicht auf<br />

dem Dateisystem zu speichern [Cer13]. Sollte keine andere Möglichkeit bestehen, scheint<br />

zunächst Verschlüsselung als möglicher Lösungsansatz. Wenn ein Angreifer aber Zugriff<br />

auf die Sandbox hat und die Daten verschlüsselt sind, kann der Angreifer immer noch<br />

in die ausführbaren Dateien der App einsehen. Darin wird sich auch üblicherweise der<br />

geheime Schlüssel befinden, um die Dateien in der Sandbox zu entschlüsseln. Apps in<br />

Windows Phone 8 und Android 4.3 werden typischerweise in Managed Code umgesetzt,<br />

wie z.B. .NET bzw. Java. Da Managed Code zur Laufzeit übersetzt wird, befinden sich<br />

die ausführbaren Dateien in einem plattformunabhängigen Format, auch als Common<br />

Intermediate Language (CIL) bei .NET und Bytecode bei Java bezeichnet. Aus diesem<br />

plattformunabhängigen Format lässt sich mit diversen Programmen der originale Quellcode<br />

wiederherstellen. Daher ist es ratsam, keine Geheimnisse im Quellcode hardzucoden.<br />

Es gibt zwar Verschleierungsprogramme, die Klassen und Objekte in nicht-triviale<br />

Namen umbenennen, um das Reverse Engineering eines Angreifers zu erschweren. Dennoch<br />

ist das zwangsweise kein Schutz, da z.B. ein String, der im Code eine längere<br />

Zeichenfolge zugewiesen bekommt, für den Angreifer ein Indiz dafür sein kann, dass dies<br />

möglicherweise ein Private Key zum Entschlüsseln sein könnte. In Windows Phone 8<br />

wird der CIL im Windows Phone Store in ein sogenanntes Machine Dependent Intermediate<br />

Language (MDIL) Format kompiliert [Ram12]. Zum Installationszeitpunkt wird<br />

nativer Code aus den MDIL-Binärdateien erzeugt. Aber auch nativer Code bietet an<br />

dieser Stelle keinen garantierten Schutz, da auch dieser mit Analyseprogrammen nach<br />

auffälligen Codeabschnitten durchsucht werden kann.<br />

Absolute Sicherheit kann nicht erreicht werden, da es letztendlich nur um Schadensbegrenzung<br />

geht. Es muss davon ausgegangen werden, dass Smartphone Betriebssysteme<br />

kompromittierbar sind und das Dateisystem, welches einer App zur Verfügung steht kein<br />

vertrauenswürdiger Ort, für sensible Daten ist. In Kapitel 7 wird ein Ansatz für Windows<br />

Phone 8 gezeigt, wie ein Schlüsselpaar aus Private Key und Public Key erzeugt<br />

werden kann und sicher persistiert werden kann.<br />

40

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!