Szerteszana²

grin agymenései

Javasolt jelszókezelési irányelvek

2019-09-03 13:25 írta grin

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).
    és amennyiben emiatt kerül a jelszó elutasításra, a rendszer közölje a pontos okát, és kérjen új jelszót.
  • ú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… 😁

Javasolt jelszókezelési irányelvek

Szerteszana²

grin agymenései