¿Qué tan importante es CAPTCHA en las páginas de registro?

7

Estoy trabajando en un sitio y me gustaría agregar CAPTCHA a la página de registro de usuarios para evitar la enumeración de nombres de usuarios.

Estoy trabajando con un desarrollador de front-end que cree que no debemos agregar CAPTCHA a la página de registro porque es un problema para los usuarios y reduciremos nuestra tasa de conversión.

Sé que a veces existe una relación inversa entre la seguridad de un sitio y la facilidad de uso del sitio y que algunas vulnerabilidades de seguridad son peores que otras.

Si hubiera algo como una vulnerabilidad de Inyección de SQL, insistiría en que lo solucionemos, pero no estoy seguro de que la vulnerabilidad de enumeración de un usuario sea lo suficientemente grave como para justificar la lucha por esta solución en particular.

¿Qué tan importante es tener CAPTCHA en una página de registro y qué tan seriamente deben tomarse los ataques de enumeración de usuarios?

    
pregunta Abe Miessler 12.09.2013 - 17:53
fuente

3 respuestas

6

Mi experiencia personal con ReCAPTCHA (considerada como una de las mejores) es que transcurrió aproximadamente una semana después de que la agregáramos antes de que los spammers que intentábamos evitar descubrieran cómo resolverlos.

No resuelven el 100% de las imágenes presentadas correctamente, pero no tienen que hacerlo. Incluso obtener uno de cada diez correctos estaría bien para ellos y lo están haciendo mejor que eso. Probablemente lo estén haciendo mejor que nuestros clientes.

Hay algunos estilos alternativos de CAPTCHA que involucran jugar juegos o seleccionar la imagen de un gatito entre varias imágenes. Estos tipos de CAPTCHA aún no han recibido una atención seria por parte de los spammers dedicados.

La enumeración de usuarios puede no ser un problema solucionable, dependiendo del diseño de su sitio. En el caso de un foro, un atacante simplemente necesita visitar el foro y anotar los nombres de usuario que ve adjuntos a cada publicación.

Si alguien puede registrarse en el sitio, el proceso de registro deberá notificar al usuario potencial que el nombre que eligieron ya está en uso. Un CAPTCHA probablemente cambiará la ecuación para un atacante aquí porque el costo de resolverlo y la tasa de falla en comparación con el valor potencial de la credencial enumerada probablemente significan que no vale la pena el esfuerzo.

Dado que los nombres de usuario generalmente son la parte no secreta del par de credenciales, incluso descubrirlos no suele tener mucho valor para un atacante.

    
respondido por el Ladadadada 12.09.2013 - 17:59
fuente
0

Con respecto a enumeración de usuarios , puede mitigar este particular amenaza sin verificación humana por:

  1. Desconecte el nombre de usuario de inicio de sesión de cualquier otro detalle del usuario (dirección de correo electrónico, identificador seudónimo, cualquier atributo público "sobre mí"). Los bancos hacen esto dando al cliente un número de inicio de sesión completamente separado de cualquier otro número o detalle de su cuenta. Por ejemplo:

    • Proporcione nombres de usuario de inicio de sesión aleatorios que el usuario no pueda cambiar. El punto clave es que el sistema proporciona el nombre de usuario o el usuario solo puede elegir nombres de usuario aleatorios largos; de lo contrario, la creación de cuentas es una oportunidad para adivinar nombres existentes.
    • Advierta a los usuarios cuando incluyan su nombre de usuario de inicio de sesión en las publicaciones (asumiendo que los nombres de usuario no fueron escritos y rellenados).
  2. Miente en cualquier consulta pública o formulario que pueda inferir información sobre los usuarios en el sistema:

    • Siempre di acceso denegado. Nunca digas por qué.
    • Siempre diga "restablecimiento de contraseña enviado a la dirección designada". Nunca digas que esto es imposible porque el usuario no existe.
    • Nunca tenga una función de Ver perfil de usuario que use su nombre de inicio de sesión como ID de consulta. Use una clave sustituta, como su manejador de foro pseudónimo supuestamente único.

Todos los campos utilizados en la autenticación tienen las mismas limitaciones que la propia contraseña.

Un enfoque heterodoxo alternativo sería no tener nombres de usuario de inicio de sesión .

Las cuentas se crean y se accede utilizando solo una contraseña. Por lo tanto, se alienta a las personas a tener una contraseña tan larga y aleatoria como sea posible si no quieren que otra persona inicie sesión en su cuenta. El nombre de un usuario en el sistema se usa para la interacción de los miembros, no para la autenticación.

No es menos seguro que alguien que impone un nombre de usuario y una contraseña, ya que la mayoría de los usuarios solo agregan algunos bits adicionales de entropía; que los miembros reconocerían de manera más intuitiva si solo tuvieran una contraseña. Las personas que registran un par de nombre de usuario / contraseña en una nota adhesiva del monitor están revelando la verdad esencial de que estos pares de atributos de datos son simplemente una unidad de autenticación atómica dividida arbitrariamente en dos o más partes. Un formulario de inicio de sesión que tenía 5 cuadros de entrada con la etiqueta "Número A; Número B; Número C; Número D; y el Número E" no sería más seguro que 2 cuadros de entrada con la etiqueta "Nombre de usuario; y contraseña ".

Esto también hace que el punto simple de que la recuperación de la contraseña en esta época pueda y deba ser responsabilidad del usuario, no del sitio web. El uso de una dirección de correo electrónico como un administrador de contraseñas post-hoc de facto colapsa toda la seguridad del sitio a cualquier entropía que se encuentre en la "respuesta secreta de pregunta / respuesta" para recuperar o restablecer la contraseña de esa cuenta de correo electrónico. También hace que las cuentas de correo electrónico sean un objetivo mucho más tentador para los piratas informáticos de lo que serían de otra manera: las direcciones de correo electrónico nunca fueron diseñadas para ser secretas, especialmente a través del cable.

    
respondido por el LateralFractal 13.09.2013 - 00:25
fuente
-2

Captcha se usa para evitar que cualquier script o bots solicite su servidor. Se aseguran de que la solicitud sea solo humana.

Si no desea el captcha en sus formularios, puede usar el mecanismo de token y proporcionar token en carga de formulario en feilds ocultas cuyo valor se envía junto con los datos del formulario y puede procesar la token para autenticidad antes de procesar los datos del formulario.

    
respondido por el Vishal Chawla 13.09.2013 - 00:30
fuente

Lea otras preguntas en las etiquetas