Capacidades de cifrado / descifrado de archivos seguros

4

Como prefacio a mi pregunta, permítame decirle que soy un novato en el campo de la seguridad.

Trabajo para un proveedor de software financiero administrativo que se encarga de procesar, generar e intercambiar miles de archivos con cientos de terceros cada día. De acuerdo con nuestras auditorías de seguridad más recientes, esos archivos deben estar encriptados siempre que no estén en uso.

Puedo resolver ese problema simplemente usando el cifrado PGP cuando recibimos / compilamos el archivo, y desencriptándolo cuando necesitamos leerlo / entregarlo.

Con lo que estoy luchando es cómo hacer esto de manera segura, dado que el mismo entorno necesita tanto cifrar como descifrar los archivos. Entiendo la paradoja de lo que estoy tratando de hacer ... Me gustaría que el mismo servidor cifrara y descifrara un archivo, pero no permitiera que un usuario que ingresa a ese servidor haga lo mismo. He contemplado la idea de que un administrador ingrese la contraseña de descifrado al iniciar el servicio, pero eso parece torpe.

¿Necesito otra ruta?

EDITAR:

Este es el escenario exacto que me pregunto ... Me doy cuenta de que es contraintuitivo, pero espero que la comunidad de seguridad sea lo suficientemente brillante como para haber resuelto este problema.

08:15 - El socio comercial entrega un archivo de transacciones para su procesamiento. 08:16 - El archivo se descifra usando el par de llaves asignado a ese socio comercial. 08:17 - Como la ventana de procesamiento por lotes ha caducado, el archivo se cifra hasta que se requiere más tarde. 20:00 - La ventana de procesamiento de lotes está activa, el archivo se descifra y las transacciones se procesan.

Nos preguntamos si hay una manera de que una aplicación maneje todas esas (que ya tenemos) y al mismo tiempo evite que Joe User inicie sesión en el entorno y descifre el archivo en (por ejemplo) 14:03.

La razón por la que me parece contraintuitivo es que si la aplicación / servidor / entorno tiene toda la información necesaria para cifrar y descifrar, parece que cualquier usuario que pueda ingresar al entorno también tendrá acceso a eso. información. Espero que haya alguna forma elegante de hacerlo que pueda evitar ese caso.

¿Tiene sentido?

    
pregunta user12529 29.08.2012 - 04:38
fuente

3 respuestas

2

Estás hablando de seguridad en capas, lo que es genial.

El primer problema es cómo proteger los datos en reposo y en tránsito, lo que está haciendo con PGP. Su siguiente problema es proteger el sistema en el que se almacenan los datos.

Parece que está hablando sobre el siguiente problema: está cifrando la información justo antes de la transferencia, pero normalmente no está asegurada en el sistema.

El problema aquí es que, mientras está protegiendo los datos en tránsito, no está protegido necesariamente en su sistema. Para combatir esto, asegúrese de que su disco duro esté encriptado y de que tenga buenos controles lógicos de seguridad y acceso: requiera contraseñas seguras / complejas, establezca los permisos de archivo adecuados, no comparta las contraseñas, no comparta las contraseñas de administrador o de root. etc. No debe permitir que haya demasiados usuarios en el sistema y, además, debe imponer el acceso basado en roles (por ejemplo, solo ciertos grupos o usuarios específicos pueden acceder al lugar donde se almacena el archivo).

También le puede preocupar que, dado que su clave privada está almacenada en el sistema, si el sistema está comprometido, también lo está su clave privada. Puede almacenar la clave privada en un medio extraíble para combatir esto o implementar técnicas de cifrado de hardware.

Si los datos son muy confidenciales, solo se deben descifrar cuando sea necesario y la clave privada no debe ser fácilmente accesible.

¿Hay algún otro problema que le preocupa que pueda aclarar?

