密钥使用弱摘要算法

sud*_*dhi 11 updates apt google-chrome

我在更新 ubuntu 16.04 LTS 时收到此类消息:

W: http://dl.google.com/linux/chrome/deb/dists/stable/Release.gpg: Signature by key 4CCA1EAF950CEE4AB83976DCA040830F7FAC5991 uses weak digest algorithm (SHA1)
W: http://dl.google.com/linux/chrome/deb/dists/stable/Release.gpg: Signature by key 3B068FB4789ABE4AEFA3BB491397BC53640DB551 uses weak digest algorithm (SHA1)
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

Rah*_*Jha 12

请注意,我们打算在 2017 年 1 月 1 日完全关闭 SHA1。

自 2016 年 3 月 18 日以来,谷歌浏览器的存储库已中断一半。因此它发出警告。谷歌源的问题在谷歌的尽头,所以 apt-get 只是将问题报告为警告。此问题不会阻止您升级软件包。

您可以在此处找到所有损坏和半损坏存储库的列表。

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

  • 是的,所有回购所有者都会收到通知。 (2认同)

小智 11

这只是一个愚蠢的误解,由 apt 维护者的开发团队草率地认为 SHA1 算法已经过时造成的。问题是它直接嵌入在APT的源代码中,但是如果你愿意多花1-2个小时在包的自组装上,我可以告诉你如何解决这个麻烦。所以:

sudo aptitude install git --with-recommends

mkdir build && cd build
git clone https://anonscm.debian.org/git/apt/apt.git --recursive && cd apt && git pull && ls
gedit methods/gpgv.cc
Run Code Online (Sandbox Code Playgroud)

(其他克隆 URL 可以在http://anonscm.debian.org/cgit/apt/apt.git/找到。)

并更正这部分代码,如下所示:

static constexpr Digest Digests[] = {
   {Digest::State::Untrusted, "Invalid digest"},
   {Digest::State::Untrusted, "MD5"},
   {Digest::State::Trusted, "Reserved digest"},
   {Digest::State::Trusted, "Reserved digest"},
   {Digest::State::Trusted, "Reserved digest"},
   {Digest::State::Trusted, "Reserved digest"},
   {Digest::State::Trusted, "SHA1"},
   {Digest::State::Trusted, "RIPE-MD/160"},
   {Digest::State::Trusted, "SHA256"},
   {Digest::State::Trusted, "SHA384"},
   {Digest::State::Trusted, "SHA512"},
   {Digest::State::Trusted, "SHA224"},
};
Run Code Online (Sandbox Code Playgroud)

然后:

dpkg-buildpackage -b -uc -us -nc -rfakeroot
cd .. && rm -vf *dbg* *doc* *dev* && sudo dpkg -i *.deb
sudo apt update
Run Code Online (Sandbox Code Playgroud)

  • 这是一个糟糕的解决方案+1...直到下一次更新apt? (2认同)