Cifrado de credenciales de usuario usando AES: cómo ocultar la clave

1

Uno de mi software (un paquete R) tiene que guardar en la información confidencial de los usuarios del disco.

Cifrado dicha información utilizando el cifrado AES utilizando una clave aleatoria que se genera en el momento de la instalación (que se guarda en el mismo directorio donde almaceno el perfil de usuario).

Estoy tratando de encontrar una manera de ofuscar la clave y evitar que otros usuarios en la misma máquina accedan a la clave de otros usuarios (la clave es, por supuesto, tener permisos de lectura solo para los usuarios que la crearon, pero los superusuarios pueden usar la clave y leer otros perfiles).

Me gustaría saber:

  1. ¿Es realmente necesario preocuparse por los superusuarios? Mi instinto me dice que no: en cualquier caso, el método de cifrado de un superusuario puede leer todos los archivos y, en última instancia, cualquier tipo de clave de los usuarios;

  2. ¿Hay otra forma mejor de almacenar un perfil de usuario que no sea cifrarlo utilizando AES o cualquier otro método?

pregunta lucacerone 18.04.2015 - 09:47
fuente

2 respuestas

1
  

¿es realmente necesario preocuparse por los superusuarios? Mi instinto me dice que no: en cualquier caso, el método de cifrado de un superusuario puede leer todos los archivos y, en última instancia, cualquier tipo de clave de los usuarios;

Tipo de. Incluso si el archivo está cifrado y el descifrado solo se realiza dentro del proceso que el superusuario tiene en la mayoría de los sistemas, accede a la memoria del proceso y, por lo tanto, puede extraer los datos descifrados desde allí. Por supuesto, se necesita mucho más conocimiento para hacerlo en lugar de solo leer el archivo sin formato.

  

¿hay una mejor manera de almacenar un perfil de usuario que no sea cifrarlo usando AES o cualquier otro método?

Esa no es una pregunta fácil y depende mucho del entorno en el que trabaje, de cómo confía en sus usuarios, de la seguridad general, de la sensibilidad de los datos y, quizás, de una política corporativa o de restricciones similares. Si no confía en el superusuario o no teme un compromiso del sistema, simplemente no almacene ni maneje ningún dato confidencial en el sistema. Si se puede engañar a los usuarios para que ejecuten el código en el sistema, no servirá de nada si los archivos están cifrados, pero se pueden descifrar sin la interacción del usuario ...

En resumen: no hay una respuesta general. No existe un 100% de seguridad y usted tiene que evaluar los riesgos en su entorno y cuáles son los riesgos aceptables. En función de esto, puede elegir la forma barata de alto riesgo o la forma costosa de bajo riesgo o algo intermedio. En algunos casos, "mejor" significa una facilidad de uso más fácil a costa de un mayor riesgo, en otros casos "mejor" es un riesgo bajo, incluso si causa problemas de uso y otros costos. Tener la clave junto con los datos cifrados es, sin duda, un alto riesgo que puede reducirse, pero no eliminarse por ofuscación de la clave y las características de anti-depuración en el software de descifrado.

    
respondido por el Steffen Ullrich 18.04.2015 - 10:11
fuente
0

No soy un programador, pero creo que si no quiere que las personas tengan acceso a su código, debe hacerlo del lado del servidor, el código ejecutado en el lado del cliente, debe estar disponible sin cifrado en la lado del cliente en algún momento.

Esto es exactamente como DRM: le está dando un bloqueo al usuario, y también la clave, y espera poder decir lo que puede hacer con él.

Es teóricamente imposible: si su computadora puede ejecutar el código, tiene que ser descifrado allí. Y si está descifrado Y disponible para el usuario, entonces realmente no debería dedicar tiempo a intentar desarrollar una forma de impedir que la gente lo lea, lo copie o haga algo ... simplemente observe el éxito de Hollywood y los juegos. Las empresas son, se rompen en días o semanas si vale la pena el tiempo y el esfuerzo, entonces las personas .

Mueva la lógica al lado del servidor; si quiere eso, no dijo exactamente lo que hace su programa, por lo que no puedo darle ideas, pero ¿tal vez nunca almacene el perfil de usuario en el dispositivo sino en su servidor? Es difícil decirlo sin saber qué quieres que haga este perfil de usuario, pero lo tienes.

Además, la seguridad por oscuridad casi nunca funciona, puede ofuscar su código lo más difícil que pueda, pero esto solo detendrá a las personas menos decididas, como dije, si lo quieren lo suficiente, superarán esto.

    
respondido por el Freedo 18.04.2015 - 10:31
fuente

Lea otras preguntas en las etiquetas