Newsletter

Die Rolle der SAP-Tabelle USR02 beim Passwort-Hashings

Der Schutz sensibler Daten ist nicht nur eine empfehlenswerte Maßnahme – sondern eine Notwendigkeit. Eine entscheidende SAP-Komponente in diesem Prozess ist die Tabelle USR02, in der wichtige Anmeldedaten, einschließlich Kennwort-Hashes, gespeichert werden, was sie zu einem kritischen Ziel für Angreifer macht. Wenn Sie verstehen, wie SAP Ihre Passwörter schützt, können Sie Datenschutzverletzungen und unberechtigten Zugriff verhindern.

Einen allgemeinen Überblick über die Zugriffsverwaltung und Sicherung von USR02 finden Sie in unserem vorhergehenden Blog-Beitrag USR02 spielt eine kritische Rolle in der SAP-Sicherheit.

Inhalt

Was ist Passwort-Hashing?

In der Welt der Cybersicherheit ist der Schutz von Benutzerpasswörtern einer der wichtigsten Aspekte, um die Privatsphäre und die Datensicherheit zu gewährleisten. Dabei wird das Klartext-Passwort mithilfe eines Hashing-Algorithmus in eine Zeichenkette fester Länge, einen sogenannten Hash, umgewandelt. So wird sichergestellt, dass selbst im Falle eines unbefugten Zugriffs auf das gehashte Kennwort, es dem Angreifer unmöglich ist, zum ursprünglichen Kennwort zurückzukehren. Damit ist die Vertraulichkeit der Benutzerdaten auch im Falle eines Sicherheitslecks gewährleistet.

Zu den gängigen Passwort-Hash-Algorithmen gehören bcrypt, Argon2 und die SHA-2-Familie (z. B. SHA-256). Diese Algorithmen sind so konzipiert, dass sie Eingaben beliebiger Größe verarbeiten und dabei einen Hash-Wert von gleichbleibender Länge erzeugen können. Das Knacken eines Hashwerts ist rechenintensiv und macht den Hashwert resistent gegenüber verschiedenen Angriffen.

Password Hashing
Passwort-Hashing

Das System verwendet einen Hash-Algorithmus, um das Klartext-Passwort in einen Hash umzuwandeln, wenn ein Benutzer ein Konto anlegt und ein Passwort vergibt. Anstelle des eigentlichen Passworts wird dann dieser Hash in der Datenbank gespeichert. Bei der Anmeldung prüft das System das vom Benutzer eingegebene Kennwort und vergleicht es mit dem gespeicherten Hash. Stimmen sie überein, wird dem Benutzer der Zugang gewährt.

Was sind die Unterschiede zwischen Passwort-Hashing, Verschlüsselung und Kodierung?

Um sensible Daten, insbesondere Passwörter, wirksam zu schützen, ist es unerlässlich, die Unterschiede zwischen Hashing, Verschlüsselung und Kodierung zu verstehen. Trotz ihrer Ähnlichkeiten unterscheiden sich diese drei Methoden grundlegend in ihrer Funktionsweise und in ihren Anwendungsfällen. Entwickler, Systemadministratoren und Sicherheitsexperten müssen diese Unterschiede verstehen, um ihre Daten wirksam zu schützen.

Vergleich: Passwort-Hashing, Verschlüsselung, Kodierung

Warum ist Passwort-Hashing notwendig?

Das Hashing von Passwörtern ist aus den folgenden Gründen unerlässlich:

1. Verringerung der Auswirkungen von Datenleck:
Im Falle eines Lecks sehen Angreifer nur die gehashten Versionen der Passwörter und nicht das Klartextpasswort. Dies hindert sie daran, gestohlene Anmeldedaten direkt einzusetzen.

2. Verhinderung des Knackens von Passwörtern:
Hashing-Algorithmen sind als Einwegfunktion konzipiert. Das bedeutet, dass es einfach ist, das gehashte Kennwort zu berechnen, aber unmöglich, den Hash in das Klartextkennwort umzuwandeln.

