risposta-alla-domanda-sullo-sviluppo-web-bd.com

Accesso al computer solo con password, senza nome utente

Ho un'idea per semplificare la schermata di accesso su cose come i computer di casa con un piccolo numero di utenti (diciamo 2-10) con password.

Oggi, la schermata di accesso di un tipico computer domestico prevede tre passaggi:

  1. Seleziona un utente Nel caso utente 2-10, ciò viene spesso eseguito con un set di icone su cui è possibile fare clic.
  2. Digita la password.
  3. Fai clic su OK o premi Invio.

Cosa succede se eliminiamo il primo passaggio? Quindi la finestra di accesso potrebbe iniziare con il cursore nel campo di immissione della password, pronto per qualsiasi utente a digitare la propria password e premere Invio. Una volta fatto, quella password verrebbe verificata rispetto a tutti gli utenti registrati sulla macchina (ricordate, ci sono solo 2-10 da controllare) e, se ci sono corrispondenze, l'accesso ha esito positivo. Se nessuno corrisponde, il processo ricomincia o ritorna a una schermata "vecchio stile" in cui l'utente può fare clic sulla sua icona se ha dimenticato la password (proprio come oggi).

Spero in una risposta in una delle due categorie:

  1. Un esempio sostanziale in cui questo è stato provato (sia che abbia successo o meno).
  2. Una ragione sostanziale per cui questa sarebbe una cattiva idea.

Noterò che la mia proposta fa alcune ipotesi:

  1. 2-10 utenti. Questo è praticamente lo stesso presupposto delle attuali schermate di accesso basate su icone, credo. Questo nuovo modo potrebbe ridimensionarsi un po 'meglio, diciamo fino a 20-30 utenti, mentre molte icone sullo schermo sarebbero confuse.
  2. Password uniche. Questo potrebbe anche essere un vantaggio: il sistema imporrebbe l'unicità della password per far funzionare lo schema, ma se due utenti avevano la stessa password esatta prima, è probabile che non fosse una buona.
  3. Ogni utente ha una password. Altrimenti, forse le icone di vecchio stile potrebbero essere visualizzate con una prominenza ridotta insieme alla richiesta di password: per me andrebbe bene.
51
John Zwinck

Uno dei motivi per cui questa potrebbe non essere una buona idea è che dovresti imporre password uniche. Questo non sembra inizialmente un grosso problema per l'esperienza dell'utente, ma da un punto di vista della sicurezza, questo è fondamentale, ecco perché:

L'applicazione di password univoche significa che quando un utente sceglie una password, è possibile che accidentalmente (o con intenzioni dannose) venga scoperta un'altra password riservata a un altro utente sul sistema. L'utente quindi sa che la password che hanno provato è in uso e cosa c'è di peggio, con questo sistema, c'è non c'è bisogno di sapere quale account sblocca la password. Basta accedere con quella password trovata per aprire un account.

Potresti sostenere che la possibilità è infinitesimale e questo è comunque per una piccola installazione come l'uso domestico, ma il fatto è che con sicurezza un difetto nel sistema è la radice di tutti i mali.

157
kontur

Se si sceglie di accedere solo con una password, si verificheranno molti problemi.

Sicurezza

Se hai solo bisogno di una password, non hai modo di sapere chi è il tuo accesso se non imposti password univoche. In tal caso, se dovessi iscrivermi e provare a utilizzare una password comune (dire "Password") e il tuo sistema mi dicesse che non era consentito, mi hai sostanzialmente dato le informazioni di accesso completo di qualcun altro.

Se si sceglie di assegnare password, questo diventa potenzialmente più difficile da ricordare rispetto a una combinazione nome utente/password scelta. Che è scarsa UX e sicurezza perché quasi sicuramente verrà scritta da qualche parte non sicura.

Usabilità

Questa è un'area in cui potrebbe esserci un argomento debole a favore di una sola password, semplicemente perché è più facile. Tuttavia, si offre scarsa sicurezza e rischi elevati in cambio. Cosa mi impedisce di provare semplicemente a inserire molte password per vedere se funzionano? Potresti seguire esempi di telefoni cellulari e bloccare l'account dopo tre tentativi errati, ma come puoi sbloccarlo senza un nome utente o una password più lunga (come un codice PUK) che è ancora più difficile da ricordare rispetto a un nome utente in primo luogo.

