Back to top

Autore Topic: Password in chiaro  (Letto 2111 volte)

Offline frimpa

  • Nuovo arrivato
  • *
  • Post: 9
    • Mostra profilo
Password in chiaro
« il: 29 Mar 2017, 12:09:17 »
Ciao,
nel DB di joomla (versione 3.5.6), tabella utenti, vedo il campo password criptato non in chiaro.
- Che tipo di criptaggio utilizza joomla? 
- E' possibile convertire la stringa password di joomla in chiaro?

Grazie a chi mi dara le dritte.  :)

Offline Alex21

  • Appassionato
  • ***
  • Post: 645
    • Mostra profilo
Re:Password in chiaro
« Risposta #1 il: 29 Mar 2017, 12:51:10 »
Ti riferisci alle tabelle pfx_users pfx_users_keys  presumo.
Il criptaggio è del tipo  a  una via, nella forma semplice è md5($str); Joomla adopera un altro sistema in modo da rendere più sicuro il criptaggio della password. Quale sia in dettaglio non lo so e nemmeno mi ha mai interessato appurarlo finora, comunque si trova materiale nella documentazione ufficiale.
Quando l'utente inserisce la password essa viene criptata e confrontata con quella memorizzata per vedere se corrispondono.
La password originale non viene conservata. In caso di smarrimento bisogna impostarne una nuova.
Questo metodo di crittografia a 1 via è universale e si adotta per ragioni di sicurezza verso terzi e anche per preservare i diritti dell' user.
L'amministratore del sito non conosce la password dell'utente e può cancellare l'utente, sicuramente, ma non sostituirvisi.
Che sappia io non è possibile il percorso inverso, cioè riottenere la password originale da quella criptata.
Non dovrebbe essere possibile, quantomeno.
Ciao!

Offline frimpa

  • Nuovo arrivato
  • *
  • Post: 9
    • Mostra profilo
Re:Password in chiaro
« Risposta #2 il: 29 Mar 2017, 12:58:22 »
Sì, sono quelle le tabelle coinvolte.
Utilizza anche il salt.
Quindi MD5 + salt, guarda i file: controller.php / helper.php




Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Password in chiaro
« Risposta #3 il: 29 Mar 2017, 17:15:11 »
Sulla documentazione ufficiale c'è ben poco.
Non puoi riottenere la password originale a causa del criptaggio md5 di password + salt (d'altronde se ci fosse modo di tornare indietro  non avrebbe senso criptarle).
Per verificare una password puoi fare così:
Codice: [Seleziona]
    $pass_array = explode(':',$password_sul_db_joomla);
    $joomla_pass = $pass_array[0];
    $joomla_salt = $pass_array[1];
   
    if ( $joomla_pass == md5( $password_da_verificare . $joomla_salt ) )  {
     // Ce l'hai fatta
    } else {
     // Ritenta, sarai più fortunato
    }


edit: lo split della password archiviata sul db serve perchè c'è scritto il salt che è stato utilizzato quando è stata criptata prima di essere salvata ( le password sul db sono salvate nel formato "md5(password+salt):salt" )
« Ultima modifica: 29 Mar 2017, 17:32:52 da giovi »

Offline frimpa

  • Nuovo arrivato
  • *
  • Post: 9
    • Mostra profilo
Re:Password in chiaro
« Risposta #4 il: 30 Mar 2017, 16:48:48 »
La cosa strana è che vedo dal DB di Joomla (Vers. 3.5.6) tabella "*_users" password di questo tipo:

$8y$50$gWXugIPacX6ROkSY.cq7ruMUMLOHMLu35S2FqxQdQdsb1bIhB6ii.

e non del tipo  "md5(password+salt):salt". Per cui non posso neanche fare
 
 $pass_array = explode(':',$password_sul_db_joomla);

Non so se dipende dal fatto che le registrazioni degli utenti avvengono tramite Virtuemart e quindi hanno un criptaggio diverso.

Riguardo alla password sopra, il salt potrebbe essere: "$8y$50$" ?

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Password in chiaro
« Risposta #5 il: 30 Mar 2017, 17:48:29 »
Forse non ti è chiaro che è un processo irreversibile per cui non potrai mai risalire alla password elaborando il campo nel db. Se qualcuno ci riesxe bisognerà cambiare tipo di criptaggio.

Offline frimpa

  • Nuovo arrivato
  • *
  • Post: 9
    • Mostra profilo
Re:Password in chiaro
« Risposta #6 il: 30 Mar 2017, 18:01:53 »
Infatti.
Cmq, grazie per le dritte.

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Password in chiaro
« Risposta #7 il: 30 Mar 2017, 20:19:23 »
Dalla versione 3.2, Joomla! non usa più l'md5 col salt (mi ha confuso il tuo secondo post, credevo stessi lavorando su versioni vecchie) ma usa la funzione nativa di php password_hash con algoritm bcrypt (per questo è richiesto php 5.3+ per l'installazione).

Per criptare/testare una password c'è un comodissimo set di metodi statici: JUserHelper::hashPassword() e JUserHelper::verifyPassword();

Per comodità, qui trovi i sorgenti:
https://github.com/joomla/joomla-cms/blob/3.4.1/libraries/joomla/user/helper.php#L296-L387

 



Web Design Bolzano Kreatif