GCS 签名 URL 使您能够简单地通过签名 URL 暂时公开对象。 https://cloud.google.com/storage/docs/access-control/signed-urls
据我了解,您需要根据几个参数计算签名,然后得到 无需任何其他安全层即可访问对象。
不幸的是,文档并不完全清楚一个对象是否被GCS服务显式激活并获得一个标志"签名XYZ在对象ABC上有效期为XX分钟",或者GCS是否始终提供所有文件,只要签名是正确的。
如果可以使用正确的签名提供任何对象,那么GCS中的所有文件实际上都是可访问的公共文件,如果签名被猜对(蛮力(。
这是对的吗?
是否有任何关于保护 url 签名的安全级别的信息?
有没有办法禁用网址签名?
VPC 服务外围是否适用于签名 URL?
由于合规性评估,这些是我需要找出的一些要点,它们更多的是理论问题,而不是我对这项服务的一些具体安全疑问。
感谢您的评论。
文档并不完全清楚一个对象是否被GCS服务显式激活并获得一个标志"签名XYZ在对象ABC上有效期为XX分钟",或者GCS是否一直提供所有文件,只要签名正确。
签名 URL 包含一个时间戳,在此时间戳之后,签名 URL 将不再有效。时间戳是签名签名的一部分,这意味着在不使签名无效的情况下无法更改时间戳。签名本身完全在客户端上生成,服务器状态没有变化。
如果可以使用正确的签名提供任何对象,那么GCS中的所有文件实际上都是可访问的公共文件,如果签名被猜对(蛮力(。这是对的吗?
是的,这是真的。任何知道允许读取文件的服务账户名称、存储桶名称和对象名称,并且正确猜测 2256个可能的哈希中哪一个是正确的的人都可以查看您的文件。请注意,2256是一个相当大的数字。如果攻击者每纳秒可以进行一万亿次猜测,我们预计他们平均会在大约 3.6x1044年内发现正确的哈希值,这大约是宇宙年龄的 2.7x1034倍。
是否有任何关于保护 url 签名的安全级别的信息?
当然。GCS 使用 GCS 使用与 S3 的"AWS 签名版本 4"相同的通用签名 URL 模式。两个服务的网站上都描述了确切的签名过程。签名本身是HMAC SHA-256,它是一种SHA-2哈希,是一种经过充分研究的算法,其优点和缺点被广泛讨论。https://en.wikipedia.org/wiki/SHA-2。
有没有办法禁用网址签名?
VPC 服务控制是最简单的方法。它们可以阻止项目外部的任何用户访问数据,而不管凭据如何。
VPC 服务外围是否适用于签名 URL?
是的,签名 URL 只能在配置的安全外围内工作。
查看库代码,签名网址是使用您的服务帐号私钥创建的,无需 GCP 的合作。
关于暴力破解,每个签名 URL 都附加了一个凭据,该凭据链接到签名者。此签署者帐户需要具有您希望用户对对象拥有的权限。如果 URL 被盗,则可以通过撤销签名者的权限来撤销它(您将撤销该签名者的所有签名 URL(。为了最大限度地降低风险,您可以创建一个仅有权访问存储桶中特定对象的 SA。
若要降低暴力攻击的可能性,还可以通过创建一个新帐户密钥并删除以前的密钥来轮换服务帐户密钥。
关于以下问题:可以完全禁用签名 URL 吗?您可以通过不向已为其生成私钥的任何服务帐户授予项目范围的存储权限来"禁用"此功能。