Il sistema di login ideale

Lunedì 25 Maggio 2009 - 08:17

di Cesare Lamanna

Sicurezza

Non so se usare il termine leggi sia o meno esagerato, ma sono sicuramente buoni consigli quelli presentati da George Reese.

E allora quali sono secondo il nostro i 5 requisiti di base di un sistema di autenticazione davvero efficace e sicuro?

  1. Criptare sempre le password
  2. Non porre limiti massimi sul numero di caratteri che è possibile usare per creare una password
  3. Non limitare il tipo di caratteri che è possibile usare in una password
  4. Non mandare mai all’utente via mail la password in chiaro, ma adottare altri sistemi di recupero
  5. Quando è possibile usare OpenId

Tags:

Categoria: Sicurezza | Permalink

Commenti

1

Aggiungo un punto:

6) non obbligare l’utente ad utilizzare strutture particolari

Per esempio myspace obbliga ad inserire un “.” nella password. Altri servizi non permettono di avere password completamente numeriche

# - postato da Maurizio - 25 Maggio 2009 - 10:40

2

a parer mio il contenuto delle pagine dovrebbe essere sempre uguale indipendentemente dal browser utilizzato. Navigare su siti che dipendono da variabili (quali il browser o la lingua impostata sul browser) è fastidioso. Se voglio l’inglese me lo seleziono io. Così se voglio cercare informazioni su Chrome per linux. Non mi piace essere trattato come un deficiente da accudire ad ogni click.

# - postato da Paolo - 25 Maggio 2009 - 11:06

3

scusate, ho sbagliato articolo… cancellate pure

# - postato da Paolo - 25 Maggio 2009 - 11:07

4

Diciamo che sono sono d’accordo tranne che per gli ultimi 2 punti.

Non mandare mai all’utente via mail la password in chiaro, ma adottare altri sistemi di recupero.

A livello di sicurezza sarei d’accordissimo, ma:

L’utente non memorizzerà la sua password
Molti si scriveranno la password su un foglietto e lo appiccicheranno sotto al monitor, eliminando gran parte della sicurezza
Molti altri non faranno nemmeno questo e useranno il sistema di recupero password in continuazione appesantendoti il server.
Altri ancora non useranno il sistema di recupero e ti scriveranno direttamente chiedendoti la loro password, al che dovrai guidarli alla rigenerazione della password perdendo un sacco di tempo
Altri ancora creeranno un nuovo account ogni volta che si dimenticano la password, falsando le tue statistiche, impegnando inutilmente risorse sul tuo server e rendendo inutili gran parte delle feature che puoi legare ad un sistema di gestione account
Altri ancora faranno un po’ di tentativi e poi abbandoneranno il tuo servizio per sempre

Quando è possibile usare OpenId

Anche questo è piuttosto interessante, ma purtroppo inutile, per lo meno per un sito italiano. Tempo fa ho fatto un indagine tra conoscenti, amici e colleghi, ho trovato solo un collega che sapeva dell’esistenza di openID (senza comunque usarlo), per gli altri era come se avessi parlato arabo.

# - postato da Riot - 25 Maggio 2009 - 11:09

5

Okay, a quanto pare il software del blog mente quando dice di supportare le liste ;)

# - postato da Riot - 25 Maggio 2009 - 11:18

6

Per me purtroppo è ancora Arabo ma mi sto impegnando!

# - postato da Demetrio - 25 Maggio 2009 - 23:38

7

Grazie!

# - postato da Maurizio - 25 Maggio 2009 - 23:39

8

Perfetto.

Criptare sempre le password: è un metodo che andrebbe usato sempre non c’è dubbio
Non porre limiti massimi sul numero di caratteri che è possibile usare per creare una password: ricordandosi però di criptare sempre la password dopo o nel database non saprai mai quanto spazio dare per le password.
Non limitare il tipo di caratteri che è possibile usare in una password: qualche limitazione invece la darei, non vorrei trovarmi pezzi di script tra le password :-D anche se il controllo è serrato qualche cosa può sempre scappare no?
Non mandare mai all’utente via mail la password in chiaro, ma adottare altri sistemi di recupero: direi che è essenziale.
Quando è possibile usare OpenId: chi mi assicura che è sicuro più del mio?

ma in alcuni anni di esperienza ho notato che l’utente non cambia mai la password del proprio account, nemmeno se è semplice, nemmeno dopo anni di uso, per lui vale la regola del “se non è mai successo nulla allora è sicura!” e non “non è ancora successo, meglio correre ai ripari ora!”.
Quindi al punto 3 c’è da dire subito che è inutile se l’utente non cambia mai la propria password. Meglio usare una one time password di qualche giorno per la prima iscrizione, in modo da far sì che l’utente venga invogliato a cambiarla, però, il modo di cambiare la propria password deve essere semplice se no la farà scadere e poi ne chiederà un’altra, diciamo che questa comunque sarà la prassi purtroppo.
L’utente è pigerrimo!
M.

# - postato da Marco Grazia - 26 Maggio 2009 - 11:06

9

Mi permetto di aggiungere che “criptare sempre le password” è una sicurezza doppia!
Mi è capitato di pensare varie volte al sito della mia facoltà, che mi manda la password in chiaro per email. IN CHIARO??? Vuol dire che la salvano in chiaro anche nel db! Ma dico… nel 2009 non usano un sistema di hashing per il salvataggio? Io uso password diverse per ogni sito, ma una persona media, sappiamo bene che usa si e no 3 password diverse per tutto. La compromissione di un database come quello che ho descritto, avrebbe effetti catastrofici sulla maggior parte delle persone. Molti siti usano l’indirizzo email come login…

Secondo me, oltre ad usare un login personalizzabile, sarebbe INDISPENSABILE non dare all’utente la possibilità di usare una sua password personale, ma generarne una casuale e spedirla per email (magari la prima parte visualizzata a schermo durante l’iscrizione, mentre la seconda arriva per email/sms). L’utente è quasi sempre il vero anello debole della catena…

# - postato da Luca Gervasi - 07 Giugno 2009 - 21:54

10

Attualmente il mio sito usa un database criptato con hash, ma mi è capitato di vedere molti siti che mettevano le password in chiaro nel database e pure con versioni preistoriche di mysql!

Il prossimo sito che farò lo faro senza database, ,ma di puro php e metterò una valanga di hash… ad esempio, mi sono studiato un bellissimo metodo… :D

$p = $_POST[”password”];
$pass = md5($p);
$password = md5($pass);

ecco a voi l’hash dell’hash!!

# - postato da edo98 - 14 Agosto 2009 - 14:11

Inserisci il tuo commento:





(puoi usare i seguenti tag HTML per formattare il testo -
a href, b, i, br/, p, strong, em, ul, ol, li, blockquote, pre):

 

Anteprima del commento