3. DSGVO-Vorgaben erfüllen:
Unternehmen sind dazu verpflichtet, Passwörter zu verschlüsseln oder zu hashen, sobald sie diese speichern (s. Artikel 49 und 83 der DSGVO Richtlinien).

Wie funktioniert Passwort-Hashing in SAP?

Der Prozess der Erstellung und Speicherung eines Hashs sowie der SAP-Anmeldeprozess ist wie folgt strukturiert:

Process: Creating/Storing Hash and User Login
Ablauf: Erzeugen/Speichern eines Hashs und Benutzerlogin

1. Passwort festlegen

Bei der Einrichtung eines Kontos oder der Aktualisierung eines bestehenden Passworts gibt der Benutzer zunächst ein Klartext-Passwort ein. Dieses Kennwort dient als Ausgangspunkt für den Hash-Algorithmus, bei dem es in einen eindeutigen, irreversiblen Hash umgewandelt wird.

2. Passwort mit Salt versehen

Vor dem Hashing des Kennworts wird ein Salt (eine zufällige Zeichenfolge) erzeugt und dem Kennwort hinzugefügt. Das Salting ist eine Sicherheitsmaßnahme, die garantiert, dass sich die gehashten Passwörter zweier Benutzer unterscheiden, selbst wenn sie dasselbe Passwort haben.

Beispiel:

  • Passwort im Klartext: mypassword123
  • Generierter Salt: X9f#3s5hT (zufällig generierte Zeichenkette)
  • Passwort mit Salt: mypassword123X9f#3s5hT

3. Passwort-Hashing

Nachdem der Salt hinzugefügt wurde, wird das kombinierte Passwort durch einen Hash-Algorithmus (z.B. bcyrpt, Argon2, SHA-256) geleitet.

Dieser Hashing-Prozess kann wiederholt werden, um die Komplexität und damit den Rechenaufwand eines erfolgreichen Brute-Force-Angriffs auf das gehashte Passwort weiter zu erhöhen.

Beispiel:

  • Hashing-Algorithmus: SHA-256
  • Passwort mit Salt: mypassword123X9f#3s5hT
  • Erzeugter Hash: 4b42b54b36c2a58f63b3c9930a8b497684059784c438850f4dc59e7cb138b004

4. Salt und Passwort speichern

Das SAP-System speichert den Benutzernamen, den Hash und das Salt in der Tabelle USR02. Das eigentliche Passwort wird dabei nicht gespeichert.

5. Benutzeranmeldung

Bei der Anmeldung im SAP-System gibt der Benutzer sein Passwort ein. Das System ruft das gespeicherte Salt ab und kombiniert es mit dem eingegebenen Passwort, um den Hash-Wert zu berechnen.

Der ermittelte Hash-Wert wird anschließend mit dem in der Tabelle USR02 gespeicherten Hash-Wert abgeglichen. Stimmen beide überein, ist der Benutzer authentifiziert und kann das SAP-System betreten. Bei Abweichung wird der Anmeldeversuch verweigert.

Dieses Verfahren stellt sicher, dass das System die Identität des Benutzers auch ohne Speicherung des ursprünglichen Kennworts überprüfen kann.

Wie werden die vertrauliche Daten in der Tabelle USR02 gespeichert?

Im Zuge der verschiedenen SAP-Releases wurde die Passwort-Hashing-Methodik weiterentwickelt. In früheren Versionen wurden die gehashten Kennwörter in den Feldern BCODE und PASSCODE gespeichert, während sie in neueren Versionen im Feld PWDSALTEDHASH gespeichert werden.

Das Feld CODVN (Code Version of Password Hash Algorithm) in der Tabelle USR02 spezifiziert den aktiven Hash-Algorithmus für einen spezifischen Eintrag. Nachstehend sind die möglichen Werte und die zugehörigen Hash-Methoden aufgeführt:

CODVN Werte mit Beschreibung

