Pregunta

Algunas aplicaciones web, como Google Docs, almacenan datos generados por los usuarios.Datos que sólo pueden ser leídos por su propietario.¿O tal vez no?

Hasta donde yo sé, estos datos se almacenan tal cual en una base de datos remota.Entonces, si alguien con suficientes privilegios en el sistema remoto (un administrador de sistemas, por ejemplo) puede ocultar mis datos, mi privacidad podría verse comprometida.

¿Cuál podría ser la mejor solución para almacenar estos datos cifrados en una base de datos remota y que solo el propietario de los datos pueda descifrarlos?¿Cómo hacer que este proceso sea transparente para el usuario?(No puede utilizar la contraseña del usuario como clave para cifrar sus datos, porque no debe conocer su contraseña).

¿Fue útil?

Solución

Si el cifrado/descifrado se realiza en el servidor, no hay forma de asegurarse de que el texto sin cifrar no se descargue en algún archivo de registro o similar.

Debe realizar el cifrado/descifrado dentro del navegador usando JavaScript/Java/ActiveX o lo que sea.Como usuario, debe confiar en que el lado del cliente del servicio web no devolverá la información sin cifrar al servidor.

carlos

Otros consejos

Creo que Carl lo dio en el clavo, pero quería decir que con cualquier sitio web, si le proporcionas información confidencial/personal/privilegiada, entonces debes tener un cierto nivel de confianza, y es responsabilidad del proveedor de servicios para establecer esta confianza.Esta es una de esas preguntas que se ha hecho muchas veces en Internet desde sus inicios, y seguirá creciendo hasta que todos tengamos nuestros propios certificados SSL codificados en nuestra huella digital, e incluso entonces tendremos que hacer la pregunta. '¿Cómo sé que el dedo todavía está pegado al usuario?'.

Bueno, consideraría un proceso similar al de Amazons AWS.Te autentificas con una contraseña privada que no se guarda de forma remota.Solo se utiliza un hash para validar al usuario.Luego, genera un certificado con uno de los algoritmos principales y probados durante mucho tiempo y lo proporciona desde una página segura.Luego se puede utilizar un algoritmo de clave pública/privada para cifrar cosas para los usuarios.

Pero el principal problema sigue siendo el mismo:Si alguien con suficientes privilegios puede acceder a los datos (por ejemplo:hackeó su servidor), está perdido.Con suficiente tiempo y poder, todo podría romperse.Es solo cuestión de tiempo.

Pero creo que los algoritmos y aplicaciones como GPG/PGP y similares son muy conocidos y pueden implementarse de manera que protejan las aplicaciones web y mantengan la usabilidad en un puntaje que el usuario promedio pueda manejar.

editar quiero ponerme al día con @Carl y Tecnología desconocida y agregue su declaración:Si no confías en el sitio en sí, no reveles datos privados.Eso es incluso antes de que alguien hackee sus servidores...;-)

Aurón preguntó:¿Cómo se genera una clave para que el cliente cifre/descifre los datos?¿Dónde guardas esta clave?

Bueno, la clave suele derivarse de alguna contraseña que haya elegido el usuario.No lo almacenas, confías en que el usuario lo recordará.Lo que puede almacenar es tal vez algún valor de sal asociado a ese usuario, para aumentar la seguridad contra ataques de tabla arcoíris, por ejemplo.

Es difícil entender bien las criptomonedas ;-) Recomendaría mirar el código fuente para Cripta hacha y para Xecrets'cliente fuera de línea.

carlos

No, no puedes usar contraseñas, pero puedes usar hash de contraseña.Sin embargo, Google Docs se trata de compartir, por lo que dicho método requeriría almacenar una copia del documento para cada usuario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top