0

我有未加密的 Web 请求数据(不在我的管辖范围内),我想将其快速保存到 Datastore 中,以免减慢请求过程。

敏感数据有时需要系统用户通过网络打开。当用户提出此类请求时,它将要求他们在解密过程开始之前完成 reCAPTCHA,并记录有关其行为的事件。对于 10 到 20 个字符的字符串,解密时间可以适当地长达 1 分钟。

在这种情况下,是否有一种加密算法可以在 GAE 上使用,它的解密速度比加密速度慢?

我正在考虑另一种方法来减轻加密时间:

  • 临时存储轻度加密的数据MD5 和哈希快速加密方法,而计划的作业会迭代任何未标记为正确加密的记录,并在经济上应用非常强的加密(如果用户在输入后立即尝试访问数据,则警告加密尚未完成是可以接受的)

假设上述方法是可行的,那么我假设我可以在几分钟内从数据中加密裤子,如果数据被泄露但系统没有被泄露,则尝试解密的成本非常高。

4

1 回答 1

1

听起来传统的加密方法应该可以满足您的需求,例如 AES256。当谈到加密时,你应该尝试尽可能少地进行创新。使用成熟且值得信赖的方法——当“自己动手”时,很容易犯错误,而且你不会从学术密码学社区的同行评审中受益。

在着手解决加密阻塞请求的问题之前,请确保对使用您选择的强算法进行加密实际需要多长时间进行基准测试。几百毫秒的延迟真的有问题吗?

如果事实证明加密太慢,您仍然不应该在加密算法的质量上妥协。更好的解决方案是在后台线程中执行加密并立即继续请求。

将数据库中的 ID 分配给要以加密形式插入的资源,但不要在“真正”加密之前使用中间的、有意的“温和”加密形式。这一层只会提供一种虚假的安全感。

如果用户尝试访问尚未加密的资源,则返回一个错误,指示该资源仍在处理中(或加密失败,如果适用)。

确保加密过程不会失败或被延迟,导致未加密数据的保存时间超过应有的时间。如果加密不能及时成功(因为磁盘满/电源故障/宇宙射线),必须简单地允许插入失败,并且不能保留未加密的数据。

于 2013-10-11T12:44:14.967 回答