Un framework di autenticazione per prototipi - Yauth

Ciao a Tutti,

Ho appena pubblicato una piccola gemma per realizzare un sistema di
autenticazione super-easy basato su http based authentication:
Yauthhttps://github.com/mcollina/yauth
.
L’idea che ne sta alla base che spesso non sia necessario mettere in
piedi
un sistema di gestione utenti come lo prevede Devise (o altre
soluzioni), e
basta quindi una sicurezza “minima”, ma molto veloce da implementare.

Per integrare Yauth si utilizzano 5 righe di codice, e gli utenti si
gestiscono via shell - sono memorizzati in un file yaml, ed sicuro
perch
le password vengono memorizzate sotto forma di hash.

Fatemi sapere cosa ne pensate! :slight_smile:

Matteo

2011/3/1 Matteo C. [email protected]:

Ciao a Tutti,

Ho appena pubblicato una piccola gemma per realizzare un sistema di
autenticazione super-easy basato su http based authentication:
Yauthhttps://github.com/mcollina/yauth

.
L’idea che ne sta alla base che spesso non sia necessario mettere in piedi
un sistema di gestione utenti come lo prevede Devise (o altre soluzioni), e
basta quindi una sicurezza “minima”, ma molto veloce da implementare.

premesso che un progetto carino e mi complimento, ho capito male il
codice o usa http basic auth?
Penso che senza complicare l’uso, tu possa passare a http digest ed
evitare di passare le password in chiaro.

Per integrare Yauth si utilizzano 5 righe di codice, e gli utenti si
gestiscono via shell - sono memorizzati in un file yaml, ed sicuro perch
le password vengono memorizzate sotto forma di hash.

no, un hash liscio (sha1, md5) non un modo sicuro per memorizzare una password, per il semplice motivo che questi hash sono _veloci_ by design. Roba da molti milioni di hash al secondo. Una password di meno di $TANTI caratteri (specie se non c' un salt) viene crackata in pochissimo tempo. Lettura utile: http://codahale.com/how-to-safely-store-a-password/


blog en: http://www.riffraff.info
blog it: http://riffraff.blogsome.com
work: http://cascaad.com

Il giorno 01 marzo 2011 19:09, gabriele renzi [email protected] ha
scritto:

un sistema di gestione utenti come lo prevede Devise (o altre soluzioni),
e
basta quindi una sicurezza “minima”, ma molto veloce da implementare.

premesso che un progetto carino e mi complimento, ho capito male il
codice o usa http basic auth?
Penso che senza complicare l’uso, tu possa passare a http digest ed
evitare di passare le password in chiaro.

Non si pu usare http digest, perch altrimenti dovrei memorizzare le
password in chiaro (cosa che non volevo fare… ma pi gi mi si dice che
non
molto utile… :P), almeno per come supportato da Rack (guarda qui:
http://rack.rubyforge.org/doc/Rack/Auth/Digest/MD5.html).
Se si vuole avere un livello maggiore di sicurezza bisogna
necessariamente
andare su https :(.

Secondo te dovrei memorizzare le pass in chiaro e poi fare http digest?

pochissimo tempo.
Lettura utile: How To Safely Store A Password | codahale.com

Grazie!
Hai assolutamente ragione, diciamo che ho preso il trade-off semplcit
d’uso
/ sicurezza sul lato semplicit d’uso: migro tutto a bcrypt se non
rallenta
le performance. In altre parole se warden abbastanza intelligente da
non
rifare l’autenticazione ad ogni invio anche se uso l’autenticazione
http.

Il progetto vuole fornire una “better-than-nothing security”… di sicuro
non
vuole essere inespugnabile :P.

Matteo

Il giorno 01 marzo 2011 19:52, Matteo C. [email protected]
ha
scritto:

Yauthhttps://github.com/mcollina/yauth
Penso che senza complicare l’uso, tu possa passare a http digest ed
Secondo te dovrei memorizzare le pass in chiaro e poi fare http digest?
design. Roba da molti milioni di hash al secondo. Una password di meno
rallenta le performance. In altre parole se warden abbastanza intelligente
da non rifare l’autenticazione ad ogni invio anche se uso l’autenticazione
http.

Il progetto vuole fornire una “better-than-nothing security”… di sicuro
non vuole essere inespugnabile :P.

Seguendo le segnalazioni di Gabriele, ho rilasciato la versione 0.2.0
che
utilizza BCrypt invece che SHA256. :slight_smile:
Per chi volesse migrare, necessario ricreare il file users.yml
reinserendo
le coppie username/password.
Mi dispiace, ma era l’unico modo per passare in maniera indolore.

Grazie ancora!

Matteo