Permitir que un usuario verifique si está en una base de datos, pero reduce el riesgo de que terceros curiosos realicen la verificación

0

Tengo usuarios no registrados en un sitio, quiero que puedan ingresar su nombre y fecha de nacimiento (DoB) y ver si están en una base de datos.

El hecho de estar presente en la base de datos es información un tanto sensible. ¿Cómo puedo reducir el riesgo de que terceros curiosos busquen la información de otras personas?

Estaba pensando que podría usarse un identificador 2FA adicional como una dirección de correo electrónico o un número de teléfono en los siguientes pasos:

  1. Verifique que el usuario controle el correo electrónico / teléfono con un código de verificación de correo electrónico / SMS
  2. Haga coincidir en la base de datos NAME + DOB + EMAIL / PHONE

Desafortunadamente, la información del correo electrónico y del teléfono solo se completa parcialmente en la base de datos, lo que significa que la búsqueda devolverá muchos más falsos negativos que la coincidencia solo en el nombre y DoB.

¿Hay alguna solución mejor para este problema?

    
pregunta Curious George 23.11.2018 - 07:20
fuente

2 respuestas

0

Use el mismo proceso que "olvidé la contraseña".

Si hay al menos información parcial de correo electrónico, pídale al usuario que:

  • nombre
  • DoB
  • correo electrónico

Si el correo electrónico satisface la coincidencia parcial junto con el resto, envíe un correo electrónico a esa dirección con la confirmación de que están en la base de datos.

El mensaje que se muestra en la pantalla es simplemente: "si se encuentra en nuestra base de datos, se enviará un correo electrónico a la dirección de correo electrónico anterior".

Y agregue una severa limitación de velocidad, retrasos de tiempo y CAPTCHA en las consultas para evitar el forzamiento de la fuerza bruta.

    
respondido por el schroeder 23.11.2018 - 11:43
fuente
0

Información de contacto presente

¿Tiene su correo electrónico o número de teléfono en su base de datos?

Si es así, envíe cualquier información a esa información de contacto y solo muestre un mensaje genérico "gracias, si está registrado con nosotros, recibirá una confirmación de su información de contacto registrada" en el sitio web. Este mensaje es siempre el mismo, no importa si el usuario está en la base de datos o no.

De hecho, para frustrar los ataques de tiempo, debe mostrar el mensaje y salir, y hacer la búsqueda y el envío de correo o SMS en un proceso por lotes en segundo plano.

La limitación de velocidad, etc. ya se mencionó, definitivamente se recomendó.

Sin información de contacto

Si entendí correctamente, también tienes usuarios sin ninguna información de contacto . Estos chicos son difíciles El problema es que el nombre y el DOB no son información secreta de ninguna manera. Para la mayoría de las personas, les lleva unos minutos descubrirlos, y cualquier atacante hábil probablemente pueda encontrarlos en una hora para el 99% de las personas.

Necesita al menos alguna información adicional que sea más difícil de encontrar y que pueda funcionar como secreto compartido . Ese es el razonamiento detrás de los diversos "nombres de soltera de las madres" o "el nombre de su primera mascota", las llamadas preguntas de seguridad.

Si no tiene nada más, no hay una manera segura de verificarlo. En este caso, debe hacer que esos usuarios se identifiquen de alguna manera confiable, por ejemplo. Al ir a una ubicación física y mostrar su pasaporte, o mostrar su pasaporte en una cámara web o en algún paso similar, dependiendo de la sensibilidad de los datos.

Este es un problema fundamental que no se puede resolver con tecnología o matemáticas, porque simplemente no hay suficiente información no pública presente.

Verifique si alguno de los otros campos almacenados en esa base de datos puede usarse como información de identificación.

    
respondido por el Tom 23.11.2018 - 12:34
fuente

Lea otras preguntas en las etiquetas