首页 > 解决方案 > GCP 云存储签名网址 - 绑定到对象或只是计算?

问题描述

GCS 签名 URL 使您能够简单地通过签名 URL 使对象临时公开。 https://cloud.google.com/storage/docs/access-control/signed-urls

据我了解,您需要根据几个参数计算签名,然后您可以在没有任何其他安全层的情况下访问该对象。

不幸的是,如果一个对象被 GCS 服务明确激活并获得一个标志“签名 XYZ 在对象 ABC 上有效期为 XX 分钟”,或者 GCS 一直为所有文件提供服务,只要签名正确,文档并不完全清楚.

如果可以通过适当的签名使任何对象可用,那么 GCS 中的所有文件实际上都是可访问的 public,如果签名被猜对了(蛮力)。

这是正确的吗?

是否有任何关于保护 url 签名的安全级别的信息?

有没有办法禁用 url 签名?

VPC 服务边界是否适用于签名 URL?

由于合规性评估,这些是我需要找出的一些要点,它们是更多的理论问题,而不是我对这项服务的一些具体安全问题。

感谢您的意见。

标签: securitygoogle-cloud-platformgoogle-cloud-storage

解决方案


不幸的是,如果一个对象被 GCS 服务明确激活并获得一个标志“签名 XYZ 在对象 ABC 上有效 XX 分钟”,或者如果 GCS 一直为所有文件提供服务,只要签名正确,文档并不完全清楚.

签名 URL 包含一个时间戳,之后签名 URL 将不再有效。时间戳是签名签名的一部分,这意味着它不能在不使签名失效的情况下更改。签名本身完全在客户端生成,服务器状态没有变化。

如果可以通过适当的签名使任何对象可用,那么如果签名被猜对(蛮力),则 GCS 中的所有文件实际上都是可访问的公共文件。这是正确的吗?

是的,这是真的。任何知道允许读取文件的服务帐户名称、存储桶名称和对象名称,并且正确猜测 2 256个可能的哈希值中哪一个是正确的人,都可以查看您的文件。请注意,2 256是一个相当大的数字。如果攻击者可以每纳秒进行 1 万亿次猜测,我们预计他们平均会在大约 3.6x10 44年内发现正确的哈希值,这大约是宇宙年龄的2.7x10 34倍。

是否有任何关于保护 url 签名的安全级别的信息?

当然。GCS 使用 GCS 使用与 S3 的“AWS 签名版本 4”相同的通用签名 URL 模式。两个服务的网站上都描述了确切的签名过程。签名本身是一个 HMAC SHA-256,它是一种 SHA-2 哈希,一种经过充分研究的算法,其优点和缺点已被广泛讨论。https://en.wikipedia.org/wiki/SHA-2

有没有办法禁用 url 签名?

VPC 服务控制是最简单的方法。它们可以阻止项目之外的任何用户访问数据,而不管凭据如何。

VPC 服务边界是否适用于签名 URL?

是的,签名 URL 只能在配置的安全边界内工作。


推荐阅读