
A mellékelt "Password.vbs" használatáról: futtassuk az Intézőben és a "Count" váltóban megadott számú, "Length" hosszúságú jelszót állít elő, melyek megfelelnek az erős jelszavak követelményeinek.
Mi minősül erős jelszónak?
Microsoft meghatározás szerint a következő feltételeknek megfelelő jelszavak minősülnek erősnek:
- Nem tartalmazza a felhasználó nevének egy részét vagy egészét (a rész alatt nem egy karakter, hanem karakterek sorozata értendő).
- Minimum 6 karakter hosszú.
- Az angol ábécé nagy- és kisbetűi vegyesen szerepelnek.
- Tartalmaz számokat.
- Tartalmaz nem alfanumerikus karaktereket (!%$#& stb.)
Erre vonatkozó szűrés a PASSFILT.DLL fájl segítségével történik. Ha a felhasználó megad egy jelszót, meghívásra kerül a DLL és ellenőrzi, hogy megfelel-e a fenti feltételeknek. Elvileg a DLL cseréjével további szűrőket is lehet definiálni.
Hol állítható be az erős jelszavak megkövetelése?
A csoportházirendben állítható be, hogy a Windows megkövetelje a használatukat.
Tartományi hálózatban az egyik tartományvezérlőn nyissuk meg a Felügyeleti eszközök > Active Directory - felhasználók és számítógépek (Administrative Tools > Active Directory Users and Computers) MMC konzolt és nyissuk meg az adott szervezeti egységnek megfelelő csoportházirend objektumot (Tulajdonságok > Csoportházirend > Szerkesztés (Properties > Group Policy > Edit).
Önmagában álló gép esetén a Start > Futtatás > gpedit.msc (Start > Run > gpedit.msc) paranccsal lehet elindítani a helyi házirend konzolját.
Tallózzunk el a következő helyre:
Számítógép konfigurációja > Windows Beállításai > Biztonsági beállítások > Fiókházirend > Jelszóházirend (Computer Configuration > Windows Settings > Security Settings > Account Policies > Password Policy)
Engedélyezzük "A jelszónak meg kell felelnie a bonyolultsági feltételeknek" ("Passwords must meet complexity requirements") pontot. Hogy melyek ezek, azt a PASSFILT.DLL dönti el.
.NET szerverekben alapértelmezett beállítás az erős jelszavak használata, de Windows 2000/XP-ben még nem.
Jelszógenerálás szkriptből
Ha nagy mennyiségben kell a felhasználók részére előállítani megfelelő jelszavakat, legegyszerűbb, ha készítünk egy szkriptet, ahelyett, hogy magunk találnánk ki:
Szkriptünk elején a "Count" változóba írjuk be, hogy hány darab jelszóra van szükségünk a "Length"-be, pedig, hogy hány karakter hosszúak legyenek. Természetesen a nagyobb hossz, nehezebb kitalálhatósággal és ennek megfelelően fokozottabb biztonsággal jár.
Hozzunk létre egy függvényt, amivel a jelszómintát tudjuk ellenőrizni. Ezt később többször meghívjuk.
Function REtest(patrn, strng)
Dim oRegEx, retVal
Set oRegEx = New RegExp
oRegEx.Pattern = patrn
oRegEx.IgnoreCase = False
REtest = oRegEx.Test(strng)
End Function
Ha a jelszó hossza kevesebb, mint 6 karakter ("Length" változó), akkor nem minősül erősnek, ebben az esetben hibajelzést küldünk a képernyőre. Ellenkező esetben a "Count" változóban előírt számban meghívjuk az alábbi generáló függvényt.
If Length > 5 Then
Text = ""
For i = 0 To Count - 1
sPwd = GenRandomPassword(Length)
Text = Text + sPwd & chr(10) & chr(13)
Next
WScript.Echo Text
A hibajelzés:
Else
WScript.Echo "Minimum 6 karakter hosszra van szükség!"
End If
A generáló függvénybe megadjuk az összes karaktert, amiből egy jelszó állhat és véletlenszerűen válogatunk közülük, majd meghívjuk a fenti ellenőrző függvényt, hogy minden rendben van-e.
Function GenRandomPassword(iLen)
Do
sRS = ""
Randomize
For iPos = 1 To iLen
iChar = Int((69 * Rnd) + 1)
sRS = sRS & Mid("AEIOUBCDFGHJKLMNPQRSTVWXYZ" & "aeioubcdfghjklmnpqrstvwxyz0123456789()&!$#%", iChar, 1)
Next
Loop Until REtest("[A-Z]", sRS) And REtest("[a-z]", sRS) and REtest("\d", sRS) And REtest("[\(\)&\$%#]", sRS)
GenRandomPassword = sRS
End Function
A végeredmény: egy lista, megadott számú és hosszúságú jelszavakkal. Ember legyen a talpán, aki kitalálja, ha egy felhasználó ilyennel rendelkezik...