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.

Aufbau eines sicheren Kanals über NFC<br />

6.3.2 Schlüsselaustausch über ECDH<br />

Nachdem die App erfolgreich ihren Public Key an den Reader übertragen konnte, sind<br />

der Reader und die App in der Lage einen sicheren Kanal aufzubauen. Die Kommunikation<br />

beginnt damit, dass der Reader zunächst eine NDEF message mit einer URI<br />

an die App überträgt. Der Inhalt der URI enthält NfcApp:HelloFromReader. Das URI-<br />

Schema NfcApp: wird von der App beim Smartphone Betriebssystem registriert. Nachdem<br />

das Smartphone Betriebssystem die URI vom Reader erhält, wird je nach verwendetem<br />

Smartphone Betriebssystem der Anwender gefragt, ob er die mit dem URI-Schema<br />

verknüpfte App öffnen möchte. Dabei können mehrere Apps das gleiche URI-Schema registrieren,<br />

wie in Kapitel 5.1 gezeigt wurde. Nachdem die App geöffnet wird, überprüft<br />

die App die erhaltenen Parameter des empfangenen URI-Schemas. Als Antwort auf das<br />

HelloFromReader übertragt die App ihr Teilgeheimnis. Im nächsten Schritt generiert<br />

der Reader sein Teilgeheimnis und überträgt dieses. Üblicherweise müssen sich beide<br />

Kommunikationspartner auf gemeinsame Konfigurationsparameter einigen, wie es oben<br />

beschrieben wurde. Hier entfällt dies jedoch, da auf Codeebene beide Anwendungen die<br />

gleichen Elliptic Curves Domain Parameters verwenden und diese dadurch nicht mehr<br />

ausgetauscht werden müssen. Die App empfängt das Teilgeheimnis vom Reader und<br />

speichert dieses ab. Als nächstes erzeugt die App eine digitale Signatur von ihrem Teilgeheimnis<br />

und überträgt dieses verschlüsselt mit dem Public Key des Readers, an den<br />

Reader. Der Reader empfängt die digitale Signatur von der App und entschlüsselt die<br />

digitale Signatur mit seinem Private Key, um den Hashwert zu erhalten. Als nächstes<br />

erzeugt der Reader einen Hash von dem zuvor empfangenen Teilgeheimnis von der App<br />

und vergleicht beide Hashwerte. Sind beide Hashwerte identisch, setzt der Reader die<br />

Kommunikation fort und erzeugt eine digitale Signatur von seinem Teilgeheimnis, welches<br />

der Reader an die App weiter sendet. Die App empfängt die digitale Signatur vom<br />

Reader und überprüft diese auf Validität. Dadurch, dass in Kapitel 6.3.1 der Public Key<br />

der App an den Reader übertragen wurde und der Public Key vom Reader in der App<br />

hardgecodet ist, kann sowohl der Reader als auch die App an dieser Stelle die jeweilige<br />

digitale Signatur überprüfen. Stellt sich heraus, dass beide digitale Signaturen valide<br />

sind, sind beide in der Lage aus dem erhaltenen Teilgeheimnis, den geheimen Schlüssel<br />

zu erzeugen. Anschließend setzten der Reader und die App die Peer-To-Peer Kommunikation<br />

mit einem symmetrischen Verschlüsselungsverfahren, wie z.B. AES, beliebig fort.<br />

Das Kommunikationsprotokolls wird in Abbildung 23 zusammengefasst.<br />

44

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!