¿Es el cifrado del lado del cliente realmente mejor que el del servidor?

17

la aplicación web puede cifrar todos los datos del usuario en el lado del cliente para convencer a los usuarios de que no pueden descifrarlos.

Cuando el usuario ingresa la contraseña, se usa para cifrar los datos en el navegador y luego se envía al servidor en estado cifrado. El servidor no conoce la contraseña, la clave de cifrado y, por lo tanto, no puede descifrarla.

Pero la mayoría de los usuarios no pueden revisar el código utilizado para el cifrado. Todo lo que pueden hacer es confiar en ello. El cifrado del lado del cliente puede dar una sensación de control, pero:

  • El servidor puede enviar un código de encriptación a un usuario y otro a otro
  • La organización gubernamental puede instar a la empresa del lado del servidor para que deshabilite el cifrado para ciertos usuarios

Entonces, ¿hay algún beneficio en el cifrado del lado del cliente desde el punto de vista del usuario?

    
pregunta Andrei Botalov 09.07.2012 - 14:05
fuente

5 respuestas

11

Estás en lo correcto. Dados sus objetivos, el cifrado del lado del cliente probablemente no tenga mucho sentido. No es que no valga la pena, solo que hay algunos escollos importantes y el valor es limitado, por lo que probablemente su tiempo sea mejor empleado en otras medidas. Una referencia técnica clásica sobre este tema es Criptografía de Javascript considerada dañina .

Si está pensando que el uso de la criptografía del lado del cliente podría ayudar a la percepción, incluso si no mejora la seguridad real, tampoco creo que sea un ángulo muy prometedor. El usuario promedio no tendrá idea de lo que significa la frase "criptografía del lado del cliente" y, por lo tanto, no creo que lo asocien con sentimientos cálidos y difusos.

Creo que es mejor que tome medidas estándar para generar confianza con sus usuarios y mejorar la forma en que protege los datos de sus usuarios. ¿Te has mudado a todo el sitio HTTPS? ¿Tiene una política de privacidad fuerte y amigable para el cliente? ¿Está enfocado en servir bien a sus clientes y en hacerlos apasionados por su sitio?

    
respondido por el D.W. 11.07.2012 - 04:55
fuente
3

Como otros usuarios han mencionado mucho de la discusión sobre esto, será más bajo el paraguas de la Seguridad de TI. Sin embargo, creo que hay una perspectiva de UX en esto (o al menos en los comienzos de una discusión), que trataré de detallar a continuación.

Has mencionado la respuesta en la pregunta en sí:

  

El cifrado del lado del cliente puede dar una sensación de control

Como mencionó, ni el cifrado del lado del cliente ni del servidor es infalible en términos de seguridad, por lo que no hay nada para elegir, ¿no?

Bueno, hay - se trata de la percepción. Si sus usuarios perciben que sus datos están siendo tratados de manera segura, es probable que estén más felices independientemente de si este es realmente el caso .

Hay que admitir que es importante no mentir a sus usuarios sobre los riesgos, pero dado que a una pequeña minoría de usuarios en la mayoría de las aplicaciones les puede interesar, puede hablar de los detalles esenciales de su solución de seguridad en algún lugar donde no lo hará estorbar a los usuarios desinteresados.

Teniendo en cuenta esto, la solución que sugeriría sería realizar el cifrado del lado del cliente para dar a los usuarios una sensación de control y luego hacer una revelación progresiva de su mecanismo de seguridad, sus detalles y su nivel de seguridad. Los usuarios que sí se preocupan.

EDITAR: Soy consciente de que esta posición puede tener implicaciones éticas dependiendo de lo que crea que los usuarios necesitan ver. Sin embargo, desde una perspectiva desapasionada, la percepción es el rey.

    
respondido por el dhmholley 09.07.2012 - 14:41
fuente
0

Podría escribir un cliente en modo sin conexión para el navegador, como el cliente sin conexión de Google Mail para Google Chrome (¡es un cliente grueso que se ejecuta dentro de un cliente ligero!).

De esa manera el código JS:

  • se está ejecutando en el navegador, con el sandboxing habitual (no se puede desordenar con los archivos de usuario, etc.)
  • pero solo se descarga una vez y no se puede cambiar por usuario / por conexión

Para asegurarse de que cada usuario reciba el mismo paquete, su huella digital debe publicarse en un repositorio público, preferiblemente replicado en muchos sitios, y verificada automáticamente después de la descarga, antes de la instalación.

Advertencia: esta es simplemente la sugerencia de un indicio de una idea. No he estudiado el modelo de seguridad del "lector offline".

Nota: las extensiones de Firefox tienen acceso completo a todo lo que se encuentra en el navegador (no están en un espacio aislado), por lo que no serían una buena opción aquí, ya que implican una confianza total del usuario que no es un hecho dado (en lugar del "I confío en usted con estas informaciones, confío en que siga su política de privacidad ").

    
respondido por el curiousguy 11.07.2012 - 05:20
fuente
0

Hacer el cifrado en JavaScript en el lado del cliente tiene las ventajas de la seguridad de código abierto: no está ocultando un esquema de "cifrado" ROT-13, por lo que los usuarios confían más en usted. Esto también es válido si alguien ingresa a su servidor y reemplaza dicho código de JavaScript por código infundado.

La mayoría de los usuarios no leerán el JavaScript ni lo compararán con las versiones en caché, y algunos usuarios obtendrán sus secretos robados si hay una violación. Pero es mucho menos probable que seas la compañía que sin saberlo filtró todos los secretos de los usuarios durante los últimos cinco años.

    
respondido por el Fax 01.05.2018 - 22:02
fuente
-4

Todo lo que no está cifrado en el lado del cliente, está básicamente abierto a todos. Si desea tener un mínimo de privacidad, no hay forma de evitar el cifrado del lado del cliente.

    
respondido por el hw75 01.06.2013 - 13:10
fuente

Lea otras preguntas en las etiquetas