Unten sehen Sie einen Screenshot der Tabelle USR02. In diesem Fall wird die Codeversion (CODVN) „H“ verwendet, d. h. der generierte Hash-Wert wird in der Spalte „Password Hash Value“ (PWDSALTEDHASH) gespeichert.
Die Spalte PWDSALTEDHASH enthält:

  • Den Hash
  • Den verwendeten Hash-Algorithmus (z.B. isSHA-512)
  • Die Anzahl der Iteration (z.B. 15.000)
  • Den Salt
Screenshot CODVN table USR02
Auszug aus der Tabelle USR02 (CODVN + PWDSALTEDHASH)

Empfehlung: Verwenden Sie zum Speichern Ihrer Kennwörter nur die neuesten und stärksten Hash-Verfahren. Alte Hashes wie MD5 und SHA-1 gelten als gebrochen/unsicher und sollten nicht mehr verwendet werden. Achten Sie also darauf, Passwörter nur mit CODVN-Wert “H” zu speichern, und überprüfen Sie in der Tabelle USR02, ob andere Spalten als PWDSALTEDHASH Hashes enthalten.

Wie konfiguriert man das USR02 Hashing-Verfahren?

Es gibt zwei Parameter, die berücksichtigt und konfiguriert werden müssen:

  • login/password_downwards_compatibility
  • login/password_hash_algorithm

Der Profilparameter login/password_downwards_compatibility ist für die Erzeugung, Speicherung und Validierung von Passwort-Hashes während der Benutzeranmeldung zuständig (gibt den CODVN-Wert vor).

Der Profilparameter login/password_hash_algorithm bestimmt das zu verwendende Format und den Hash-Algorithmus für neue Passwörter, die in der Spalte PWDSALTEDHASH gespeichert werden.

login/password_downwards_compatibility

SAP hat mit SAP NetWeaver 7.0 die Unterstützung für längere Passwörter (bis zu 40 Zeichen) eingeführt, bei denen die Groß- und Kleinschreibung berücksichtigt wird. Diese Änderungen sind nicht abwärtskompatibel, d. h., die neueren Kennwort-Hashes werden von älteren Systemen nicht verstanden. Wenn Sie ein zentrales System verwenden, das mit älteren Systemen interagiert, müssen Sie diesen Parameter so konfigurieren, dass die Abwärtskompatibilität angemessen gehandhabt wird.

Dieser Parameter bestimmt, ob das SAP-System:

  • Nur aktuelle Passwort-Hashes generieren soll (nicht kompatibel mit älteren Systemen)
  • Sowohl neue als auch abwärtskompatible Hashes generieren soll (kompatibel mit älteren Systemen)

Der Parameter kann folgende Werte annehmen (Standardwert = 1):

  • 0 (empfohlen): Das System erzeugt nur neue Kennwort-Hashes (keine Abwärtskompatibilität).
  • 1: Diese Einstellung ist notwendig, wenn das SAP System als zentrales System für die Benutzerverwaltung verwendet wird und die angeschlossenen Systeme nur ältere Kennwort-Hashes unterstützen:
    Das System erzeugt auch abwärtskompatible Hashes, wertet diese aber bei Anmeldungen (am lokalen System) mit Kennwörtern nicht aus.
  • 2: Diese Einstellung wird verwendet, um Probleme mit der Abwärtsinkompatibilität zu erkennen:
    Das System erzeugt auch abwärtskompatible Hashes und wertet sie aus, wenn eine Anmeldung mit einem nicht abwärtskompatiblen Kennwort fehlschlägt, um zu prüfen, ob die Anmeldung mit dem abwärtskompatiblen Kennwort (nach 8 Zeichen abgeschnitten und in Großbuchstaben umgewandelt) akzeptiert worden wäre. Dies wird im Systemprotokoll festgehalten und die Anmeldung schlägt fehl.
  • 3: Wie 2, aber die Anmeldung wird als erfolgreich betrachtet (vermeidet Problem mit der Abwärtskompatibilität).
  • 4: Wie 3, aber es gibt keinen Eintrag im Systemprotokoll.
  • 5: Nur alte Hash-Werte werden erstellt.

