it-swarm-eu.dev

Reimpostazione della password: quali pratiche dovrebbero seguire i servizi Web?

Molti di voi potrebbero aver visto Come Apple e Amazon Security Flaws hanno portato a My Epic Hacking , dove gli account Amazon, Apple, Gmail e Twitter di un reporter cablato sono stati hackerati con successo L'hacker ha seguito un'elaborata sequenza di passaggi, in ogni fase utilizzando il processo di recupero della password in un servizio Web per ottenere le informazioni necessarie per attaccare l'account del reporter sul servizio Web successivo. L'attaccante è stato in grado di sfruttare con successo la variazione tra i diversi servizi " requisiti per ciò di cui hanno bisogno per eseguire una reimpostazione della password, per incatenare il suo attacco e infine montare con successo un attacco catastrofico sul povero reporter Wired.

Alla luce di ciò, quali pratiche dovrebbero seguire i servizi Web per proteggere la loro funzionalità di reimpostazione della password e prevenire il ripetersi di tale errore? Cosa deve fare l'industria per garantire che ciò non accada di nuovo?

26
D.W.

In realtà ho lavorato su alcune idee in quest'area, quindi ecco una discarica dei miei pensieri finora. Mi scuso in anticipo per la lunghezza ridicola di questa risposta.

I meccanismi di reimpostazione della password devono essere progettati tenendo conto di tre obiettivi principali:

  • Sicurezza
  • Usabilità
  • Affidabilità

Per un buon meccanismo, dobbiamo raggiungere un equilibrio tra i tre.

Alcune affermazioni che vorrei fare prima di iniziare:

Bene, passiamo alla risposta reale!


1. Autenticazione a più fattori

Autenticazione a più fattori (AMF) è uno dei metodi più sicuri per il recupero dell'account e l'autenticazione umana in generale. Per quelli di voi che non hanno familiarità con l'AMF, funziona in base al principio che è necessario disporre di più di una credenziale per autenticare:

  • Qualcosa che conosci (ad es. Password, risposta segreta)
  • Qualcosa che hai (ad es. Chiave, token hardware, ecc.)
  • Qualcosa che sei (ad es. Impronta digitale)

Tieni presente che avere multipli di un tipo, ad es. due password, o una password e un pin, non non contano come MFA. Ti sto guardando, siti di banking online.

1.1. Qualcosa che sai

Quando si reimposta una password, un modo comune per autenticare l'utente è di chiedergli alcune domande . Sfortunatamente, queste domande sono di solito cose come "A che scuola sei stata?" e "Qual è il nome da nubile di tua madre?", che sono incredibilmente facili da scoprire per gli aggressori attraverso i social network. Inoltre, molti utenti non amano rispondere a queste domande al momento dell'iscrizione, quindi premono solo un mucchio di chiavi e invalidano lo scopo della domanda.

Per le webapp di e-commerce e altre webapp che memorizzano informazioni personali private (ad es. Indirizzo/numero di telefono), è possibile richiedere tali informazioni. Tuttavia, tieni presente che anche queste informazioni possono essere trovate online.

Un'alternativa sarebbe quella di porre domande contestuali, in base all'esperienza dell'utente sul sito. Ad esempio, Hotmail richiede un indirizzo e-mail con cui hai comunicato di recente, nonché alcune altre informazioni sull'attività del tuo account. Questo è abbastanza adattabile per la maggior parte dei tipi di webapp, ma non è sempre applicabile.

1.2. Qualcosa che hai

Spesso i siti descrivono l'invio tramite e-mail di un collegamento o di una password singola al tuo indirizzo e-mail come una forma di AMF. Asserisco che si tratta di un falso presupposto. Gli utenti condividono le password tra account. Questo è un fatto assoluto e non puoi impedirlo. Pertanto, devi presumere che un utente malintenzionato abbia già accesso all'indirizzo e-mail dell'utente. Tratteremo le implicazioni di ciò in seguito.

