gpt4 book ai didi

asp.net - 数据库加密还是应用层加密?

转载 作者:太空狗 更新时间:2023-10-30 01:44:40 24 4
gpt4 key购买 nike

当您需要存储敏感数据(例如 CC 或 SSN)时,您是否:

1) 在应用程序中构建您自己的加密例程,在配置文件中的某处定义 key ,然后手动加密/解密进入数据库的数据。

2) 使用内置的数据库功能(我认为大多数供应商称之为透明数据库加密)将所有问题推送到数据库。

您为您的解决方案找到了哪些权衡点?与 TDE 相比,您自己编写的例程是否表现不佳?代码可维护性或相反的数据库供应商锁定是一个问题吗?

最佳答案

我使用过多种加密技术,我相信使用经过验证的加密例程(即 .NET 库)在应用程序端进行加密既简单又安全。

如果您在数据库上加密,这意味着数据以未加密的形式发送到数据库或从数据库发送。这可能允许在应用程序和数据库上的加密例程之间进行窥探/篡改。即使你把 key 存放在应用程序端,数据库端仍然需要它来进行加密。如果数据库遭到破坏,您的数据将面临严重风险(想象一下有人在您的应用程序运行时运行探查器)。

如果您在应用程序中加密/解密,敏感数据(包括 key )永远不会泄露到应用程序服务器之外。有人必须同时破坏 Web 服务器和数据库服务器才能访问您的所有数据。

此外,我强烈建议您不要推出自己的加密例程。您很可能会犯错误,这会降低解决方案的整体安全性。

编辑:

还想添加另一个会影响您的决定的因素。您需要查询该加密数据吗?如果您在应用程序级别加密,则需要将数据带到应用程序、解密并从那里开始工作。随着数据集变大,这变得令人望而却步 - 而使用数据库加密,您可以在将数据发送回应用程序之前对其进行过滤。

关于asp.net - 数据库加密还是应用层加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4002184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com