Cómo implementar un ciclo de vida de clave de cifrado viable

1

Si las claves de cifrado deben tener un ciclo de vida de generado, distribuido, almacenado, reemplazado, eliminado. ¿Cómo descifro los datos que se cifraron con Key0 cuando ahora estoy usando Key1 o Key2?

Me refiero a los datos cifrados en reposo en una base de datos mongoDB.

    
pregunta Hector 06.12.2016 - 13:10
fuente

1 respuesta

2

Si bien no hay una solución generalizada, hay algunas ideas sobre cómo hacerlo, según la parte de confianza que esté dispuesto a brindar al sistema:

  • desacoplar las claves de acceso de las claves de almacenamiento (almacenar con claves aleatorias, que luego se cifran con claves de acceso). haga que el sistema incluya nuevas claves de almacenamiento en su clave pública / clave vinculada a identidad para que pueda acceder. confía en que el sistema sea honesto y que le proporcione nuevas claves de almacenamiento solo para usted.
  • confíe en el software de cambio de claves (una de las buenas ideas es tener un ciclo de compactación en su base de datos, que elimine los registros obsoletos y vuelva a escribir todo, desfragmentando su almacenamiento y actualizando cada registro de manera secuencial) para tener una clave adicional para usar ciclo de codificación / compactación.
  • confía en que el sistema regenere las nuevas claves y se las suministre a través de un canal de confianza (por ejemplo, el sistema firma cada nueva clave de almacenamiento y se las envía).
  • obtenga de forma segura una nueva clave de la antigua con el usuario presente con su clave privada para el protocolo interactivo, en el que las partes (db y usuario) obtendrán un nuevo secreto de almacenamiento. requiere presencia en línea y poder ejecutar el protocolo de derivación de claves, que solo es computacionalmente más barato que el cifrado de cada clave de key0 a key1.
respondido por el Eugene 06.12.2016 - 14:27
fuente

Lea otras preguntas en las etiquetas