Creo que tengo una comprensión decente de los problemas asociados con la rotación de claves, y mientras estoy trabajando en ellos para determinar un enfoque para la administración de claves en una aplicación, me encuentro con algo que no tiene ningún sentido para mí .
Considere que tenemos una clave utilizada para cifrar datos (la clave de cifrado de datos o DEK) y una clave utilizada para cifrar el DEK (la clave de cifrado de claves o KEK). Hasta ahora, bien, entiendo ese modelo.
Sin embargo, en muchos lugares he visto que el uso de este modelo facilita la rotación de las claves, porque cuando llega el momento de expirar las claves, solo se vencen las teclas KEK y no las DEK, por lo que no es necesario volver a cifrar los datos.
No estoy cuestionando el valor del patrón; como mínimo, el KEK es otro turtle en la sección "¿Quién tiene la clave más significativa?" juego. Pero la afirmación sobre la rotación de claves parece engañosa: si su clave KEK está comprometida, entonces también lo es su DEK y, para estar seguro, debe volver a cifrar todo. ¿Me estoy perdiendo algo importante?
Se me ocurre que tal vez estoy confundiendo la rotación de claves con el reemplazo de claves debido a un compromiso y que en una rotación simple (donde aún se asume que todas las claves son secretas) es suficiente rotar el KEK. ¿Es esa la pieza que me tiene confundido?