Preguntas de inicio de sesión de usuario seguro

2

Necesito ayuda para determinar qué tan seguro es el inicio de sesión. En primer lugar, he estado leyendo esto:

La guía definitiva para la autenticación de sitios web basada en formularios

Está realmente bien escrito, la mayor parte de la información era información completamente nueva o más detallada de lo que sabía anteriormente. Sin embargo, en mi situación, no puedo decidir si es útil o no.

El problema es:

  1. Tengo un inicio de sesión que será utilizado por 1 - 3 personas como máximo, con sus contraseñas distribuidas de antemano. El inicio de sesión será en línea, pero funcionará más como un inicio de sesión de red cerrado, no estando disponible para el público global que visita el sitio web con enlaces en los que se puede hacer clic - > (pero con la modificación de la barra de direcciones para agregar / admin para que los administradores puedan acceder a ella.
  2. Con eso hecho, la experiencia del usuario es necesaria incluso para un puñado de personas. Quiero poner un "Recordarme" espantoso para que, aunque solo usen el inicio de sesión para acceder a la página de administración, no tengan que iniciar sesión cada vez.
  3. El problema surge cuando una situación real hoy es cuando alguien se carga accidentalmente a la página de inicio de sesión o de administración. De cualquier manera, ya que él / ella no ha iniciado sesión, la página lo remitirá a la página de inicio de sesión. Para la población global que realmente fue allí por accidente, pondré un enlace de "Regreso al hogar", pero la preocupación es si esa persona intenta atacar de manera brutal o peor.
  4. Pensé en los FILTROS IP, pero no sé qué tan bueno será eso, hoy en día no hay ningún esfuerzo para cambiar una DIRECCIÓN IP. Pensé en el bloqueo de sesión con valores de base de datos en el inicio de sesión, pero eso bloquearía todo el inicio de sesión durante X cantidad de tiempo (y si la fuerza bruta continúa, los administradores nunca podrán iniciar sesión, ya que el bloqueo se volverá a activar después de la X Tiempo con los ataques brutales). Pensé en captcha, pero ¿eso no me recordaría?
  5. No me gusta la falsa esperanza de que nadie intente piratear un sitio web inocente o que haga un spam. Esa es la realidad de hoy. Solo quiero escuchar si tienes una manera mejor de lo que creo. Si es así, por favor, díganlo.
pregunta David Law Drakulovski 03.09.2012 - 10:16
fuente

1 respuesta

3
  1. La seguridad por oscuridad es mala. Mientras lo desarrolla, actúe como si el formulario de inicio de sesión se mostrara a todos los usuarios de su sitio web.

  2. Recuerda crear la función "Recordarme" de una manera que no se almacene, por ejemplo. La contraseña en una cookie. Una opción sería tener un hash de inicio de sesión aleatorio y único para el usuario. A continuación, guarde el ID de usuario y este hash en una cookie. Esto evita que la contraseña se guarde en una cookie y puede proporcionar un botón de estilo de "cierre de sesión en todas partes" que simplemente cambia el hash en la base de datos y, por lo tanto, invalida todas las cookies "recordarme".

  3. Si bien también es algo de seguridad por oscuridad, en este caso, simplemente podría devolver un error 404. No es necesario que las personas sepan que algo existe aunque no tengan acceso a él.

  4. Los botnets pueden llevar a cabo ataques de fuerza bruta, por lo que un filtro de IP por sí solo no es de mucha ayuda. Por lo tanto, restringir el número de intentos de inicio de sesión por cuenta es la única opción válida. Sin embargo, puede hacer esto de una manera muy fácil para el usuario permitiendo 1-3 intentos sin ningún tipo de captcha, etc. y luego requiere un captcha en cada intento adicional. Por supuesto, bloquear toda la cuenta por algún tiempo sería incluso mejor, pero la gente podría hacer a sus usuarios legítimos. Ese captcha no interferirá con "recordarme"; las restricciones solo se aplicarían al inicio de sesión del nombre de usuario y contraseña, pero no al inicio de sesión de la cookie. Eso no es un problema, ya que simplemente puedes usar más de 40 hashes de caracteres para este propósito y puedes asumir con seguridad que no se romperán con la fuerza bruta.

Como solo tiene unos pocos usuarios, es posible que desee considerar el uso de certificados de cliente SSL para la autenticación en caso de que esos usuarios no puedan iniciar sesión desde máquinas aleatorias. Instalarían el certificado / clave del cliente en su navegador y luego simplemente lo seleccionarían al iniciar sesión, ya no es necesario un nombre de usuario / contraseña. Y SSL es lo suficientemente seguro para que no tenga que preocuparse por los ataques de fuerza bruta por ahora. Sin embargo, si sus usuarios son lo suficientemente estúpidos, pueden exportar la clave sin cifrado y almacenar ese archivo sin cifrar en su PC. Pero, de nuevo, este tipo de usuario también tendría un archivo passwords.txt en su escritorio ...

    
respondido por el ThiefMaster 04.09.2012 - 14:48
fuente

Lea otras preguntas en las etiquetas