Encriptación de la clave principal de una base de datos cuando se envía al navegador

3

Al tratar con una aplicación basada en oData (Servicios de datos ADO.NET), o algo que publique de otro modo la Clave principal o la Clave extranjera al cliente ...

¿Puede alguien explicarme los beneficios de cifrar la clave de la base de datos cuando llega al navegador?

¿Cómo cifrarías esta clave? ¿Qué metodologías utilizarías para la validación?

Lo ideal sería que esta respuesta se expresara de manera que se venda un PM o ejecutivo sobre los beneficios / inconvenientes de esta práctica.

Más información

Si no está familiarizado con la programación web, a lo que me refiero es a la clave principal, a menudo oculta, que se envía al cliente (navegador web, cliente grande u otro) y se descifra en el extremo remoto del túnel HTTPS. El argumento es que es más seguro cifrar y ofuscar la clave principal (o fk para el caso) cuando se envía al cliente.

Actualizar

Aunque no he encontrado ningún tipo de investigación formal, hice un sitio web de prueba de concepto que se aplica a sitios de varios inquilinos o donde no hay suficiente validación del lado del servidor de la fila objetivo . Estoy seguro de que este es un problema de seguridad, pero puede ser de naturaleza demasiado programática para este foro de seguridad de TI ...

    
pregunta random65537 20.11.2010 - 16:31
fuente

2 respuestas

6

Voy a estar de acuerdo con lo que AviD está diciendo en los comentarios.

A la pregunta original, no creo que haya beneficios en el cifrado de valores clave expuestos por la aplicación. Para mí, suena como una forma extraña (y costosa, desde una perspectiva perfecta) de seguridad por oscuridad.

La lógica de la aplicación sólida debe proporcionar seguridad e integridad de los datos no secretos. I.E., ¿el usuario actual tiene permiso para modificar los datos que están intentando cambiar? O, ¿el usuario actual tiene permiso para agregar un estudiante a esta clase, y la clase aún está abierta para el registro?

Las claves de cifrado no resuelven estos problemas, pero de hecho, pueden causar problemas adicionales, por ejemplo, ¿qué sucede si un enlace con un parámetro cifrado válido se envía por correo electrónico a alguien que no debería tener acceso a él?

Para el otro ejemplo, el restablecimiento de la contraseña enviada por correo electrónico, me cuesta entender por qué la clave cifrada tendría ventajas significativas sobre un GUID que no se compensarán por el impacto en el rendimiento de las operaciones de cifrado y descifrado.

Por supuesto, solo mis dos centavos, pero realmente no veo mucho, si es que hay alguna ventaja de seguridad. Creo que es solo un costo adicional sin beneficios reales porque la mayoría, si no todos los problemas de seguridad subyacentes, se mantendrán y deberán resolverse de otra manera, independientemente.

Espero que esto ayude,

-Xander

    
respondido por el Xander 23.11.2010 - 17:54
fuente
1

Aquí hay un escenario.

Fred quiere piratear la cuenta de MyFaceIt de Barney. Solicita un restablecimiento de contraseña para su propia cuenta y recibe un correo electrónico con un enlace. enlace

A continuación, solicita un restablecimiento de contraseña para la cuenta de Barney. No verá el correo electrónico, pero puede adivinar que el resetid será 1235 o 1236 o por ahí.

En esta situación, puede usar un GUID en lugar de una clave generada secuencialmente para el resetid. Pero hay desventajas para los GUID (tamaño, distribución de índice ...), por lo que puede usar una identificación secuencial regular y hash / cifrar el valor. De esa manera, su enlace se convierte en enlace Incluso puede ser enlace

Eso hace que sea mucho más difícil para Fred adivinar el enlace de restablecimiento de la cuenta de Barney.

    
respondido por el Gary 23.11.2010 - 01:08
fuente

Lea otras preguntas en las etiquetas