我需要设计一个应用程序来保护数据库中的某些数据免受根攻击。这意味着,即使攻击者控制存储数据的机器或使用应用程序服务器加工,他也无法从数据库中读取一些关键业务数据。这是客户的要求。 我将使用一些不对称算法加密数据,我需要一些好的想法,在哪里存储私钥,以便数据安全以及应用程序的可用性非常舒适?为简单起见,我们可以假设只使用了一个密钥对。
答案 0 :(得分:8)
这是客户的要求。
客户的要求必须投射到现实世界。
如果您的应用程序可以读取某些业务数据,并且如果攻击者控制您的应用程序,那么agressor可以读取该业务数据。
不对称密码术不会产生魔力。
答案 1 :(得分:3)
存储私钥的地方是客户端,只在客户端解密。数据不需要以未加密的形式解密,读取或通过服务器传递。
答案 2 :(得分:1)
请查看此question,特别是原始问题中提到的资源。
我可以认为这本书是对构建这种系统的问题的一个很好的概述。
答案 3 :(得分:1)
我不确定数据库选项,但值得一看Oracle Advanced Security(OAS)。但是,密钥不是存储在数据库中,而是存储在Oracle钱包(OS托管)中,据我所知,妥协这很难。
OAS支持表空间级别和列级别的加密。所有这些,它声称没有任何开销表现。