我希望在Amazon S3存储桶上托管受版权保护的数据(以获得比我的服务器可以处理的更大的带宽),并为大量授权客户提供对这些受版权保护的数据的访问权。
我的问题是:
详细说明,URL是使用fog gem通过Ruby On Rails服务器创建的。 我正在谈论的移动客户端是iOS设备。 我用于测试的代理是mitmproxy。
我生成的网址如下所示:
https://mybucket.s3.amazonaws.com/myFileKey?AWSAccessKeyId=AAA&Signature=BBB&Expires=CCC
我不是网络或安全专家,但我发现资源表明在HTTPS连接上没有任何明确的内容(例如,参见Are HTTPS headers encrypted?)。我的测试配置错误导致了这个清晰的URL吗?关于什么可能出错的任何提示?我是否真的有机会阻止S3 URL通过网络畅通无阻?
答案 0 :(得分:4)
首先,当通过SSL发送请求时,所有参数都被加密。如果您要查看通过普通代理的流量,您将无法阅读它们。
但是,许多代理允许通过创建虚拟证书来拦截SSL数据。这正是 mitmproxy 所做的。您可能已启用此功能而未实现此功能(尽管您必须安装客户端证书才能执行此操作)。
最重要的是,您的AWS URL很容易被希望通过代理或通过访问二进制文件本身对您的应用进行逆向工程的人拦截。然而,这本身并不是一件“坏事”:亚马逊自己也知道这种情况发生了,这就是为什么他们不是直接在URL本身发送密钥,而是使用签名。
我认为这对您来说不是一个大问题:毕竟,您创建的网址已过期,因此,即使有人可以通过代理获取它们,他们也只会能够访问URL只要它有效。要在到期后访问您的资源,需要直接访问您的密钥。现在,事实证明这不是不可能(因为你可能已经将它硬编码到你的二进制文件中),但是大多数用户都不会为此烦恼。
我建议您对安全和版权预防保持现实:当您拥有客户端本机代码时,如果它被破坏而当< / em>的