1

Я читал о том, почему шифрование обычно не используется в сетевых операциях apt-get. И узнал, что проверяет подпись данных, которые поступают из репо, верно?

Но теперь, как происходит эта проверка? Как это сделать, чтобы быть действительно безопасным? Например, если файл и ключ находятся на сервере и отправляются в незашифрованном виде, как это будет работать? Кто-то может изменить оба ...

Спасибо :)

1 ответ1

6

В корне репозитория apt находится файл Release , который содержит хэши различных файлов Contents , Release и Packages . Файлы Packages в свою очередь, содержат хеши отдельных файлов пакетов .deb . На том же месте, что и корневой файл Release есть файл Release.gpg который содержит GPG цифровой подпись файла Release сделанную с помощью закрытого ключа , принадлежащего репозиториев сопровождающих.

Когда apt-get загружает файл Release для репозитория, он автоматически пытается проверить цифровую подпись. Если открытый ключ из пары ключей, с которой была сделана подпись, не зарегистрирован в вашей системе, вам будет предложено утвердить его; на этом этапе вы можете связаться с сопровождающими хранилища или третьей стороной, чтобы проверить подлинность открытого ключа путем сравнения отпечатков пальцев (или, если у вас есть подлинная копия открытого ключа, вы можете добавить ее с помощью apt-key перед запуском apt-get .) После этого любые файлы, которые apt-get загружает из репозитория, будут проверяться по их контрольным суммам в файлах Release или Packages .

Хэши в файлах Release и Packages являются обычной функцией целостности данных apt. Добавление подписи GPG является частью того, что Debian называет SecureApt (см. Эту ссылку для более подробной информации).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .