如何安全地控制对后端密钥服务器的访问?

我需要安全encryption数据库中的数据,这样如果数据库被转储,黑客无法解密数据。

我打算在另一台机器上创build一个简单的密钥服务器,并允许数据库服务器访问它(受密钥服务器上的IP地址限制,以允许数据库服务器)。 密钥服务器将包含encryption/解密数据所需的密钥。

但是,如果黑客能够在数据库服务器上获得一个shell,他们可以从密钥服务器请求密钥,从而解密数据库中的数据。

我怎么能防止这种情况(假设所有的防火墙都在,DB不直接连接到互联网等)? 即是否有一些方法可以用来保护从数据库服务器到密钥服务器的请求,这样即使黑客在数据库服务器上有一个shell,他们也无法提出相同的请求? 来自数据库服务器的签名请求可能会使发出这些请求变得不那么简单 – 我想这会增加攻击密钥服务器所花费的时间,黑客可能不会有太多东西。

据我所知,如果有人能在数据库服务器上获得一个shell,那么一切都会丢失。 这可以通过在数据库中为每个数据项使用一个密钥来减轻,所以至less没有一个“主”密钥,而是黑客需要访问的多个密钥。

确保从数据库服务器向密钥服务器发送请求的安全方法是真实可靠的。

但是,如果黑客能够在数据库服务器上获得一个shell,他们可以从密钥服务器请求密钥,从而解密数据库中的数据。

我怎么能防止这个[…]?

基本上,你永远不可能,除非你从一开始就devise了一个减轻这种攻击的系统。 目前的PC架构不允许这种应用程序。 像下一代安全计算基地这样的努力已经被devise成通过将执行代码path的能力限制为仅仅“必要”来解决类似的任务。

端到端encryption(encryption/解密密钥由客户端pipe理,数据库服务器完全不知道密钥)可能会提供另一种select。 虽然没有离开数据库服务器的足够的信息(如索引)可能会大大降低其预处理数据的能力,从而降低其应用程序的价值。