# Un framework di autenticazione per prototipi - Yauth

**URL:** <https://www.ruby-forum.com/t/un-framework-di-autenticazione-per-prototipi-yauth/203897>\
**Category:** IT\
**Created:** [March 1, 2011, 2:43pm UTC](https://www.ruby-forum.com/t/un-framework-di-autenticazione-per-prototipi-yauth/203897 "2011-03-01T14:43:44Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [March 1, 2011, 2:43pm UTC](https://www.ruby-forum.com/t/un-framework-di-autenticazione-per-prototipi-yauth/203897/1 "2011-03-01T14:43:44Z")

</div>

Ciao a Tutti,

Ho appena pubblicato una piccola gemma per realizzare un sistema di  
autenticazione super-easy basato su http based authentication:  
Yauth[https://github.com/mcollina/yauth](https://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! 🙂

Matteo

---

<div class="post-metadata">

**Author:** ![matteo\_c](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9fc348/32.png) [@matteo\_c](https://www.ruby-forum.com/u/matteo_c)\
**Post date:** [March 1, 2011, 7:10pm UTC](https://www.ruby-forum.com/t/un-framework-di-autenticazione-per-prototipi-yauth/203897/2 "2011-03-01T19:10:58Z")

</div>

2011/3/1 Matteo C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Ciao a Tutti,
> 
> Ho appena pubblicato una piccola gemma per realizzare un sistema di  
> autenticazione super-easy basato su http based authentication:  
> Yauth[https://github.com/mcollina/yauth](https://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](http://www.riffraff.info)  
blog it: [http://riffraff.blogsome.com](http://riffraff.blogsome.com)  
work: [http://cascaad.com](http://cascaad.com)

---

<div class="post-metadata">

**Author:** ![matteo\_c](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9fc348/32.png) [@matteo\_c](https://www.ruby-forum.com/u/matteo_c)\
**Post date:** [March 1, 2011, 7:53pm UTC](https://www.ruby-forum.com/t/un-framework-di-autenticazione-per-prototipi-yauth/203897/3 "2011-03-01T19:53:00Z")

</div>

Il giorno 01 marzo 2011 19:09, gabriele renzi [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) 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](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: [http://codahale.com/how-to-safely-store-a-password/](http://codahale.com/how-to-safely-store-a-password/)

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

---

<div class="post-metadata">

**Author:** ![matteo\_c](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9fc348/32.png) [@matteo\_c](https://www.ruby-forum.com/u/matteo_c)\
**Post date:** [March 2, 2011, 10:56am UTC](https://www.ruby-forum.com/t/un-framework-di-autenticazione-per-prototipi-yauth/203897/4 "2011-03-02T10:56:00Z")

</div>

Il giorno 01 marzo 2011 19:52, Matteo C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
ha  
scritto:

> > > Yauth[https://github.com/mcollina/yauth](https://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. 🙂  
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