Actualizar Supongo que el problema real es ¿por qué el usuario de Joe tiene privilegios de sistema que le permiten acceder a la parte segura del sistema de archivos? Si está utilizando este servidor para este proceso automatizado, parece que muy pocas personas, si alguna, debería tener acceso a este servidor. Si lo hacen, sus permisos de grupo no deberían permitirles acceder a los archivos seguros cuando están cifrados o no cifrados.

Tienes que pensar en la seguridad en capas. Primero, hagamos el cifrado completo del disco en caso de que el disco sea robado físicamente en un punto en el que el archivo no esté encriptado en el nivel lógico. A continuación, aseguremos que el archivo solo se desencripte cuando sea necesario. Las claves de descifrado se almacenan en un lugar seguro que solo los usuarios root o predeterminados pueden tener acceso. Los archivos cuando no están encriptados solo pueden ser accedidos por la raíz y la cuenta de usuario de procesamiento por lotes utilizando permisos de nivel de sistema de archivos. El único problema que tienes es si el usuario Joe también es root o administrador. Para solucionar este problema, debe implementar algún software costoso o crear una solución de elaboración doméstica para el registro y la extracción de la contraseña, también conocido como administración de identidad privilegiada (PIM).

Un sistema PIM está protegido y almacena secretos compartidos. Por lo general, las contraseñas se cambian con frecuencia en una base de tiempo y cada vez que alguien quiere iniciar sesión o cerrar sesión. Por ejemplo, desea iniciar sesión en un sistema: el sistema PIM usa scripts u otra funcionalidad para cambiar la contraseña en el sistema remoto al que desea acceder, luego le da la contraseña e impide que otros se registren mientras tiene la contraseña verificada. afuera. Una vez que haya terminado o se agote el tiempo de espera de su sesión, el sistema PIM vuelve a cambiar la contraseña para que no pueda volver a ingresar sin hacer otra entrada en el registro que muestre que verificó la contraseña. Estos productos son un poco caros y podrían ser excesivos para su situación si puede restringir adecuadamente el acceso de la raíz o la raíz de la consola física y utilizar cierta seguridad física para evitar el acceso no autorizado a la consola física.

    
respondido por el Eric G 29.08.2012 - 04:52
fuente
1
  

Nos preguntamos si hay una manera de que una aplicación maneje todas esas (que ya tenemos) y al mismo tiempo evite que el Usuario Joe inicie sesión en el entorno y descifre el archivo en (por ejemplo) 14:03?

Controles de acceso obligatorios. Específicamente, el entorno de la aplicación se puede configurar para leer la clave mientras se bloquea, incluso desde la raíz, a menos que el sistema pase por un ciclo de reinicio.

Vea estos Fedora docs para un buen ejemplo de esta técnica con SELinux como se usa comúnmente para / etc / shadow.

    
respondido por el Jeff Ferland 29.08.2012 - 19:54
fuente
0

El enfoque fácil es utilizar el cifrado de disco completo (FDE). De esa manera, los datos se cifrarán mientras se almacenan en su disco duro. Elija una frase de contraseña larga y fuerte, y asegúrese de bloquear su computadora (o de apagarla) antes de dejarla desatendida; de esa manera, si alguien lo roba, no podrán acceder a los datos en el sistema sin adivinar su frase de contraseña.

Si está buscando un software de cifrado de disco completo, aquí hay algunas recomendaciones. Truecrypt es muy respetado. PGP también tiene un buen producto.

Esto cumplirá con su requisito de cumplimiento para usar el cifrado y le permitirá marcar la casilla de verificación para su auditoría. Si proporcionará la seguridad adecuada para sus necesidades es una pregunta diferente, y no me ha proporcionado suficiente información para que pueda formarme una opinión firme sobre ese tema. (La forma de determinar si proporcionará la seguridad adecuada comienza preguntando qué recursos tiene, qué amenazas podrían enfrentar y cuáles son los requisitos de la misión de su empresa; y continúa evaluando los riesgos, identificando posibles controles y mitigaciones, y evaluando basados en sus costos y beneficios.)

    
respondido por el D.W. 29.08.2012 - 07:29
fuente

Lea otras preguntas en las etiquetas