Hinweis: Bei der Migration Ihres Systems auf S/4HANA setzt SAP das Konzept „Secure by Default“ ein, bei dem der Parameter standardmäßig auf „0“ gesetzt wird. Dies kann zu unerwarteten Kompatibilitätsprobleme mit Drittanbieter- oder Altsystemen führen. Wenn Sie mehr über „Secure by Default“ erfahren möchten und wie Sie sich vor Kompatibilitätsproblemen schützen können, finden Sie weitere Informationen in unserem Blog.

login/password_hash_algorithm

Der Profilparameter login/password_hash_algorithm bestimmt das zu verwendende Format und den Hash-Algorithmus für neue Passwörter. Der erzeugte Hash wird dann in der Tabelle USR02 in der Spalte PWDSALTEDHASH gespeichert.

Die Standardwerte für diesen Parameter sind wie folgt:

  • Encoding = RFC2307
  • Algorithm = iSSHA-1
  • Iterations = 1024
  • Saltsize = 96

Das folgende Beispiel zeigt, dass die Standardwerte des Parameters nicht dem aktuellen Sicherheitsniveau entsprechen. Daher ist es erforderlich, die Werte manuell in Übereinstimmung mit den Empfehlungen zu ändern.

Default values of parameter login/password_hash_algorithm
Auszug aus der Transaktion RZ11: Standardwerte des Parameters login/password_hash_algorithm

Aktuelle Empfehlung für den Parameter login/password_hash_algorithm:

  • Encoding = RFC2307
  • Algorithm = iSSHA-512
  • Iterations = 15000
  • Saltsize = 256

Hinweis: Wenn der Parameter login/password_downwards_compatibility auf 5 gesetzt ist, werden nur alte Hash-Werte erzeugt. Folglich haben die Werte des Parameters login/password_hash_algorithm keine Auswirkungen

Konfiguration der Profilparameter in der Transaktion RZ10/RZ11

Um Ihre Änderungen dauerhaft zu übernehmen, gehen Sie wie folgt vor:

  • Rufen Sie die Transaktion RZ10 (Profile bearbeiten) auf
  • Wählen Sie das Profil aus, für das die Änderung vorgenommen werden soll
  • Wählen Sie unter “Profil bearbeiten” das Feld “Erweiterte Pflege” aus und klicken Sie aus “Ändern”
  • Überprüfen Sie, ob die Profilparameter login/password_downwards_compatibility und login/password_hash_algorithm bereits gelistet sind
  • Falls Ja, dann passen Sie diese gemäß unserer Empfehlungen an
    • login/password_downwards_compatibility: 0 or 1 (für Zentralsysteme)
    • login/password_hash_algorithm: encoding=RFC2307, algorithm=iSSHA-512, iterations=15000, saltsize=256
  • Falls Nein, drücke “F5” um einen neuen Profilparameter mit den empfohlenen Werten anzulegen
  • Um Ihre Änderungen zu sichern, kehren Sie zurück zu “Profil bearbeiten” und klicken “Speichern”

Hinweis: Diese Parameter sind dynamisch, was bedeutet, dass ein Neustart des Systems NICHT erforderlich ist, um Ihre Änderungen zu übernehmen. Um die Auswirkungen der Änderungen bis zum nächsten Systemneustart zu testen:

  • Verwenden Sie Transaktion RZ11 (Profilparameter pflegen)
  • Suchen Sie den entsprechenden Parameter und klicken Sie aus “Anzeigen”
  • Drücken Sie “Wert ändern” (STRG + F5) und pflegen Sie unsere empfohlenen Werte ein

Dieses Vorgehen ist ausreichend, um die Anpassungen in Ihrem SAP-System zu testen.

Weitere Maßnahmen zur Verbesserung der Passwort-Sicherheit

Abgesehen von der Konfiguration der Profilparameter login/password_downwards_compatibility und login/password_hash_algorithm sollten weitere Maßnahmen zur Erhöhung der Passwortsicherheit in Betracht gezogen werden:

