Javasolt jelszókezelési irányelvek
Arról már írtam múltkor hogy milyen a jó jelszó, amit alkalmazz. Most arról szeretnék írni, ami ott csak lábjegyzetben szerepelt, hogy milyen jelszót követeljen meg egy szolgáltatás vagy server a felhasználóktól.
A legtöbb helyen még mindig 2003-at ír a naptár: ez volt az az év, amikor szegény Bill Burr elkészítette a ma már közismert „krixkrax jelszó, rendszeresen megváltoztatva” elvet, amiért 2017-ben bocsánatot kért a világtól, és ami olyan dolgokat mondott, mint például
- a jelszó tartalmazzon legalább egy kisbetűt, egy nagybetűt, egy számot, egy írásjelet, egy kínai karaktert, egy hieroglifát, egy ősi magyar rovásjelet és egy láthatatlan karaktert,
- a jelszót kötelező legyen másfél naponta megváltoztatni, és ellenőrizzük, hogy az elmúlt 150 jelszó nem ismétlődik,
- a jelszó minimum 6, maximum 15 karakter lehet,
- a jelszó ne tartalmazzon egymás mellett két számot, két betűt, két hieroglifát, stb…
- alkalmazzunk jelszóemlékeztetőt, pl. „Mi a jó édes anyádnak… a neve?”
…mindezzel hatalmas örömöket okozva az emberek millióinak. A probléma nyilván az volt – mint az menet közben nyilvánvalóvá is vált –, hogy ezeket a jelszavakat az emberek nehezen jegyzik meg és könnyen elfelejtik, viszont a számítógépek könnyen feltörik. Cserébe viszont az emberek felírják azt egy PostIt™re és kiragasztják a monitorra. Vagyis adtunk a csillagnak egy pofont.
NIST Special Publication 800-63B
Az amerikai szabványügy viszont komolyan vette a problémát, és 2017-ben új irányelvet készített, ami szabványban határozza meg a digitális azonosítókkal szemben elvárt követelményeket. Ebben figyelembe vették nem csak azt, hogy mi lenne jó, hanem a múltbéli hibákat és az azokból kialakult káoszt is. Az eredmény egy modern, biztonságos jelszóhasználati ajánlás. Ebből szeretném kiemelni a jó jelszókezelés alapelveit.
A jó jelszókezelés
Az 5. fejezet 5.1.1 pontja szól a jelszavakról, azon belül is az 5.1.1.2 az ajánlott módszerekről. Az ajánlás lényeges részei:
- a jelszó legalább 8 karakteres, és a rendszer képes legyen legalább 64 karakteres jelmondat kezelésére is; ideális esetben a jelszó hossza nem korlátozott;
- a megadott jelszó nem kerül csonkításra kódolás vagy tárolás előtt;
- a jelszó tartalmazhat nyomtatható ASCII (RFC0020) és Szóköz karaktert (az ismétlődő szóközök eltávolítása megengedhető, ha a jelszó hossza nem csökken a minimális alá), és javasolt a Unicode (ISO-10646) karakterek kezelése, normalizálás (NFKC/NFKD) után (minden U kódpont 1 karakterhossznak számít);
- tilos a „jelszóemlékeztetők” használata („Mi volt a neve a gyerekkori Sahelanthropusodnak?”), illetve bármilyen jelszóra utaló „emlékeztető” mutatása azonosítatlan kérdezőnek;
- új jelszó megadásakor szűrésre kerül, hogy ne legyen:
- ismert betörésben vagy jelszópublikálásban érintett jelszó;
- szótári szó;
- ismétlődő sorozat („zzzzzz”, „123abc”);
- kontextushoz kapcsolható szó (név, felhasználói név, szolgáltatás, dátum, vagy ezekből származó részek).
- új jelszó megadásakor nyújtsunk segítséget „jelszóerősség” kijelzésével a biztonságos jelszó kiválasztásához, ez különösen fontos, hogy a rendszer segítse az előző pontban visszautasított okokból nem megfelelő jelszó helyett egy jó választását ahelyett, hogy az elutasított jelszó triviális módosításával próbálkozna a személy;
- a jelszópróbálkozások száma és gyakorisága korlátozott;
- semmilyen további korlátozás nem vonatkozik a jelszóra (mint amilyen a bizonyos karaktercsoportok használata, vagy bizonyos párok tiltása);
- nincs jelszónak kötelező, véletlenszerű vagy periodikus változtatása, de automatikusan és azonnal meg kell változtatni bármilyen biztonsági incidens esetén;
- engedélyezett a jelszó másolása és beszúrása, hogy a jelszavak kezelése jelszókezelővel is történhessen;
- a felhasználó kérésére a jelszó láthatóvá válhat elküldés előtt, megkönnyíteni a gépelési hibák elkerülését (vagy az utoljára megadott karakter, például mobileszközök esetében);
- a jelszavak tárolása titkosítási eljárással történjen, méghozzá olyannal, amit kifejezetten jelszavak tárolására fejlesztettek, vagy arra kifejezetten alkalmas;
- lehetőleg a jelszó kódolás előtt Key derivation függvénnyel kerüljön feldolgozásra (mint amilyen a PBKDF2 [min. 10000 iteráció], a Balloon vagy az Argon2), a tárolás pedig hashed és salted (min. 32 bit) formában történjen.
PS: Az Ön „titok꧁𓁵قᬎজ⠮щडφઊשひಊギആᠪ𐲍ᚫࠇඉᜈஐ༆𠂢꧂” jelszava nem tartalmaz számot és legalább két székely rovásjelet… 😁