Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: yksinkertainen salasanasuojaus php:llä

Sivun loppuun

Jantse [23.08.2005 11:07:35]

#

Netistä ei ole löytynyt tarpeisiini sopivaa php -salasanasuojausta. htaccessia en halua käyttää.

Eli jos joltain löytyis ihan simppeli salasanasuojaus koodinpätkä, niin kertoisi mistä löytyis tai kehittelis sellaisen tähän.

Eli kun oikean tunnuksen ja salasanan on syöttänyt pääsee etusivulle. alasivujen ei välttämättä tarvi olla suojattu.

Tunnuksia ja salasanoja ei tarvitse olla yhtä enempää.

Puhveli [23.08.2005 12:13:20]

#

md5-hashi on aina kaveri tuommoisissa <3. Ihan oikea opaskin aiheestä löytyy: https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=salaphp :)

squid [23.08.2005 15:02:11]

#

Jantse kirjoitti:

htaccessia en halua käyttää.

Mikäs siinä .htaccess on vikana?

Jantse [23.08.2005 15:12:23]

#

Haluan persoonallisen loggautumisen joten htaccess ei hyvä.

Mazuli [23.08.2005 15:23:13]

#

no tee jotenkin näin vaikka

<?
session_start() //luodaan sessio
//jos ollaan kirjauduttu sisään
if($_SESSION['login'] == true){
  //jos halutaan loggautua ulos
  if($_GET['action'] == "logout"){
    session_destroy(); //tuhotaan sessio
    echo "Olet kirjautunut ulos"; //tulostetaan teksi
  //jos ei
  } else {
    echo "Tervetuloa admin alueelle ;)"; //tulostetaan teksti
  }
//jos ei olla kirjauduttu sisään
} else {
  //jos yritetään kirjautua sisään
  if(isset($_POST['nimi']) && isset($_POST['salasana'])){
    //jos tunnus ja salasana on oikein
    if($_POST['nimi'] == "admin" && $_POST['salasana'] == "salasana"){
      $_SESSION['login'] = true; //asetetaan login arvo trueksi
      header("location: taasivu.php"); //ohjataa käyttäjä sivulle uudestaa
    //jos salasana/käyttäjätunnus on väärä
    } else {
      echo "Väärä salasana/käyttäjätunnus"; //tulostetaan virhe teksi
    }
  //jos ei yritetän kirjautua sisään
  } else {
      //tulostetaan kirjautumis lomake
      echo "<form method=post>
            nimi: <input type=text name=nimi><br>
            salasana: <input type=password name=salasana><br>
            <input type=submit value=login>
            </form>";
  }
}
?>

tomaattigeeni [23.08.2005 16:54:47]

#

Mazuli: Jantse halusi salasanasuojausta, tuohan on yksi iso reikä koko koodi :) niin ja kannattaa muuten vähän miettiä mitä kommentoi, jokaista tekstinulostusta ja aaltosuljetta ei välttämättä tarvi selittää vaikeampaa kautta, jokainen tajuaa niiden merkityksen ;)

Jantse tutustu tosiaan tuohon MD5:een, kuten Puhveli neuvoi. Ja muuten voit vaikka soveltaa tuota Mazulin esimerkkiä, kunhan laitat tuon salasanan menemään md5-summaajan läpi niin ihan ok on, ja poista kommentit että saat jotain selvää :)

Mazuli [24.08.2005 11:52:25]

#

no joo toi nyt oli nopeesti väsätty esimerkkiä antava esimerkki ;)

Jtm [24.08.2005 22:21:59]

#

MD5-hash on lellikki-salasanasuojaus. Moisen saisi auki sekunneissa.

Grey [24.08.2005 22:40:53]

#

Jtm kirjoitti:

MD5-hash on lellikki-salasanasuojaus. Moisen saisi auki sekunneissa.

Sanoista tekoihin, vai mitä ;-)

-Grey-

hunajavohveli [25.08.2005 08:24:39]

#

Jonkun 7-merkkisen ehkä saa, mutta tuosta kun kasvaa muutamalla merkillä niin ei se enää niin nopeasti käykään.

Jtm [25.08.2005 12:14:41]

#

Siinäpä se hunajavohveli :). Purkamiseen kulunut aika kasvaa ekspotentiaalisesti suhteessa siihen monta kirjainta salasanassa on. Toisekseen täytyy myös ottaa huomioon, että harvoin salanoissa käytetään numeroiden ja aakkosten lisäksi muita merkkejä (tietenkin poikkeuksia on, mutta suurin osa ihmisistä ei erikoismerkkejä käytä).

squid [25.08.2005 14:59:01]

#

Ja moni käyttää salasanaa, joka on yleensä helppo, sana tai numerosarja. Ja vielä harvemmin se on yli 7 merkkiä pitkä.

Grey [25.08.2005 17:37:12]

#

Hm, jos yli seitsemän merkkiä alkaa olemaan vaikea, niin miten vaikea on sitten 14 merkin mittainen salasana?

-Grey-

tomaattigeeni [25.08.2005 20:09:23]

#

7 merkkisissä salasanoissa on 255^7 eri mahdollisuutta jotka pitää testata, kaksi kertaa pidemmissä salasanoisssa onkin 255^14 eli tarkistettavaa on n. 7*10^16 kertaisesti - ja esimerkiksi 4 merkkinen md5-hashi on huomattavasti nopeampi tarkistaa kuin 10 merkkinen, joten aikaa menee kyllä reippaasti enemmän kuin "vain" 7*10^16 kertaisesti. Jos oletetaan että 7 merkkinen salasana saadaan kräkättyä sekunnissa niin 14 merkkisen kräkkäämiseen kuluu ainakin 2.5 miljardia vuotta. (oikaiskaa jos laskin ihan ketuilleen)

