• Super User

    @Tymba said:

    i miei complimenti :vai: :vai:
    veramente uno spunto OTTIMO su cui ragionare.
    ho letto con molta attenzione quanto scritto ed ora devo metabolizzare :)non sei l'unico, appena imparato da lowlevel ho aggiornato il mio sistema di log 😄


  • Bannato Super User

    l' idea di LowLevel è di una praticità ed efficacia disarmanti, non è che mi trovi spesso a gestire l'autenticazione degli utenti, comunque non avevo mai pensato ad usare un metodo simile, quindi intanto subito un bel grazie 🙂 .

    Adesso mi guardo bene bene il codice e preparo una mia versione del controllo login in PHP.


  • Super User

    @emmebar said:

    l' idea di LowLevel è di una praticità ed efficacia disarmanti, non è che mi trovi spesso a gestire l'autenticazione degli utenti, comunque non avevo mai pensato ad usare un metodo simile, quindi intanto subito un bel grazie 🙂 .

    Adesso mi guardo bene bene il codice e preparo una mia versione del controllo login in PHP.Poi magari cerca di integralrla qui, così vediamo di curare un'altro aspetto del progetto 😄


  • User Attivo

    Fino a ieri il mio bizzarro sistema di autenticazione faceva in modo che le password fossero memorizzate nell' id_sessione in chiaro. Ho risolto 😎 (adesso non lo sono più).

    Adesso però devo trovare il modo per non trasmettere più la password utente nel form di login ma bensì quell'informazione combinata di cui si è parlato.

    L'informazione combinata deve tenere conto di due fattori:
    stringa casuale che solo il server conosce;
    password inserita nel form

    Posso creare una funzione personalizzata (stringa/password) per generare l'informazione combinata? Se ho capito bene la risposta è SI.

    Deve essere obbligatoriamente in javascript la funzione? La risposta è NO se ho capito.


  • Super User

    @linus said:

    Fino a ieri il mio bizzarro sistema di autenticazione faceva in modo che le password fossero memorizzate nell' id_sessione in chiaro. Ho risolto 😎 (adesso non lo sono più).

    Adesso però devo trovare il modo per non trasmettere più la password utente nel form di login ma bensì quell'informazione combinata di cui si è parlato.

    L'informazione combinata deve tenere conto di due fattori:
    stringa casuale che solo il server conosce;
    password inserita nel form

    Posso creare una funzione personalizzata (stringa/password) per generare l'informazione combinata? Se ho capito bene la risposta è SI.

    Deve essere obbligatoriamente in javascript la funzione? La risposta è NO se ho capito.Si, il java script si 😄


  • Bannato Super User

    @PaTeR said:

    Poi magari cerca di integralrla qui, così vediamo di curare un'altro aspetto del progetto 😄

    E' esattamante quello che voglio fare 😄 .


  • Super User

    come stiamo procedendo? : 😎


  • Super User

    @Tuonorosso said:

    come stiamo procedendo? : 8)Cerchiamo nuovi utenti che possono partecipare!!!


  • Super User

    ok
    intanto non ci conviene dividerci i compiti noi che già ci siamo?


  • Bannato Super User

    @Tuonorosso said:

    come stiamo procedendo? : 😎

    Per il controllo sono un po' indietro, ho avuto una montagna di cose da fare in questi giorni, comunque ci stò lavorando, anche perchè mi serve per un cliente., ma se volete andate pure avanti voi.


  • Super User

    @Tuonorosso said:

    ok
    intanto non ci conviene dividerci i compiti noi che già ci siamo?Non sarebbe male...

    Allora ci organizziamo? Per favore scrivete chi è interessato, in fondo è una cosa che servirà a tutti, quindi + siamo meglio è 😄


  • Super User

    Tuonorosso
    Pater


  • Bannato Super User

    eccomi 😉

    @Tuonorosso said:

    Tuonorosso
    Pater
    emmebar


  • Super User

    Tuonorosso
    Pater
    emmebar
    LowLevel


  • User Newbie

    News?


  • Super User

    @Fab G said:

    News?hehe servono utenti volenterosi!

    comuqneu la parte software base non è difficile da fare...
    vuol dire che mi ci dedicherò un pò di più 😄


  • Super User

    ops...io mi ero dimenticato :bho:
    :quote:


  • Super User

    @Tuonorosso said:

    ops...io mi ero dimenticato :bho:
    :quote:utenti non prendete esempio da questo moderatore!

    :yuppi: :yuppi: :yuppi:


  • Super User

    @PaTeR said:

    utenti non prendete esempio da questo moderatore!

    :yuppi: :yuppi: :yuppi:

    ehhehe...davvero...a meno che non vogliate diventare mister universo...non imitatemi 😄


  • Super User

    Allora ragazzi la questione password è già stata trattata, ma vorrei discutere ora dell'hashing in sè.

    Message-Digest algorithm 5
    Ecco qui il famoso MD5... vi sarete chiesti a che serve qualche volta... no? Ebbene, esso non serve affatto a CRIPTARE una password, bensì a calcolare l'hash di una stringa. Per utilizzarlo PHP mette a disposizione la sua bella funzioncina built-in [url=php.net/md5]md5()

    
    string md5 (
          string str ,
          [ bool raw_output ]
    )
    
    

    In questo prototipo troviamo STR che è la stringa da hashare, e l'opzione booleana RAW_OUTPUT che per default è FALSE. Naturalmente non è possibile risalire alla stringa originale, perchè alcune operazioni dell'algoritmo non sono reversibili ( come la moltiplicazione: 6 è 23, ma potrebbe anche essere 16 ).

    LA SICUREZZA DI QUESTO ALGORITMO
    La sicurezza di questo algoritmo è alta, ma certamente non è sicurissima: sono infinite ( come tutte le cose ) le stringhe possibili che potrebbero dare come risultato lo stesso hash. Però non preoccupatevi: è molto raro che un lamer le trovi, se non con attacco [url=http://en.wikipedia.org/wiki/Brute_force_attack]Brute-Force che tralaltro sarebbe molto dispendioso per lui.

    COME EVITARE GLI ATTACCHI BRUTE-FORCE
    Per evitare attacchi di questo tipo molti siti permettono un massimo di 3 login per uno stesso utente ogni 15 minuti: come il PIN del cellulare... 3 tentativi, allo scadere di questi l'utnte dovrà aspettare 15 minuti ( o quello che volete voi ) prima di tentare un nuovo accesso! Per gestire questo genere di protezione, vi basta controllare i login di un utente ( non interessa manco l'IP ) ed allo scadere dei tre tentativi ( controllati dallo script di accesso che aumenterà i tentativi falliti ) bloccherà i login di quell'utente trascrivendo nel database il timestamp di quell'accesso permettendo allo script del login di calcolare il tempo necesssario per permettere un nuovo accesso. Molti script usano questo metodo, come phpBB e altri forums.

    MD5 in Javascript?
    Ma comunque resta un problema: facciamo passare la password in chiaro??? NOOOO!

    Ora dobbiamo adottare uno stratagemma!

    1. Usare la classe MD5 per javascript
    2. Creare un algoritmo proprio

    Ora vi spiegherò come usare MD5 in Javascript, sistema che comunque in alcuni casi non funzionerà... perciò bisogna decidere se

    1. Obbligare il client ad abilitare js
    2. Metterlo al corrente che il sistema non è sicuro e passare la password in chiaro

    Così dovremo procedere in questo modo:

    Avremo un campo <noscript> che setterà un valore POST in modo tale che esso sarà 'disabled' solo se il js è disattivato

    <noscript><input type='hidden' name='js' value='disabled'></noscript>
    

    ed un campo <script> che setterà il campo su 'enabled'

    <script lang='javascript'>document.write&#40;"<input type='hidden' name='js' value='enabled'>"&#41;;</script>
    

    così, sempre in js cripteremo il campo con [url=http://pajhome.org.uk/crypt/md5/]questo javascript prima che avvenga il passaggio all'altra pagina.

    Lo script lato-server controllerà il valore di 'js' e se sarà su enabled non hasherà il campo della password, se invece è su disabled lo hasherà.

    LINKS UTILI

    http://www.faqs.org/rfcs/rfc1321
    http://pajhome.org.uk/crypt/md5/
    http://en.wikipedia.org/wiki/Brute_force_attack
    http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html

    Conclusioni
    Ci sono tanti modi per criptare una stringa, io vi ho dato informazioni sul metodo più noto... a voi il resto!

    Ciao!