Reguły haseł (Password Rules - QPWDRULES)

Wartość systemowa Reguły haseł (Password Rules - QPWDRULES) określa reguły, na podstawie których sprawdzana jest prawidłowość konstrukcji hasła. Dla wartości systemowej QPWDRULES można podawać kilka ustawień, z wyjątkiem sytuacji, gdy poda się ustawienie *PWDSYSVAL.

Zmiany dokonane w tej wartości systemowej obowiązują od następnej zmiany hasła.

Uwaga: Ta wartość systemowa jest wartością zastrzeżoną. Patrz sekcja Wartości systemowe związane z bezpieczeństwem, w której podano szczegółowe informacje o sposobach ograniczania uprawnień do modyfikowania wartości systemowych związanych z bezpieczeństwem, a także pełny wykaz zastrzeżonych wartości systemowych.
Tabela 1. Możliwe wartości dla wartości systemowej QPWDRULES:
*PWDSYSVAL

Takie ustawienie powoduje, że wartość systemowa QPWDRULES jest ignorowana, a do sprawdzania poprawności konstrukcji hasła używane są inne wartości systemowe dotyczące haseł. Są to takie wartości, jak: QPWDLMTAJC, QPWDLMTCHR, QPWDLMTREP, QPWDMAXLEN, QPWDMINLEN, QPWDPOSDIF i QPWDQDDGT.

Uwaga: Jeśli dla wartości systemowej QPWDRULES zostanie określona wartość inna niż *PWDSYSVAL, to podczas sprawdzania poprawności nowego hasła wartości systemowe QPWDLMTAJC, QPWDLMTCHR, QPWDLMTREP, QPWDMAXLEN, QPWDMINLEN, QPWDPOSDIF i QPWDRQDDGT są ignorowane. Co więcej, wszelkie próby zmiany tych wartości systemowych będą ignorowane, dopóki wartość systemowa QPWDRULES będzie mieć wartość inną niż *PWDSYSVAL.
Początek zmiany Początek zmiany *ALLCRTCHG Koniec zmiany Koniec zmiany
Początek zmiany Początek zmiany Egzekwowanie wszystkich reguł budowy hasła zdefiniowanych w wartości systemowej QPWDRULES podczas ustawiania hasła komendą Tworzenie profilu użytkownika (CRTUSRPRF) lub Zmiana profilu użytkownika (CHGUSRPRF). Programy sprawdzające komend CRTUSRPRF i CHGUSRPRF zarejestrowane dla punktu wyjścia QIBM_QSY_VLD_PASSWRD (format VLDP0200) zostaną wywołane w celu weryfikacji hasła po sprawdzeniu wszystkich reguł budowy hasła.
Uwaga: Początek zmiany Początek zmiany Reguły budowy hasła są zawsze egzekwowane w przypadku używania komendy Zmiana hasła (CHGPWD) i funkcji API Zmiana hasła użytkownika (QSYCHGPW), niezależnie od tego, czy podano wartość *ALLCRTCHG. Koniec zmiany Koniec zmiany
Koniec zmiany Koniec zmiany
*CHRLMTAJC

Ta wartość określa, że hasło nie może zawierać 2 lub więcej wystąpień tego samego znaku, umieszczonych obok siebie. Spełnia taką samą funkcję, jak wartość 2 podana dla wartości systemowej QPWDLMTREP. Tej wartości nie można podawać, jeśli podano wartość *CHRLMTREP.

Przykłady:
Better.test        niepoprawne - tt
fix11bugs          niepoprawne - 11
@12/A78            poprawne
A1234A1234         poprawne
*CHRLMTREP

Ta wartość określa, że hasło nie może zawierać dwóch lub większej liczby wystąpień tego samego znaku. Spełnia taką samą funkcję, jak wartość 1 podana dla wartości systemowej QPWDLMTREP. Tej wartości nie można podawać, jeśli podano wartość *CHRLMTAJC.

Przykłady:
John.Jones        niepoprawne - J o n
THISONEOK         niepoprawne - O
@12/A78           poprawne
AaCcEeFfGg        poprawne
*DGTLMTAJC

Ta wartość określa, że hasło nie może zawierać dwóch lub większej liczby cyfr umieszczonych obok siebie.

Przykłady:
@12/A78           niepoprawne
!@#$%a1234.       niepoprawne
THISONEOK         poprawne
A1B2C3DE5         poprawne
*DGTLMTFST

