Processing math: 100%

User Tools

Site Tools


tanszek:oktatas:infrendalapjai_architekturak:informacio_titkositas_es_hitelesites:jelszo_tarolas

Jelszó (pin) tárolás

Adott egy képzeletbeli bankjegy automata, amelybe bankkártyát helyezve akkor is lehet pénzt felvenni, ha nincs kapcsolat a bankkal. Ehhez az kell, hogy a pin kódokat tároljuk az automatában.

De mi történne, hogyha éjjel valaki ellopná a kódokat az adatbázisból és megszerezné a bank ügyfeleinek a pin kódját? Hogyan lehetne ezt kivédeni? Pl. egyszerű Hash függvénnyel Neumann János ötlete alapján.

  1. Adott egy ügyfél pin kódja: 4531
  2. Emeljük a négyzetére: 45312=20529961
  3. Az eredményből vegyünk el a középső 4 számjegyet, hogy újra 4 jegyű számot kapjunk: 2061. Azaz csak a két-két szélső számok maradtak.
  4. Emeljük újra négyzetre: 20612=4247721
  5. Az eredményből vegyünk el a középső 3 számjegyet, marad az első 2 és az utolsó 2. 4221
  6. Csináljuk meg a négyzetre emelést és a számjegyek elvételét 1000-szer!
  7. Tegyük fel hogy a végeremény: 6538 lesz.

Milyen viszonyban van a kezdeti 4531 és a 6538? Olyan mintha egy párt alkotnának. Ha valaki tudja, hogy 6538 a tárolt érték és ellopja az adatbázist, nem tudja megmondani, hogy melyik számból jött ki, mivel a számjegyek elvétele olyan mértékű adatvesztés, amit már nem lehet visszaállítani/kitalálni, viszont akárhányszor végezzük el, akkor is a kívánt eredményt kapjuk meg.

A weboldalak a jelszókat is hash kódokkal tárolják, azaz nem a beírt kódot tárolják, hanem egy algoritmus szerint átalakítják a bevitt jelszót és az eredményét tárolják.

Ezen az oldalon egy beírt jelszónak különböző hash kódjait lehet online generálni: http://www.fileformat.info/tool/hash.htm

Például az ′1234′ kód MD5 hash-e: md5(1234)=81dc9bdb52d04dc20036dbd8313ed055

Ezek alapján mondhatjuk, hogy a hash-ek tárolása teljes biztonságot ad? Sajnos nem. Tegyük fel, hogy egy hacker ellopta az adatbázist és éppen a mi jelszónkat böngészi. Ezen az oldalon beírja a hosszú hash kódot: http://md5cracker.org/decrypted-md5-hash/81dc9bdb52d04dc20036dbd8313ed055

Sajnos már tudja is a jelszónkat. A megoldás egyrészt az, hogy hosszú jelszót használunk, de azt nehéz megjegyezni. Másik megoldás, hogy minden jelszóhoz a hash képzéskor egy un. só-t adunk, ami egy fix string és azzal együtt generáljuk a kódot:

md5(1234+my_strong_salt)=0e0db19d64ce23edc1bfb52063f25028

Próbáljuk rákeresni az eredményre a cracker oldalon!

Mostmár csak az a fontos, hogy a sót jól elrejtsük!

tanszek/oktatas/infrendalapjai_architekturak/informacio_titkositas_es_hitelesites/jelszo_tarolas.txt · Last modified: 2024/11/21 16:49 by knehez