Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Login ja tietoturva

Sivun loppuun

overmatroos [26.06.2012 10:07:28]

#

Terve!

ELi voisko joku väääntää rautalangasta(ja ihan oikeesti rautalangasta) miten kannattaa tehä kirjautminen admin osioon ja niin että se turvallinen..Tietokannassa on jo taulu USERS(id,username,password)....mitä seuraavaksi?? Ja selittäkää nyt mikä tuo suola+md5 on...

Terv.
Aloitteleva "PHP säveltäjä"..

Lebe80 [26.06.2012 10:19:12]

#

Salasana on tallennettuna tietokantaan arvolla "3d25e975543662346b22d066cc2523e4", joka taas muodostuu funktiolla md5("fR?!fyE1q_kissa2")

Jossa fR?!fyE1q_ on suola
Ja kissa2 on käyttämän kirjoittamana salasana.

3d25e975543662346b22d066cc2523e4 on siis paljon turvallisempi käyttäjälle, mikäli ulkopuolisilla ja tietenkin myös ylläpitäjällä on pääsy tietokantaan.

reino [26.06.2012 10:23:04]

#

Kirjautuminen kannattaa tehdä php:llä. Javascriptillä sitä ei saa tehdä. Kun adminosioon kirjaudutaan niin ensin pitää tarkistaa salasanan tiiviste. MD5 on epäturvallinen (Tein kerran sanakirjahyökkäysohjelman.) Käytä jotain muuta algoritmia kuten jotakin SHA algoritmia.

Kun adminalueelle on kirjauduttu niin tallenna tietokantaan kirjautujan ip ja laita kirjautujalle yksilöllinen tunniste-eväste joka vanhenee istunnon lopuksi ja joka tallennetaan myös palvelimelle. Näin adminsivu voi tarkistaa onko käyttäjä oikeasti kirautunut sivulle vai onko sivulle tultu sivuhistorian kautta.

Kannattaa lukea PHP oppaat. Varsinkin tietoturvaosio.

Lebe80 [26.06.2012 10:30:28]

#

reino tarkoittanee tätä sivua:

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=php_13

Grez [26.06.2012 10:40:18]

#

reino kirjoitti:

MD5 on epäturvallinen (Tein kerran sanakirjahyökkäysohjelman.) Käytä jotain muuta algoritmia kuten jotakin SHA algoritmia.

SHA-algoritmit on ihan yhtä alttiita sanakirjahyökkäyksille.

On totta että MD5 on kryptografisesti heikompi kuin SHA1 ja paremmat, mutta miksi sitten mainita sanakirjahyökkäys siinä yhteydessä? Toisaalta SHAt ei ole salasanojen tiivistämiseen kovin merkittävästi MD5:ttä parempia, joten miksei saman tien suositella vaikka bcryptiä?

ErroR++ [26.06.2012 11:08:01]

#

Itse tekisin varmaankin näin:

$suola=md5(uniqid(mt_rand(), true)); //Suola jotenki näin kun käyttäjä luodaan

$tiiviste=sha1($salasana . $suola); //ja kirjautuessa

EDIT: Suola pitää sitten olla tietokannassa ja sitä voi vaikka vaihtaa joka kirjautumiskerralla.

overmatroos [26.06.2012 14:38:03]

#

Kiitos, koitan alkaa vääntämään.

pistemies [26.06.2012 16:10:01]

#

Grez kirjoitti:

miksei saman tien suositella vaikka bcryptiä?

On tietysti mahdollista tehdä ihan ikioma salausmenetelmä. Siis tehdä funktio, joka luo salauksen ihan omaperäisesti ja käyttää salausavainta / avaimia.

Metabolix [26.06.2012 16:25:17]

#

Tietokantaan tallennettavan tiivisteen lisäksi pitää miettiä, mitä tallennetaan käyttäjälle evästeeseen. Sinne ei nimittäin kannata tallentaa salasanaa eikä sen tiivistettä vaan täysin näistä riippumaton istunnon tunniste. Tämä suojaa käyttäjää vahingoilta siinä tilanteessa, että hakkeri varastaa evästeet: käyttäjän salasana ja sen tiiviste pysyvät turvassa, ja ainoastaan istunnon tunniste tarvitsee vaihtaa.

pistemies kirjoitti:

Grez kirjoitti:

miksei saman tien suositella vaikka bcryptiä?

On tietysti mahdollista tehdä ihan ikioma salausmenetelmä. Siis tehdä funktio, joka luo salauksen ihan omaperäisesti ja käyttää salausavainta / avaimia.

Millä tavalla tuo mielestäsi liittyi Grezin kysymykseen? bcryptin käyttö on aivan eri asia kuin "ikioman salausmenetelmän" eli vaarallisen purkkaviritelmän tekeminen, ja tiedon salaus on myös aivan eri asia kuin tiivisteen laskeminen.

timoh [26.06.2012 22:47:02]

#

Aloita homma täältä: http://www.openwall.com/articles/PHP-Users-Passwords

Tuon artikkelin ohjeistuksella pääset hyvään alkuun (bcrypt jne.), ja tulee selväksi kaikki nämä nyanssit mitä liittyy aiheeseen. Tällä tavoin vältät yleisimmät sudenkuopat ja harhaluulot mitä tulee mm. tiivisteisiin, suolaukseen, "salaisiin suoliin" ja muihin mitä ihmeellisimpiin aivoituksiin mitä kehittäjät ovat onnistuneet keksimään osana salasanojen käsittelyään.

Artikkelin takaa löydät linkin phpass-kirjastoon: http://www.openwall.com/phpass/ minkä pohjalta voit aloittaa (valmis koodi, joten riittää että rupeat käyttämään sitä artikkelin kuvaamalla tavalla).

Tämän jälkeen pääset sitten tuonne yllä mainittuun sessio-systeemiin ja sen nyansseihin, sekä lopuksi voit viimeistellä kokonaisuuden ottamalla suojatun yhteyden (https) käyttöön (mikä itsessään torppaa useamman ilkeän ongelman).

overmatroos [04.07.2012 14:58:19]

#

ISO KIITOS TÄSTÄ!!homma pelaa..


Sivun alkuun

Vastaus

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

Tietoa sivustosta