Class SrpServerAuthentication


  • public class SrpServerAuthentication
    extends java.lang.Object
    Wrapper-Klasse, die die Nimbus-SRP-Implementierung serverseitig kapselt
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getAuthenticatedUser()
      Gibt den Namen des authentifizierten Benutzers zurück
      java.math.BigInteger getSessionKey()
      Gibt den Sitzungsschlüssel zurück
      SrpCryptoParameter getSrpCryptoParams()
      Gibt die kryptographischen Parameter zurück
      java.math.BigInteger step1​(java.lang.String userName, java.math.BigInteger salt, java.math.BigInteger verifier, boolean mockUser)
      SRP-Authentifizierung Schritt 1.
      java.math.BigInteger step2​(java.math.BigInteger a, java.math.BigInteger m1)
      SRP-Authentifizierung Schritt 2.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • 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 Detail

      • step1

        public java.math.BigInteger step1​(java.lang.String userName,
                                          java.math.BigInteger salt,
                                          java.math.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

        public java.math.BigInteger step2​(java.math.BigInteger a,
                                          java.math.BigInteger m1)
                                   throws InconsistentLoginException
        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 java.math.BigInteger getSessionKey()
        Gibt den Sitzungsschlüssel zurück
        Returns:
        den Sitzungsschlüssel
      • getAuthenticatedUser

        public java.lang.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