VexFox Blog

Miért kerüld az egyszerű jelszavak használatát?

Tartalomjegyzék

Rengeteg weboldal tiltja az egyszerű jelszavak használatát regisztrációkor. De miért is nem mindegy neki, hogy mivel szeretnénk regisztrálni? Az alábbiakban bemutatjuk, hogyan léphetnek be fiókunkba a rosszindulatú támadók. Miért kerüld az egyszerű jelszavak használatát? Mielőtt nekikezedenénk szögezzünk le pár alap dolgot.

Mik is azok az egyszerű jelszavak?

Törekszünt a könnyen megjegyezhető egyszerű és rövid jelszavakra, amelyek kényelmessé teszik a bejelentkezést. Ilyenek lehetnek a nevek, születési dátumok, egyszerű sorozatok és szavak:

- admin
- 1234
- 19981124
- 1998
- 1124
- anna

Lehetünk mi is célpontok?

Napjainkban millió számban tevékenykednek rosszindulatú robotok, melyeket arra programoztak, hogy fiókokat törjenek fel. Számuk folyamatosan növekszik és többségük rejtve marad, ezért a pontos számot nehéz meghatározni. Annyi bizonyos, hogy a teljes internetes forgalom 42%-át robotok generálják és ezek közül több mint 65% rosszindulatú. Ezek alapján mi is könnyedén válhatunk célpontokká.

Hogyan dolgoznak a rosszindulatú robotok?

Általánosságban elmondható, hogy a rosszindulatú robotok két leggyakoribb módszere a Brute force és a Dictionary attack. Mik ezek a módszerek?

Brute force

Ez a módszer a kombinatórikára alapszik, ami azt jelenti, hogy minden létező variációt végigpróbálnak, amíg be nem jutnak a fiókba.

Dictionary attack

Ez egy előre meghatározott szótárat használ, melyet gyakran használt jelszavakra alapoznak.

Mit tehetünk a nagyobb biztonság érdekében?

Captcha.

Egy captcha rendszer, vagy egy belépést korlátozó rendszerrel nagymértékben csökkenthető ezeknek a támadásoknak a sikeressége.

Erős jelszavak

Jelszavaink legyenek legalább 12 karakter hosszúak, tartalmazzanak kis-nagybetűt és speciális karaktereket (pl.: @&!+-,?%). Azonban az erős jelszavak csupán a próbálkozások idejét növelik meg, előbb-utább az erős jelszó is megfejthető.

Vegyünk egy egyszerű példát amiben a jelszó: 1234
Ez egy 4 karakteres jelszó. melyben a karakterek a következőképpen terjedhetnek:

-számok: 10

Ez 10.000 kombinációt jelent amit egy viszonylag gyors számítógép esetében körülbelül 0.00001 másodpercbe telik feldolgozni, ami azt jelenti, hogy azonnal.

Egy bonyolultabb jelszó esetében: Abc12!X24+
Ez a jelszó 10 karakter hosszú, melyben a karakterek a következőképpen terjedhetnek:

- kisbetűk: 26
- nagybetűk: 26
- számok: 10
- speciális karakterek: 32


Ez körülbelül 53,800,000,000,000,000,000 (53.8 kvintillió) kombináció, amit egy viszonylag gyors számítógép esetében is körülbelül 1700 évbe telik feldolgozni.

Többlépcsős hitelesítés

Egy többlépcsős hitelesítéssel szintén nagymértékben csökkenthető a támadások sikeressége. Ahol csak lehetőségünk van rá kapcsoljuk be a hitelesítést. Különösen akkor ha bankkártya adatokat is tárolunk az adott weboldalon.

Nézzünk egy gyakorlati példát PHP-ben ami egy egyszerű 6 karakteres jelszót próbál visszafejteni.
 

// A helyes jelszó, amit keresünk

$correct_password = '1234';

// Ezt a függvényt használjuk a jelszó ellenőrzésére

function TryEnter($password = '')
{
    global $correct_password;

    return ($password === $correct_password);
}

// Az összes lehetséges kombináció végigpróbálása

function generate_passwords() 
{
    $chrs = '0123456789';
    
    $password = '';
    
    for ($i1 = 0; $i1 < 10; $i1++) {
        for ($i2 = 0; $i2 < 10; $i2++) {
            for ($i3 = 0; $i3 < 10; $i3++) {
                for ($i4 = 0; $i4 < 10; $i4++) {

			$password = $chrs[$i1] . $chrs[$i2] . $chrs[$i3] . $chrs[$i4];

			if (TryEnter($password)) 
			return $password;
                            
                }
            }
        }
    }
	
    return false;
}

$found_password = generate_passwords();

if ($found_password)
    print "A jelszó: " . $found_password;
else
    print "A jelszót nem sikerült visszafejteni.";



Ez gyakorlatban az 1234 jelszó esetén így néz ki
 
...
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234 <-- match

return 1234;