La scadenza di 90 giorni per l'URL univoco è troppo lunga?

2

Un'applicazione web che ho sviluppato ha un nuovo caso d'uso che mi ha spinto a cercare qualcosa di più semplice dell'autenticazione tramite nome utente / password.

Gli utenti attuali non si iscrivono al servizio in quanto è un servizio b2b utilizzato dalle loro società, quindi per l'autenticazione standard con nome utente / password inviamo loro il loro nome utente e una password temporanea monouso via e-mail. Sono tenuti a cambiare la loro password e accettare le condizioni d'uso al primo accesso.

Per questo nuovo caso d'uso, alcuni sottoinsiemi di utenti immetteranno dati solo durante un periodo di 90 giorni che si verifica una volta all'anno. Il più delle volte questo significa che lo faranno solo per un giorno, forse due, un anno.

Perché sarà facile per loro dimenticare la password che hanno impostato dopo aver effettuato l'accesso con la password temporanea. Vorrei provare qualcosa come un URL univoco che scade. L'URL deve essere valido per 90 giorni (o almeno fino a quando non hanno terminato di inserire i propri dati se possiamo capire come misurarlo).

Ogni anno ricevono una nuova email con URL univoco per iniziare quel periodo di 90 giorni.

Gli svantaggi di sicurezza qui sono quelli tipici:

  • L'URL univoco si presenta nei segnalibri e nella cronologia del browser
  • L'URL univoco si presenta nei log del server
  • L'utente potrebbe inoltrare l'e-mail a un'altra casella e il messaggio non verrà trasportato in modo sicuro.
  • È necessario proteggersi dall'iniezione SQL nell'URL

Normalmente gli schemi URL unici sono validi per brevi periodi come 24 ore, quindi sono preoccupato che un periodo di 90 giorni sia troppo lungo.

Per quanto riguarda i rischi: se una persona non autorizzata ottiene l'accesso ci sarebbe molto poca perdita di informazioni (e certamente nulla che sia PII) ma ci sono ancora alcune preoccupazioni di "perdita di fiducia".

È abbastanza sicuro? In caso contrario, ci sono altri metodi di autenticazione che potremmo usare qui?

    
posta Van Gale 20.01.2012 - 01:04
fonte

1 risposta

7

Due problemi con questa domanda:

Nessuno può dire con certezza che X giorni sia troppo lungo. Se non c'è nulla in ballo e nessuno di questi ha alcun valore, allora X può essere infinito e a nessuno importa.

Se c'è qualcosa in gioco o qualcosa di valore, tuttavia, dipende, ed è qui che dovresti eseguire una valutazione dei rischi e delle minacce.

Hai un requisito di 90 giorni su cui può verificarsi un'attività; la tua soluzione per consentire a qualcuno di eseguire quell'attività è un URL univoco sconosciuto e nessun'altra protezione.

Un URL unico (ma sconosciuto tranne che per l'utente fidato) è un esempio di sicurezza attraverso l'oscurità.

Più lunga è la durata, maggiore è la possibilità che un utente non autorizzato acceda all'URL. Più alto è il payoff, più breve è il tempo a disposizione e maggiore è la probabilità che un hacker investa tempo, sforzi e denaro per irrompere (o indurre qualcuno a inoltrare tale URL a loro).

I profitti possono includere la vendetta per dipendenti / appaltatori scontenti; solo perché nessun valore in dollari è collegato a qualcosa non rende inutile l'hacking (hai menzionato il danno alla reputazione).

Se l'input di trust è importante, la perdita del segreto (URL) potrebbe portare a informazioni errate, dannose o fuorvianti.

Quindi i miei $ 0.02 - se vale la pena proteggerli, fai un'attenta analisi su quanto attendibile ti aspetti che la tua popolazione di utenti sia, o ti limiti semplicemente ad usare l'autenticazione con username e password; utilizzare un URL univoco per il ripristino della password / l'autenticazione dell'account di posta.

    
risposta data 20.01.2012 - 06:58
fonte

Leggi altre domande sui tag