PDF 941kB - Hochschule Ulm
PDF 941kB - Hochschule Ulm
PDF 941kB - Hochschule Ulm
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