Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Curiosità: il senso di criptare le password?

    Ciao,

    la mia è solo una curiosità e mi interessava avere opinioni altrui, specie di provienienti da esperti.

    Ammesso che il database che contiene le password dei tuoi utenti sia inviolabile (lo so che è un assoluto impossibile, ma assumiamolo per un momento) che senso ha criptare le password (per esempio con md5)?

    Attendo erudite risposte!!

    eheh

  2. #2
    In modo che chi dovrebbe mai riuscire ad entrare ci mette minuti in più per decifrare tutte le password criptate !

    Bella domanda/curiosità ... :master:

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Il senso è che se tu mettessi nel db le password in chiaro, uno che riuscisse ad entrare sul tuo db potrebbe loggarsi senza problemi come uno qualsiasi degli utenti.
    Con la password criptata invece non accade, perché mettendola nella form di login non verrebbe accettata.
    Questo perché lo script di login deve prendere la password dalla form, la codifica in md5 ed effettua la query, se tu gli passi la password criptata, lo script genererà l'md5 a partire da questa e sarà diverso, quindi il login fallisce.
    Ad esempio:
    l'md5 di pippo è: 0c88028bf3aa6a6a143ed846f2be1ea4
    l'md5 di 0c88028bf3aa6a6a143ed846f2be1ea4 è: 1b12fefbe423632ed041dd56f48ba47c
    che come vedi è diverso

    Per decodificare un md5 ci vuole ben più che qualche minuto.

  4. #4
    Originariamente inviato da pixmania
    In modo che chi dovrebbe mai riuscire ad entrare ci mette minuti in più per decifrare tutte le password criptate
    E' errato pensare ciò... se si cripta adottando alcuni escamotage sarà quasi del tutto impossibile decriptare. Adesso spiego:

    è "intrinsicamente" impossibile decriptare un hash (md5, sha1, etc. etc.) ma il problema può sorgere con parole "famose" e/o di senso compiuto in quanto esistono database di hash grazie ai quali è possibile risalire alla password originale.

    Cosa fase?

    Un pò di tempo fa mi fu suggerito di adottare come escamotage i cosiddetti salt e la combinazione di sistemi di criptaggio.

    Faccio un esempio:
    Codice PHP:
    <?php
    // stringa da criptare
    $stringa 'password';

    // inventiamoci un salt
    $pre_salt '^0)8èàùò';
    $post_salt '><1!09';

    // non criptiamo la stringa 'password' 
    // ma andremo a concatenare a tale stringa 
    // due stringhe che metteremo una prima e una dopo
    // in pratica cripteremo '^0)8èàùòpassword><1!09'

    $nuova_stringa $pre_salt.$stringa.$post_salt;
    $crypt1 md5($nuova_stringa);

    // facciamo un secondo cryptaggio con sha1
    $crypt2 sha1($crypt1);

    ?>

  5. #5
    Mi permetto di aggiungere ancora un piccolo aspetto a favore della criptazione delle password.
    Una questione di riservatezza verso gli utenti.
    Criptando le password, nemmeno chi opera sul database può avere le password in chiaro.
    E se pensate che l'utente medio utilizza la stessa password per tutto, non sarebbe corretto che chiunque abbia diritti di accesso al db possa visualizzare queste password e magari farne un uso sconsiderato.
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  6. #6
    Originariamente inviato da mtx_maurizio
    Mi permetto di aggiungere ancora un piccolo aspetto a favore della criptazione delle password.
    Una questione di riservatezza verso gli utenti.
    Criptando le password, nemmeno chi opera sul database può avere le password in chiaro.
    E se pensate che l'utente medio utilizza la stessa password per tutto, non sarebbe corretto che chiunque abbia diritti di accesso al db possa visualizzare queste password e magari farne un uso sconsiderato.
    Ciao!

  7. #7
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    aggiungo che è meglio utilizzare Sha256 / sha512
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  8. #8
    Ciao e grazie a tutti per le risposte.

    La domanda però era esattamente basata a partire dall'assunzione che il tuo database sia inaccessibile.

    Cioè se ci fosse 100% di garanzia che il tuo database sia inaccessibile (che sappiamo benissimo non essere la realtà) avrebbe senso criptare le password?

    Perché la criptazione avviene lato server, e se l'utente digita la sua password in un sito non sicuro, non SSL, la sua password sarà spedita in chiaro alla pagina che elabora la richiesta lato server e per quanto ne so, questa richiesta è potenzialmente vulnerabile in quanto potenzialmente "ascoltabile".

    Quindi, mi pare che la teoria generale sia una difesa per la privacy degli utenti e per il sistema a partire dalla teoria-fatto che "nessun database è completamente sicuro" dato che se lo fosse non avremmo alcuna necessità di criptare le password "lato server".

    Giusto?

    Senza una connessione sicura SSL, tutto ciò che digita e invia l'utente è virtualmente insicuro e visibile.

    Giusto?

  9. #9
    Certo, quello che dici é vero.
    Ma comunque é più complesso ed improbabile che le password siano intercettate durante l'invio (é comunque fattibile e ci vuole ssl per tentare di evitarlo).
    Ma sarebbe come dire: Visto che un ladro può entrare in casa mia sfondando la porta, allora tanto vale chiudere a chiave.
    Tu inizia a chiudere a chiave, che il 90% dei potenziali ladri non entreranno.

    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  10. #10
    Ok, grazie mille!!

    Sono pienamente soddisfatta delle risposte!!


    Originariamente inviato da mtx_maurizio
    Certo, quello che dici é vero.
    Ma comunque é più complesso ed improbabile che le password siano intercettate durante l'invio (é comunque fattibile e ci vuole ssl per tentare di evitarlo).
    Ma sarebbe come dire: Visto che un ladro può entrare in casa mia sfondando la porta, allora tanto vale chiudere a chiave.
    Tu inizia a chiudere a chiave, che il 90% dei potenziali ladri non entreranno.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.