Blog

Olvasói kérdések: anonimitás nyílt és védtelen hálózaton?

2009.10.27. 21:42:09, Gulyás Gábor

Beérkezett hozzánk egy olvasói levél néhány kérdéssel, ezekre válaszolunk most.

A levél főbb kérdései az alábbiak voltak:

  1. Van arra lehetőség HTTP alkalmazásával, hogy az anonimitást biztosítani tudjuk ha egy szolgáltató felé hitelesítjük magunkat? (pl. védtelen WiFi hálózaton)
  2. A PET Portál miért csak HTTP-t használ?
  3. Milyen kódolással célszerű a jelszót tárolni, hogy ha biztonságban szeretnénk akkor is tudni a jelszavainkat, ha egy támadó hozzáfér a teljes adatbázisunkhoz?
  4. Konkrétan PHP/MySQL esetén hogyan érdemes a hozzáféréskezelést megvalósítani, s mit érdemes (mennyi ideig) tárolni?

Nos, nem ígérem hogy valamennyi kérdésre teljesen naprakész választ fogok tudni adni; bizonyára a lapunk olvasói között vannak a 3-4. kérdéshez jobban értő, frisebb tudással rendelkező szakemberek is. (A hozzászólásaikat természetesen várjuk.)

  1. Itt egy összevonás bújhat meg a háttérben: egyrészt a hitelesítési adatok, illetve a digitális megjelenésünk védelmét illetően szeparálni kell a kérdéseket.
    • Elvileg elképzelhető, hogy olyan ügyesen oldják meg a hitelesítést, hogy nem lesz a lehallgatás után képes a támadó újra hitelesíteni magát a nevünkben (pl. bonyolult kliensoldali javascript programok alkalmazásával). Azonban ez annyira bonyolult lenne, hogy inkább HTTPS-t használnak helyette (egy-két kivételtől eltekintve nem igazán ismerek ilyen weblapokat). Izgalmasabb kérdés, hogy mi van, ha közbeékelődéses támadást hajtanának végre: ez esetben pl. az sms-ben kiküldött kódok sem segíthetnének, hiszen a támadó helyettünk felhasználhatja a beküldött űrlapunkat. (Egy ilyen támadást ráadásul még elképzelhetőnek is tűnik kivitelezni.)
    • Az anonimitás egyszerűbb kérdés: használjunk olyan anonimizáló hálózatot (pl. TOR), ami egy átjárót (proxy) telepít a gépünkre, ami a saját hálózatával már biztonságos csatornánk kommunikál. Így nem szükséges a weboldallal a HTTPS kapcsolat, mivel a gépünk és az interneten lévő hálózat között biztonságos kommunikáció zajlik. és a gépünk teljesen anonim lehet. Viszont hitelesítésnél felmerül egy probléma: az anonimizáló hálózat kilépési pontjában lévő számítógép láthatja a felhasználónevünk és jelszavunk, és ezzel vissza is élhet. (TOR esetén már volt példa arra, hogy így gyűjtöttek személyes, vagy érzékeny adatokat, figyeltek meg TOR hálózaton át küldött leveleket.)
  2. A kérdés jogos, a Hacktivity 2009-en mi is eltűnődtünk ezen. Úgyhogy örömmel jelentjük be, mostantól a PET Portált HTTPS-en keresztül is el lehet érni!
  3. Ha a jelszavainkat biztonságban szeretnénk tudni, több problémakör is felmerülhet, ebből bemutatnék párat, a teljesség igénye nélkül. Ezeknek a kombinációjával már talán valamire mehetünk. (Biztonsági szakemberek és hackerek véleményét várjuk a hozzászólások között! )
    • Használjunk biztonságosabbnak vélt lenyomatkészítő algoritmusokat (pl. SHA-256, SHA-512).
    • Ha egyféle lenyomatban tároljuk a jelszavakat (pl. MD5('jelszó') = lenyomat), akkor elképzelhető, hogy a támadó ütközéseket fog keresni (ha egy jelszót szeretne mindenképp meghamisítani). Azaz keres egy másik olyan szöveget, aminek épp ugyanaz a lenyomata, mint a jelszó. Ez ellen úgy védekezhetünk, hogy ha a jelszónak két különböző algoritmussal tároljuk a lenyomatát, így nehezítve az ütközés keresést: egyszerre kellene mindkét algoritmusnál egyeznie az ütközésnek, ami nem túl valószínű. így a támadó számára marad a brute-force módszer, vagy a szótár alapú keresés.
    • Hogy a támadó ne tudjon előre gyártott szótár alapján keresni, érdemes salt-ot alkalmazni. Elképzelhető ugyanis, hogy előre gyárt a támadó egy szótárat (egy módszer szerint generált minden lehetséges jelszó lenyomatát eltárolja), és ezeket keresi végig a jelszó adatbázisban. Ha salt-tal készítjük a lenyomatokat, ez lehetetlenné válik, mindig újra kell a lenyomatot generálni. Azaz tároljuk szimplán az adatbázisban szimplán ennyit: MD5(salt, 'jelszó') és mellette a salt értékét.
    • (További érdeklődés esetén érdemes felütni a kriptográfiai hash függvények szakirodalmát, amihez kezdésnek szerintem Bruce Schneier könyve megfelelő.)
  4. Érdemes a fentebbi megfontolásokat alkalmazni (3. pont), valamint a HTTPS-t használni. Vigyázni kell, hogy ne lehessen a tankönyvekbe illő támadásokkal megtörni a weboldalunkat, kinyerni az adatbázist (pl. SQL injection). A leggyakrabban így törik fel a weboldalakat. Sokszor egyébként nem is a hitelesítést törik meg, hanem pl. eltérítik a munkamenetet; érdemes ennek a témakörnek is utána olvasni.

Remélem segítettünk. Bár a Portál szempontjából relevánsabbak az 1-2. pontok, mivel a 3-4. pontokba sajnos a felhasználóknak nincs beleszólásuk, noha ezek a problémák első sorban mégis őket érintik.

Hozzászólások

Összesen 4 hozzászólás látható.

2009.11.10.

Gulyás Gábor 2009.11.10. 15:55:04
Köszi a tippet! Kiderült, hogy az Apache csak egy tanúsítványt tud kezelni IP címenként - így viszont saját IP cím kellene a PET Portálnak... ami szintén nincs ingyen. Esetleg erre is van megoldási javaslatod?

2009.11.09.

bukovinai [ e-mail | http://nethekk.blogspot.com ] 2009.11.09. 13:56:17
Sziasztok!

Van ingyenes tanúsítvány szolgáltató, ami a firefox-ban már benne is van.

Pont azért jött létre, hogy a https oldalakért ne kelljen fizetni....

http://cert.startcom.org/

Üdv!

2009.10.29.

Gulyás Gábor 2009.10.29. 15:29:13
Nos, ha megtalál minket egy mecénás, akkor vásárolunk egy valódi tanúsítványt, de addig marad ez az olcsóbb megoldás.

Azért köszönjük az észrevételt.
R2-D2 2009.10.29. 10:49:05
Ha már kiírjátok szép pirossal, hogy elérhetőek vagytok HTTPS-en, akkor tessék érvényes tanúsítványt használni!

A hozzászóláshoz be kell jelentkezni!

© PET Portál és Blog, 2008-2010 | Impresszum | Adatvédelmi nyilatkozat