Class SrpServerAuthentication

java.lang.Object
de.bsvrz.dav.daf.communication.srpAuthentication.SrpServerAuthentication

public class SrpServerAuthentication extends Object
Wrapper-Klasse, die die Nimbus-SRP-Implementierung serverseitig kapselt
  • Constructor Details

    • SrpServerAuthentication

      public SrpServerAuthentication(SrpCryptoParameter srpCryptoParams)
      Erstellt eine neue SrpServerAuthentication-Instanz
      Parameters:
      srpCryptoParams - Kryptographische Parameter, die der Server zur Verifizierung verwendet und an den Client übermittelt
  • Method Details

    • step1

      public BigInteger step1(String userName, BigInteger salt, BigInteger verifier, boolean mockUser)
      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 A
      m1 - Überprüfungscode M1
      Returns:
      Überprüfungscode M2
      Throws:
      InconsistentLoginException - Wenn der Client falsche Login-Daten benutzt
    • getSessionKey

      public BigInteger getSessionKey()
      Gibt den Sitzungsschlüssel zurück
      Returns:
      den Sitzungsschlüssel
    • getAuthenticatedUser

      public String getAuthenticatedUser()
      Gibt den Namen des authentifizierten Benutzers zurück
      Returns:
      Benutzername oder null
    • getSrpCryptoParams

      public SrpCryptoParameter getSrpCryptoParams()
      Gibt die kryptographischen Parameter zurück
      Returns:
      die kryptographischen Parameter