¿Cómo almaceno y recupero de forma segura una clave de uso muchas veces?

3

Estoy realizando un cifrado / descifrado de base de datos simétrico en .net. Estoy usando una única clave privada de 256 bits.

(1) ¿Dónde almaceno esta clave cuando no estoy en uso?

(2) ¿Cómo recupero esta clave de forma segura?

(3) ¿Cómo uso la clave de forma segura?

(4) ¿Qué operaciones debo realizar una vez que finalice el cifrado para mantener la seguridad?

    
pregunta crawfish 18.07.2012 - 20:08
fuente

1 respuesta

2

Esta respuesta intenta guiarlo hacia la solución ideal. Idealmente, si un atacante puede leer todo el disco duro, aún debería ser imposible (en nuestra vida) obtener la clave y los datos, y descifrarlos sin una intercepción adicional. (por ejemplo, una contraseña) . Es posible que esta solución ideal no sea factible para su caso de uso. Más detalles requeridos.

  

¿Dónde almaceno esta clave cuando no esté en uso?

Cifre la clave y guárdela en el disco duro.

  

¿Cómo puedo recuperar esta clave de forma segura?

Use una contraseña para crear una clave que se utiliza para cifrar asimétricamente su clave de cifrado simétrica. De esta manera, siempre que la contraseña no sea interceptada, la clave simétrica es desconocida porque la clave ha sido cifrada. Explicación adicional (La contraseña se puede ingresar en el inicio o se puede ingresar al iniciar sesión. Más detalles necesarios. ) Asegúrese de que su rutina de obtención de claves sea lenta (100-1000 ms) para que la fuerza bruta sea lo suficientemente cara.

  

¿Cómo uso la clave de forma segura?

En el caso de una operación relacionada con la base de datos SQL, realice el cifrado en la aplicación. No envíe la clave o el texto sin cifrar al comando SQL, a menos que esté seguro de que no hay registro de instrucciones de modificación (registros), registro de instrucciones lento (registros lentos), que probablemente intercepte utilizando el comando show processlist . Lecturas adicionales, parcialmente relevantes (mi información está orientada a MySQL)

También tenga en cuenta dónde está almacenando la información. Algunas intrusiones solo otorgarán al atacante acceso a su base de datos SQL, otras proporcionarán solo acceso no root al sistema de archivos, lo que significa que los permisos de UNIX se pueden usar para ocultar los datos. Algunos ataques proporcionarán acceso de solo lectura, otros proporcionarán lectura y escritura, lo que significa que el código podría cambiarse para registrar la información no cifrada.

  

¿Qué operaciones debo realizar una vez que finalice el cifrado para mantener la seguridad?

Tal vez sea consciente de la posibilidad de volcado de pila, lectura de intercambio. También debe hacer un punto para consultar el Intercambio de la pila de seguridad de TI con regularidad para ampliar su conocimiento de la seguridad. (medio bromeando, medio serio)

Es posible que a mi respuesta le falten algunas medidas importantes. Sugeriría que edite su pregunta para proporcionar más información.

Es posible que también desee examinar cómo está utilizando la clave, una vez que esté disponible. Con esto quiero decir, el protocolo de cifrado que se utiliza, así como los algoritmos utilizados para crear el cifrado de flujo fuera del cifrado de bloque subyacente, puede requerir un examen. Lectura adicional

Confío en que los expertos aquí me votarán si tengo razón, o comentaré dónde me equivoco.

    
respondido por el George Bailey 18.07.2012 - 21:40
fuente

Lea otras preguntas en las etiquetas