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.

Implementierung<br />

20 }<br />

21 }<br />

Listing 17: Reader überprüft die empfangene digitale Signatur der App und sendet ggf.<br />

seine weiter.<br />

Als nächster überprüft der Reader die Gültigkeit der digitalen Signatur der App. Da<br />

in Kapitel 7.3 erklärt wurde, dass in dieser Implementierung der Public Key vom Reader<br />

in der App hardgecodet ist und umgekehrt, ist es an dieser Stelle für den Reader möglich,<br />

die Gültigkeit der digitalen Signatur der App zu überprüfen. Dazu wird die Methode<br />

VerifyData() des Objekts appRsa aufgerufen. Als Parameter werden das Teilgeheimnis<br />

der App, eine Instanz der Klasse SHA256Managed und die empfangene digitale Signatur<br />

der App übergeben. Ist der Rückgabewert true, setzt der Reader die Kommunikation<br />

fort, da die Verifikation der digitalen Signatur positiv verlaufen ist. Als nächstes führt<br />

der Reader dieselben Schritte wie die App durch: Er Erzeugt eine digitale Signatur von<br />

seinem Teilgeheimnis mit SHA256 als Hashfunktion und überträgt diese Nachricht mit<br />

der Id = 4 mit der SendMessage() Methode an die App.<br />

Die App empfängt die Nachricht mit der Sequenznummer 4 und weist den erhaltenen<br />

Payload der Variable readerSignature zu. In Listing 18 wird dies verdeutlicht.<br />

1 if( ndefMessage [0]. Id [0] == 4 && this . currentStage == 4)<br />

2 {<br />

3 this . readerSignature = ndefMessage [0]. Payload ;<br />

4<br />

5 bool isValid = this . readerRsa . VerifyData ( this .<br />

readerTeilgeheimnis , new SHA256Managed () , this .<br />

readerSignature );<br />

6 if( isValid )<br />

7 {<br />

8 // ...<br />

9 }<br />

10 // ...<br />

11 }<br />

Listing 18: App überprüft die empfangene digitale Signatur des Readers.<br />

Ebenso wie der Reader, überprüft die App die empfangene digitale Signatur auf<br />

Gültigkeit und setzt bei positiver Validierung die Kommunikation verschlüsselt fort.<br />

7.7 Übertragung einer verschlüsselten Nachricht<br />

Um die Vertraulichkeit von zu übertragenen Daten zu wahren, müssen diese verschlüsselt<br />

werden. Daher wurde die Klasse Aes umgesetzt, die ein Wrapper um die AesManaged<br />

Klasse aus dem .NET Framework Namespace System.Security.Cryptography ist. Die<br />

Verschlüsselung die dabei zum Einsatz kommt ist Advanced Encryption Standard (AES),<br />

wie der Name schon vermuten lässt. In Abbildung 31 wird zunächst in Klassendiagramm<br />

gezeigt.<br />

61

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!