Berechtigungen

  • Eingeschränkter Zugriff (nur Admins) auf den Data Browser (Transaktion SE16/SE16N und Varianten) für Tabelle USR02
  • Eingeschränkter Zugriff (nur Admins) auf die Berechtigungsgruppe SPWD (siehe SAP-Hinweise 1237762, 1484692)
  • Einschränkung von Funktionen, die Lesezugriff auf die Tabelle USR02 haben (z.B. Funktionsbaustein RFC_READ_TABLE)

Konfiguration

Beachten Sie, dass es mehrere passwortbezogene Systemparameter gibt, die ordnungsgemäß konfiguriert werden sollten, darunter:

  • login/min_password_lng: Minimale Passwortlänge, die bei einer Passwortanmeldung erzwungen wird
  • login/min_password_specials: Mindestanzahl von Sonderzeichen in Passwörtern
  • login/password_max_idle_initial: Legt fest, wie lange initiale Kennwörter gültig sind

Datenbank

Bereinigen Sie die Benutzerstammdaten und entfernen Sie alte Passwort-Hashes, insbesondere aus der Spalte BCODE:

  • Siehe SAP-Hinweis 1458262
  • Dies erfordert manuelles Testen, insbesondere bei angeschlossenen Fremd- oder Altsystemen

ABAP Code

Identifizieren Sie alle kundeneigenen Programme, die zum Export der Passwort-Hashes aus der Tabelle USR02 verwendet werden können:

  • Manuelle Überprüfung des Daten- und Kontrollflusses
  • Toolunterstützung z.B. Report RS_ABAP_SOURCE_SCAN oder 3rd-Party Provider

Wie kann smarterSec Sie unterstützen?

Als spezialisiertes SAP-Sicherheits- und Compliance-Unternehmen spielt smarterSec eine zentrale Rolle beim Schutz der sensiblen Daten, die in der Tabelle USR02 gespeichert sind. Unsere smarterSec Security Platform (SSP) führt dazu wichtige Prüfungen durch, um sicherzustellen, dass der Zugriff auf kritische Tabellen wie USR02 eingeschränkt ist und die Passwortparameter des Systems konform und auf dem neusten Stand sind.

Darüber hinaus bieten wir SAP Security Risk Assessments an. Diese ermöglichen eine schnelle und einfache Analyse des aktuellen Sicherheits- und Compliance-Niveaus Ihrer SAP-Systeme und eine Bewertung durch unsere erfahrenen SAP Security & Compliance-Experten.

Fazit

Das Hashing von Kennwörtern ist ein wichtiger Bestandteil der Sicherheit von Benutzerdaten. Durch den Einsatz sicherer Hashing-Algorithmen, das Hinzufügen von Salts und die Anwendung bewährter Verfahren können Sie gewährleisten, dass die Kennwörter der Benutzer auch im Falle einer kompromittierten Kennwortdatenbank sicher und geschützt bleiben. Moderne Hashing-Algorithmen wie bcrypt, Argon2 und iSSHA-512 sind so konzipiert, dass sie den Herausforderungen der ständig wachsenden Rechenleistung standhalten und sich daher ideal für den Schutz von Benutzerdaten eignen.

Um optimale Sicherheit zu gewährleisten, ist es entscheidend, die relevanten Profilparameter Ihres SAP-Systems zu konfigurieren. Automatisierte Werkzeuge wie die smarterSec Security Platform (SSP) bieten einen wertvollen Einblick in potentielle Schwachstellen und ermöglichen eine nahtlose Anpassung an aktuelle Sicherheitsstandards.

Einen allgemeinen Überblick über die Zugriffsverwaltung und Sicherung von USR02 finden Sie in unserem vorhergehenden Blog-Beitrag USR02 spielt eine kritische Rolle in der SAP-Sicherheit.

Weitere Informationen zum Thema SAP-Sicherheit und Passwortsicherheit finden Sie in unserem Webinar:

Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen
Webinar & Demo: SAP-Hacking (TMS, Passwords)

Quellen

Haben Sie fragen?

Dann kontaktieren Sie uns!