Autore Topic: Composizione Password utenti  (Letto 5528 volte)

Offline bigham

  • Global Moderator
  • Instancabile
  • ********
  • Post: 3662
  • Sesso: Maschio
  • Contagiato dalla Joomlaite :)
    • Mostra profilo
Composizione Password utenti
« il: 26 Nov 2010, 13:47:08 »
Ciao a tutti
Spero sia la sezione giusta per postare un piccolo dubbio che mi assale ;D ;D ;D

Sto scrivendo uno script sql per caricare un centinaio di utenti direttamente nella tabella jos_users ricavando i dati da un foglio Ooo calc.
Il dubbio lo incontro nella generazione delle password ed in particolare nella parte che in Joomla viene definita dalla variabile $salt.

Le password per gli utenti Joomla sono formate da due parti, ambedue codificate in md5 e separate dal simbolo ":".

Ho trovato la funzione di Ooo calc che permette di criptare una stringa in md5 e con questa riesco a generare la prima parte della password.

Ad esempio la stringa "admin" viene codificata da Joomla in:
Citazione
af68ca4cc7fdb63463f924fcbc2e1ccb:HQizAYOkOcznVvrlNZeKl2zoOPd3CKaA

Solo che non riesco a capire da seconda parte da cosa viene generata. Mi pare di aver capito, leggendo il codice che genera la seconda parte della password che è un numero casuale del quale vengono presi le prime 8 cifre e generata una codifica in md5. O mi sbaglio?

A prescindere da questo se uso come password per l'utente la sola stringa da me codificata in md5 funziona ugualmente, ossia riesco ad accedere da frontend. Peccato non poter obbligare l'utente a cambiare la password!  ;)

Quindi mi chiedo a cosa serva la seconda parte della password e se, in definitiva sia necessaio generarla?

Ci sono più cose in cielo e in terra, Orazio, di quante ne sogni la tua filosofia.

Offline bigham

  • Global Moderator
  • Instancabile
  • ********
  • Post: 3662
  • Sesso: Maschio
  • Contagiato dalla Joomlaite :)
    • Mostra profilo
Re:Composizione Password utenti
« Risposta #1 il: 26 Nov 2010, 14:09:20 »
La JED è una vera miniera!!
Un plugin per obbligare l'utente a cambiare la password al primo accesso:
Forse Password Change
(ovviamente da verificare)
Ci sono più cose in cielo e in terra, Orazio, di quante ne sogni la tua filosofia.

Offline bigham

  • Global Moderator
  • Instancabile
  • ********
  • Post: 3662
  • Sesso: Maschio
  • Contagiato dalla Joomlaite :)
    • Mostra profilo
Re:[RISOLTO] Composizione Password utenti
« Risposta #2 il: 26 Nov 2010, 16:19:06 »
Ordunque.

Alla domanda sul perchè dell'esistenza della seconda parte della password risponde la rete:
Citazione
To protect against precomputation attacks you should use a random salt
In parole semplici serve per aumentare la sicurezza della password evitando che sia possibile ottenere il recovery della password stessa (dall'hash in md5 al testo in chiaro).

Su come viene generata questa porzione di password ho trovato il codice nel file /libraries/joomla/user/helper.php. Questo codice è usato alla riga 435 del file /libraries/joomla/user/user.php:
Codice: [Seleziona]
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword($array['password'], $salt);
$array['password'] = $crypt.':'.$salt;

La prima istruzione genera in modo random il salt (ovvero la seconda porzione della password) mentre la seconda genera la prima porzione della password, ovvero quella che io scelgo e che viene criptata usando il salt.

Per tornare al discorso originale non ho dovuto fare altro che implementare il componente per la crittografia che ho installato in Ooo aggiungendo una funzione che, con lo stesso criterio usato in Joomla, generasse una password casuale.

Per la cronaca il componente per OpenOffice Calc lo trovate a questo indirizzo.

La funzione che ho aggiunto al componente ha questo codice:
Codice: [Seleziona]
function genRandomPassword( length as integer )
dim salt as string
dim i as integer
dim makepass as string

salt = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
makepass = ""

for i = 0 to length-1
makepass = makepass + Mid(salt, Int((Len(salt) * Rnd) + 1), 1)
next

genRandomPassword = makepass

end function
(assomiglia molto a quella scritta in php per Joomla ;D)

Posso mettere RISOLTO?  ;D ;D ;D ;D
Ci sono più cose in cielo e in terra, Orazio, di quante ne sogni la tua filosofia.

Offline frascan

  • Global Moderator
  • Instancabile
  • ********
  • Post: 4988
  • Sesso: Maschio
    • Mostra profilo
Re:Composizione Password utenti
« Risposta #3 il: 26 Nov 2010, 16:33:55 »
Della serie io me la canto ed io me la suono? :)
Impeccabile come sempre bigham, complimenti.
Per la natura stessa delle cose un esploratore non può mai sapere che cosa stia esplorando finché l’esplorazione non sia stata compiuta.

Offline bigham

  • Global Moderator
  • Instancabile
  • ********
  • Post: 3662
  • Sesso: Maschio
  • Contagiato dalla Joomlaite :)
    • Mostra profilo
Re:Composizione Password utenti
« Risposta #4 il: 26 Nov 2010, 21:52:05 »
 ;D ;D ;D
Meglio soli che male accompagnati.
Chi fa da se fa per tre.
Campa caval, che l'erba cresce
Chi ha il santo, ha anche il miracolo
 ;D ;D ;D

Mi chiedo se esiste una macro simile a quella che ho scovato per Ooo calc anche per Excel. Ma siccome a me la MS sta sulle scatole... mi resterà il dubbio.

Comunque il codice della macro è scritto in VBA e quindi su può anche esportare e con qualche piccolo aggiustiamento inserire come macro di Excel. Chiaramente bisogna conoscere VBA.

Alla fine, impostando il foglio di calcolo e salvandolo in un file csv si possono creare tante query sql quanti sono i record dei nuovi utenti da inserire.
Ci sono più cose in cielo e in terra, Orazio, di quante ne sogni la tua filosofia.

Offline bigham

  • Global Moderator
  • Instancabile
  • ********
  • Post: 3662
  • Sesso: Maschio
  • Contagiato dalla Joomlaite :)
    • Mostra profilo
Re:Composizione Password utenti
« Risposta #5 il: 26 Nov 2010, 22:05:42 »
Come direbbe Murphy:
Quando si cerca la soluzione ad un problema, aiuta sempre sapere la risposta

Ecco la risposta: c'era un componente che risolveva il problema.

Morale:
Impara a cercare nella JED prima di bruciare qualche migliaio di neuroni inutilmente.
 ;D ;D ;D ;D
Ci sono più cose in cielo e in terra, Orazio, di quante ne sogni la tua filosofia.

 

Host

Torna su