I nomi utente e le password sono una delle caratteristiche più diffuse dell'informatica moderna e le persone (giustamente) si aspettano che entrambi siano lì. Se un sistema ne ha solo uno, è molto probabile che confonda le persone che cercheranno entrambi.

Sommario

L'uso di una sola password per l'accesso offre pochissimi benefici e crea molti problemi. Onestamente non riesco a vedere un caso d'uso singolo in cui questa sia una soluzione accettabile.

Se desideri un'alternativa alle password per l'accesso, dai un'occhiata a Alternative alle password per l'autenticazione . Tuttavia, è ancora necessario sapere chi si sta autenticando, e quindi un nome utente deve essere implicito o fornito.

TL; DR: Non farlo. Mai


Modifica: aggiornamento principale che spiega i punti in modo più dettagliato e include informazioni dai commenti.

41
JohnGB

Un motivo per cui solo fornire password potrebbe essere problematico è nell'amministrazione del sistema. Fornendo solo password, è difficile per l'amministratore ottenere un controllo sull'account. Pertanto, sebbene ogni account possa avere un numero di account, l'amministratore non sarà in grado di collegarlo facilmente a un utente.

per esempio.

  1. Utente: "Ho un problema con il mio account"
  2. Amministratore: "Okay, qual è il tuo account?"

Come risponderebbe l'utente a questo.

Un altro motivo contro di esso sarebbe nel contesto del recupero dell'account. Cosa faresti se la password fosse stata indovinata da un utente malintenzionato e quell'utente maligno avesse cambiato la password. Avresti un problema simile se l'utente dimenticasse la password.

22
user1974300

Idea interessante, analizziamo le sue parti.

