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.
Inhalt
- Was ist Passwort-Hashing?
- Was sind die Unterschiede zwischen Passwort-Hashing, Verschlüsselung und Kodierung?
- Warum ist Passwort-Hashing notwendig?
- Wie funktioniert Passwort-Hashing in SAP?
- Wie werden die vertraulichen Daten in der Tabelle USR02 gespeichert?
- Wie konfiguriert man das USR02 Hashing-Verfahren?
- Weitere Maßnahmen zur Verbesserung der Passwort-Sicherheit
- Wie kann smarterSec Sie unterstützen?
- Fazit
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.
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.
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:
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:
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
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.
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.
Aktuelle Empfehlung für den Parameter login/password_hash_algorithm:
- Encoding = RFC2307
- Algorithm = iSSHA-512
- Iterations = 15000
- Saltsize = 256
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”
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:
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.
Weitere Informationen zum Thema SAP-Sicherheit und Passwortsicherheit finden Sie in unserem Webinar:
Quellen
- ABAP-Systeme: Schutz gegen Kennworthash-Angriffe (SAP Note 1237762)
- Lesezugriff für Tabellen mit Kennwort-Hash-Werten schützen (SAP Note 1484692)
- Werteliste für login/password_hash_algorithm (SAP Note 991968)
- ABAP: Empfohlene Einstellung für Kennwort-Hash-Algorithmen (SAP Note 1458262)
- SAP Documentation: Password Hash
- SAP Documentation: Logon and Password Security in the ABAP-System
- SAP Help Portal: Defining the Default Hashing and Encryption Algorithms
- PDF: DSGVO Verordnung