Gestione della violazione della privacy degli utenti registrati durante l'autenticazione fallita

4

Siamo avanti e indietro discutendo su come gestire i problemi di privacy durante l'autenticazione fallita, la reimpostazione della password e la creazione dell'account su un'applicazione web.

Diciamo che sono in procinto di creare un account su un'applicazione e sto usando un'email già in uso. Se l'invio di feedback degli utenti direttamente all'utente finale che dice "questa e-mail è già stata registrata", l'applicazione potrebbe esporre le informazioni riservate relative all'account utilizzando quella particolare e-mail. Potrei ad esempio verificare se una determinata persona ha un account sull'applicazione semplicemente usando il suo indirizzo e-mail durante questo processo.

Questo è sicuramente un problema quando si tratta di applicazioni che si occupano di contenuti sensibili (come ad esempio siti web simili a second love o tinder).

Problemi simili si verificano quando si ripristinano le password o si tenta di accedere con la password errata. Un utile feedback degli utenti sembra un dovere, ma potrebbe essere utilizzato da altri per violare la privacy degli utenti già registrati.

Per la registrazione di un account il problema potrebbe essere facilmente risolto inviando un feedback nella riga "ulteriori istruzioni vengono inviate alla tua email". Questo non significa necessariamente che l'account esista già. Nell'email potrebbe quindi essere scritto che "l'e-mail è già stata collegata a un altro account" incluse le istruzioni su come procedere o quando l'e-mail non è ancora in uso semplicemente inviamo un link per attivare il nuovo account che consente all'utente di finalizzare processo di registrazione dell'account.

Simile potrebbe essere fatto per reimpostare la password: "ulteriori istruzioni sono inviate all'indirizzo email". Questo non espone nulla.

Ma per i tentativi di accesso falliti tale soluzione non è particolarmente user friendly: "questa combinazione di password email non è riconosciuta".

L'utente potrebbe chiedersi, ho usato l'indirizzo email sbagliato o la password sbagliata!?

I siti web di Lot inviano semplicemente un feedback nella riga di: "non siamo in grado di trovare un account con quell'indirizzo email" o "password errata fornita".

Con le regole / le leggi sulla privacy che diventano più rigide ogni giorno dopo molti scandali mi chiedo se la risposta di cui sopra sia accettabile per qualsiasi applicazione web, ma sembra che anche i più grandi (Google, Amazon, Facebook, ecc.) non sembrano mente e mostra semplicemente che l'email utilizzata è riconosciuta.

Sto esagerando la cura per la privacy degli utenti registrati delle applicazioni? C'è qualche buona pratica o una lettura utile su questo particolare argomento?

Modifica Le domande più vecchie sullo stack-exchange e altri post del blog riguardano principalmente l'argomento di esposizione delle informazioni degli utenti da un punto di vista della sicurezza. Ma il regolamento generale sulla protezione dei dati (GDPR) sta per iniziare e sono particolarmente interessato al problema della privacy relativo alla rivelazione di informazioni specifiche sull'account.

    
posta Wilt 16.05.2018 - 10:53
fonte

2 risposte

4

Mi piace come il GDPR afferma : "attuare misure tecniche e organizzative adeguate". Ora dovresti adottare un approccio basato sul rischio per definire appropriato. In casi sensibili come second love questo sarebbe totalmente diverso per un servizio più generico come i social media. Quindi no non sei persa esagerato, ma dipende dal contesto di rischio, e o se i dati sono già disponibili pubblicamente. Ad esempio il mio account github mostra la mia email nei commit.

Il principio Privacy by Design Funzionalità completa - Somma positiva, non Somma zero afferma:

Privacy is often positioned in a zero-sum manner as having to compete with other legitimate interests, design objectives, and technical capabilities, in a given domain. Privacy by Design rejects taking such an approach – it embraces legitimate non-privacy objectives and accommodates them, in an innovative positive-sum manner.

Quindi, mi piace come stai cercando di trovare un modo per essere sia user-friendly, sicuro, ma anche rispettare la privacy. Sembra che tu possa trovare un nuovo modo innovativo, assicurati di condividere le tue scoperte.