Eli itse pidän kyllä MD5:ttä ihan riittävän luotettavana salausalgoritmina - ainakin tämän ketjun aiheeseen riittävä : "yksinkertainen salasanasuojaus".

Jtm [25.08.2005 23:23:52]

#

Ja jos ei ole kaikkia merkkejä käytössä, vaan pelkkä perusmerkistö, niin etsintään menevä max. aika pienenee tuhat kertaisesti kun meillä on 7 merkkinen salasana (MD5-hashilla on 256^16 eri vaihtoehtoa, ja harvemmin käytetään muita kuin perusmerkkejä, eli vaihtoehtoja on n. 6538825 kertaa vähemmän)

kasetti [26.08.2005 12:52:34]

#

Mikseipä tekesi MD5-salausta kahteen kertaan. Tämä ainakin hidastaa salauksen purkamista.

Lebe80 [26.08.2005 14:18:20]

#

tee oma salausFunktio, jota käytät aina sivuillasi.

esim.

<?
function Salaa($salattava){
$palauta = md5( "hieman" . md5( "parempi" . $salattava . "salaus") . "tekniikka" );
return $palauta;
}
?>

Tällöin tyhjät arvot eivät ainkaan palauta sitä md5:n tuttua merkkijonoa.

arcatan [26.08.2005 15:54:47]

#

Esimerkiksi GData on hassunhauska MD5-tietokanta. Itse suosittelisin jonkinlaista suolausta. Itselläni on ollut tapana käyttää SHA1-hasheja, joita kait pidetään turvallisempina kuin MD5:tä. Tosin Slashdotissa taisi olla äsken uutinen entistä tehokkaammasta hyökkäyksestä SHA1:tä vastaan...

leftover [26.08.2005 16:15:23]

#

En nyt nopeasti huomannut oliko kukaan ottanut huomioon että salasanan pituutta ei tiedä kräkätessä joten vaihtoehdot on:

1 (tyhjä) +
127^1 (oletetaan että on vain low-ascii) +
127^2 +
127^3 +
127^4 +
127^5 +
127^6 +
127^7 = aikas monta (jos en väärin laskenut niin 537 138 072 028 286, 537 biljoonaa ja rapiat). Jos oletetaan että kone kokeilee 10 000 salasanaa sekunnissa (keskiarvoisesti), ja salasana löytyy 7-merkkisten alkupuolelta (ensimmäisestä viidenneksestä), kestää koneelta silti reilut 350 vuotta salasanan purkaminen (sillä edellytyksellä etten laskenut kiireessä mitään kohtaa väärin)...

Suolaus on tietenkin hyvä tapa, samoin kuin SHA1 yms. mutta loppujen lopuksi tulee kuitenkin se palikkakäyttäjä joka laittaa salasanaksi God1 joka löytyy jokaisesta listasta top10. Eli heikoin lenkki on ehkä kuitenkin aina se käyttäjä...

Antti Laaksonen [26.08.2005 17:37:53]

#

Jos tietynpituisen salasanan selvittäminen onnistuu järkevässä ajassa, kaikkien lyhempien salasanojen tarkistaminen lisäksi ei aiheuta ongelmia. Jos salasanan pituus on korkeintaan p ja merkistön koko k, kokeilujen määrä huonoimmassa tapauksessa voidaan laskea kaavalla (k ^ (p + 1) - 1) / (k - 1).

Esimerkki: Käytössä on kirjaimet a - z ja A - Z (eli yhteensä 52 merkkiä) ja salasanan pituus on korkeintaan kuusi merkkiä. Nyt pitää kokeilla (52 ^ (6 + 1) - 1) / (52 - 1) = 20158268677 merkkiyhdistelmää, jotta salasana varmasti löytyy. Jos salasana on varmasti juuri kuusi merkkiä pitkä, yhdistelmiä on 52 ^ 6 = 19770609664, joten homma ei mainittavasti helpotu. Jos tietokone ehtii kokeilla 100000 salasanaa sekunnissa, aikaa kuluu korkeintaan 197700 s = 55 h.

Anssi V [26.08.2005 18:00:17]

#

Meinaako nuo laskennat että MD5-hashi, mitä puretaan, on jo tiedossa?

Antti Laaksonen [26.08.2005 19:14:22]

#

Joo, koska muuten sekunnissa kokeiltavien salasanojen määrä on erittäin paljon pienempi. On myös hieman epäilyttävää, jos tietty käyttäjä yrittää kirjautua sivustolle miljoonin eri salasanoin.

kayttaja-2791 [26.08.2005 21:52:10]

#

Tässä MDCrackin kotisivuilta jotain tuosta hashien bruteforcauksien nopeuksista:
CPU / System used: AMD Athlon 1.8Ghz / Win XP pro,
MDCrack Version: mdcrack 1.2.
MD5: 5 808 949 h/s.
MD4: 9 334 967 h/s.
NTLM1: 5 489 462 h/s.

Jtm [27.08.2005 00:18:41]

#

Jeps tuota bruteforcausta on tullut joskus aikoja sitten kokeiltua.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta