¿Es importante la firma de mensajes en una sala de chat cliente-servidor sobre TLS?

4

Si tengo una sala de chat web cliente-servidor, ¿es importante que los mensajes públicos o privados (encriptados del lado del cliente) se firmen en el lado del cliente? ¿Tengo razón al suponer (configurado correctamente) que TLS evitará cualquier riesgo de MITM? Cada usuario tiene su propia clave privada / pública para el cifrado de pm.

Claridad: estoy desarrollando tanto el servidor de chat como el cliente

    
pregunta One Normal Night 02.12.2016 - 20:40
fuente

2 respuestas

3

El uso de TLS no prueba la identidad de usuario .
Cuando utiliza un navegador web para conectarse a una sala de chat, el servidor no autentica su navegador web. Sólo su navegador web autentica su servidor.
Si está utilizando un cliente de chat, PUEDE usar autenticación del lado del cliente. Incluso en ese caso, solo se asegurará de que está utilizando un cliente válido. Los certificados almacenados en los clientes no son los certificados del usuario. Si una sala de chat web creara certificados para cada usuario, entonces se debería educar a un usuario para que instale su servidor en el cliente y también será una molestia para las cuentas múltiples acceder al salón de chat utilizando el mismo cliente (por ejemplo, una cuenta compartida). ordenador en la casa).

Para demostrar que en realidad eres tú quien envía los mensajes, debes usar la firma de mensajes a menos que cada cliente de chat tenga una clave única y tengas una asignación entre el cliente de chat y el usuario.

    
respondido por el Limit 02.12.2016 - 21:03
fuente
2

La firma de mensajes y TLS proporcionan diferentes garantías superpuestas.

TLS garantiza que los datos intercambiados entre su navegador y el servidor son genuinos, y la comunicación entre el navegador del otro usuario y el servidor son genuinos. No protege contra un servidor con errores, secuestrado o subvertido. En este escenario, el servidor es un hombre en el medio integrado en el protocolo; tener firmas integrales protege contra situaciones en las que no se puede confiar en el servidor.

Las firmas del lado del cliente también pueden ser subvertidas, si el cliente es subvertido, o si las credenciales del cliente han sido comprometidas. TLS para la comunicación no protege contra eso.

Sin embargo, TLS ofrece algunas otras protecciones. Proporciona confidencialidad y autenticidad (el cifrado de extremo a extremo también podría proporcionar eso). También proporciona protección contra la reproducción y la reordenación: un mensaje firmado antiguo aún sería válido, pero el servidor puede rechazar mensajes fuera de orden.

    
respondido por el Gilles 02.12.2016 - 21:12
fuente

Lea otras preguntas en las etiquetas