Ta wartość określa, że pierwszym znakiem hasła nie może być cyfra. Jeśli podano wartości *LTRLMTFST i *SPCCHRLMTFST, to nie można podać wartości *DGTLMTFST. Jeśli system działa na poziomie haseł 0 lub 1, to zachowuje się tak, jakby wartość *DGTLMTFST została określona.

Przykłady:
16ST-SW-Roch      niepoprawne - 1
99BottlesOfBeer   niepoprawne - 9
@12/A78           poprawne
Allow-this.1      poprawne
*DGTLMTLST

Ta wartość określa, że ostatnim znakiem hasła nie może być cyfra. Jeśli podano wartości *LTRLMTLST i *SPCCHRLMTLFST, to nie można podać wartości *DGTLMTLST.

Przykłady:
John.doe12        niepoprawne - 2
@12/A78           niepoprawne no - 8
THISONEOK         poprawne
A1234b123.        poprawne
*DGTMAXn

Ta wartość określa maksymalną liczbę cyfr, które mogą znaleźć się w haśle. Parametr n odpowiada liczbie od 0 do 9.

Można określić tylko jedną wartość *DGTMAXn. Jeśli podano także wartość *DGTMINn, wartość n określona dla wartości *DGTMAXn musi być większa lub równa wartości n określonej dla wartości *DGTMINn.

Przykłady: dla *DGTMAX2
Q12345678        niepoprawne - o 6 cyfr za dużo
3-2-1->Go        niepoprawne - o 1 cyfrę za dużo
Rick1            poprawne
Ed1-Jeff3        poprawne
*DGTMINn

Ta wartość określa minimalną liczbę cyfr, które mogą znaleźć się w haśle. Parametr n odpowiada liczbie od 0 do 9.

Można określić tylko jedną wartość *DGTMINn. Jeśli podano także wartość *DGTMAXn, wartość n określona dla wartości *DGTMAXn musi być większa lub równa wartości n określonej dla wartości *DGTMINn.

Przykłady: dla *DGTMIN3
Rick1            niepoprawne - tylko 1 cyfra
Ed1-Jeff3        niepoprawne - tylko 2 cyfry
3-2-1->Go        poprawne
Q12345678        poprawne
*LMTSAMPOS

Na pozycji odpowiadającej pozycji w poprzednim haśle nie mogą być takie same znaki. Ta wartość spełnia taką samą funkcję, jak wartość 2 podana dla wartości systemowej QPWDPOSDIF.

Początek zmiany Początek zmiany Wartość *LMTSAMPOS nie jest egzekwowana w przypadku ustawiania hasła komendą Zmiana profilu użytkownika (CHGUSRPRF) lub Tworzenie profilu użytkownika (CRTUSRPRF), ponieważ nie jest wtedy podawana poprzednia wartość hasła. Wartość jest egzekwowana jedynie w przypadku zmiany hasła za pomocą komendy Zmiana hasła (CHGPWD) lub funkcji API Zmiana hasła użytkownika (QSYCHGPW). Koniec zmiany Koniec zmiany

Przykłady: dla wartości *LMTSAMPOS, gdy poprzednim hasłem było Vote4Me:
Victory1        niepoprawne - V na pozycji 1
Mine2love       niepoprawne - e na pozycji 4
vOTE-mE      poprawne
(różnica wielkości liter)
Allisgood       poprawne
*LMTPRFNAME

Wartość hasła zapisana wielkimi literami nie może zawierać pełnej nazwy profilu użytkownika na sąsiadujących pozycjach.

Przykłady: dla wartości *LMTPRFNAME, gdy nazwa profilu to JOHNB:
bigJOHNB9       niepoprawne - pozycje 4-8
JohnB78         niepoprawne - pozycje 1-5
J_ohn_B234      poprawne
john_b          poprawne
*LTRLMTAJC

Ta wartość określa, że hasło nie może zawierać dwóch lub większej liczby liter umieszczonych obok siebie.

Przykłady:
John.Smith      niepoprawne
THISONEOK       niepoprawne
@12/A78         poprawne
A1234b1234      poprawne
*LTRLMTFST

Ta wartość określa, że pierwszym znakiem hasła nie może być litera. Jeśli podano wartości *DGTLMTFST i *SPCCHRLMTFST, to nie można podać wartości *LTRLMTFST. Jeśli wartość QPWDLVL w systemie jest równa 0 lub 1, nie można równocześnie określić wartości *LTRLMTFST i *SPCCHRLMTFST.

