加密应该在哪里进行——在应用程序或数据库级别



为了保护web应用程序的敏感数据,问题出现了:在应用程序级别使用jasypt(针对Java)加密并将加密数据保存到数据库是最佳做法,还是使用MSSQL 2012的加密机制?

方面

  1. 安全问题
  2. 性能问题

这里的最佳实践是什么?

编辑:

关于应用程序类型的更多细节:这是一个门户网站,用户可以将敏感数据上传到门户网站,由门户网站所有者对这些数据进行评估。它将在客户站点使用,因此我们对谁可以访问服务器的控制有限,对应用程序服务器的控制有限

这一切都归结为信任问题。您是否完全控制应用程序服务器?威胁级别是多少?敏感数据如何在该级别上被泄露?那么,它在数据库级别上是如何实现的呢?你能控制数据库吗?谁有权访问它呢?

你的问题一般无法回答。这完全取决于你想要防范的威胁类型。

  • 通常,如果在应用程序中进行加密,则很难使用高效的数据库检索技术。通常,索引会以一种有意义的方式停止工作。分拣变得困难等等…

  • 如果您在数据库级别加密,您应该考虑对传输进行临时加密(想想SSL或SSH隧道)

  • 如果您真的想保护数据,那么性能应该是一个小问题。我不是这方面的专家,但我认为无论是应用程序数据加密还是数据库级别,都有性能良好的解决方案。

通常情况下,数据应该在另一端通过网络解组发送。然后,在存储数据时,您可以对其进行加密并存储。

AFAIK,不会有重大的性能问题,因为性能与加密无关

下一步,关于安全性的问题是,数据应该在代码级别加密,这样可以确保data在通过时是安全的

最后,相同的data将被保存在数据库中。这将通过网络和数据容器确保场所的安全。

最新更新