Angenommen, ich habe eine ASP.NET MVC 3 Anwendung, die in einer Webfarm läuft, in der jeder Webserver zu einer Arbeitsgruppe gehört (im Gegensatz zu einer Domäne mit gemeinsamen Konten). Die Webfarm ist außerdem automatisch skalierbar, was bedeutet, dass die Anzahl der Instanzen von der Last abhängt. Sensible Daten werden verschlüsselt und entschlüsselt, wenn sie in der Datenbank gespeichert oder von dort abgerufen werden. Die symmetrischen und asymmetrischen Schlüssel werden auf jeder Maschine gespeichert, mit ACL geschützt und mit DAPI verschlüsselt (unter Verwendung des Maschinenschlüssels).
Aus Gründen der Einhaltung von Vorschriften und der Sicherheit ist es erforderlich, dass die Schlüssel in regelmäßigen Abständen gewechselt werden. Wie würden Sie das System so gestalten/ändern, dass die Schlüssel automatisch in regelmäßigen Abständen gewechselt werden, ohne dass das System offline geht? Angenommen, es gibt eine beliebige Anzahl von Tabellen mit einer beliebigen Anzahl von Spalten, die mit den Schlüsseln verschlüsselt werden.
Viele Fragen und Antworten beziehen sich darauf, welche Algorithmen zu verwenden sind und wie die Schlüssel zu sichern sind, aber nur wenige befassen sich damit, wie eine Anwendung zu entwerfen und zu implementieren ist, die eine Rotation dieser Schlüssel ermöglicht, insbesondere in einer dynamischen Umgebung (Autoskalierungsumgebung), die eine Datenbank gemeinsam nutzt.