[~ # ~] edit [~ # ~]: Dichiarerò chiaramente che non sono proprio un fan dell'idea per i motivi dichiarati da Kontour (l'applicazione di password univoche espone le password esistenti a nuovi iscritti).

autenticazione n-factor

Come altri hanno accennato, la tendenza in termini di sicurezza è stata di aumentare i fattori richiesti per l'autenticazione. Attualmente è di moda richiedere "qualcosa che hai e qualcosa che conosci" (come un nome utente + token tempo, vedi sotto).

Tuttavia, ci sono molti esempi di autenticazione a fattore singolo che sono già in uso oggi :

  1. La chiave di casa mia.
  2. Il codice della porta per il mio ufficio.
  3. Il mio codice di allarme.
  4. Molti meccanismi di autenticazione basati su dati biometrici (come un'impronta digitale dello scanner facciale, che sostituisce - anziché aumentare - la combinazione nome utente + password).
  5. Anche carte di credito (per piccole transazioni). È vero, è un paradigma leggermente diverso: è consentito perché l'impronta del danno potenziale è piuttosto piccola. Tuttavia, vale la pena notare.

La ragione per cui questo lavoro è che la probabilità statistica che qualcun altro abbia lo stesso token (viso, impronta digitale, chiave fisica o numerica, ecc.) Di I = [accettabilmente piccolo.

Si noti che in un ambiente di computer di casa in cui un utente è selezionato da un elenco predefinito di persone, non viene aggiunta alcuna protezione aggiuntiva: l'attaccante ha già un elenco completo di nomi utente. E, davvero, la sicurezza ottenuta attraverso l'oscurità è di solito banale.

Questo è il motivo per cui il comportamento predefinito del meccanismo di autenticazione del lettore di impronte digitali di Windows è semplicemente quello di consentire di scorrere il dito: autenticherà qualsiasi utente a cui è registrata la stampa.

Duplicazione token

I token di autenticazione possono essere duplicati, indipendentemente dal fatto che siano una chiave fisica tagliata in Home Depot o un token di tempo RSA SecurID (rubando il dispositivo/ social -ingegnerizzare qualcuno a leggerlo ).

Per quanto posso ricordare, al momento esiste solo un modo per indurirsi contro quel vettore di attacco: aumentare i fattori di autenticazione.

13
msanford

Questo è stato suggerito nel 2000 da Jef Raskin ed è stato implementato da Amazon per almeno un paio d'anni. È una buona idea e non per questo meno sicura.

Il motivo non è meno sicuro di un nome utente e una password perché il tuo nome utente è probabilmente indovinabile. È il tuo indirizzo e-mail, o il tuo nome, o la tua prima iniziale più il tuo cognome, oppure è lo stesso handle che usi su altri siti. Solo combinazione del tuo nome utente e password è un login valido, il che significa che potresti fare un login che è stato "usernamepassword" come una lunga stringa e sarebbe altrettanto sicuro. Raskin sostenne ciò che sosteneva l'OP, che in quel caso potresti avere solo una password.

La sezione 6.4.3 in The Humane Interface è intitolata "Sign-on semplificati" e tratta questo in modo più dettagliato. (Le persone che rispondono a questo commento dovrebbero rispondere alla descrizione e all'argomentazione di Raskin nel suo insieme, non al mio sommario di esso.)

Amazon lo ha lanciato verso la fine del 2009, all'inizio del 2010, come sistema di pagamento "PayPhrase". Una PayPhrase era una stringa lunga, unica a livello globale, collegata a un metodo di fatturazione e a un indirizzo di spedizione per accelerare i checkout. Richiedeva anche di inserire un PIN (cifre nascoste quando le hai inserite) per confermare l'ordine. PayPhrase, intenzionalmente o meno, era un'implementazione dei "accessi semplificati" di Raskin, con la sicurezza aggiuntiva di un mascherato PIN al fine di prevenire la navigazione a spalla della frase unica di un cliente, che è quella intesa come debolezza delle frasi visibili come unico meccanismo di autenticazione.

PayPhrase è stato eliminato un anno fa, ma la sicurezza non è stata citata come motivo, né mi aspetto che lo sia.

6
Vitorio

È possibile far funzionare un sistema del genere abbastanza bene se una parte (ad esempio il primo o due caratteri) della "password" deve essere unica; preferibilmente, tale porzione dovrebbe essere vincolata in modo univoco per sempre all'account utente in questione. Ad esempio, se non si avranno mai più di 26 account, si potrebbe richiedere che la password per l'utente n. 1 inizi con "a", la password per l'utente n. 2 inizi con "b", ecc. Ciò significherebbe che aspetto una password "magica" di 4 caratteri sarebbe in realtà un ID account di un carattere "m" e una password di quattro caratteri "agica", ma l'utente potrebbe inserire il tutto come un'unica voce di cinque caratteri anziché digitare il due parti in sequenza.

Questo approccio non sarebbe completamente trasparente per gli utenti (poiché gli sarebbe stato detto quale doveva essere il primo carattere del loro ID account) ma consentirebbe comunque loro di digitare una singola "Parola" anziché dover digitare 2, e consentire comunque loro di cambiare il loro passcode (diverso dalla prima lettera) a piacimento. Utilizzando questo approccio, la forza effettiva di ciascun passcode sarebbe ridotta dal numero di caratteri utilizzati come ID account, ma in molti casi ciò non costituirebbe un problema. Inoltre, se la password preferita dell'utente n. 11 fosse "fnord", potrebbe sempre, se così propenso, usare "kfnord" come password su questo particolare sistema, nel qual caso il numero di caratteri che digita per accedere sarebbe uno maggiore del numero di caratteri nella sua "vera" password, ma digitando quel carattere in più gli risparmieresti la necessità di inserire il suo nome utente con altri mezzi.

3
supercat

Il problema chiave è che ciò richiederebbe una memorizzazione della password non sicura e/o un tempo di accesso significativamente più lungo. La memorizzazione della password dovrebbe essere un hash salato di una password. Senza conoscere il nome utente, non è possibile stabilire se una password è valida a meno che non si provi la password con tutti gli utenti. Potrebbe non richiedere molto tempo per provarlo contro tutti loro con un piccolo numero di utenti, ma ciò sta ancora facendo sì che il processo di accesso impieghi più tempo del necessario, in particolare poiché un hash di password ben definito dovrebbe richiedere molto tempo per essere eseguito per assicurarlo non può essere facilmente forzato brutalmente.

Un'alternativa sarebbe trovare un modo per incorporare l'identificatore nella password, come usare i primi caratteri come descritto da un altro utente, ma poi si pone la questione di cosa si sta guadagnando ora che l'utente deve avere una password non possono scegliere completamente (e che probabilmente sarà ovvio per loro che stanno ottenendo un "nome utente" come l'inizio della loro password). A quel punto, probabilmente è meglio semplicemente lasciare che scelgano il loro nome utente e non si guadagna molto facendoli entrare su una riga.

La chiave è che un identificatore e un segreto saranno sempre necessari dal punto di vista della sicurezza poiché i segreti dovrebbero essere resistenti agli attacchi offline e quindi richiedere tempo per essere controllati. Esistono molti modi in cui puoi provare a implicare l'identificatore per renderlo più semplice per l'utente, ma molti di questi hanno anche i loro svantaggi. Tuttavia dipende dal caso d'uso esatto.

3
AJ Henderson

Questo non sarà un grosso problema in termini di username+password combinazione perché nella pagina iniziale, vediamo tutti i nomi degli utenti in Windows che è quasi uguale all'idea proposta.

Ci sono circa 100^5 diversa password possibile con 5 caratteri. Se la password è unica e formata da 5 caratteri, un utente malintenzionato avrebbe 10 out of 100^5 possibilità di essere verificato in ogni prova, mentre nell'idea proposta, in una rete con 10 utenti per ogni utente c'è 1 out of 100^5 probabilità che sono quasi le stesse.

Quindi il problema più grande non è la combinazione nome utente + password, i problemi più grandi sono indicati da Kontur

2
smttsp

Fondamentalmente non c'è nessun difetto nel tuo concetto, tranne per il fatto che le persone userebbero una tastiera per digitare una password. Il problema principale è che un essere umano digiterebbe la password e gli umani tendono a semplificare le cose da soli. Un accesso chiave farebbe il trucco. Le chiavi eliminerebbero il difetto di sicurezza creato dall'accesso con la password della tastiera.

In termini di dover controllare la password di ogni altro utente, non è necessario che si verifichi. Un semplice hash unico può essere creato da una frazione della chiave che sostituisce l'utente. Una tabella di ricerca trova questo hash, quindi usa il resto della chiave per accedere al sistema. In questo modo se un hash è già nella tabella, potrebbe essere vietato senza rinunciare alla chiave di un utente esistente.

1
cxx6xxc

Ecco il mio due centesimi:

Usare le credenziali di accesso in cui accedi solo con una password è (come ha detto qualcun altro qui) come avere un nome utente segreto. Detto questo, se non si desidera utilizzare un nome utente, è possibile utilizzare un accesso solo con password senza compromettere la sicurezza. È possibile utilizzare uno scanner di impronte digitali che autentica l'identità dell'utente prima che immettano la password. Oppure potresti installare il riconoscimento facciale che farà la stessa cosa. Certo, la tecnologia di riconoscimento facciale è ancora agli inizi, ma è un'alternativa a un nome utente.

Dovrei notare che, indipendentemente dal metodo di autenticazione utilizzato, un sistema di accesso senza nome utente può sollevare problemi di amministrazione del sistema se non si ha una piena comprensione delle tecnologie in uso, ma penso che altri che abbiano fornito risposte a questo la domanda è già entrata nei dettagli sulle implicazioni che potresti incontrare.

1
Miss M

L'unico problema con la tua idea (o forse puoi aiutarmi a visualizzare) è

- In che modo l'utente selezionerà se stesso e digiterà la password?

Se vuoi davvero semplificare, puoi farlo

- utilizzare l'autenticazione basata su metriche come il riconoscimento facciale su Lenovo e il riconoscimento dell'impronta digitale su Toshiba

- Matrici 3X3 in cui uniresti i punti in un modo specifico per il login (utilizzato nei dispositivi portatili)

- Combinazioni di tasti uniche (fino a 6 tasti presupponendo che si possano usare entrambe le mani e 3 dita per ogni mano contemporaneamente)

0
ripu1581

Perché su un sistema di qualsiasi dimensione, le possibilità che tu possa indovinare una password che qualcuno che sta usando il sistema sta usando è estremamente alta.

OK "password" può essere vietata come password, ma "pa $$ Word"? O "pa $$ w0rd"? O qualche variante del caso? Quante persone usano le normali parole del dizionario come password (con una singola lettera maiuscola e possibilmente un numero aggiunto per soddisfare i requisiti di "sicurezza della password"). Gli attacchi in cui vi è un tentativo automatico di provare parole del dizionario (con alcuni caratteri maiuscoli e numeri aggiuntivi) come password contro un dato accesso noto sono spesso efficaci. Se puoi essenzialmente provare simultaneamente quelle ipotesi contro TUTTI GLI UTENTI del sistema, le possibilità di successo sono ... beh, praticamente 1!

Ciò significa che le possibilità che un utente malintenzionato sia in grado di accedere come qualcuno al tuo sistema sono praticamente certe. Quindi puoi anche abbandonare del tutto la sicurezza e consentire a chiunque di accedere e modificare le informazioni di chiunque. Il che ridurrebbe quasi sicuramente il tuo numero di utenti.

0
DJClayworth

Alcune persone hanno più account per mantenere i file separati ma usano la stessa password (un punto debole di sicurezza, ma dico che una buona password è migliore di più password deboli). Ciò si guasterebbe in un tale sistema.

La password potrebbe essere estesa con un nome utente pseudo ma ciò sembra vanificare lo scopo.

0
owenfi

Non vedo perché non sia stato possibile farlo per una piccola quantità di utenti per semplificare le cose.

Tuttavia, gli aspetti negativi sono:

  • Gli utenti non possono creare password, il sistema o l'amministratore di sistema deve generare una password unica. Se gli utenti lo fanno, potrebbero scontrarsi. Quindi potrebbe esserci un problema di manutenzione se sei un amministratore di sistema. Esempi se un utente dimentica o vuole cambiare la password, l'amministratore dovrà farlo. Ma, se una piccola quantità di utenti, non dovrebbe essere un grosso problema.

  • L'amministratore di sistema sarà in grado di accedere come chiunque. Per una tipica combinazione nome utente + password, gli amministratori dell'utente conoscono tutti gli utenti del sistema. I nomi utente non sono segreti o sconosciuti. Tutti possono praticamente capire il nome utente di ogni altro. Potresti anche notare il nome utente del tuo vicino quando accedono poiché non è mascherato. Questo NON è il segreto. Tuttavia, la password è. Ognuno ha il suo piccolo segreto, la password. Poiché ognuno ha il proprio segreto (password), gli amministratori non possono accedere come altri utenti. Quindi, semplicemente usando una password, l'amministratore conoscerà tutti i segreti o non ci saranno segreti. Quindi gli amministratori potrebbero impersonare chiunque. Se questo non è un grosso problema (admin essendo dio), potrebbe essere semplificato come suggerisci. Nella maggior parte dei sistemi questo è un grosso problema.

Quindi, in genere per gli accessi al sistema vengono utilizzati nomi utente e password perché vogliamo che ogni utente sia in grado di fornire un'informazione di cui solo loro sono a conoscenza (segreti).

Solo usando la password, posso dare un esempio di un dispositivo con un controllo genitori. Il controllo genitori utilizza solo una password, nessun nome utente coinvolto. Ad esempio, non vogliamo che il piccolo Johnny spenda $ 500 per l'acquisto di carte di credito di mamma e papà nel gioco Swag utilizzando pagamenti con un clic. In tal caso, solo i genitori conoscono la password segreta, quindi digitare un nome utente non è importante e/o ridondante.

0
Jon Raynor

Se il tuo obiettivo è limitare i clic e l'inserimento dei dati a una sola password e pulsante, imposta un tipo di accesso familiare. Un po 'come verificare un account per una password sconosciuta, far loro rispondere a una serie di domande. Le domande vengono presentate casualmente all'utente ad ogni accesso. Tutto quello che devono fare è fornire la loro risposta (male perché devono ricordare diverse password/frasi, ma le buone domande aiuteranno)

Per gestire le risposte duplicate, l'algoritmo di selezione delle domande casuali potrebbe escludere quelle domande in cui i membri della famiglia non riuscivano a fornire la risposta corretta.

Un'altra scelta sarebbe quella di elencare tutti gli utenti con una casella di password accanto a ciascun nome e un pulsante di accesso. Un genitore/amministratore potrebbe configurarlo come un'opzione.

0
JeffO