La proliferazione dei telefoni cellulari li ha resi un ottimo meccanismo per l'autenticazione a due fattori, come una forma di controllo fuori banda. SMS i token di ripristino sono facili da capire e da usare per l'utente e un utente malintenzionato che ha accesso al telefono è improbabile. Tuttavia, questo metodo non è privo di difetti. Il problema più grande è quando un utente perde il loro telefono o cambia provider. Ciò annulla completamente il telefono come dispositivo di ripristino utilizzabile. Un altro problema è che gli utenti non hanno sempre il telefono con sé.

L'uso di un'app sugli smartphone risolve parzialmente questo problema. Se un utente cambia il proprio provider, l'app rimane al telefono. Consentire i ripristini sia basati su SMS che basati su app consente una ragionevole aspettativa di affidabilità.

In alternativa, consenti all'utente di associare un account del fornitore di accesso (ad esempio OpenID) e utilizzare un accesso valido per tale account come prova "qualcosa che conosci".

Altri potenziali meccanismi:

  • Token fisico (ad es. RSA SecurID , token USB) - non esattamente praticabile per la maggior parte dei luoghi, ma utile per banche, sistemi aziendali interni e altre situazioni ad alta sicurezza.
  • File: file generato casualmente assegnato all'utente al momento dell'iscrizione. Hash archiviato nel database. Al ripristino, l'utente ha chiesto di fornire il file. Non la migliore usabilità o sicurezza, ma potenzialmente utile.

1.3. Qualcosa che sei

Qui è dove le cose si divertono e la fantascienza. Autenticazione biometrica è qualcosa che è diventato più popolare di recente. Parecchi laptop includono scanner di impronte digitali e puoi acquistare quelli USB economici a un costo relativamente basso. Un altro meccanismo biometrico popolare è il riconoscimento facciale, tramite webcam. Entrambi sono eccellenti in termini di sicurezza se fatti bene, ma entrambi hanno alcuni problemi:

  • La maggior parte delle implementazioni sono probabilistiche e quindi insicure. Cosa impedisce a un aggressore di tenere una foto del tuo viso rivolto verso la telecamera?
  • Non puoi fare affidamento su tutti gli utenti che dispongono di uno scanner di impronte digitali e quelli che non sono tutti compatibili tra loro. Inoltre, ti stai interfacciaendo con l'hardware, quindi è necessaria un'app nativa per parlare con la tua webapp.
  • Il campo della biometria è relativamente nuovo, quindi non esistono implementazioni ben studiate e ben studiate con modelli di sicurezza ben compresi.

Tutto sommato, il modello "qualcosa che sei" funziona per l'identificazione di persona, ma non è realmente fattibile per le webapp a meno che tu non stia fornendo ai tuoi clienti scanner di impronte digitali e software appropriato.

1.4. Best practice per gli AMF

L'autenticazione a fattore singolo non è sufficiente. Come abbiamo visto da tuttiirecentiviolazioni è difficile mantenere le password sicure, e anche quando ' rielaborati possono ancora essere rotti. L'AMF è necessario per entrambi login e recupero password. L'autenticazione mobile a scopo di recupero risolve la maggior parte dei problemi, purché il dispositivo mobile sia ancora utilizzabile. Nel caso in cui l'autenticazione mobile non sia possibile, tu devi avere un processo di verifica manuale in atto, dove devono convincere un essere umano che sono il vero affare.


2. Ripristinare i meccanismi

Esistono numerosi metodi di reimpostazione della password, molti dei quali sono molto indietro in termini di sicurezza. Discuterò alcuni che ho visto in natura, spiegherò i loro punti positivi e negativi e proporrò alcuni migliori.

2.1. Email indietro la password

Il meccanismo più semplice è semplicemente inviare loro la password dell'utente. Per favore non farlo mai . È orribile oltre misura . Innanzitutto, è necessario archiviare le password in chiaro, o almeno in un formato reversibile. È necessario correttamente le password hash e seguire best practice per la salatura . In secondo luogo, stai inviando un'e-mail con la password dell'utente in chiaro, tramite un protocollo in chiaro, su Internet. C'è un livello speciale di inferno riservato alle persone che lo fanno.

2.2. Generazione di una nuova password

