如何修复apt:密钥签名使用弱摘要算法(SHA1)?

dlc*_*ang 134 apt

我通过添加存储库开始设置,然后sudo apt-get update在开始安装其他软件之前再次运行,然后我得到了签名密钥行,然后它就停止了。所以它基本上不会让我现在更新任何包。

d@EliteBook:~/Downloads$ sudo apt-get update
Ign:1 http://dl.google.com/linux/chrome/deb stable InRelease
Hit:2 http://dl.google.com/linux/chrome/deb stable Release                     
Hit:4 http://security.ubuntu.com/ubuntu xenial-security InRelease              
Get:5 http://ca.archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Hit:6 http://ca.archive.ubuntu.com/ubuntu xenial-updates InRelease
Hit:7 http://ca.archive.ubuntu.com/ubuntu xenial-backports InRelease
Fetched 247 kB in 0s (256 kB/s)                   
Reading package lists... Done
W: http://dl.google.com/linux/chrome/deb/dists/stable/Release.gpg: Signature by 
key 4CCA1EAF950CEE4AB83976DCA040830F7FAC5991 uses weak digest algorithm (SHA1)
d@EliteBook:~/Downloads$
Run Code Online (Sandbox Code Playgroud)

每当我在 Ubuntu 中设置并开始安装东西时,我以前从未见过这种情况。还有什么我可以做的吗?

cha*_*kes 63

Google 源的问题在 Google 的尽头,但apt-get只是将问题报告为警告。此问题不会阻止您升级软件包。

您正在使用apt-get并且您看到的是运行后的正常行为update:它执行更新但不提供其他信息。

您需要按照sudo apt-get updatesudo apt-get upgrade以查看是否有任何软件包升级可用。

较新的sudo apt update(注意它只是apt)确实提供了有关结果的反馈。

通过使用apt,您将看到一条消息

All packages are up to date
Run Code Online (Sandbox Code Playgroud)

或者

The following packages will be upgraded:
Run Code Online (Sandbox Code Playgroud)

另见apt list --upgradeable

  • @Todd 您仍然会收到警告,因为 google 存储库仍然使用已贬值的 SHA1 密钥进行签名。这样做的原因是因为已经发现 SHA1 存在冲突,这会降低其有效强度,从而将其安全性削弱到不可接受的程度。这与具有讽刺意味的 chrome 本身会抱怨使用 SHA1 的 SSL 证书的原因相同。考虑到 20+ TFLOPS GPU 计算机机足够便宜,有效强度只有大约 2^60-2^70 次操作,现在还不够好。 (3认同)

web*_*rst 33

自 3 月以来, Debian 和 UbuntuSHA256在 Release 和/或 Packages 文件中强制执行或更高级别的条目。缺少这些的存储库需要由其所有者修复。

Debian wiki 中有损坏的存储库概述


Tul*_*lly 22

正如@chaskes 所说,这是存储库的问题,而不是您的计算机。

@webwurst 与潜在问题有很好的联系。还有一个关于签名的说明

如果您正在托管出现这些错误的存储库。解决方案是将默认值更改cert-digest-algoSHA256. 默认情况下 gnupg 默认使用SHA1

当你解决这个问题,下一个警告将是签名“使用弱摘要算法(SHA1)”而为了解决这个问题,你可以设置digest-algoSHA256为好。

这些值位于存储gpg.conf库正在使用的存储库服务器上。

简写是追加

cert-digest-algo SHA256
digest-algo SHA256
Run Code Online (Sandbox Code Playgroud)

到您的~/.gnupg/gpg.conf文件。

我们的项目在这里有票其中应该有一个示例说明如何为我们的部署机制修复它。