La seguridad se trata de equilibrar costos y riesgos, nada es imposible de superar, especialmente las implementaciones típicas de CAPTCHA, pero agregan algo que ningún otro sistema parece ofrecer.
He estado leyendo acerca de estos CAPTCHA por un tiempo y posibles alternativas ... (así que no me remita a otros sitios / respuestas a menos que realmente respondan la siguiente pregunta).
No tengo experiencia alguna, por lo que para mí es difícil estimar los costos y los riesgos asociados con esta decisión: ¿debo emplear CAPTCHAs (estoy pensando en JCaptcha o reCaptcha), o es suficiente una combinación de otras técnicas?
Tengo que completar un formulario de registro, pero no quiero que mi tabla de usuarios se llene de basura. El campo Honeypot es fácil de implementar, pero es muy fácil de evitar, un simple control de seguridad (¿de qué color es el cielo?) Funciona bien contra los ataques automáticos, pero cualquier jugador de 15 años puede crear un ataque específico que destruya mi tabla de usuarios ... javascript para verificar el tiempo que se tarda en llenar el formulario es inseguro y con una simple publicación en mi servidor interrumpida. Básicamente, no he encontrado nada que funcione contra un ataque dirigido ligeramente inteligente, excepto un CAPTCHA típico, por lo que no me arrastran ... Entonces, la verdadera pregunta es, ¿estoy en un riesgo significativo de ser atacado con un ataque dirigido? Prefiero perder el 10% de mis usuarios a estos CAPTCHA o ¿hay alguna alternativa que no le cobre tanto al usuario?
EDITAR: Muchas gracias por sus respuestas, ciertamente me ha ayudado a aclarar ideas, especialmente el enlace a OWASP sobre cómo evitar ataques de fuerza bruta (obtuve mi +1, pero no acepté No me pareció una solución, pero sí ayuda a encontrar una. Si cree que debería aceptarlo porque me parece que es la mejor respuesta hasta el momento, coméntelo, ya que es posible que esté malinterpretando el funcionamiento del sitio. .
Por otro lado, Asirra es bastante fácil y divertido, y mucho mejor que los CAPTCHA tradicionales, sin duda lo recomendaría sobre otros servicios. El rompecabezas es mucho más divertido, e incluso si fallas, solo fallarías una vez ... lástima:
Asirra todavía está en pruebas beta; el servicio y su API pueden ser inestables.
Edición final: En caso de que se encuentre útil, estos son los pasos que he tomado para garantizar que los CAPTCHA no molesten a los usuarios, pero me siento seguro ante los bots.
- campo honeypot (tan fácil de implementar que no me costó nada, aunque no me siento muy seguro con él)
- enlace de verificación de correo electrónico (o acceso OAuth) ya que siempre estaba en mis planes para agregarlo. solo los usuarios validados se migran a mi tabla de usuarios, el resto permanece como registrado.
- control de tiempo: sello de tiempo del servidor con la firma cargada a través de ajax, el usuario debe tomar al menos 5 segundos para completar el formulario antes de enviarlo (la contraseña) o se lo descartará.
- página de confirmación (con el token firmado por el servidor para garantizar que la solicitud haya pasado primero por el servidor) después del registro que advierte al usuario de que se necesita un correo electrónico de confirmación y que tiene un botón para enviar el correo electrónico de confirmación. (En cuyo caso los datos también están registrados en la base de datos)
Esto no detendrá a un atacante muy dedicado, pero espero que no quieran pasar horas y horas sintonizando su ataque para no ganar nada, simplemente molestándome.