Perché chiediamo la password esistente di un utente quando si cambia la password?

26

In un contesto di applicazioni web, quando un utente vuole cambiare la sua password corrente, generalmente dovrebbe prima inserire la sua password corrente. Tuttavia, a questo punto, l'utente è già stato autenticato utilizzando la password corrente per accedere.

Capisco in qualche modo che la password esistente sia necessaria per impedire agli utenti malintenzionati (che possono accedere alla sessione corrente sul computer dell'utente) di modificare la password. Tuttavia, questo argomento non può essere utilizzato in nessuna situazione? Perché non chiedere la password ogni volta che viene effettuata una richiesta di informazioni sensibili? In che modo l'atto di cambiare una password è diverso?

    
posta Craig Curtis 21.11.2012 - 05:46
fonte

6 risposte

50

Se un utente lascia il computer incustodito per alcuni minuti (durante l'accesso), non vogliamo che qualcun altro sia in grado di camminare e cambiare rapidamente la sua password. Per prima cosa, ciò consentirebbe all'utente malintenzionato di cambiare anche l'indirizzo e-mail associato, e ora il legittimo proprietario non potrà mai riavere il proprio account.

Per un'altra cosa, pensa al potenziale degli scherzi in ufficio!

La modifica della password è un'operazione abbastanza delicata che ha senso richiedere all'utente di eseguire nuovamente l'autenticazione. E poiché la modifica della password è un'operazione relativamente rara, questo non introduce molti inconvenienti per gli utenti: cambia solo l'esperienza dell'utente nei rari casi in cui si modifica la password.

    
risposta data 21.11.2012 - 06:01
fonte
27

A parte la motivazione alla sicurezza espressa da altre risposte (perché la password è molto sensibile e non vogliamo che qualcuno ottenga un accesso transitorio, ad esempio un raid a pranzo, per trasformarlo in accesso permanente), ci possono essere problemi pratici. Ad esempio, nei sistemi in cui sono presenti segreti utente crittografati con password , è necessaria la vecchia password per decodificare tali dati e ricodificarli con la nuova password. Questo è esattamente ciò che accade sui sistemi operativi Windows (è una delle grandi differenze con il modello di sicurezza di Unix) e può essere applicato anche ad alcuni sistemi basati sul Web (a seconda di ciò che fa il sistema basato sul Web).

    
risposta data 21.11.2012 - 13:33
fonte
23

Questo è chiamato il principio TOCTOU (tempo di controllo / tempo di utilizzo), il che significa che l'autenticazione dell'autenticazione dell'identità dell'utente (ovvero l'utente è ancora lo stesso utente che ha autenticato il sistema) è troppo basso per consentirgli di eseguire alcune azioni, come cambiare la password o ridefinire il identità.

Per assicurarti che il livello di sicurezza dell'autenticazione sia il più alto possibile quando vengono eseguite azioni critiche, il "delta TOCTOU", il tempo tra il controllo delle credenziali e l'uso dei loro privilegi, deve essere il più breve possibile per prevenire i problemi affrontati da DW

Per me, questo è un chiaro esempio di compromesso regolabile tra sicurezza e usabilità.

    
risposta data 21.11.2012 - 08:38
fonte
7

Un altro motivo per cui potrebbe essere necessaria la vecchia password è quando le password sono sottoposte a hash, e vuoi controllare che la nuova password non sia troppo simile a quella vecchia, devi chiedere all'utente, dato che non puoi ottenere informazioni altrimenti dalla password con hash.

    
risposta data 21.11.2012 - 22:04
fonte
4

Come hanno suggerito le risposte precedenti, si tratta di limitare i danni.

Un altro esempio potrebbe essere se la funzione di reimpostazione della password fosse implementata come una chiamata al collegamento , quindi Potrei creare un collegamento come questo, nasconderlo come un minuscolo o qualcosa di simile e mandare qualcuno che volesse hackerare un link di questo tipo, e se cliccano su di esso mentre sono loggati li ho bloccati dal loro account e presi da loro.

    
risposta data 21.11.2012 - 11:55
fonte
2

Se l'applicazione non utilizza il token CSRF (cross site request forgery), la password può essere facilmente aggiornata dall'attaccante semplicemente inviando un link. Inoltre, sarà molto utile se un utente accede alla nostra sessione, quindi non sarà in grado di aggiornare la password.

    
risposta data 25.11.2012 - 05:06
fonte