【问题标题】:Are docker image digests really secure?docker 图像摘要真的安全吗?
【发布时间】:2021-07-07 18:19:50
【问题描述】:

docker 如何处理摘要?

当我运行docker image --inspect 时,我可以在纯文本中看到图像的摘要。还有一个问题是本地图像在我将它们推送到注册表之前没有摘要(并且 AFAIK,如果我将图像推送到各个注册表,它将有各种摘要,但从未尝试过)。

我担心 docker 可能实际上是在使用该信息,而不是在我每次使用或拉取图像时计算哈希值。

有没有办法真正告诉 docker:“嘿,我希望你现在重新检查图像内容的哈希值。它们与我第一次创建图像时完全相同吗?还是有人操纵过它?”

而且:docker 真的会在每次运行映像时(通过摘要)或至少每次拉取映像时(通过摘要)计算该哈希值吗?

【问题讨论】:

    标签: docker hash docker-registry docker-image


    【解决方案1】:

    摘要是在向注册表推送和拉取时计算的。它是映像清单的 sha256 校验和,它是当前版本的 docker 独立于注册表(旧模式 v1 语法包括清单中的存储库/标记,导致摘要根据映像名称而变化)。层摘要包含在该清单中,注册表中的这些摘要是压缩的 tar 文件。在本地 docker 引擎上提取文件后,它们不会被重新验证,而且我还不知道有一个命令可以验证 /var/lib/docker 下的文件自图像被拉出后没有被更改。

    【讨论】:

    • 那么,docker pull 使用摘要即使对于不受信任的注册表也是安全的,因为本地引擎会计算内容的 sha256 校验和,并检查它们是否与您要求的匹配,对吧?
    • @alx 是的,摘要确保您提取的内容未被修改。这就是 Notary v1 的工作方式,验证标签指向摘要,然后 docker 引擎自动验证其余内容。
    猜你喜欢
    • 2012-06-12
    • 2010-09-06
    • 1970-01-01
    • 2022-11-25
    • 2018-12-12
    • 2016-07-26
    • 2023-01-25
    • 2018-08-24
    • 2013-09-04
    相关资源
    最近更新 更多