假设我有一个在网络场中运行的 ASP.NET MVC 3 应用程序,其中每个网络服务器都属于一个工作组(与具有共享帐户的域相对)。Web 场也是可自动扩展的,这意味着实例的数量取决于负载。敏感数据在从数据库存储/检索时会被加密和解密。对称和非对称密钥存储在每台机器上,并使用 ACL 进行保护,并使用 DAPI(使用机器密钥)进行加密。
出于合规性和安全性原因,需要定期轮换密钥。您将如何设计/修改系统以定期自动轮换密钥而不使系统脱机?假设有任意数量的表,每个表都有任意数量的列,这些列使用密钥进行加密。
许多问答都与使用哪些算法以及如何保护密钥有关,但很少有人真正解决如何设计和实现允许轮换这些密钥的应用程序,尤其是在共享数据库的动态环境(自动缩放环境)中。