Kennwort der Benutzerkennung ändern
Komponente: | SRPMNUC |
Funktionsbereich: | Benutzer verwalten |
Anwendungsbereich: | USER-ADMINISTRATION |
Privilegierung: | STD-PROCESSING |
Berechtigungsschlüssel: | @ |
Funktionsbeschreibung
Mit dem Kommando MODIFY-USER-PROTECTION kann der Benutzer ein Kennwort für seine Benutzerkennung festlegen, dieses Kennwort ändern oder wieder löschen. Das Kennwort einer Benutzerkennung ist Bestandteil des Benutzereintrags im Benutzerkatalog. Das Kommando MODIFY-USER-PROTECTION wird nur ausgeführt, wenn für die Benutzerkennung eine entsprechende Berechtigung im Benutzereintrag enthalten ist (siehe Ausgabefeld PASSWORD-MGMT, Kommando SHOW-USER-ATTRIBUTES).
Lange Kennwörter
Ein „langes Kennwort“ ist mindestens 9 und maximal 32 Zeichen lang. Damit kann der Benutzer Kennwörter vereinbaren, die leicht zu merken sind und mit der großen Variationsmöglichkeit dem Datenschutz gerecht werden.
Bei der Eingabe eines 9 bis 32 Zeichen langen Kennwortes konvertiert ein Hash-Algorithmus das „lange“ Kennwort in ein 8 Byte langes Kennwort. Das konvertierte, 8 Byte lange Kennwort wird im System zur Kennwortüberprüfung gespeichert (ggf. verschlüsselt).
Folgende Kommandos unterstützen die Eingabe „langer Kennwörter“:
ENTER-JOB und ENTER-PROCEDURE
PRINT-DOCUMENT
SET-LOGON-PARAMETERS
SET-RFA-CONNECTION
TRANSFER-FILE
Wird die Eingabe „langer Kennwörter“ nicht unterstützt, wie z.B. bei Programmschnittstellen, muss der Benutzer das konvertierte, 8 Byte lange Kennwort ermitteln und eingeben. Mögliche Vorgehensweisen sind:
Das Subsystem SDF-P ist im lokalen System verfügbar:
Das konvertierte Kennwort kann mit der Builtin-Funktion HASH-STRING ermittelt werden. Der Aufruf erfolgt mit den Parametern STRING='<langes_kennwort>' und LENGTH=8 (siehe auch Handbuch „SDF-P“ [34]). Da der Parameter STRING im Gegensatz zur Kennwortschnittstelle Groß-/Kleinschreibung unterscheidet, muss das „lange“ Kennwort in Großbuchstaben angegeben werden!
Bei Kommandos und Anweisungen (SDF-Schnittstelle) kann mit Ausdrucksersetzung gearbeitet werden, d.h. der Kennwort-Operand kann z.B. wie folgt angegeben werden (siehe auch "Beispiel"):PASSWORD='&(TO-C-LIT(HASH-STRING(STRING='langes_kennwort',LENGTH=8)))'
Falls die Eingabe nicht über die SDF-Schnittstelle erfolgt, wird einer S-Variablen das Ergebnis der Builtin-Funktion zugewiesen und der Variablenwert mit SHOW-VARIABLE als X-Literal (da die konvertierte Zeichenfolge auch nicht eingebbare Zeichen enthalten kann) ausgegeben. Der Variablenwert wird an der Eingabeschnittstelle als Kennwort (<x-string>) eingegeben.
Das Subsystem SDF-P ist im lokalen System nicht verfügbar:
Besteht Zugang zu einem anderen System, in dem SDF-P verfügbar ist, kann das konvertierte, 8 Byte lange Kennwort, wie zuvor beschrieben, über die Builtin-Funktion HASH-STRING ermittelt werden.
Das konvertierte, 8 Byte lange Kennwort kann bei der Systembetreuung erfragt werden (wenn im System nicht verschlüsselt wird).
Die betroffene Benutzerkennung wird kurzfristig mit einem „kurzen“ Kennwort geschützt.
Unabhängig von SDF-P kann bei TRANSFER-FILE statt der LOGON-Berechtigung auch der Name eines FT-Profils (FTAC-Berechtigungsprofil) angegeben werden.
Bei Einsatz des Software-Produkts SECOS können für Kennwörter weitere Sicherheitsüberprüfungen benutzerspezifisch vereinbart werden. Die Default-Werte für die Minimal-Länge und die Minimal-Komplexität eines Kennworts sind mit *NONE (keine Überprüfung dieser Attribute) eingestellt. Die Änderung dieser Attribute auf Maximalwerte kann unter Umständen dazu führen, dass das aus einem „langen“ Kennwort konvertierte, 8 Byte lange Kennwort die Anforderungen nicht erfüllt. Deshalb sollte bei der Minimal-Länge der Wert 6 und bei der Minimal-Komplexität der Wert 2 nicht überschritten werden.
Einschränkungen
Folgende Funktionen des Kommandos MODIFY-USER-PROTECTION sind nur bei Einsatz von SECOS verfügbar:
Im Operanden CONFIRM-NEW-PASSWORD kann ein neues Kennwort, das im Operanden NEW-LOGON-PASSWORD angegeben ist, zur Kontrolle ein zweites Mal eingegeben werden.
Im Operanden USER-IDENTIFICATION kann eingestellt werden, dass die Kennwortänderung für die persönliche Benutzerkennung („Personal Logon“) durchgeführt werden soll.
Ist SECOS nicht verfügbar, kann bei den Operanden nur der Defaultwert angeben werden.
Format
MODIFY-USER-PROTECTION |
LOGON-PASSWORD = *NONE / <c-string 1..8> / <c-string 9..32> / <x-string 1..16> / *SECRET ,NEW-LOGON-PASSWORD = *NONE / <c-string 1..8> / <c-string 9..32> / <x-string 1..16> / *SECRET ,CONFIRM-NEW-PASSWORD = *NOT-SPECIFIED / *NONE / <c-string 1..8> / <c-string 9..32> / <x-string 1..16> / *SECRET ,PUBSET = *HOME / <cat-id 1..4> ,USER-IDENTIFICATION = *STD / *PERSONAL-USER-ID |
Operandenbeschreibung
LOGON-PASSWORD = *NONE / <c-string 1..8> / <c-string 9..32> / <x-string 1..16> / *SECRET
Bisheriges Kennwort der Benutzerkennung.
Die Eingabe eines „langen“ Kennworts (entspricht <c-string 9..32>) wird unterstützt. Ein Hash-Algorithmus konvertiert das „lange“ Kennwort in ein 8 Byte langes Kennwort, das zur Kennwortüberprüfung verwendet wird. Zur Vereinbarung „langer“ Kennwörter siehe Funktionsbeschreibung.
Der Operand LOGON-PASSWORD hat folgende Besonderheiten:
Der eingegebene Wert wird nicht protokolliert.
Im geführten Dialog ist das Eingabefeld automatisch dunkelgesteuert.
Bei Angabe von *SECRET oder ^ stellt SDF im ungeführten Dialog und in Vordergrundprozeduren ein dunkelgesteuertes Eingabefeld zur verdeckten Eingabe des Kennwortes zur Verfügung.
NEW-LOGON-PASSWORD = *NONE / <c-string 1..8> / <c-string 9..32> / <x-string 1..16> / *SECRET
Neues Kennwort für die Benutzerkennung. Das neue Kennwort darf nicht dem bisherigen Kennwort entsprechen.
Die Eingabe eines „langen“ Kennworts (entspricht <c-string 9..32>) wird unterstützt. Ein Hash-Algorithmus konvertiert das „lange“ Kennwort in ein 8 Byte langes Kennwort, das zur Kennwortüberprüfung verwendet wird. Zur Vereinbarung „langer“ Kennwörter siehe Funktionsbeschreibung.
Der Operand NEW-LOGON-PASSWORD hat folgende Besonderheiten:
Der eingegebene Wert wird nicht protokolliert.
Im geführten Dialog ist das Eingabefeld automatisch dunkelgesteuert.
Bei Angabe von *SECRET oder ^ stellt SDF im ungeführten Dialog und in Vordergrundprozeduren ein dunkelgesteuertes Eingabefeld zur verdeckten Eingabe des Kennwortes zur Verfügung.
CONFIRM-NEW-PASSWORD = *NOT-SPECIFIED / *NONE / <c-string 1..8> / <c-string 9..32 /
<x-string 1..16> / *SECRET
Der Operand ist nur bei Einsatz von SECOS verfügbar.
Ermöglicht die Kontrolleingabe für das neue Kennwort, das im Operanden NEW-LOGON-PASSWORD angegeben wurde. Die zweimalige Eingabe des Kennworts soll verhindern, dass bei dunkelgesteuerter Eingabe ein versehentlich durch Tippfehler entstandenes Kennwort vergeben wird.
Sofern ein anderer Operandenwert als der Default-Wert *NOT-SPECIFIED angegeben wird, muss dieser Wert mit der Angabe im Operanden NEW-LOGON-PASSWORD übereinstimmen. andernfalls wird das Kommando abgewiesen.
Der Operand CONFIRM-NEW-PASSWORD hat folgende Besonderheiten:
Der eingegebene Wert wird nicht protokolliert.
Im geführten Dialog ist das Eingabefeld automatisch dunkelgesteuert.
Bei Angabe von *SECRET oder ^ stellt SDF im ungeführten Dialog und in Vordergrundprozeduren ein dunkelgesteuertes Eingabefeld zur verdeckten Eingabe des Kennwortes zur Verfügung.
PUBSET =
Bestimmt die Katalogkennung des Pubsets, dessen Benutzerkatalog einen Eintrag für die Benutzerkennung enthält.
PUBSET = *HOME
Katalogkennung des Home-Pubsets.
PUBSET = <cat-id 1..4>
Katalogkennung eines lokalen Pubsets, dessen Benutzerkatalog einen Eintrag für die Benutzerkennung enthält.
USER-IDENTIFICATION = *STD / *PERSONAL-USER-ID
Der Operand ist nur bei Einsatz von SECOS verfügbar.
Gibt an, ob das Kennwort der Logon-Benutzerkennung oder das der persönlichen Benutzerkennung geändert werden soll.
USER-IDENTIFICATION = *STD
Das Kennwort der Logon-Benutzerkennung wird geändert.
Falls das Kommando im Rahmen des Logon-Kennwort-Updates aufgerufen wird, bezeichnet *STD folgende Benutzerkennung:
nach Ausgabe der Meldung SRM3204 die Logon-Benutzerkennung
nach Ausgabe der Meldung SRM3207 die persönliche Benutzerkennung
USER-IDENTIFICATION = *PERSONAL-USER-ID
Das Kennwort der persönlichen Benutzerkennung wird geändert. Falls kein persönliches Logon durchgeführt wurde, wird das Kennwort der Logon-Kennung geändert.
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
---|---|---|---|
0 | CMD0001 | Kommando fehlerfrei ausgeführt | |
1 | SRM6010 | Syntaxfehler im Kommando | |
32 | SRM6020 | Systemfehler während der Kommandobearbeitung | |
64 | SRM6040 | Semantischer Fehler bei der Kommandobearbeitung | |
130 | SRM6030 | Kommando kann vorübergehend nicht ausgeführt werden |
Hinweise
Im Protokoll (SYSOUT) werden die Kennwörter mit dem Buchstaben P überschrieben.
Für ein nicht vorhandenes Kennwort (entspricht dem Default-Wert *NONE) setzt das System binäre Nullen ein (X’00 00 00 00 00 00 00 00’). Kennwörter, die binär null sind, werden jedoch nicht verschlüsselt.
Ist der Systemparameter ENCRYPT=Y eingestellt, verschlüsselt das System alle Kennwörter mit Ausnahme der Kennwörter, die aus binären Nullen bestehen (bei Angabe des Default-Werts *NONE).
Beispiel
Vergabe eines langen Kennworts:
/mod-user-prot logon-pass='short#12',new='spezialkennwort von $rudi!'
Ermittlung des konvertierten, 8 Byte langen Kennworts zur Verwendung an einer Schnittstelle, die keine langen Kennwörter unterstützt. Das Kennwort wird mit SET-VARIABLE (Kurzform STV) in die Variable A übertragen und anschließend mit SHOW-VARIABLE (Kurzform SHV) als X-Literal (da auch nicht eingebbare Zeichen enthalten sein können) ausgegeben:
/stv a=hash-string(string='SPEZIALKENNWORT VON $RUDI!',length=8)
/shv a,inf=*par(value=*x-lit)
A = X'F59C1AD6D3BEA62F'
Bei Verwendung der Builtin-Funktion TO-X-LITERAL kann das Kennwort kann auch als X-Literal in eine Variable übertragen werden (hier in die Variable PASS):
/stv pass=to-x-lit(string= hash-string(string=
'SPEZIALKENNWORT VON $RUDI!',length=8))
/shv pass
PASS = X'F59C1AD6D3BEA62F'
Das konvertierte, 8 Byte lange Kennwort soll z.B. in einem TRANSFER-FILE-Kommando angegeben werden. Nachfolgend werden mehrere Angabemöglichkeiten aufgezeigt:
/transfer-file ... password=x'f59c1ad6d3bea62f'.....—————————————————— (1)
/transfer-file ... password=&(pass)..... ————————————————————————————— (2)
/transfer-file ... password=&(to-x-lit(string=a)).....———————————————— (3)
/transfer-file ... password=&(to-x-lit(string=hash-string(
string='SPEZIALKENNWORT VON $RUDI!',length=8))).....———————— (4)
(1) | Direkte Eingabe des ermittelten Kennworts als X-String. |
(2) | Das Kennwort wird durch Variablenersetzung (Inhalt der Variable PASS) eingegeben. |
(3) | Das Kennwort wird durch Variablenersetzung (X-Literal der Variable A) eingegeben. |
(4) | Das Kennwort wird direkt durch die Variablenersetzung eingegeben, mit der zuvor das Kennwort als X-Literal in die Variable PASS übertragen wurde. In diesem Fall kann der Schritt „Ermittlung des Kennworts durch Zuweisung auf eine Variable“ entfallen. |