Кто-то решил что шифрование SHA1 устарело

2016-05-05_03

Начинаем использовать Ubuntu 16.04, и что тут такого? Да простые казусы.

Обновляем репозитарии:

sudo apt-get update

получаем в ответ:

Чтение списков пакетов… Готово
W: https://eric.lavar.de/comp/linux/debian/experimental/Release.gpg: Signature by key 98FB95CD6C404DF7E758601D27CD3F36869D2871 uses weak digest algorithm (SHA1)
W: https://eric.lavar.de/comp/linux/debian/ubuntu/Release.gpg: Signature by key 98FB95CD6C404DF7E758601D27CD3F36869D2871 uses weak digest algorithm (SHA1)

Что это за бред?

Сегодня кто-то решил что шифрование SHA1 устарело, и множетство репозитариев с готовыми .deb-пакетами для Ubuntu 16.04 считаются недостоверными, так как SHA1-ключи вшиты в пакеты .deb

Далее приводится страница отслеживания репозиториев сломанных или наполовину сломаных путем удаления SHA1. И нам предлагают обратить своё внимание, что они намерены отключить SHA1 полностью на 1 января 2017 года.

https://wiki.debian.org/Teams/Apt/Sha1Removal

Это просто недоразумение, вызванное поспешным признанием командой разработчиков устаревшим алгоритм шифрования SHA1, которым подписаны множество пакетов.

Проблема заключается в том, что он непосредственно встроен в исходный код APT. И это говорит нам, что надо просто ждать когда разработчики своих пакетов пересоберут их с правильным алгоримом шифрованием

Однако, если вы готовы потратить дополнительные 1-2 часа на самостоятельную пересборку пакета, ниже ссылка как решить эту неприятность:

https://askubuntu.com/questions/764927/key-uses-weak-digest-algorithm

Или вот здесь как исправлять руками

sudo aptitude install git --with-recommends
mkdir build && cd build
git clone git://anonscm.debian.org/apt/apt.git && cd apt && git pull && ls
gedit methods/gpgv.cc

И исправьте этот раздел кода, который указан ниже:

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"},
};

Далее:

dpkg-buildpackage -b -uc -us -nc -rfakeroot
cd .. && rm -vf *dbg* *doc* *dev* && sudo dpkg -i *.deb
sudo apt update

Готово.