加密OkHttp的HttpResponseCache

时间:2014-03-13 09:09:07

标签: caching encryption okhttp

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

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

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

1 个答案:

答案 0 :(得分:2)

使用现有的缓存代码非常困难。这是一个记录的磁盘数据结构,不是为了支持隐私而设计的,隐私不是您可以添加的功能。

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

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