Ayudo a mantener un servidor web que usan los usuarios. Almacenan datos en nuestro servidor. La mayoría de los datos no son confidenciales, pero algunos son altamente sensibles. Entonces, parece que queremos cifrarlo para que, si alguien compromete nuestro servidor, solo encuentre datos cifrados. Sin embargo, para proporcionar los datos a los usuarios en el sitio web, el código es esencialmente similar a (pseudocódigo)
encryptedFile=getEncryptedFile();
decryptedFile=decrypt(encryptedFile);
serve up decrypted file
Entonces, si nuestro servidor está comprometido, ¿qué es evitar que el mal actor encuentre este código y simplemente ejecute el algoritmo de descifrado por su cuenta? Parece que me falta algún paso sobre cómo evitar que un atacante encuentre la clave de descifrado, incluso si el servidor está comprometido.
Esencialmente, se reduce a: Si yo, como administrador del sistema, el sistema de descifrado para el sitio web puede cifrar / descifrar archivos, ¿qué es detener al pirata informático que compromete a mi servidor con el acceso de nivel de raíz a hacer lo mismo?