LINUX.ORG.RU

Проверка подлинности ПО

 , ,


1

3

При получении дистрибутиов ПО, часто предлагается проверить целостность с помощью хэш-суммы и подлинность с помощью подписи.

По поводу целостности вопросов нет.

Вопрос по поводу подлинности: верно понимаю, что проверка с помощью pub-ключа, полученного из того же источника, что и данные, имеет смыслом только самоуспокоение? Или какой-нибудь профит всё таки есть?

Как, например, лоровец проверяет (если проверяет) подлинность установочных образов Debian?

★★

Вопрос по поводу подлинности: верно понимаю, что проверка с помощью pub-ключа, полученного из того же источника, что и данные, имеет смыслом только самоуспокоение? Или какой-нибудь профит всё таки есть?

Хеш можно подсунуть. Сиг нет.

Как, например, лоровец проверяет (если проверяет) подлинность установочных образов Debian?

Побитно.

anonymous
()

pub-ключа, полученного из того же источника

Можно получить из разных (довереннных?) источников, сравнить, и принять решение, стоит ли доверять одинаковым (разным?) ключам.

anonymous
()
Ответ на: комментарий от anonymous

Можно получить из разных (довереннных?) источников, сравнить, и принять решение, стоит ли доверять одинаковым (разным?) ключам.

А можно просто получить у того, кто подписал. Привом.

anonymous
()
Ответ на: комментарий от anonymous

получить у того, кто подписал.

Он принадлежит множеству «разных источников».

Привом.

Можно ли доверять такому каналу передачи? Надеюсь при передаче не использовались вещества изменяющие сознание (прокисший смузи)?

anonymous
()
Ответ на: комментарий от anonymous

Договориться встретиться в условленном месте. При встрече вести себя как старые друзья, зайти в кафе и общаться на отвлеченные темы. Вечером погулять по городу, посмотреть достопримечательности. Ночью закрыть занавесками/жалюзи окна и выключить свет. Лечь в одну постель, накрыться одеялом. Самое время обменяться хэшем. Шептать на ухо плохой вариант - могут подслушать. Не следует использовать ручку - ее могли подменить. Лучший вариант - передающий должен по памяти чертить пальцами по коже принимающего символы, принимающий должен их запоминать.

Leupold_cat ★★★★★
()
Ответ на: комментарий от anonymous

Ну зачем же.

Есть же инфрастуктура ключей от openpgp.

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

Так же там можно и цепочки доверия реализовывать.

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

guyvernk
()
Ответ на: комментарий от Leupold_cat

Зачем делиться чем-то личным в интимной обстановке? Это уже небезопасно, можно подхватить кокошниковирус. Лучше делится со всеми своим показным счастьем, чем больше людей знает о твоём счастье, тем лучше.

anonymous
()

верно понимаю, что проверка с помощью pub-ключа, полученного из того же источника, что и данные, имеет смыслом только самоуспокоение?

Неверно. Если источник доверенный, то дынным есть доверие и без подписи.

Если источник не доверенный, то доверия публичному ключу нету. И проверять им подпись не имеет смысла. Самоуспокоение в данном случае наступать не должно. Должен наступать поиск доверенного источника публичного ключа.

thegoldone ★★
()
Последнее исправление: thegoldone (всего исправлений: 2)
Ответ на: комментарий от thegoldone

доверия публичному ключу нету

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

Стабильность.

anonymous
()

Вопрос по поводу подлинности: верно понимаю, что проверка с помощью pub-ключа, полученного из того же источника, что и данные, имеет смыслом только самоуспокоение? Или какой-нибудь профит всё таки есть?

Не знаю, как сейчас, а раньше, чтобы не нагружать в холостцую процессор, большие файлы передавали по незашифрованным соединениям. Если качать образ, например, по http, а ключ по https, то профит, очевидно, есть.

annulen ★★★★★
()
Ответ на: комментарий от guyvernk

Есть же инфрастуктура ключей от openpgp

Понимаю, что вопрос не к вам, но почему разработчики так редко публикуют туда ссылки? Например, на вскидку увиденного за последние 2 дня: Raspberry Pi OS, Debian, GNU Guix, XZ Utils и сам GnuPG — у всех в руководствах по проверке ссылки на пабы ведут на свои же ресурсы, а часто на то же место, где и данные.

Evenik ★★
() автор топика
Ответ на: комментарий от thegoldone

