0

有没有使用加密来加密 OkHttp 的HttpResponseCache使用的磁盘缓存的示例?天真地,我认为这不是一件很难的事情,但我很感激任何避免安全陷阱的建议或经验。

没有太多细节,这就是我想要实现的目标:接受用户的 api-keys(通常是 40 个字符的随机字符串)用于已建立的服务 X,并代表用户进行许多 API 调用的服务器。服务器不会保留用户的 api-key,但一个可能的用例是用户会定期调用服务器,每次都提供 api-key。已建立的服务 X 使用合理的速率限制,但支持条件(ETag、If-Modified-Since)请求,因此我的服务器进行服务器端缓存是有意义的。虽然信息是私有的,服务器将托管在 Heroku 或类似服务器上,所以我想加密 HttpResponseCache 缓存的文件,这样如果机器受到攻击,它们就不会产生任何信息。

我的计划是围绕 HttpResponseCache 创建一个接受密钥的包装器 - 这实际上是 api-key 字符串的一半的哈希值。这将用于对 HttpResponseCache 使用的缓存内容和密钥进行 AES 加密。这听起来合理吗?

4

1 回答 1

2

很难用现有的缓存代码来做。它是一种日志式磁盘数据结构,并非旨在支持隐私,而且隐私不是您可以添加到顶部的功能。

一种选择是挂载加密的磁盘映像并将缓存放在那里。例如,类似于 Mac OS X 的 FileVault。如果你能弄清楚如何做到这一点,那么你就是黄金。

您的另一个选择是使用现有缓存作为指导来实现您自己的缓存。公平警告:OkResponseCache 在下一个版本中可能会发生变化!

于 2014-03-13T12:04:36.877 回答