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
()
Ответ на: комментарий от anonymous

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

http://git.altlinux.org/gears/a/alt-gpgkeys.git
296D6F29A020808E8717A8842DB5BD89A340AEB7
3F07F25C98B6714D8809C8DFDE504C15D098D624

https://git.archlinux.org/archlinux-keyring.git
BD84DE71F493DF6814B0167254EDC91609BC9183

https://gitlab.com/ARCHLabs/archlabs_repo/raw/master/x86_64/archlabs-keyring-2019.10.06-1-x86_64.pkg.tar.xz
https://gitlab.com/ARCHLabs/archlabs_repo/raw/master/x86_64/archlabs-keyring-2019.10.06-1-x86_64.pkg.tar.xz.sig
9E4F11C6A072942A7B3FD3B0B81EB14A09A25EB0

https://github.com/artix-linux/artix-keyring.git
A55C3F1BA61CAA63036D82BAFA91071797BEEEC2

https://github.com/BlackArch/blackarch-keyring.git

https://github.com/BunsenLabs/bunsen-keyring.git

https://chromium.googlesource.com/chromiumos/platform/release-keys

rsync://keyring.debian.org:873/keyrings
60B3093D96108E5CB97142EFE2F63B4353F45989
https://packages.gentoo.org/packages/app-crypt/debian-archive-keyring

https://github.com/xsuchy/distribution-gpg-keys.git

https://github.com/endlessm/eos-keyring.git

https://github.com/finnix/finnix-keyring-pkg.git

https://gitlab.com/kalilinux/packages/kali-archive-keyring.git
3E4FB7117877F589DBCF06D6E619045DF2AC729A
D7CDB78351109E12752EC6D203881DABEBC29AB9
https://packages.gentoo.org/packages/app-crypt/kali-archive-keyring

https://git.kernel.org/pub/scm/docs/kernel/pgpkeys.git

https://github.com/netrunner-kubuntu-legacy/netrunner-keyring.git

https://source.puri.sm/pureos/core/pureos-archive-keyring.git
D33A3F0CA16B0ACC51A60738494C8A5FBF4DECEB

https://github.com/QubesOS/qubes-secpack.git
427F11FD0FAA4B080123F01CDDFA1A3E36879494
2D1771FE4D767EDC76B089FAD655A4F21830E06A

https://packages.gentoo.org/packages/app-crypt/ubuntu-keyring

Если у кого есть новые ссылки на git репозитории с ключами разрабов СПО можете здесь поделится. Особенно ценны репозитории git заверенные ключом OpenPGP, вместе с ссылками публикуйте их отпечатки.

anonymous
()

подпись инсталяционных образов ключами c PKI ?? прикольно, но не видел.
но тут как обычно всего лишь сдвиг токи зрения: с доверия источников на доверие PKI :)

мне хватает доверия в виде торрент-файла образа дебиана, взятого с оф.сайта.
тут тебе аккурат «все в одном»: и скачивание в кучу потоков и докачка если обрыв и хеш-подтверждение скачанного для доверия.

pfg ★★★★★
()