Можно использовать два недоверенных источника из разных юрисдикций. Если ключ с американского сервера, а образ с Яндекса, то шанс, что оба будут подменены и подменены одним и тем же лицом (чтобы совпал ключ и образ) ниже. Аналогично можно качать через разных провайдеров, разные VPN и т. д. Суть даже не в том, чтобы ключ не подменили, а в том чтобы не подменили одинаковым образом.

Плюс можно мониторить изменения ключа. Образы скачиваются многократно (так как они обновляются, так как они много весят и их может быть накладно хранить), а ключ можно хранить долго.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 2)
Ответ на: комментарий от KivApple

Можно использовать два недоверенных источника из разных юрисдикций.

Усложнить себе жизнь, не получив гарантий.

Поставщик, который что-то там подписывает, и предоставляет публичный ключ. И способ его получения. Это его работа. Иначе все его подписи не стоят и выеденного яйца.

Если он этого не делает, то нужно к нему обратиться. Пусть делает. Либо сменить поставщика.

thegoldone ★★
()
Ответ на: комментарий от Evenik

Это так и делается. Просто поставщик предоставляет данные и публичные ключи. Но, возможно, проще получать данные (не ключи) с зеркал. По скорости. На зеркалах данные берутся из доверенного источника. У поставщика. Но зеркалу доверия нету. Подпись даёт это доверие.

thegoldone ★★
()

Тебе подлинность ПО или дистрибутива ОС? Это большая разница, тот же дебиан вообще грузит пакеты по http и все окей, в случае не соответствия контрольной суммы ругается и не ставит пакет, проверял лично лет 15 назад, когда доморощенный админ блочил урл включающий слово proxy.

einhander ★★★★★
()

OpenPGP это когда каждый сам себе удостоверяющий центр. OpenPGP это не быстро, а многолетний кропотливый труд. Начать никогда не поздно, но лучше со школы. Помните, OpenPGP очень ненавидят АНБ, КГБ, ФСБ и прочие *Б. OpenPGP полная противоположность анонимности, для работы вам необходимо верифицировать людей по фотографии в паспорте, проверять их Ф.И.О. и E-mail. Чтобы OpenPGP заработал:

  1. Приобрести аппаратное хранилище ключей: nitrokey или solokey.
  2. Прочесть документацию о использовании OpenPGP. Общую и практику в дистрибутивах: ALTLinux, Arch, … https://www.opennet.ru/docs/RUS/pgupg/index.html https://www.opennet.ru/docs/RUS/gph/index.html https://www.altlinux.org/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D0%BC%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B0
  3. Создать свою пару приватного и публичного ключа.
  4. Сбекапить приватные ключи paperkey.
  5. Записать приватные ключи в аппаратное хранилище и уничтожить с помощью shred их копии на компьютере.
  6. Подписать своим приватным ключом публичные ключи своих одноклассников, однокурсников, сотрудников которых ты долго и очень хорошо знаешь. Проверять по паспорту: фотографию, Ф.И.О, верифицировать E-mail.
  7. Залить свои подписи публичных ключей верифицированных знакомых на публичные сервера ключей OpenPGP.
gpg --list-keys --with-sig-check
gpg --check-trustdb

Через пару лет твоей кропотливой работы как удостоверяющего центра (подписи публичных ключей хорошо знакомых и верифицированных по паспорту) получатся цепочки доверия к другим публичным ключам, людей которых ты никогда не видел. Если к ключу есть больше трёх цепочек доверия его можно считать относительно надёжно верифицированным и можно относительно доверять.

Пример цепочек доверия: https://git.kernel.org/pub/scm/docs/kernel/pgpkeys.git/tree/graphs

Можно по началу срезать углы и принять за доверительные ключи разрабов распространяемые с вашим дистрибутивом:

anonymous
()
Ответ на: комментарий от anonymous

Идея взять на поиграться ключи OpenPGP с вашего дистрибутива не самая плохая.

Для экспериментов такого рода лучше создать отдельного пользователя и перед каждым действием бекапить каталог .gnupg

Можно рекурсивно докачать с серверов ключей публичные ключи подписей ключей с вывода gpg --list-keys --with-sig-check и построить у себя цепочки доверия к интересующим вас ключам.

Самое главное:

  1. Не засоряйте десятками тысяч ключей своего пользователя, создайте тестового.
  2. Не загружаете ваши тестовые подписи ключей с дистрибутивов на сервера ключей!!!
anonymous
()