Encryption 如何在nginx上实时解密?

Encryption 如何在nginx上实时解密?,encryption,nginx,on-the-fly,Encryption,Nginx,On The Fly,我将加密(AES 256)文件存储在nginx上。我通过GET请求打开它们,并使用一个键作为查询参数。例如,您可以为nginx文件服务器(可能是现有的过滤器)提供如何维护分块响应的建议解决方案吗。换句话说,我需要在nginx上动态解密文件。最简单的方法是为..编写自己的模块。添加一些文件处理代码读取代码,您就完成了。Lua模块在非阻塞I/O中工作时速度非常快 要记住的重要部分是处理填充-原始文件大小必须存储在某个位置(DB、xattr等),并传递给nginx或由nginx读取 另一个非常重要的主

我将加密(AES 256)文件存储在nginx上。我通过GET请求打开它们,并使用一个键作为查询参数。例如,您可以为nginx文件服务器(可能是现有的过滤器)提供如何维护分块响应的建议解决方案吗。换句话说,我需要在nginx上动态解密文件。

最简单的方法是为..编写自己的模块。添加一些文件处理代码读取代码,您就完成了。Lua模块在非阻塞I/O中工作时速度非常快

要记住的重要部分是处理填充-原始文件大小必须存储在某个位置(DB、xattr等),并传递给nginx或由nginx读取


另一个非常重要的主题是对随机访问的最终支持。为此,必须对数据进行AES加密。XTS、CBC、CFB也很好,但需要更多的开发工作。

CTR模式的困难在于,同一个密钥永远不能用于不同的数据。这就是大多数CTR漏洞产生的原因。没错,数据安全是一个多层次的话题——如果不了解解决方案的复杂性,甚至可以削弱最强大的算法。CTR可以通过强制每个文件使用良好的随机密钥进行一次写入/多次读取(WORM)来改进。对于writemany,这确实是一个问题,因为对于给定的块,键应该保持不变。可能的解决方案是将其转换为版本化的WORM文件系统。每次新的写入都会创建新的salt,从而创建整个文件的新版本或刚刚更改的部分。