Perché avere username e password? [duplicare]

2

Sembra che la maggior parte dei meccanismi di sicurezza al giorno d'oggi configuri automaticamente una combinazione di nome utente + password per l'autorizzazione. Voglio sapere perché ci sono 2 "chiavi", se vuoi. Non basterebbe una sola credenziale?

Metti diversamente, perché non posso (o non faccio io) eseguire un modulo di login su un sito usando solo un campo, la password segreta?

    
posta Mario Campos 10.04.2013 - 18:04
fonte

5 risposte

15

Lasciare un server che richiede solo una password per aprire una sessione; nessun nome utente. Immaginiamo che l'utente "Alice" sia registrato, con la password "ILoveBillClinton".

Ora, un nuovo utente vuole registrarsi; chiamiamolo Bob. Per fortuna (cattiva), Bob sceglie di usare anche la password 'ILoveBillClinton'. Tali collisioni si verificano nella pratica; infatti, anche se gli utenti scelgono password con 30 bit di entropia (una cifra già ottimistica), è sufficiente che 30.000 utenti abbiano una buona possibilità di attivare una collisione di questo tipo (questo è chiamato Birthday Paradox ).

Il server di registrazione ha quindi tre modi per gestire questa situazione:

  1. Il server avverte Bob della collisione. Bob impara immediatamente che c'è un altro utente con la stessa password, e poiché il server non richiede il nome utente, solo la password, Bob ottiene l'accesso immediato all'account di Alice.

  2. Il server non avvisa Bob della collisione, ma ignora semplicemente la registrazione. Quando Bob si collega effettivamente, ha la sorpresa di essere accolto con uno striscione che recita "Ciao, Alice!". Bob ha ottenuto l'accesso immediato all'account di Alice.

  3. Il server non avvisa Bob della collisione e sostituisce la registrazione di Alice con la registrazione di Bob. Bob ha il suo account, va bene. Ma quando Alice si connette di nuovo, digita la sua password, e viene accolta con "Ciao, Bob!". Alice ha ottenuto l'accesso immediato all'account di Bob.

Nessuno di questi metodi è soddisfacente.

La registrazione del nome utente non sarebbe necessaria se le collisioni con password non avvenissero (o si verificherebbero solo con probabilità trascurabile). Ma fintanto che le password vengono scelte dalle menti umane e archiviate in cervelli umani, le collisioni accadrà e sarà necessario un nome utente (o un ID utente o un valore discriminante simile).

Modifica: come alluso da @mikeazo, se le password non vengono scelte dall'utente , ma generate dal server di registrazione , quindi il server può imporre l'unicità ed evitare questo problema. Tuttavia, in pratica, agli utenti umani non piacciono le password generate a macchina.

Inoltre, la mancanza di nome utente impedisce salting specifico dell'utente, che è un problema per l'archiviazione delle password, purché le password siano di entropia sufficientemente bassa per essere sottoposte a scansioni esaurienti (vedere questa risposta per i dettagli su come la password deve essere sottoposta a hash, inclusa la salatura). Ciò accade anche se le password sono scelte dal server (con unicità forzata). A meno che tu non possa convincere i tuoi utenti a ricordare le password lunghe e casuali che non hanno scelto ...

    
risposta data 10.04.2013 - 19:18
fonte
14

Sembrerebbe che le credenziali di accesso siano efficaci e devono essere uniche e segrete. Pertanto, se si visualizza la tupla (nome utente, password) come credenziale di accesso, il nome utente è la parte univoca e la password è la parte segreta.

Cambiando semplicemente questa (password), si perde l'unicità a meno che non venga applicata durante la registrazione. Se questo è il caso, quando neghi a qualcuno l'ingresso che dice che la loro password non è unica, ora hai detto loro che possono usare quella password per accedere al sistema come qualcun altro.

La probabilità che questo accada dipende da come vengono scelte le password. Se, ad esempio, quando un utente si è registrato, hai generato una password casuale di 80 caratteri per loro, la possibilità di collisione è molto piccola. D'altra parte, se si lascia che scelgano la propria password, la possibilità di collisione è molto alta. Pertanto tendiamo a soddisfare invece il requisito di unicità con alcune informazioni pubbliche (ad es. Nome utente o indirizzo e-mail) e lasciamo che la password sia scelta dall'utente.

    
risposta data 10.04.2013 - 18:46
fonte
2

I nomi utente sono per identità.

Per autenticare un'identità vengono utilizzati una password o un altro tipo di fattore.

Servono a scopi diversi. Potresti voler cambiare una password usata per convalidare la tua identità, ma vorresti anche cambiare il tuo nome utente ogni volta che hai bisogno di cambiare la tua password? Allo stesso tempo, potresti voler cambiare la tua identità ma utilizzare le stesse informazioni per convalidare la tua nuova identità.

In alcuni casi, una lunga stringa criptica può essere sufficiente per identificarti senza preoccuparti dell'autenticazione dell'identità. Se ci sono bassi requisiti di riservatezza o in altri casi speciali come la reimpostazione della password, il rischio che l'identificatore casuale lungo venga indovinato è basso o la probabilità di indovinarlo in un periodo di tempo sufficiente è bassa.

    
risposta data 10.04.2013 - 21:27
fonte
1

Un'altra ragion è che un hacker avrebbe molte probabilità di entrare in un account! Perché con il nome utente e la password l'hacker deve trovare la combinazione corretta [nome utente] + [password], altrimenti se c'è solo la password, l'hacker potrebbe provare a inserire una password casuale nella pagina di accesso senza la restrizione del nome utente.

    
risposta data 10.04.2013 - 19:10
fonte
0

Il tuo nome è la tua identificazione. L'identificazione è generalmente pubblica (o almeno facile da scoprire). Spesso la tua identificazione è il tuo indirizzo email, che è molto facile da scoprire. La tua identificazione è un'affermazione secondo cui il tuo corpo di carne corrisponde a un profilo digitale memorizzato sul sito web.

La tua password è la tua autenticazione. L'autenticazione tramite password si basa su un valore segreto noto solo a te (e vagamente parlando al sito web).

Se il sito utilizzava solo il tuo ID, poi ) QUALCUNO ( che sapeva che il tuo indirizzo email poteva accedere al tuo conto bancario, al tuo account Gmail, al tuo account stackexchange, alla tua dichiarazione dei redditi, ecc.

Se il sito utilizza solo il tuo segreto di autenticazione, sarebbe molto difficile mantenere il segreto. Inoltre, se io e te abbiamo scelto la stessa password, avremmo lo stesso profilo. Quasi tutti gli hacker che eseguono un elenco di termini del dizionario potrebbero quasi entrare in qualche acconto. E il fatto che le persone trovino le password difficili da gestire garantisce quasi che le persone scelgano la stessa password. (le statistiche mostrano che c'è un'alta concentrazione).

Per ulteriori informazioni, consulta NIST's 800-63

    
risposta data 10.04.2013 - 19:35
fonte

Leggi altre domande sui tag