保护客户数据

时间:2014-12-03 15:10:42

标签: c# sql-server encryption

一点背景。我们有一个基于Web的系统,允许客户输入/上传机密数据。我们目前正在使用SQL Server 2005和列级加密。用户创建密钥 那用于加密他们的数据(SQL中的encryptbypassphrase函数)。我们不会将密钥存储在任何地方。如果用户以某种方式丢失或忘记了他们的密钥,我们就无法帮助检索他们的数据。这种加密背后的主要原因是,如果我们收到信息自由请求,我们只会移交加密数据,因为我们没有解密密钥。

这种方法有许多缺点。我们必须维护多个环境(加密和未加密)。我们还需要维护存储过程的多个副本(加密与未加密)。我们永远无法使用生产数据刷新dev或qa环境,因为这些环境在生产时未加密。调试prod问题是一场噩梦,因为我们无法看到加密数据,也无法刷新qa 环境并尝试重现问题。加密字段必须为varbinary max,并且它有相当多的字段,因此空间和性能受到巨大冲击。查询加密字段 许多联接需要很长时间。

我的问题是我们如何以这样一种方式保护客户数据,即我们这些数据的持有者无法看到它。但是没有上述缺点。我知道SQL 2008引入了透明数据加密(TDE),但这对我们不起作用,因为我们会持有密钥。我愿意接受任何建议。

0 个答案:

没有答案