Permetti a un utente di verificare se si trova in un database, ma riduce il rischio di curiosi controlli di terze parti

0

Ho utenti non registrati su un sito, voglio che siano in grado di inserire il loro nome e data di nascita (DoB) e vedere se sono in un database.

L'atto di essere presente nel database è un po 'di informazioni sensibili. Come posso ridurre il rischio che terzi curiosi guardino le informazioni di altre persone?

Stavo pensando che un altro identificatore 2FA come un indirizzo email o un numero di telefono potrebbe essere utilizzato nei seguenti passaggi:

  1. Verifica che l'utente controlli l'email / telefono con un codice di verifica email / SMS
  2. Corrisponde al database su NAME + DOB + EMAIL / PHONE

Sfortunatamente, le informazioni relative a e-mail e telefono sono solo parzialmente popolate nel database, il che significa che la ricerca restituirà molti più falsi negativi che corrispondono solo al nome e al DoB.

C'è una soluzione migliore a questo problema?

    
posta Curious George 23.11.2018 - 07:20
fonte

2 risposte

0

Utilizza la stessa procedura di "password dimenticata".

Se esistono almeno informazioni email parziali, chiedi all'utente:

  • nome
  • Nato
  • e-mail

Se l'e-mail soddisfa la corrispondenza parziale insieme al resto, quindi invia un'email a quell'indirizzo con la conferma che si trova nel database.

Il messaggio che si visualizza sullo schermo è semplicemente: "se si è nel nostro database, verrà inviata un'email all'indirizzo sopra indicato".

Aggiungendo una severa limitazione della velocità, ritardi e CAPTCHA sulle query per impedire la forzatura bruta.

    
risposta data 23.11.2018 - 11:43
fonte
0

Informazioni di contatto presenti

Hai la loro e-mail o il numero di telefono nel tuo database?

In tal caso, invia qualsiasi informazione a tali dati di contatto e visualizza solo un messaggio generico "grazie, se sei registrato con noi riceverai una conferma per i tuoi dati di contatto registrati" sul sito web. Questo messaggio è sempre lo stesso, indipendentemente dal fatto che l'utente si trovi nel DB o meno.

In effetti, per contrastare gli attacchi temporali dovresti visualizzare il messaggio e uscire, e fare la ricerca e l'invio di posta o SMS in un processo batch in background.

La limitazione della velocità, ecc. è già stata citata, sicuramente raccomandata.

Nessuna informazione di contatto

Se ho capito bene, hai anche utenti senza eventuali informazioni di contatto. Questi ragazzi sono difficili. Il problema è che nome e DOB non sono informazioni segrete in alcun modo. Per la maggior parte delle persone, occorrono pochi minuti per trovarli, e qualsiasi hacker esperto può probabilmente trovarli entro un'ora per il 99% delle persone.

Hai bisogno di almeno alcune informazioni aggiuntive che sono più difficili da scoprire e che possono funzionare come un segreto condiviso . Questo è il ragionamento dietro le varie "madri da nubile nome" o "nome del tuo primo animale domestico", le cosiddette domande di sicurezza.

Se non hai altro, non c'è un modo sicuro per controllare. In questo caso devi far sì che quegli utenti si identifichino in un modo fidato, ad es. andando in un luogo fisico e mostrando il passaporto, o mostrando il passaporto su una webcam o un passo simile, a seconda della sensibilità dei dati.

Questo è un problema fondamentale che non puoi risolvere con la tecnologia o la matematica, perché semplicemente non ci sono abbastanza informazioni non pubbliche presenti.

Quindi controlla se uno qualsiasi degli altri campi memorizzati in quel DB può essere usato come informazione identificativa.

    
risposta data 23.11.2018 - 12:34
fonte

Leggi altre domande sui tag