< Programozás

Titkosítás

Szerző: Sallai András

Copyright © 2024, Sallai András

Szerkesztve: 2024

Licenc: CC BY-SA 4.0

Web: https://szit.hu

A titkosításokról

egyirányú - hash algoritmusok

két irányú

Itt most a hash algoritmusokkal foglalkozunk, amit jelszavak titkosításához használunk.

A hash algoritmusok valójában egy kivonatot képeznek az eredeti tartalomból. A kivonat mérete a tartalom méretétől függetlenül mindig ugyanakkora.

Az első hash algoritmusok egyike volt az md5, amit nagyon sokáig használtak. Használata ma már erőteljesen ellenjavallott.

A hash végső formája

A hash függvénnyel előállított (titkosított) bájt sorozatot át szokás alakítani nyomtatható karakterekké. Ez lehet hexa kimenet, de gyakrabban használt a base64 kódolás.

Lehetőségek:

hexa kimenet

base64

A hexa kódolás és a base64 nem titkosító algoritmusok!

Sózás és borsozás

Mit jelent a sózás és borsozás? Tegyük fel, hogy van egy jelszavunk, például „titok”. A titok szót nem önmagában titkosítjuk, hanem megsózzuk, megborsozzuk, ami azt jelenti, hogy véletlenszerű karakterek teszünk elé és vagy mögé.

jelszó	titok
só	aaaaaaaaa
bors (alkalmazás kulcs)	bbbbbbbbb

A só és a bors mérete a gyakorlatban nagyobb méretű kell legyen, és véletlenszerű karakterekből kell álljon. A borost sok helyen úgy ismerik, hogy alkalmazás kulcs vagy APPY_KEY.

Ha a fenti táblázatban használható jelszót, sót és boros használjuk, akkor például ezt titkosítjuk le:

aaaaaaaaatitokbbbbbbbbb

De nem tiltott egyéb variációk megvalósítása:

* aaaaaaaaatitokaaaaaaaaabbbbbbbbb
* bbbbbbbbbaaaaaaaaatitokaaaaaaaaabbbbbbbbb
* stb.

Tárolás

A sót mindig a jelszó mellett tároljuk. Minden egyes jelszóhoz külön só tartozik.

A bors az alkalmazáshoz tartozik. Egy alkalmazás egy borsot tartalmaz. Jellemzően az alkalmazás beállító állományában helyezzük el.

Méretek

A sózáshoz ajánlott min. 16 bájt, de jobb 32 bájt.

A bors legalább 14 bájt.

Iterálás

A kivonatolást (titkosítást) érdemes többször elvégezni, több ciklusban.

Lehet például 1000.

UI követelmények

Legyen másolható

Legyen a láthatóság ki és bekapcsolható

Néhány algoritmus

argon2

PBKDF2

bcrypt

Elfogadott jelszavak

Ajánlott:

minimum 8 karakter

maximum 64 karakter

A 64 karakternél hosszabb jelszavak értelmetlenek.

Havonta jelszó változtatás nem ajánlott. Annak eredménye, hogy a felhasználók könnyen hozzáférhető teszik saját maguknak, például monitorral teszik.

Érdemes egy listát összeállítani a visszautasítandó jelszavakról.

Az entrópiát követeljük meg, de nem kell túlzásba vinni (kis- és nagybetű, szám stb).

A jelszó emlékeztetőt a biztonság miatt a nem ajánlott kategória.