在同一Web应用程序的多个实例中,应该使用多少个密钥集来加密/解密数据?

时间:2010-07-16 16:11:54

标签: web-applications encryption

我们在四个不同的服务器上托管我们的Web应用程序的几个实例。其中两台服务器托管应用程序的IIS / Web部分,另外两台托管MSSQL数据库。我们的每个客户端在IIS中都有一个单独的虚拟目录和一个单独的数据库。每个数据库共享完全相同的模式。

假设我们使用非对称加密。是否所有实例都使用一个主密钥集进行加密/解密?每台服务器一个密钥集?每个实例一个?每个字段加密一个?

似乎最细粒度的方法是最好的安全方法(每条记录一个?)但似乎有点难以管理。这里的最佳做法是什么,还是我完全不合适?

我还需要弄清楚如何存储这些键,但我认为这是一个单独的问题,可能取决于答案。

1 个答案:

答案 0 :(得分:1)

这取决于您在安全性与可用性之间的特定平衡。存储和管理密钥至少与决定使用密钥的位置和时间一样重要。管理密钥可能既困难又麻烦,具体取决于需要保护密钥的方式以及有多少人可以访问密钥。这取决于您现在和将来管理的记录数量。拥有太多密钥通常是一个坏主意。尝试将键数与一些保护分区相匹配。如果服务器的每个实例都为相同的客户端提供服务,则对所有这些客户端使用相同的密钥。除非您从不同的服务器为不同的客户端服务,否则没有理由将它们隔离,并且它将禁止分布式处理和故障转移。再次使用数据,尝试匹配使用分区。如果用户有权读取表中的所有数据,则使用密钥保护表而不是记录。另外,请咨询您的法律团队。美国有关于保护客户数据的法规,尤其是医疗和金融方面的保护。