在处理多租户(每个租户的密钥)时,在.net C#中存储AES密钥的最佳方法

时间:2018-03-19 10:26:02

标签: c# security asp.net-web-api2 aes multi-tenant

我的数据库中有一些有价值的数据,我想加密,只在需要时解密。由于我处理多租户,每个数据库都有不同的密钥(和IV)。我试图找出存储AES密钥的最佳方式。

另一个小问题,我是否应该存储IV?或者,当我想要解密时,我可以生成一个新的?

1 个答案:

答案 0 :(得分:0)

恕我直言,从安全的角度来看,避免内存或数据库中的敏感数据,我建议您切换到Azure Key保险库。当您提交与VeraCode一样的安全测试代码时,这些更为突出。如果这是一个发现,代码更改会更多,需要更多的努力。

在这种情况下,您可以为每个租户配置一个安全的保管库配置,以便证书是安全的,并且没有安全密钥在静止时不安全。

此外,我们没有更多关于您如何管理租赁的信息,因为上述实施需要调整处理您的方案的逻辑。

如果每个租户都有一个数据库,则Azure默认包括静态加密,如下文所述。 https://azure.microsoft.com/en-in/updates/newly-created-azure-sql-databases-encrypted-by-default/

此外,链接可能有用。 Encrypting data in SQL Server Azure database with separate key for each user's data