Hinweise zur Aufgabe 24
Ergänzende Hinweise zum Übungsblatt 7:
- Um Ihr Programm zu testen, starten Sie bitte lokal (nicht auf der Atlantis) den Server
mit:
java AuthentiServer. Die Ausgabe wird Ihnen auch weitere Hinweise auf Fehler
liefern.
- Um sicherzugehen, daß die Ausgabe, die Sie auf einen Stream oder einen Writer
geschrieben haben, auch wirklich weitergeleitet wird, rufen Sie die Methode flush()
auf.
- Wenn Sie einen Angreifer programmieren, lassen Sie bitte die Anfrage GET_KEY des Clients
und die Antwort des Servers unverändert - indem Sie als Antwort Ihren eigenen Public-Key
senden, können Sie jeden Authentifizierungsalgorithmus knacken, jedoch ist dieses
Vorgehen hier nicht erwünscht. Wir gehen ja eigentlich davon aus, daß der Client den
öffentlichen Schlüssel des Servers bereits kennt.
- Bitte testen Sie Ihre Angreifer auf jeden Fall erst mit einem eigenen Server, bevor Sie
am Server auf der Atlantis eventuell andere beeinträchtigen. Wird beispielsweise ein
Angreifer durch einen Fehler beendet, so bricht auch die Kommunikation des beobachteten
Clients mit dem Server zusammen.
API Dokumentation
Folgenden Klassen sind hier dokumentiert:
- Authenti - definiert Konstanten und Schlüsselworte für die
Authentifizierungsprotokolle und die Kommunikation zwischen Client und Server.
- AuthentiServer - Gegenstück der Kommunikation; führt
die Authentifizierungsprotokolle auf Serverseite durch. Start eines Servers mit java AuthentiServer.
- Network - repräsentiert ein unsicheres Netzwerk. Diese
Klasse stellt die Dienste an den zwei Ports zur verfügung und läßt eventuell Angreifer
die Kommunikation zwischen Client und Server mithören.
- Cryptography - Klasse die Verschlüsselung von Strings
zur Verfügung stellt.
- RSA - Klasse mit dem RSA-Algorithmus; wird von Cryptography
benutzt.
Für weitere Fragen und Hinweise stehe ich gerne zur Verfügung:
Thomas Wolf, Zi. E 17, Tel.: 888 5057