Password diversa per ogni accesso, basata su alcune variabili

1

Questa potrebbe sembrare una domanda stupida, ma pensavo che fosse un'opzione extra (che non è necessaria) principalmente per utenti esperti, che vogliono proteggere ancora di più i loro account. Consente di considerare che esistono altre misure di sicurezza (ad esempio, la protezione contro gli attacchi di forza bruta on-line, che richiedono una password forti al momento della registrazione / aggiornamento della password, che avvisa l'utente di eventuali tentativi di login falliti, che richiede alcune informazioni in più quando logining in da IP sconosciuto o tra due posizioni di distanza entro un breve periodo di tempo, mostrando l'elenco delle sessioni attive (come in gmail), l'autenticazione a 2 fattori ecc.). Quindi, è come provare ad aggiungere ulteriore livello di sicurezza.

Ecco l'idea. Quando l'utente attiva questa opzione di sicurezza, deve scegliere il tipo di variabile che dovrebbe concatenare alla sua password abituale quando prova ad accedere. Per esempio. l'utente può scegliere la corrente (giorno + 7). Quindi, se la mia password è myPassword , e la data odierna è 11, allora devo digitare myPassword18 . Il che significa che se devo effettuare il login in un altro giorno dovrò inserire un'altra password "totale" - basata su quel giorno. Ovviamente la data è un esempio, può essere di tipo diverso, ad es. le prime 3 lettere del mio attuale indirizzo IP (nel caso in cui l'utente acceda spesso da postazioni diverse), forse smth associato a un browser (e / o alla sua versione), quindi l'idea è di avere smth che cambia costantemente, ma il l'utente può facilmente identificare quel cambiamento e fare il giusto input.

Anche se questo creerà problemi con il completamento automatico della password del browser, ma chi non ha bisogno di tale completamento automatico, suppongo che non sarà un problema da quel punto di vista.

Convalida della password dell'utente durante il login: Sto utilizzando l'hashing / convalida della password come descritto qui link

così, la parte di hashing sembra senza problemi, e sto tritando solo la parte myPassword del corso. Durante la convalida quando vado a prendere i dati dell'utente dal database posso controllare e vedere che questa opzione è abilitata, e in base alla scelta dell'utente posso calcolare quello che dovrebbe essere concatenato con la password "principale", in modo che sarà controllato e se valido , verrà tagliato dalla stringa per convalidare la password.

  • Se l'opzione di sicurezza è disabilitata sarà una normale convalida della password
  • Se abilitato, diciamo che l'utente ha scelto l'opzione corrente (giorno + 7), quindi so che la password dovrebbe terminare con 18, in caso contrario - quindi l'accesso non è riuscito. Se è corretto, cancellerò quel 18 dalla password fornita dall'utente e controllerò la validità della stringa rimanente confrontandola con l'hash della password che è stata recuperata dal db.

Ammetto che nel complesso questo rende il processo di login più complesso (che è male), ma d'altra parte credo che potrebbe essere utile se qualcuno ha visto la password (direttamente o forse tramite keylogger, o solo quando si accidentalmente cliccato Salva in un computer non attendibile), perché la prossima volta che la parte variabile (possibilmente) verrà modificata e che l'ultimo numero / stringa sarà già smth, e se l'utente malintenzionato ha tentato l'accesso, il proprietario dell'account verrà avvisato che qualcuno ha provato per effettuare il login da qualsiasi ip / posizione, fornendo una password valida (la prima parte), pur non fornendo il secondo parametro corretto (parte variabile), che potrebbe aiutare l'utente a cambiare la password "principale" e / o la parte variabile della password .

Qualche idea se questo potrebbe aumentare la sicurezza o ci sono alcuni difetti che non ho considerato che avranno l'effetto opposto?

Grazie

    
posta dav 11.03.2015 - 13:08
fonte

2 risposte

1

Anche se questa è un'idea interessante, suggerirei di mantenerla normale così come è, ma offri agli utenti l'opzione per l'autenticazione a 2 fattori nelle impostazioni dell'account.

In questo quando un utente inserisce correttamente le proprie credenziali, verrà inviato via email un link per fare clic / segui. Una volta seguiti, la loro sessione sarebbe iniziata.

Devi supporre che i tuoi clienti siano stupidi, a causa di complicazioni le caratteristiche di accesso con password variabili li confonderanno.

Per quanto riguarda le funzionalità extra per la sicurezza, molti siti Web utilizzano funzionalità come:

  1. dispositivi approvati
  2. Autenticazione a 2 fattori
  3. registrazione avanzata
  4. Limitazioni IP
  5. fail2ban (x quantità di tentativi = blocco)
  6. analisi avanzate che suggeriscono che la persona reale non sta utilizzando l'account (comune con le banche)

Spero che alcune di queste funzionalità ti diano delle buone idee.

ATTENZIONE:

La tua idea potrebbe interferire con la sicurezza della password, l'aggiunta di dati alla fine di una password con hash potrebbe causare numerosi errori, non dovresti mai essere in grado di decifrare le password e fare qualcosa di simile giusto per cambiare gli hash delle password in il database per avere quel numero aggiunto su di esso. Vedo che hai menzionato l'hash e quindi non puoi invertire l'offuscamento. Anche se ancora una volta ti suggerisco di evitare la tua idea come se fosse una caratteristica che tutti conoscono.

comunque, immagino che avresti fatto questa caratteristica numero sarebbe:

  1. Prevedibile e quindi inutile (se fossi un hacker mi aspetterei semplicemente questo)
  2. codifica sporca che impone la funzionalità anziché applicare una sicurezza aggiuntiva
risposta data 11.03.2015 - 13:45
fonte
0

Il problema più grande che vedo è che non aiuta gli attacchi offline o li danneggia.

Faresti meglio a salare e a digitare la password, altrimenti stai indebolendo drasticamente la sicurezza della password. E se lo fai, allora questo deve essere fatto da una chiamata esterna, e tutto ciò che rimane è sicurezza dall'oscurità.

    
risposta data 21.08.2015 - 15:58
fonte