Przykłady:
John.Smith       niepoprawne - J
THISONEOK        niepoprawne - T
@12/A78          poprawne
16ST-SW-Roch     poprawne 
*LTRLMTLST

Ta wartość określa, że ostatnim znakiem hasła nie może być litera. Jeśli podano wartości *DGTLMTLST i *SPCCHRLMTLST, to nie można podać wartości *LTRLMTLST.

Przykłady:
John.Smith       niepoprawne - h
1Allow.It        niepoprawne - t
@12/A78          poprawne
(pay*rate)       poprawne 
*LTRMAXn

Ta wartość określa maksymalną liczbę liter, które mogą znaleźć się w haśle. Parametr n odpowiada liczbie od 0 do 9.

Można określić tylko jedną wartość *LTRMAXn. Jeśli podano także wartość *LTRMINn, wartość n określona dla wartości *LTRMAXn musi być większa lub równa wartości n określonej dla wartości *LTRMINn.

Jeśli zostanie również określona wartość *MIXCASEn, liczba n podana dla wartości *LTRMAXn nie może być mniejsza od podwojonej liczby n podanej dla wartości *MIXCASEn.

Przykłady: dla *LTRMAX4
THISONEOK        niepoprawne - 5 za dużo
John.Smith1      niepoprawne - 5 za dużono
John1423         poprawne 
A1b2.#456        poprawne 
*LTRMINn

Ta wartość określa minimalną liczbę liter, które mogą znaleźć się w haśle. Parametr n odpowiada liczbie od 0 do 9.

Można określić tylko jedną wartość *LTRMINn. Jeśli zostanie określona również wartość *LTRMAXn, to liczba n podana dla wartości *LTRMAXn nie może być mniejsza od liczby n podanej dla wartości *LTRMINn.

Przykłady: dla *LTRMIN2
@12/A78        niepoprawne - tylko 1 litera
!@#$%a1234     niepoprawne - tylko 1 litera
THISONEOK      poprawne
A1234b1234      poprawne
*MAXLENnnn

Ta wartość określa maksymalną liczbę znaków w haśle. Parametr nnn odpowiada liczbie od 1 do 128 (bez zer wiodących). Wartość *MAXLENnnn pełni taką samą funkcję, jak wartość systemowa QPWDMAXLEN.

Jeśli wartość QPWDLVL wynosi 0 lub 1, poprawnym zakresem jest od 1 do 10. Jeśli wartość QPWDLVL w systemie wynosi 2 lub 3, poprawnym zakresem jest od 1 do 128.

Określona wartość nnn musi być wystarczająco duża na potrzeby wszystkich wartości *MIXCASEn, *DGTMAXn, *LTRMAXn i *SPCCHRMAXn, ograniczeń dotyczących pierwszego i ostatniego znaku oraz wymagań dotyczących znaków znajdujących się obok siebie.

Jeśli podano także wartość *MINLENnnn, wartość nnn określona dla wartości *MAXLENnnn musi być większa lub równa wartości nnn określonej dla wartości *MINLENnnn.

Jeśli wartość *MAXLENnnn nie zostanie określona, przyjmowana jest wartość *MAXLEN10, w przypadku, gdy dla systemu określono wartość QPWDLVL równą 0 lub 1, lub wartość *MAXLEN128, w przypadku, gdy dla systemu określono wartość QPWDLVL równą 2 lub 3.

*MINLENnnn

Ta wartość określa minimalną liczbę znaków w haśle. Parametr nnn odpowiada liczbie od 1 do 128 (bez zer wiodących).

Jeśli wartość QPWDLVL wynosi 0 lub 1, poprawnym zakresem jest od 1 do 10. Jeśli wartość QPWDLVL w systemie wynosi 2 lub 3, poprawnym zakresem jest od 1 do 128.

Jeśli podano także wartość *MAXLENnnn, wartość nnn określona dla wartości *MAXLENnnn musi być większa lub równa wartości nnn określonej dla wartości *MINLENnnn.

Jeśli wartość *MINLENnnn nie zostanie określona, przyjmowana jest wartość *MINLEN1.

*MIXCASEn

Ta wartość określa, że hasło musi zawierać przynajmniej n liter wielkich i n liter małych. Zmienna n jest liczbą od 0 do 9. Wartość jest odrzucana, jeśli dla systemu określono wartość QPWDLVL równą 0 lub 1, ponieważ hasła muszą być zapisywane wielkimi literami.

Można określić tylko jedną wartość *MIXCASEn.

