13.01.2014 Aufrufe

PDF 941kB - Hochschule Ulm

PDF 941kB - Hochschule Ulm

PDF 941kB - Hochschule Ulm

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Zusammenfassung und Ausblick<br />

Damit die digitale Signatur der App überprüft werden kann, benötigt der Reader den<br />

Public Key der App. In dieser Arbeit wurde ein Ansatz vorgestellt, bei dem die App<br />

ihren Public Key sicher an den Reader übertragen kann, damit dieser die App als vertrauenswürdigen<br />

Client vormerken kann. Um das zu realisieren, muss dazu der Public<br />

Key vom Reader in der App hardgecodet werden. Andernfalls müsste dieser übertragen<br />

werden und es bestünde die Gefahr, dass ein aktiver Man-In-The-Middle seinen Public<br />

Key weiterleitet. Ein weiteres Problem an dieser Stelle ist die Prämisse, dass Smartphone<br />

Betriebssysteme kompromittierbar sind und dadurch Quellcode dekompiliert werden<br />

kann. Wenn ein Angreifer den Public Key des Readers erfahren sollte, ist dieser in der<br />

Lage selbst Nachrichten an den Reader zu senden und kann durch einen Bruteforce-<br />

Angriff versuchen den Code zu erraten. Allerdings kann die Gefahr eines Bruteforce-<br />

Angriffs in Grenzen gehalten werden, wie bereits erwähnt wurde. In der Implementierung<br />

wird auf das anfängliche Übertragen des Public Key der App verzichtet, indem der<br />

Public Key der App im Reader hardgecodet wird. Dennoch wird der Schlüsselaustausch<br />

über NFC mit Elliptic Curve Diffie-Hellman durchgeführt und anschließend eine Textnachricht<br />

mit AES-Verschlüsselung ausgetauscht. An dieser Stelle sei angemerkt, dass<br />

in der Implementierung auf eine Code-Abfrage, um Relay-Angriffe zu verhindern, verzichtet<br />

wird. Daher wird empfohlen, bei sicherheitskritischen Anwendungen, vor einer<br />

Transaktion einen Code abzufragen. Des Weiteren wird in der Implementierung auf den<br />

Cryptographic Service Provider zur sicheren Speicherung des Schlüsselpaars gesetzt. Allerdings<br />

ist dies eine Betriebssystem-API von Windows und Windows Phone und ist<br />

somit auf anderen Plattformen nicht verfügbar. Ein anderer, denkbarer Ansatz wäre,<br />

ein Secure Element zu verwenden, welches für die Erzeugung und sichere Speicherung<br />

von Schlüsselpaaren und anderen sicherheitskritischen Informationen konzipiert worden<br />

ist. Allerdings ist ein Problem an dieser Stelle, das der Zugriff auf das Secure Element<br />

von den Betriebssystemherstellern kontrolliert wird und nicht für jeden Entwickler frei<br />

verfügbar ist. Des Weiteren muss das Secure Element Hardwaremodul in dem eingesetzten<br />

Smartphone auch verfügbar sein. An dieser Stelle muss noch Untersucht werden,<br />

welche Möglichkeiten andere Plattformen zur sicheren Speicherung von Schlüsselpaaren<br />

anbieten und ob ein interoperabler Ansatz realisierbar wäre. Falls es ermöglicht werden<br />

sollte, dass ein Schlüsselpaar sicher auf dem lokalen Dateisystem der App gespeichert<br />

werden kann, kann auf das hardcoden des Public Key verzichtet werden, indem sowohl<br />

der Reader als die App ein TrustCenter verwenden um beim Erhalt eines Public Key die<br />

Vertrauenswürdigkeit prüfen zu können.<br />

72

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!