对于GDPR (欧盟通用数据保护条例)的实施,我需要加密一些个人信息。有两种方法可以加密数据:
那么,哪一种方法是最好的,而不牺牲太多的性能?
发布于 2019-07-08 14:59:18
让数据库处理加密/解密可能是最好的方法:
有一点有利于客户端加密,您已经提到了这一点。这是一个很大的问题,但我不认为它比上面的好处更重要:
SELECT * FROM table;,手动解密和过滤每一行,这只是.不会顺利的。您将在内存中将密钥保存在可直接访问web的服务器中很长一段时间,作为对攻击者可以发送的请求的直接响应。作为凯文 指出,您还可以选择加密特定字段。例如,如果您正在存储客户的用户名和信用卡号码,后者肯定需要加密,但前者可能不需要加密。您可以包括一个CHECK约束,以确保您不会意外地添加未加密的信用卡。信用卡号码就是一个很好的例子,因为你从来不需要对它们做任何匹配--你只需要从数据库中检索或存储它们,这样你就可以从客户端高效地处理它们。
然而,请注意,良好的安全性并不是一回事。好的安全就是做好一切:
不管你如何处理你的数据库,这并不是道路的尽头。确保你能照顾好一切。
发布于 2019-07-08 15:24:14
在每个字段或每组字段的基础上添加加密似乎是最好的折衷,前提是在每个字段被加密的同时创建索引字段(S)。
你会同时解决几个问题。
发布于 2020-03-08 00:41:21
最新的趋势是在HSM中存储私钥,这是硬件安全模块。在HSM中,有一些选项可以将键标记为不可出口。需要加密的数据被发送到HSM,但是在大量数据的情况下,它可能会影响性能。如果密钥是可导出的,它将只被导出并保存在内存中,以供应用程序用于加密。导出密钥时,首先应该使用HSM中的另一个公钥加密密钥,然后将其发送到应用程序。由于应用程序有它的私钥,所以它可以解密我们的主加密密钥。现在的问题是,这个密钥应该存储在哪里?它可以存储在访问权限有限的数据库中。
https://security.stackexchange.com/questions/213146
复制相似问题