Per essere sicuro, puoi sempre inviare la stessa risposta che non espone nulla. Potresti fare test di usabilità per vedere se questo è davvero un problema. Personalmente penso che se non riesco ad accedere e immediatamente viene visualizzato un link per la reimpostazione della password, che è più user-friendly. Dal momento che questo spesso il passo successivo prendo. Se la risposta è stata inviata, il link per la reimpostazione della password è stato inviato, ma se l'account non esiste, si invierà invece un'e-mail di registrazione, che risulterebbe anche user-friendly. Come ora posso semplicemente iscriverti. Senza esporre se ho già un account al pubblico.

Simile puoi sempre gestire il processo di registrazione via e-mail, in questo modo sai che il proprietario è l'unico a sapere che il suo account è già esistito. Un'email come: Ciao, il tuo indirizzo email ha già un account, vuoi reimpostare la tua password?

Ora, se tutto fallisce, potresti chiedere agli utenti esistenti di dare il consenso di esporre che stanno usando il sistema, allo scopo di renderlo più facile da usare. Abbastanza sicuro che non sia una buona idea però ...

    
risposta data 16.05.2018 - 11:21
fonte
4

È una domanda interessante, perché non ho mai pensato a questo problema, ma è davvero un problema di privacy. Il problema è che alcune procedure in realtà perdono informazioni, che possono anche essere informazioni sensibili. Per evitare ciò, la tua applicazione dovrebbe apparire come si comporta nello stesso modo in tutti i casi in cui le informazioni sensibili potrebbero essere trapelate. Ciò significa che se si consente agli utenti di registrarsi liberamente inserendo un messaggio di posta elettronica e una password, ad esempio, il processo di registrazione deve apparire come se si comportasse nello stesso modo, indipendentemente dal fatto che abbia esito positivo o meno. Non puoi avere un comportamento "Grazie per la registrazione" e anche un comportamento "C'era qualche problema". Dovresti considerare che il processo di registrazione abbia sempre successo.

Thanks for registering! An email has been sent to you for activation, etc.

Se l'utente è già registrato, non invierai effettivamente un link di attivazione ma potresti inviare un avviso come "Sei già registrato, hai dimenticato la password? Se non hai provato a registrarti nuovamente sul nostro sito web , quindi qualcun altro potrebbe aver inserito la tua email per errore durante la registrazione e puoi ignorare questa email, ecc. "

Per gli accessi non è davvero un problema finché un login fallito avvisa l'utente che "l'e-mail o la password non sono corretti, assicurati che entrambi siano stati digitati correttamente". Penso che questo approccio sia comunemente usato, l'ho visto in giro e non confonde l'utente.

Reimpostare la password dopo aver fornito un indirizzo email dovrebbe funzionare nello stesso modo: stesso comportamento, quindi rispondi sempre con "È stata inviata un'e-mail con le istruzioni di ripristino", indipendentemente dal fatto che l'e-mail fosse effettivamente registrata o meno.

ATTENZIONE. Poiché questa è una comunità INFOSEC, per completezza devo avvertirvi che "lo stesso comportamento apparente" di solito include anche la prevenzione degli attacchi temporali. Supponiamo che qualcuno tenti di registrarsi utilizzando una nuova e-mail e che la pagina per la registrazione corretta impieghi 3 secondi per essere visualizzata. Supponiamo ora che qualcuno tenti di registrarsi utilizzando un messaggio di posta elettronica già esistente e la pagina per la registrazione corretta (stesso comportamento apparente) impiega solo 1 secondo a comparire, perché internamente l'applicazione ha eseguito diversi compiti (diverse ricerche nel database, diversi tipi di email inviate, eccetera). Questa differenza di tempo può effettivamente essere sfruttata perché trapelano informazioni. Non sempre gli attacchi temporali sono fattibili, perché la differenza di tempo potrebbe essere troppo piccola o richiedere molti tentativi prima che la differenza sia statisticamente significativa e potrebbe non essere facile da mitigare. Tuttavia, penso che valga la pena menzionare in questo caso. Potrei sbagliarmi, ma probabilmente non dovresti preoccuparti degli attacchi temporali nel tuo caso specifico (potrebbe essere eccessivo), a meno che il ritardo non sia facilmente percepibile senza ripetuti tentativi e ti occupi di informazioni molto delicate.

    
risposta data 16.05.2018 - 13:08
fonte