加密数据以存储在数据库中

twa*_*wal 6 .net c# security encryption asp.net-mvc

我们有一个网站,用户将在我们的数据库中保存极其个人和敏感的数据.

我们当然需要在将这些数据存储到数据库之前加密,并使用SSL.它是一个使用表单身份验证的MVC应用程序.确保从我们保存数据到解密显示在其个人页面上之前加密此数据的最佳方法是什么.

我们还需要确保即使是我们的开发人员和dba在应用程序上工作也是安全的.

处理这种情况的最佳方法是什么?

Ben*_*gie 1

除非您使用公钥加密并且最终用户必须对此进行控制,否则无法阻止 DBA 接触到数据。如果最终用户丢失了密钥,他们将丢失所有数据。

您可以有一个单独的数据库来存储密钥,并且您的 DBA 无权访问该数据库。

您必须有两名 DBA,一名负责数据,一名负责密钥。

这是假设您不信任您的 DBA,但您不应该雇用他们。

如果您信任您的 DBA,那么您可以让他们访问这两个数据库,但要求他们拥有单独的帐户,这样如果一个帐户受到威胁,他们(黑客)将无法访问所有内容。

通常,在设计良好的系统中,DBA/管理员拥有用于个人工作的单独帐户和用于工作的提升帐户。

我假设程序员只能访问测试环境。如果他们有权访问生产环境,那么他们将有权访问密钥和数据。