Проверка GPG относительно пакетов на различных дистрибутивах

Это обычно просто C. Команды ls и pwd произойдите из GNU Coreutils пакет в (большинство?) Дистрибутивы Linux (и возможно некоторые другие системы). Можно найти код их домашней страницы.

Для coreutils а именно, Вы создаете их с обычными шагами: после распаковки источника, проблемы:

./configure --prefix=/some/path
                   # type ./configure --help to get the available options
make
make install       # could require root access depending on the path you used

Будьте осторожны - устанавливающий основные утилиты как те, которые по копии Вашего распределения их, плохая идея. Используйте любой диспетчер пакетов, с которым Ваша система идет для этого. Можно установить на другом префиксе хотя (устанавливающий где-нибудь в корневой каталог хорошая идея, если Вы хотите экспериментировать).

Обратите внимание на это, хотя существует a cd исполняемый файл, cd Вы будете использовать при большинстве обстоятельств, не отдельный исполняемый файл. Это должна быть сборка оболочки - в (иначе, это не могло изменить текущий каталог оболочки - это должно быть сделано самим процессом), таким образом, это записано на том же языке как оболочка (который часто является C также).

Другие примеры:

  • OpenSolaris pwd источник.
  • FreeBSD ls

Можно найти намного больше из них онлайн.

2
01.04.2011, 02:01
2 ответа

Если только сервер, содержащий пакеты, поставлен под угрозу, а не частный ключ подписи, нет очень, чтобы сделать. Старый ключ остается допустимым, и пакеты, измененные взломщиком, будут обнаружены как таковые. Я предполагаю, что Ваш вопрос - то, что происходит, если ключ подписи поставлен под угрозу.

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

Когда люди начнут получать пакеты, подписанные с новым ключом, они получат сообщение об ошибке, говоря им, что пакеты не подписаны. Это, надо надеяться, запросит их в запрос, что происходит и пытается получить новый ключ.

О компромиссе также объявят в списках рассылки безопасности и в различных каналах отраслевых новостей. Таким образом, если Вы будете следовать за ними, то Вы получите уведомление. Конечно, необходимо опасаться их также: взломщик мог бы поставить под угрозу сервер списка или учетную запись разработчика и отправить поддельное ключевое предупреждение компромисса с новым открытым ключом, который является на самом деле для его собственного закрытого ключа.

Нет никакого чудодейственного средства для распределения нового ключа. Вам нужен доверяемый канал, чтобы распределить ключ во-первых или более точно установить доверие новому ключу. Это точно столь же трудно как устанавливающий доверие старому ключу. (Другими словами, большинство людей получит его от веб-сайта HTTP или от неподписанного образа CD.) Можно получить новый ключ от веб-сайта HTTPS, если Вы полагаете, что веб-сайт (и CA, который сделал сертификат сайта и браузер, который Вы используете и его доверяемая основа!) не был поставлен под угрозу. Или если Вы знаете и доверяете кому-то, у кого есть ключ, можно попросить у них его.


Обратите внимание, что выше, я использую “пакет” в свободном смысле, принимая простую модель, где пакеты непосредственно подписываются с ключом подписи распределения. На самом деле, в некоторых дистрибутивах (например, все те, которые используют APT), то, что подписывается, является файлами, содержащими список криптографических контрольных сумм пакетов, и существует двухэтапный процесс, посредством чего установщик проверяет, что пакет имеет ожидаемую контрольную сумму, и что список имеет контрольную сигнатуру. Принцип является тем же: взломщик, который поставил под угрозу ключ, введет и злонамеренные пакеты и перечислит файлы с контрольными суммами для злонамеренных пакетов, подписанных с поставленным под угрозу ключом. Разрешение требует восстановления и файлы списка и пакеты.

3
27.01.2020, 22:07
  • 1
    Это может стоить дифференцировать между тем, как склонный и друзья делает это, и как об/мин делает это. Кв. подписывает файлы версии, и об/мин подписывает фактические пакеты. Различие означает, что векторы потенциальной атаки отличались бы. –  Faheem Mitha 01.04.2011, 00:19
  • 2
    Debian, по крайней мере, распределяет архив, вводит пакет, а именно, debian-archive-keyring, который покрыт старым ключом. Как я отметил выше, Debian на самом деле не подписывает отдельные пакеты. –  Faheem Mitha 01.04.2011, 00:23
  • 3
    @FaheemMitha: Действительно, векторы атаки отличаются, но реакции дистрибьютора и пользователя были бы подобны, который является, почему я сознательно не имел значения. Но Вы правы, я должен быть более явным. –  Gilles 'SO- stop being evil' 01.04.2011, 00:25
  • 4
    да, извините! я хотел сказать: "что происходит, если ключ подписи поставлен под угрозу":\ –  LanceBaynes 01.04.2011, 01:33
  • 5
    @johnny8888: Когда Вы понимаете, что Ваш вопрос неясен, пойдите и улучшите его. Например, здесь, отредактируйте свой вопрос и сделайте его явным, что Вы волнуетесь по поводу компромисса ключа подписи. И как более общий вопрос, попытайтесь сделать свои вопросы более читаемыми. Даже если Ваш родной язык не является английским (ни один не является моим, между прочим), конечно, можно добиться большего успеха. Даже крошечные вещи справка: например, запустите каждое предложение с прописной буквы. –  Gilles 'SO- stop being evil' 01.04.2011, 01:45

Стандартный процесс для предоставления нового "авторитетного" ключа через пакет, который подписывается со старым ключом. Если Вы доверяете старому ключу (и Вы доверяете GPG), затем, новый распределяется в пакете, подписанном со старым. Теперь, можно начать использовать новый.

Пакеты могут быть, держатся небезопасный сервер, поскольку каждый пакет будет проверен на корректную подпись.

Проблема происходит, только упаковочный закрытый ключ, поставлен под угрозу. Т.е. главный ключ, которые подписывают все пакеты. (Debian SecureApt, Ubuntu SecureApt, Fedora). Если бы это было бы происходить однажды, то это было бы действительно ужасно.

0
27.01.2020, 22:07
  • 1
    Ваш ответ очень сбивает с толку, который особенно плох, так как он говорит о безопасности. Если старый ключ поставлен под угрозу, Вы не можете использовать его никаким полезным способом подписать новый ключ! –  Gilles 'SO- stop being evil' 31.03.2011, 23:01
  • 2
    @Gilles: где Вы видели в вопросе, что старый ключ поставлен под угрозу? –  shellholic 31.03.2011, 23:23
  • 3
    Вопрос ясно не записан, автор вопроса не различает компромисс сервера пакета и компромисс сервера подписания. Но если бы “им нужен новый gpg ключ”, это было бы, потому что ключ поставлен под угрозу. –  Gilles 'SO- stop being evil' 31.03.2011, 23:25
  • 4
    @Gilles: он пишет о сервере, которые содержат пакеты, не сервер, которые удерживают закрытую клавишу. Я надеюсь, что он записал бы, что закрытый ключ был поставлен под угрозу прежде, чем искать о потенциально измененных пакетах. Но да, если закрытый ключ был поставлен под угрозу, это - грандиозное предприятие, но не соглашение, которое я могу дешифровать от этого вопроса. –  shellholic 31.03.2011, 23:33

Теги

Похожие вопросы