Class SrpServerAuthentication
java.lang.Object
de.bsvrz.dav.daf.communication.srpAuthentication.SrpServerAuthentication
Wrapper-Klasse, die die Nimbus-SRP-Implementierung serverseitig kapselt
-
Constructor Summary
ConstructorsConstructorDescriptionSrpServerAuthentication
(SrpCryptoParameter srpCryptoParams) Erstellt eine neue SrpServerAuthentication-Instanz -
Method Summary
Modifier and TypeMethodDescriptionGibt den Namen des authentifizierten Benutzers zurückGibt den Sitzungsschlüssel zurückGibt die kryptographischen Parameter zurückstep1
(String userName, BigInteger salt, BigInteger verifier, boolean mockUser) SRP-Authentifizierung Schritt 1.step2
(BigInteger a, BigInteger m1) SRP-Authentifizierung Schritt 2.
-
Constructor Details
-
SrpServerAuthentication
Erstellt eine neue SrpServerAuthentication-Instanz- Parameters:
srpCryptoParams
- Kryptographische Parameter, die der Server zur Verifizierung verwendet und an den Client übermittelt
-
-
Method Details
-
step1
SRP-Authentifizierung Schritt 1. Der Client übermittelt seinen Benutzernamen an den Server, welcher daraufhin zu diesem Benutzer das gespeicherte Salt und den Überprüfungscode aus der Konfiguration holt.- Parameters:
userName
- Benutzername (vom Client)salt
- Salt (von der Konfiguration)verifier
- Überprüfungscode (von der Konfiguration)mockUser
- Der Benutzer existiert nicht. Falls true können daher vorgetäuschte Fake-Verifier- und Salt-Werte an den Benutzer gesendet werden, damit dieser nicht unterscheiden kann, ob der Benutzer existiert oder nicht (und damit kein zusätzliches Telegramm für eine negative Quittung gebraucht wird). Das Verhalten dieser Methode ist identisch, egal wie dieser Parameter gesetzt wird, aber falls dieser Parameter true ist, wird ein Flag gesetzt, sodass in Schritt 2 die Authentifizierung auf jeden Fall abgelehnt wird, auch wenn der Client irgendwie eine gültige Antwort generieren kann (was aber praktisch ausgeschlossen ist).- Returns:
- Der öffentliche Server-Wert B
-
step2
SRP-Authentifizierung Schritt 2. Der Client übermittelt seinen öffentlichen Client-Wert A und den Überprüfungscode M1 an den Server, welcher mit dem Überprüfungscode M2 antwortet.- Parameters:
a
- Öffentlicher Client-Wert Am1
- Überprüfungscode M1- Returns:
- Überprüfungscode M2
- Throws:
InconsistentLoginException
- Wenn der Client falsche Login-Daten benutzt
-
getSessionKey
Gibt den Sitzungsschlüssel zurück- Returns:
- den Sitzungsschlüssel
-
getAuthenticatedUser
Gibt den Namen des authentifizierten Benutzers zurück- Returns:
- Benutzername oder null
-
getSrpCryptoParams
Gibt die kryptographischen Parameter zurück- Returns:
- die kryptographischen Parameter
-