Cómo extraer de forma segura una carpeta zip encriptada a una carpeta aleatoria, cargar todos los archivos extraídos en la memoria y eliminarlos de forma segura.
Tengo un archivo 7z encriptado que contiene algunos archivos de datos binarios.
- Estoy en la plataforma de Windows (Windows 10 – Los clientes también están en la misma plataforma).
- Estoy utilizando C++ 17.
- Estoy utilizando una biblioteca de terceros (estándar C) que puede cargar estos archivos binarios sólo desde el disco (no desde transmisiones de memoria) en la memoria.
- Cargar los archivos binarios desde el disco a la memoria lleva unos pocos milisegundos.
- No quiero permitir a los usuarios de mi software leer el contenido de los archivos binarios.
- No puedo utilizar un servicio en línea para alojar estos archivos binarios porque los clientes deberían ser capaces de utilizar el software en un ordenador independiente sin ninguna conectividad de red.
La forma en que estoy planeándolo ahora es la siguiente:
- Elegir una ruta de carpeta aleatoria en tiempo de ejecución (en la carpeta temporal de Windows).
- Extraer el archivo 7z encriptado en la ruta aleatoria mencionada anteriormente.
- Adquirir inmediatamente un bloqueo exclusivo en los archivos binarios utilizando https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-lockfileex.
- Leer los archivos binarios.
- Después de que la lectura haya terminado, sobrescribir los archivos con ceros.
- Eliminar los archivos extraídos.
Cosas que pueden salir mal en el enfoque anterior:
- Los clientes que tengan privilegios de administrador pueden potencialmente sincronizar perfectamente la carga de archivos binarios en el software y finalizar el proceso antes de que los archivos sean sobrescritos.
- Los clientes pueden potencialmente obtener un volcado de memoria y leer los datos directamente (no estoy seguro de si esto es fácil de hacer).
- Potencialmente más maneras…
¿Existe alguna otra forma mejor de lidiar con la situación? ¿Debería aceptar el riesgo potencial de pérdida de propiedad intelectual?
davy.ai
Como experto en informática especializado en protección de datos, recomendaría los siguientes pasos adicionales para mejorar la seguridad del proceso:
Si bien no existe una solución perfecta que garantice una seguridad del 100%, seguir estos pasos adicionales puede reducir en gran medida el riesgo de pérdida de propiedad intelectual. Es importante recordar que la seguridad es un proceso, no un producto, y requiere monitoreo y mejora continua.