Alcuni siti generano una nuova password casuale, l'hash, quindi inviarla via email all'utente. Questa non è una buona idea per diversi motivi, sebbene la maggior parte di essi possa essere mitigata in qualche modo. Il problema fondamentale è che stai inviando una password utilizzabile a un utente in chiaro. Altri problemi con questo metodo includono:

  • Molti utenti sono pigri, alcuni si resettano e dicono al browser di ricordare la password casuale.
  • Molti siti non ti obbligano a cambiare la password al primo utilizzo della password.
  • Un utente malintenzionato che ha accesso all'account e-mail ha accesso alla password, indipendentemente dai meccanismi utilizzati per autenticare l'utente.

2.3. Il link di reset

Questo è uno dei meccanismi migliori (e, per fortuna, più popolari). Implica l'autenticazione dell'utente e l'invio tramite e-mail di un collegamento per il ripristino singolo. Una volta utilizzato il collegamento di ripristino, all'utente viene richiesto di impostare una nuova password. Una volta fatto, il collegamento non è valido. È possibile fornire ulteriore sicurezza includendo i tempi di scadenza sui collegamenti e imponendo che il collegamento non sia valido dopo aver impostato la password oppure dopo il timeout della sessione dell'utente.

La caduta di questo metodo è quando ricordiamo la nostra prima ipotesi. L'account e-mail dell'utente non è sicuro. Non conta come "qualcosa che conosci". Sebbene la finestra temporale di un utente malintenzionato sia breve, possono comunque entrare. Naturalmente, tutto ciò viene ulteriormente invalidato se (o, piuttosto, quando) l'utente dimentica la propria password e-mail.

2.4. Non lasciare mai il sito

Questo è il Santo Graal, in realtà, ma può essere usato solo insieme a una forte autenticazione a più fattori. Una volta che l'utente si autentica utilizzando una combinazione di domande di sicurezza, controlli fuori banda (ad es. Cellulare), file chiave, dati biometrici, verifica umana, ecc., Vengono immediatamente reindirizzati a un modulo di modifica della password. Ciò elude del tutto la necessità di utilizzare gli indirizzi e-mail.

Se credi davvero che sia necessario utilizzare un indirizzo e-mail per inviare un link, considera l'opportunità di offrire un'opzione di reimpostazione senza e-mail che aumenta il numero di controlli che devi superare.


3. Conclusione

È difficile bilanciare sicurezza, usabilità e affidabilità nel migliore dei casi, ma questa situazione ha a che fare direttamente con un utente che già si è dimostrato inaffidabile. Non lo dico in alcun modo deprecante, ma piuttosto siamo tutti fallibili.

È importante mantenere un sistema di reimpostazione della password utilizzabile e semplice, senza compromettere la sicurezza. Prima di implementare un massiccio processo di autenticazione a 3 fattori su ogni aspetto della tua webapp, pensa a cosa stai proteggendo. Se sei solo una piccola azienda che vende cose online, probabilmente puoi cavartela con il fattore 2 di base sul recupero. Se sei un importante rivenditore, banca o sito di social network, dovresti utilizzare un forte fattore 2 sul recupero (più tipi di ciascuno) e 2 fattori sugli accessi da fonti non riconosciute.

In una frase: mantienilo semplice, pensa al tuo pubblico.

27
Polynomial

Il problema con l '"hacking epico" era che più account (Twitter, Gmail) erano collegati a un account (icloud) che poi veniva compromesso, consentendo agli hacker di richiedere e intercettare i collegamenti di reimpostazione della password per gli account collegati.

Se vuoi proteggere da uno scenario del genere (in cui un account di posta elettronica utilizzato come riferimento per altri account è compromesso), non c'è altro modo che utilizzare l'autenticazione 2factor, come offerto da Google . Se la password temporanea ottenuta tramite il social engineering fosse stata inviata al telefono cellulare del proprietario dell'account icloud, nulla di tutto ciò sarebbe accaduto.

7
twobeers

A mio avviso, non esiste altro che un servizio Web possa fare per proteggere la funzionalità di reimpostazione della password per un semplice motivo, l'utente.

Consideriamo quella che trovo essere la forma più comune di reimpostazioni di password: la domanda segreta. Ci sono 2 scenari che di solito si svolgono.

