Я хочу добавить опцию к pam, и я полагал, что хорошая начальная точка должна была загрузить libpam-modules
источник. На загрузке я замечаю это предупреждение: gpgv: Can't check signature: public key not found
Что является официальным методом для проверки целостности исходных пакетов, когда apt-get
не может найти открытый ключ?
Новейшая версия ubuntu-keyring
и debian-keyring
пакеты уже установлены.
Существуют способы найти соответствующий открытый ключ и установить его. Однако это сам по себе не обеспечивает целостность, потому что в действительности она доверяет содержанию dsc
файл, чтобы сказать мне, который открытый ключ использовать для проверки подписи на dsc
файл.
gpg подпись на dsc
зарегистрировать критическую часть проверки целостности? Мог человек в середине или зеркале помады служит злонамеренной версии файла, где предупреждение от gpg является единственным признаком, что-то плохо происходит? Или делает apt-get
имеют другие средства проверки целостности?
Где я нашел бы официальную документацию относительно модели обеспечения безопасности? Идеально я хотел бы понять весь доверительный путь от изображения установки до исходного пакета, который я загружаю.
Полный вывод от загрузки был этим:
$ apt-get source libpam-modules
Reading package lists... Done
Building dependency tree
Reading state information... Done
Picking 'pam' as source package instead of 'libpam-modules'
NOTICE: 'pam' packaging is maintained in the 'Bzr' version control system at:
https://code.launchpad.net/~ubuntu-core-dev/pam/ubuntu
Please use:
bzr branch https://code.launchpad.net/~ubuntu-core-dev/pam/ubuntu
to retrieve the latest (possibly unreleased) updates to the package.
Need to get 2,043 kB of source archives.
Get:1 http://dk.archive.ubuntu.com/ubuntu/ trusty/main pam 1.1.8-1ubuntu2 (dsc) [2,510 B]
Get:2 http://dk.archive.ubuntu.com/ubuntu/ trusty/main pam 1.1.8-1ubuntu2 (tar) [1,893 kB]
Get:3 http://dk.archive.ubuntu.com/ubuntu/ trusty/main pam 1.1.8-1ubuntu2 (diff) [147 kB]
Fetched 2,043 kB in 6s (316 kB/s)
gpgv: Signature made Fri 31 Jan 2014 11:12:23 PM CET using RSA key ID 64792D67
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./pam_1.1.8-1ubuntu2.dsc
Целостность исходного пакета может быть проверена, не проверяя gpg подпись на dsc
файл.
Каждый источник установки имеет пару названных файлов Release
и Release.gpg
. Эти два файла являются корнем хэш-дерева, которое может использоваться для проверки целостности всего в архиве. gpg подпись на Release
единственный, который должен быть проверен.
Подпись на dsc
файл может служить важной цели, прежде чем файл будет помещен в репозиторий и косвенно подписан через Release.gpg
. После того как файл находится в репозитории, подписи на dsc
файл может быть проигнорирован.
Вот то, как я мог вручную проверить целостность. Насколько я могу сказать, apt-get source
делает ту же проверку.
http://dk.archive.ubuntu.com/ubuntu/dists/trusty/Release
и http://dk.archive.ubuntu.com/ubuntu/dists/trusty/Release.gpg
.gpg --keyring /etc/apt/trusted.gpg --verify Release.gpg Release
(Открытый ключ может также быть найден в /usr/share/keyrings/ubuntu-archive-keyring.gpg
)http://dk.archive.ubuntu.com/ubuntu/dists/trusty/main/source/Sources.gz
sha256sum Sources.gz
и grep main/source/Sources.gz Release
sha256sum pam_1.1.8-1ubuntu2.dsc
и zcat Sources.gz | grep pam_1.1.8-1ubuntu2.dsc
dsc
файл: cat pam_1.1.8-1ubuntu2.dsc | sed -e 's/^ //;s/ [1-9][0-9]* / /' | sha256sum -c
Причина Вы видите, что предупреждение состоит в том, потому что исходные пакеты подписываются собственным ключом разработчика, в то время как двоичные пакеты Вы добираетесь от repo, подписывается repo ключом подписи. С тех пор ubuntu-keyring
только дает брелок для ключей финала repo (debian-keyring
, на самом деле также обеспечивает открытые ключи всех его специалистов по обслуживанию), apt
не может найти ключ и считает пакет неаутентифицируемым.
Поэтому решение здесь состоит в том, чтобы импортировать ключ из keyserver. Можно также искать, исходный пакет на Панели запуска (pam
здесь ), нажмите на адрес электронной почты человека, который внес последнее изменение для пакета, и проверьте ключевой цифровой отпечаток оттуда.
В этом случае, последний человек, который изменит пакет, был StГ©phane Graber, и это именно так происходит, что его ключ находится в debian-keyring
(а именно, в /usr/share/keyrings/debian-maintainers.gpg
). Можно установить debian-keyring
пакет, экспортировать его ключ из того брелока для ключей, и импорт, что ключ в собственный брелок для ключей так, чтобы apt
мог проверить, что это правильно подписывается.