Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di miksco
    Registrato dal
    Oct 2012
    Messaggi
    20

    Aumentare protezione password con SALT o simili

    Buonasera.
    Qualcuno saprebbe spiegarmi come funziona la codifica di password utilizzando SALT?

    Fin'ora ho memorizzato sempre le password in sha1 ma ora vorrei sfruttare SALT o qualche altro migliore metodo di sicurezza/criptaggio/hashing.

    Sapete aiutarmi?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Il livello di protezione dipende sempre dai dati che si vogliono proteggere, se stiamo parlando delle password degli utenti registrati su un sito che non fornisce servizi critici, sha512 è ampiamente sufficiente.

  3. #3
    Quote Originariamente inviata da miksco Visualizza il messaggio
    Buonasera.
    Qualcuno saprebbe spiegarmi come funziona la codifica di password utilizzando SALT
    E' semplicemente una tecnica che previene gli attacchi a dizionario in caso di furto dei dati criptati.

    Se tu riesci a sapere che la mia password criptata con sha1 è "7c6a61c68ef8b9b6b061b28c348bc1ed7921cb53" ti basta mettere la stringa su google per capire che è "passw0rd". Ci sono database enormi con mapping di questo tipo, alcuni sono anche disponibili in rete.

    Ovviamente il problema diventa concreto quando hai una password comune o molto corta (e una vulnerabilità nel sistema che ti espone il dato).

    Il salt è un granello di sale (una stringa o sequenza di bit) che concateni con la stringa prima di criptarla. Per esempio se la stessa mia password criptata con il salt in Sha1 è "24195deddb6c5e293bb1d89a55c6d66734b49c98" non ci puoi arrivare tanto facilmente, perché questa volta ci ho aggiunto la stringa "`%&2£!!è@" prima di criptarla.

    Ovviamente in fase di check devi ricordartelo e criptare l'input dell'utente con lo stesso granello di sale prima di confrontarlo col valore che hai nel database.

    Il salt teoricamente può essere pubblico (inteso come salvato insieme al valore criptato), perché il suo scopo è solo quello di rendere inutili quei mapping. Quindi conoscerlo non dà un aiuto definitivo.

    E' una protezione maggiore tenerlo segreto, o usare un salt diverso per ogni stringa e conservare la relazione stringa-salt in un posto diverso da dove è salvato il dato criptato.
    Puoi anche generarlo a partire dalla stringa iniziale (che so, utilizzi come salt un md5 di un md5 di un md5 del base64encode della stringa di partenza) così ti risparmi il problema di doverlo salvare da qualche parte (con lo svantaggio che se si scopre l'algoritmo che lo genera, si scoprono i salt di tutte le stringhe).

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2012
    residenza
    Lima, Perù
    Messaggi
    212
    Jamie Ynonan - Web Developer / Desarrollador Web - HTML5 - CSS3 - Javascript/jQuery - PHP/CodeIgniter/Laravel - SQL/MySQL - Wordpress
    Telelavoro / Teleworking - jamiea31[at]gmail.com - Lima - Perù - GMT -5

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Quote Originariamente inviata da chumkiu Visualizza il messaggio
    E' semplicemente una tecnica che previene gli attacchi a dizionario in caso di furto dei dati criptati.

    Se tu riesci a sapere che la mia password criptata con sha1 è "7c6a61c68ef8b9b6b061b28c348bc1ed7921cb53" ti basta mettere la stringa su google per capire che è "passw0rd". Ci sono database enormi con mapping di questo tipo, alcuni sono anche disponibili in rete. [...]
    Beh, ma se uno usa password sceme come "passw0rd", "pippo", "123123123"... è giusto che qualcuno gli entri nell'account

    D'altra parte, se uno riesce a sapere l'hash di una password, vuol dire che ha avuto accesso al DB e in quel caso importa poco cosa hai usato per criptare le password, avendo il DB esposto si può fare quel che si vuole direttamente sulle tabelle senza necessità di fare il login al sito con un account.

  6. #6
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    D'altra parte, se uno riesce a sapere l'hash di una password, vuol dire che ha avuto accesso al DB e in quel caso importa poco cosa hai usato per criptare le password, avendo il DB esposto si può fare quel che si vuole direttamente sulle tabelle senza necessità di fare il login al sito con un account.
    Non è detto che abbiano avuto l'accesso diretto al database. Se hai una vulnerabilità sul tuo sito generalmente essa ti permette un accesso limitato a poche cose (ovviamente dipende dalla vulnerabilità). Quindi sapere l'hash di una password di un utente, magari con privilegi speciali, è un punto di partenza.

    Inoltre è anche una garanzia che dai agli utenti. Molti utilizzano la stessa password per altri servizi (o una password simile). IN questo modo scongiuri che accedendo all'hash della pass del tuo sito, entrano anche nella email che utilizza la stessa password. (o comunque una tipologia di password: sapere che usi 3 nomi propri concatenati è una info che mi può tornare utile per configurare un attacco a dizionario mirato).

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 © 2024 vBulletin Solutions, Inc. All rights reserved.