Je n'ai pas trouvé de doublon qui explique avec suffisamment de clarté comment fonctionne le processus de rotation des clés de chiffrement en termes simples.
Je sais comment fonctionne la cryptographie à clé privée/publique, je sais comment fonctionne la cryptographie symétrique, mais je ne comprends pas comment rotation d'une clé privée fonctionne.
Dois-je décrypter tout le contenu crypté, générer une nouvelle clé privée puis rechiffrer tout? Ou peut-être puis-je générer une nouvelle clé privée et décrypter et chiffrer avec la nouvelle clé juste une partie des données alors maintenant j'ai besoin de deux clés (la nouvelle et l'ancienne) pour déchiffrer le tout?
En termes simples, la rotation d'une clé de chiffrement implique:
La rotation des clés s'applique généralement aux données chiffrées au repos, par opposition à quelque chose comme TLS, car elle reflète la nécessité de traiter toutes les anciennes choses qui sont toujours chiffrées avec l'ancienne clé.
La signification de rotation dépendra de la politique de sécurité de votre propriétaire de données.
Il peut être utile de comprendre comment les clés sont souvent gérées dans un système de gestion des clés à l'aide d'un graphique d'état du cycle de vie des clés. Un cycle de vie de clé typique ressemble à ceci:
Selon cet exemple, l'état de départ de toutes les nouvelles clés est généré. Lorsqu'il est prêt à l'emploi (peut-être une fois que vous avez configuré d'autres systèmes pour l'utiliser), vous exécutez un changement d'état d'activation pour le promouvoir en actif. La clé sera disponible pour le chiffrement et le déchiffrement.
Supposons que votre propriétaire de données souhaite que les clés soient renouvelées chaque année. Vous devez planifier un événement de désactivation pendant un an après l'activation de la clé et, le moment venu, l'événement se déclenche et la clé passe à l'état Inactif. Votre système générera probablement également une nouvelle clé en même temps et l'activera. C’est une rotation clé. Lorsqu'une clé est inactive, votre système peut toujours l'utiliser pour déchiffrer les anciennes données, mais elle ne peut plus être utilisée pour chiffrer - seule la nouvelle clé peut être utilisée pour cela.
Enfin, lorsque vous souhaitez que les données soient détruites, vous avez un événement Retirement, et la clé passe à l'état Retired et les bits sont effacés. La récupération des données devient très difficile, en fonction entièrement de votre capacité à restaurer des clés à partir de sauvegardes, etc. .
Ce n'est pas le seul chemin, bien sûr. Des états supplémentaires peuvent être définis pour les clés "suspectes", "perdues" et/ou "compromises". Toutes sortes de règles concernant les transitions d'état peuvent être créées.
Des règles sont définies concernant la manière et le moment où une clé passera d'un état à un autre, quelles transitions sont légales et quand. Vous verrez également une règle selon laquelle si une clé est compromise, toutes les données devront être rechiffrées avec une nouvelle clé (parmi de nombreuses autres tâches de récupération après sinistre).
Dans certaines organisations, une rotation de clé nécessitera la modification d'une clé pivotée dans un état inactif, et une nouvelle version de la clé devra être générée pour crypter les nouvelles données. Lorsque la nouvelle clé est activée, l'ancienne clé est désactivée. Les anciennes données restent chiffrées avec leur même ancienne clé jusqu'à ce que la clé soit retirée, puis l'ancienne clé est détruite. De cette façon, les anciennes données ne doivent pas être déchiffrées puis rechiffrées avec la nouvelle clé. L'application consommant les données doit utiliser la même version de la clé que celle utilisée lors du chiffrement des données.
D'autres organisations peuvent ne pas avoir d'état inactif, et une rotation de clé nécessitera le retrait de l'ancienne clé et le recryptage de toutes les données précédemment chiffrées.