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.3 Möglicher Implementierungsansatz<br />

In diesem Kapitel wird ein möglicher Implementierungsansatz beschrieben, wie die Kommunikation<br />

zwischen einem Reader und einer App abgesichert werden kann. Die Kommunikation<br />

erfolgt im Peer-To-Peer Mode. Der grobe Ablauf zum Aufbau eines sicheren<br />

Kanals könnte in etwa so aussehen: Der Reader sendet sein digital signiertes Teilgeheimnis<br />

an die App. Die App empfängt und überprüft die digitale Signatur des Teilgeheimnisses.<br />

Dies ist möglich, da der Public Key vom Reader in der App hardgecodet<br />

ist. Dadurch, dass beim TrustCenter der Private Key und Public Key auf dem Dateisystem<br />

gespeichert werden müssten, wird auf ein TrustCenter aus Sicherheitsgründen<br />

verzichtet. Die Konsequenz beim Empfang eines Public Keys vom Reader wäre, dass<br />

die Identität nicht geprüft werden kann. Aus diesem Grund wird der Public Key vom<br />

Reader in der App hardgecodet. Andernfalls bestünde auch die Gefahr, dass ein aktiver<br />

Man-In-The-Middle den Public Key vom Reader abfängt und seinen eigenen an die App<br />

weiter schickt. Bestätigt die Überprüfung der digitalen Signatur die Echtheit der Daten<br />

vom Reader, signiert die App mit ihrem Private Key ihr Teilgeheiminis und sendet die<br />

Daten an den Reader weiter. An dieser Stelle gibt es jedoch ein Problem: Woher weiß der<br />

Reader, dass die Daten wirklich von der App stammen? Der Reader als target könnte<br />

zu dem Zeitpunkt Daten von einem Angreifer empfangen. Aus diesem Grund muss die<br />

App einmalig beim ersten Start der App, ein Schlüsselpaar generieren und den Public<br />

Key sicher an den Reader übertragen.<br />

6.3.1 Sichere Übertragung des generierten Public Keys der App<br />

Beim ersten Start der App wird ein Private Key und Public Key Schlüsselpaar erzeugt.<br />

Dieses Schlüsselpaar muss jedoch sicher abgespeichert werden. In Windows Phone 8 besteht<br />

die Möglichkeit, das Schlüsselpaar z.B. im Cryptographic Service Provider (CSP)<br />

abzuspeichern. Der CSP ist eine Softwarekomponente, die es zulässt kryptografische<br />

Operationen durchzuführen und die sichere Speicherung von Schlüsselpaaren ermöglicht.<br />

Microsoft rät davon ab, Schlüsselpaare auf dem Dateisystem zu speichern und empfiehlt<br />

stattdessen diese in einem Container im CSP abzulegen [Mic]. Um ein Schlüsselpaar<br />

in einem CSP Container abzuspeichern, muss der Programmierer zunächst den Container<br />

benennen. Beim nächsten Start der App gibt der Programmierer den Bezeichner<br />

des Containers an, um auf das Schlüsselpaar zugreifen zu können. Im Gegensatz<br />

zu Windows 8.1 Pro Preview, kann eine App A unter Windows Phone 8 nicht auf<br />

den CSP Container der App B zugreifen, um das Schlüsselpaar von App B zu entwenden,<br />

sofern App A weiß, wie App B den Container benannt hat. D.h. dass jede<br />

App einen eigenen CSP Container in ihrem Chamber hat und nicht in der Lage ist<br />

den Chamber zu verlassen, um auf den CSP Container einer anderen App zuzugreifen.<br />

Da der CSP Container benannt werden muss, empfiehlt es sich die PublisherHostId<br />

Property von Windows.Phone.System.Analytics.HostInformation der Windows<br />

Phone Runtime abzufragen. Damit lässt sich ein Gerät für einen Herausgeber eindeutig<br />

identifizieren. D.h. wenn eine andere App diese API aufruft, bekommt sie einen<br />

anderen Rückgabewert. Daher bietet sich an, PublisherHostId als Bezeichner für den<br />

41

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!