1) Rispondi alla domanda in modo veritiero: molti utenti scelgono questo percorso. Sfortunatamente, le risposte alle domande più segrete sono incredibilmente facili da scavare da Internet. Informazioni come la tua prima scuola o il nome da nubile di tua madre non sono certo un segreto. Gli aggressori possono facilmente scavare tali informazioni eseguendo semplici ricerche online. Questo rende la domanda segreta tanto inutile.

2) Rispondi alla domanda con la spazzatura, quindi dimentica la risposta: la maggior parte delle persone che conosco lo fanno, incluso me. Ciò rende inutilmente inutile la domanda segreta in quanto non può essere utilizzata per confermare la legittimità della richiesta di reimpostazione della password.

Il modo migliore per gestire la domanda segreta sarebbe rispondere con immondizia, ma scriverlo da qualche parte in modo da non dimenticare. La maggior parte degli utenti non lo farà tuttavia, principalmente a causa del fatto che non si preoccupano della sicurezza fino a quando non accade qualcosa.

Quali sono altri modi comuni per attivare una reimpostazione della password?

E-mail: molti servizi collegano il tuo account a un'e-mail di "recupero". Tuttavia, cosa succede se si dimentica la password per l'e-mail di recupero? È una catena infinita.

Molti dei metodi più sicuri come l'autenticazione a due fattori sono una seccatura per gli utenti. I servizi Web devono considerare l'usabilità rispetto alla sicurezza. Dopotutto, che senso ha avere un servizio Web non collegabile se nessuno lo utilizza?

Il principale difetto di quell'articolo è che l'autore aveva più account collegati a un'unica e-mail, il che consentiva all'attaccante di compromettere facilmente tutti i suoi account online. Cerca, per quanto possibile, di decentralizzare le tue identità online. Tuttavia, questo diventa responsabilità degli utenti.

Per quanto vorremmo pensare che la sicurezza dovrebbe essere la principale preoccupazione dei servizi web, dobbiamo considerare il punto di vista dell'usabilità. La sicurezza in generale non migliorerà fino a quando gli utenti finali non capiranno quanto sia importante e prendano provvedimenti per proteggersi. Dopotutto, c'è solo così tanto che un fornitore di servizi può fare.

6
user10211

In pratica, hanno usato la sua e-mail per hackerare tutto. Quindi mantenere la tua e-mail sicura, la migliore per conto tuo, con il rilevamento intelligente delle intrusioni e protetto dal recupero della password, in questo caso impedirebbe tale hack.

Lo stesso vale per i tuoi dati nel cloud. La crittografia intelligente e la protezione del sistema, come la gestione delle chiavi, sono importanti per la tua sicurezza, oltre ai backup remoti e alle istantanee, quindi semplicemente non è possibile eseguire il collegamento a catena.

Questi due documenti e comunicazioni chiave devono essere sicuri, quindi non sono adatti per il cloud per un uso professionale, perché qualcuno lo eliminerà e basta. Quindi il migliore è usare un dominio aziendale/personale, che puoi recuperare legalmente.

Avendolo protetto legalmente, fisicamente, con automazione intelligente, puoi usarlo per uso aziendale e, se sei stato violato, dovrebbe sostanzialmente essere a conoscenza del recupero della password via e-mail, fondamentalmente nella tua webmail dovresti filtrare il recupero della password in un'altra casella di posta che è necessario accedere tramite ssh, per essere sicuri.

E la mela? Questo accade quando si utilizza hardware per bambini con Apple di Apple. È una buona soluzione per iPod, ma non funziona nel mondo reale dei PC. Come tutti erano infastiditi quando Microsoft stava raccogliendo dati, ma now Apple ha tutte le applicazioni sotto controllo e va bene in una certa misura, ma principalmente per il divertimento e l'intrattenimento domestico, non un lavoro professionale. Il salto di sicurezza di OSX è enorme e non è affatto sorprendente che l'OSX è stato violato in modo multipiattaforma.

Per un'e-mail sicura, la cosa migliore è anche avere un dominio in un'azienda rispettabile, quindi non può essere hackerato.

2
Andrew Smith