He estado usando por un tiempo la excelente Defuse PHP Encryption para almacenar cadenas de datos encriptados en una base de datos.
Tengo una extensión de esta necesidad donde ahora tengo archivos que necesitan ser cargados y protegidos en reposo. Estos archivos no suelen ser más grandes que los documentos de 500Kb.
He estado buscando en Defuse / PHP Encryption File
y el sistema parece funcionar perfectamente para guardar archivos recién cargados.
Sin embargo, estoy explorando el mejor método para abrir estos archivos cifrados. La clase Defuse\Crypto\File
obviamente puede descifrar los archivos, pero parece que solo puede descifrarlos a otro, archivo de texto simple .
¿Es posible descifrar el archivo y enviarlo solo a una cadena?
Si, por ejemplo, alguien abre un archivo encriptado, se descifra entonces durante el tiempo que se encuentre en esa página (el contenido del archivo se verá / descargará a través de una página intermedia de PHP, por lo que la ubicación del archivo nunca se presentará al usuario). usuario) el archivo de texto sin formato estaría ubicado en el servidor y potencialmente accesible para cualquiera que pueda acceder a él.
Con esto en mente, tengo algunas consultas:
-
¿Existe alguna posibilidad de que, al utilizar Desactivar el cifrado PHP , un archivo cifrado se pueda descifrar a una secuencia / cadena (PHP), así que evite un archivo de texto simple en el servidor por cualquier cantidad de tiempo?
-
He (solo) considerado un método para guardar un archivo de texto simple en el servidor, luego usar
file_get_contents
y luegounlink
ing el archivo de texto simple. (Este es mi enfoque preferido en este momento, pero solo lo pensé mientras escribía esta pregunta)-
En los servidores Linux, creo que sería preferible sobrescribir los datos archivados, como por ejemplo con
random_bytes
antesunlink
ing del archivo de texto sin formato. ¿Es esto correcto?Mis pensamientos sobre esto provienen de la función de desvinculación, solo elimina el enlace al archivo y, por lo tanto, (potencialmente) el archivo aún puede existir en la práctica (aunque sea más difícil de alcanzar) hasta que el disco local realice su limpieza habitual.
-
-
¿Existe alguna ventaja, como concepto, de cargar los datos del archivo de texto sin formato desde la carga y el cifrado de la cadena de datos con
Defuse\Crypto\Crypto
y luego guardar esteCrypto
de datos cifrados blob en el archivo de almacenamiento?
Enlaces de investigación
He leído github para la biblioteca, y también leí los problemas y los comentarios relacionados con el descifrado de archivos en secuencias, pero estos problemas / comentarios se enfrentan más sobre el tamaño excesivo de los archivos (y el hecho de que todo el archivo debe leerse). Estos no se aplicarán en mi caso.
También he leído una publicación principal de la página de manual de PHP desvinculación que parece confirmar mis pensamientos en unlink
.