Recomendación para el sistema de identidad

0

Quiero desarrollar un sistema, algo así como un sistema de comentarios para un sitio web, que garantice saber quién publica los comentarios. El contenido que se intercambia no es valioso y no necesita estar cifrado, solo quiero tener una cierta seguridad de que la persona que publica el comentario es, de hecho, quien dice ser. Si una publicación es spam, por ejemplo, quiero poder responsabilizar a la persona. Al mismo tiempo, necesito que el sistema tenga pocos gastos para los usuarios. Por ejemplo, sería aceptable darles una lista de 100 frases de una sola vez que deberían pegarse en un correo electrónico o en un sitio web.

Estoy usando node.js y estaba considerando usar un intercambio de claves diffie-hellman.

Sé que esto es confuso y no estoy buscando respuestas per se, sino más bien una forma de pensar en ello, ¿un ejemplo o punto de partida o ...?

Edita # 1 Gracias por las preguntas y pensamientos inteligentes.

Caso de uso: alguien me viene físicamente y con una memoria USB y les doy un conjunto de cifrados de una sola vez. [206,99087,3, etc]. Y sí, tienen que aceptar darme información y estar físicamente identificados. Cada vez que comentan o publican (y quizás publican por correo electrónico) quiero que me envíen uno de esos cifrados, y no son reutilizables. Cuando mi solicitud recibe un correo electrónico o un comentario publicado, existe un alto grado de certeza sobre la identidad de la persona. Poco está en juego, además de la "reputación", por lo que hay pocos incentivos para entrar en el sistema, pero no debería ser trivial.

Responsabilidad significa que su reputación se resiente o se les prohíbe usar la aplicación. Dado que esto se basa en su persona física y no en su correo electrónico desechable, esto es suficiente.

    
pregunta user1562766 11.07.2014 - 18:43
fuente

4 respuestas

1

Captcha es una de las mejores maneras de detener el bot de spam, por lo que los necesitarás en algún lugar, pero son un dolor para el usuario. Por eso me gusta cuando puedo autenticarme de alguna manera en un sistema, lo que significa que no tengo que responder un captcha cada vez.

La cookie de sesión es el camino a seguir para identificar a un cliente. Inicia sesión 1 vez (o prueba que no es un bot 1 vez al responder) un captcha y luego le das un ID de sesión dentro de una cookie. En realidad, normalmente hay 2 cookies, una cookie de sesión y una cookie de autenticación. La cookie de sesión se crea tan pronto como el usuario se conecta a su sitio, la autenticación se crea cuando inicia sesión.

Para el usuario bloqueado, puede bloquearlos por dirección IP, nombre de usuario o terminando la sesión (invalidando la cookie de su sesión, por lo que tiene que volver a responder un captcha). Pero si elige hacerlo por nombre de usuario, debe proteger el nombre de usuario con una contraseña o cualquier persona podría hacerse pasar por cualquier nombre de usuario.

Además, si no desea que su cookie de usuario o su información de inicio de sesión sean robadas (por alguien que escuche su tráfico web), deberá cifrar toda la comunicación entre el cliente y el servidor mediante HTTPS. De lo contrario, sus cookies y su información de inicio de sesión no son seguras. Si un atacante obtiene acceso a una cookie, puede suplantar a esa persona.

Veo 2 alternativas

Alternativa 1: nombre de usuario + contraseña

Solicite un nombre de usuario único, una contraseña y una respuesta a un captcha al crear la cuenta. Después de eso, el cliente simplemente puede iniciar sesión con un nombre de usuario + contraseña. Si una cuenta es un bot de spam, puede bloquear el nombre de usuario y / o la dirección IP.

Alternativa 2: solo nombre de usuario

Si no te importa tener un nombre de usuario duplicado, puedes usarlo de esta manera. Simplemente, solicite un nombre de usuario y la respuesta a un captcha luego le da al usuario una cookie de sesión para autenticarlo después. Por supuesto, el bloqueo por nombre de usuario no es útil aquí y en su lugar, debe hacerlo por dirección IP o sesión de terminación.

    
respondido por el Gudradain 11.07.2014 - 20:29
fuente
0

Por lo que puedo decirte, no necesitas nada, excepto la posibilidad de que emita pares de nombre de usuario / contraseña .

Alguien se acerca a usted y le prueba su identidad de cualquier manera (lo mismo que tenía que hacer con la memoria USB) y usted genera y le da un nombre de usuario, una contraseña y una advertencia para que le notifique de inmediato si se los roban.

Twist

Puede hacerlo para que cualquiera pueda elegir un nombre de usuario y una contraseña, y el sistema los muestra como usuarios no verificados . Cuando le demuestran su identidad, luego los marca como usuarios verificados . Menos oneroso para usted, y las personas pueden elegir hasta qué punto confiar en los usuarios no verificados como deseen.

Básicamente, los dos sistemas son perfectamente equivalentes, excepto que en el primer escenario los usuarios no verificados simplemente no pueden publicar comentarios :-)

    
respondido por el LSerni 12.07.2014 - 00:58
fuente
0

Un fuerte mecanismo de autenticación que es fácil para el usuario y proporciona una seguridad razonable sería defender una CA que no sea de confianza para nadie más que su aplicación. Emita a cada usuario un certificado con su UPN como la única entrada en la extensión SAN. Configure su aplicación para autenticar al usuario a través de su certificado e indique a cada usuario que instale el certificado en su almacén de claves con una clave privada inexportable (en Windows CAPI, esta es una casilla de verificación; en JKS, es automática; no está seguro cómo FF o Chrome hacen esto en plataformas que no son Windows).

Dado que solo el titular de la clave privada puede acceder, se ha demostrado que es la persona que está en el registro, o que la persona que está en el registro fue descuidada al proteger su clave privada. La revocación significa que su aplicación puede ver si alguien fue deshabilitado muy fácilmente, solo por solicitud de OCSP. El par de claves RSA es más fuerte que cualquier contraseña, y no tiene que almacenar su clave privada ni ninguna forma o derivación de su contraseña, por lo que atacarle no obtiene un acceso adverso a sus usuarios. Las fechas de caducidad integradas significan que usted tiene un mecanismo de rotación de contraseña forzado efectivo.

Proporcione una forma fácil para que un usuario solicite la revocación y el reemplazo.

    
respondido por el DTK 27.11.2014 - 17:28
fuente
-1

Hay algunas maneras en que podrías identificar quién está comentando. Puede hacer que las personas vinculen cuentas de redes sociales, direcciones de correo electrónico de entrada y mucho más.

    
respondido por el j_thiel 11.07.2014 - 20:41
fuente

Lea otras preguntas en las etiquetas