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.
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