Jeśli określono wartość *LTRMAXn, wartość n podana dla wartości *LTRMAXn musi być większa lub równa wartości n podanej dla wartości *MIXCASEn pomnożonej przez dwa.

Przykłady: dla *MIXCASE2
@12/A78bC      niepoprawne - brakuje 1 małej litery
THISONEOK      niepoprawne - brakuje 2 małych liter
ThisIsOkay     poprawne
Allow-It       poprawne
*REQANY3
Ta wartość określa, że hasło musi zawierać co najmniej trzy z czterech poniższych typów znaków:
  • wielkie litery,
  • małe litery,
  • cyfry,
  • znaki specjalne.

Gdy system działa z wartością QPWDLVL równą 0 lub 1, wartość *REQANY3 ma taki sam skutek jak jednoczesne określenie wartości *DGTMIN1, *LTRMIN1 i *SPCCHRMIN1.

Przykłady:
THISONEOK      niepoprawne - tylko 1 typ
@12/-78        niepoprawne - tylko 2 typy
A1234b1234     poprawne - wielkie, małe, cyfry
John.Smith     poprawne - wielkie, małe, specjalne
peter(21)      poprawne - małe, specjalne, cyfry
*SPCCHRLMTAJC

Ta wartość określa, że hasło nie może zawierać dwóch lub większej liczby znaków specjalnych umieszczonych obok siebie. Znak specjalny to taki, którego symbol Unicode ma właściwość określającą, że nie jest ani literą, ani cyfrą.

Przykłady:
Big//Box       niepoprawne
this->way      niepoprawne
@12/A78        poprawne
John.Smith     poprawne
*SPCCHRLMTFST

Ta wartość określa, że pierwszym znakiem hasła nie może być znak specjalny. Znak specjalny to taki, którego symbol Unicode ma właściwość określającą, że nie jest ani literą, ani cyfrą.

Jeśli podano wartości *DGTLMTFST i *LTRLMTFST, to nie można podać wartości *SPCCHRLMTFST. Jeśli wartość QPWDLVL w systemie jest równa 0 lub 1, nie można równocześnie określić wartości *LTRLMTFST i *SPCCHRLMTFST.

Przykłady:
(2+2equals4)   niepoprawne - (
#fred/#charlie niepoprawne - #
1Good->one12   poprawne
A1234b1234      poprawne
*SPCCHRLMTLST

Ta wartość określa, że ostatnim znakiem hasła nie może być znak specjalny. Znak specjalny to taki, którego symbol Unicode ma właściwość określającą, że nie jest ani literą, ani cyfrą.

Jeśli podano wartości *DGTLMTLST i *LTRLMTLST, to nie można podać wartości *SPCCHRLMTLST.

Przykłady:
A1234b123.     niepoprawne - .
>John.Doe<     niepoprawne - <
THISONEOK      poprawne
@12/A78        poprawne
*SPCCHRMAXn

Ta wartość określa maksymalną liczbę znaków specjalnych, które mogą znaleźć się w haśle. Parametr n odpowiada liczbie od 0 do 9. Znak specjalny to taki, którego symbol Unicode ma właściwość określającą, że nie jest ani literą, ani cyfrą.

Można określić tylko jedną wartość *SPCCHRMAXn. Jeśli podano wartość *SPCCHRMINn, wartość n określona dla wartości *SPCCHRMAXn musi być większa lub równa wartości n określonej dla wartości *SPCCHRMINn.

Przykłady: dla *SPCCHRMAX3
@12/A78.b#     niepoprawne - o 1 za dużo
!@#$%a1234     niepoprawne - o 2 za dużo
THISONEOK      poprawne
A1234b-234     poprawne
*SPCCHRMINn

Ta wartość określa minimalną liczbę znaków specjalnych, które mogą znaleźć się w haśle. Parametr n odpowiada liczbie od 0 do 9. Znak specjalny to taki, którego symbol Unicode ma właściwość określającą, że nie jest ani literą, ani cyfrą.

Można określić tylko jedną wartość *SPCCHRMINn. Jeśli podano wartość *SPCCHRMAXn, wartość n określona dla wartości *SPCCHRMAXn musi być większa lub równa wartości n określonej dla wartości *SPCCHRMINn.

Przykłady: dla *SPCCHRMIN4
Su@us.ibm.com  niepoprawne - o 1 za mało
123+45=168     niepoprawne - o 2 za mało
A.B@us.ibm.com poprawne
(24/8=3)       poprawne