LINUX.ORG.RU

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

 , ,


1

3

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

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

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

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

★★
Ответ на: комментарий от pfg

В Gentoo проверка OpenPGP подписей встроена в emerge.

Прикладное использование gnupg в РФ.

Вася написал жалобу указав для ответа свой E-mail.

Чиновник Иванов Иван Иванович отправил ответ на E-mail Васи подписав его своей квалифицированной подписью.

Задача с помощью пакета gnupg проверить аутентичность и целостность полученного ответа.

Надо скачать по https с российским шифрованием ключи Минцифры (корень доверия в РФ), казначейств (удостоверяющий центр для всех чиновников в РФ) и чиновника Иванова Ивана Ивановича.

У меня https проверяется проксей на вирусы с полным MitM. Следовательно российское шифрование должна поддерживать системная библиотека ssl. В LibreSSL 3.9.0 поддержку ГОСТ удалили! Берём LibreSSL 3.8.4. Также ГОСТ держит текущая gnutls. А openssl требует левый плагин: https://github.com/gost-engine/engine Без поддержки ГОСТ шифрования в https всех нужных ключей не скачаете. Ещё наверно надо корневой CA сертификат РФ добавить, хотя бы временно, пока ключи не вытяните.

Ссылки неточные:

РФ приняла стандарт ключей X.509 (как у немцев). По этому работаем с утилитой gpgsm:

Импорт сертификатов и публичных ключей:

$ gpgsm --import file.cer

Проверка сертификата, корень минцифры:

$ gpgsm --verify file.cer

Проверка подписи на ответе чиновника Иванова Ивана Ивановича:

$ gpgsm --verify file.p7s file

Важны версии библиотек и в некоторых необходимо включить ГОСТ при сборке, при выполнении configure:

  • gnupg-2.4.5 - утилита gpgsm для работы с X.509
  • libgcrypt-1.11.0 - самая главная либа с крыптухой: (RFC 5830) / GOST R 34.12-2015 (Magma: RFC 8891 & Kuznyechik: RFC 7801); GOST R 34.11-94 / GOST 34.311-95, GOST R 34.11-2012 (Stribog) / RFC 6986; GOST R 34.10-2012 (RFC 7091)
  • libksba-1.6.7 - поддержка формата ключей X.509
  • =libressl-3.8.4 - поддержка ГОСТ в https

Чиновники заводят ключи в казначействе, юрлица в большинстве в налоговой. В каком УЦ завел свой ключ Вова? Как найти и скачать нужный публичный ключ Вовы? Алгоритм поиска если знаю E-mail и Ф.И.О. ?

У кого получилось с gpgsm:

  • Собрать систему с поддержкой ГОСТ крыптухи?
  • Получить по https и верифицировать публичные ключи X.509 и списки отозванных сертов CRL? Импортировать сертификаты?
  • Верифицировать ответ от чиновника?

Интересен положительный и отрицательный опыт работы gnupg, libressl, gnutls, openssl с российским шифрованием.

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

т.е. прикладной пример выложенного образа (да фуй с ним просто файла) с подтверждением через сеть доверия GPG. скачать и проверить «через три цепочки»…

Линус так каждый патч в ядро проверяет: https://git.kernel.org/pub/scm/docs/kernel/pgpkeys.git/tree/graphs

Можно построить цепочку до ключа Линуса, Грега: А как на деле воспользоваться web of trust? (комментарий) и проверь подпись архива ядра Linux.

До лета 2019 было все просто, сервера строили цепочки. Теперь сложно, сервера разделились по кучкам, связующие ключи полетели переполнив подписями…

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

Помните, OpenPGP очень ненавидят АНБ, КГБ, ФСБ и прочие *Б

Просто запретят передачу шифрованного контента через интернет и всё. Отправил то, что не расшифровывается - получил вызов в полицию (если вы не банк).

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

А как же права человека гарантированные Конституцией? Жалобы вышестоящему начальству и прокурору за нарушение Конституционных прав!

Статья 23

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

2. Каждый имеет право на тайну переписки, телефонных переговоров, почтовых, телеграфных и иных сообщений. Ограничение этого права допускается только на основании судебного решения.


Статья 29

1. Каждому гарантируется свобода мысли и слова.

2. Не допускаются пропаганда или агитация, возбуждающие социальную, расовую, национальную или религиозную ненависть и вражду. Запрещается пропаганда социального, расового, национального, религиозного или языкового превосходства.

3. Никто не может быть принужден к выражению своих мнений и убеждений или отказу от них.

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

5. Гарантируется свобода массовой информации. Цензура запрещается.


Статья 55

1. Перечисление в Конституции Российской Федерации основных прав и свобод не должно толковаться как отрицание или умаление других общепризнанных прав и свобод человека и гражданина.

2. В Российской Федерации не должны издаваться законы, отменяющие или умаляющие права и свободы человека и гражданина.

3. Права и свободы человека и гражданина могут быть ограничены федеральным законом только в той мере, в какой это необходимо в целях защиты основ конституционного строя, нравственности, здоровья, прав и законных интересов других лиц, обеспечения обороны страны и безопасности государства.


Статья 56

1. В условиях чрезвычайного положения для обеспечения безопасности граждан и защиты конституционного строя в соответствии с федеральным конституционным законом могут устанавливаться отдельные ограничения прав и свобод с указанием пределов и срока их действия.

2. Чрезвычайное положение на всей территории Российской Федерации и в ее отдельных местностях может вводиться при наличии обстоятельств и в порядке, установленных федеральным конституционным законом.

3. Не подлежат ограничению права и свободы, предусмотренные статьями 20, 21, 23 (часть 1), 24, 28, 34 (часть 1), 40 (часть 1), 46 — 54 Конституции Российской Федерации.
anonymous
()
Ответ на: комментарий от anonymous

Статья 23

  1. Каждый имеет право на тайну переписки

Статья 56

  1. В условиях чрезвычайного положения
  1. Не подлежат ограничению права и свободы, предусмотренные статьями … 23 (часть 1) (не часть 2) …

Осталось выяснить в каких условиях мы живем: ЧП или СВО, ой, не ЧП.

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

Переписывайся тайно, такое право никто не отбирает.

А про право шифровать в конституции ничего не сказано, никто тебе его не давал. И поэтому конкретно шифрование можно запретить,

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

Ограничение шифрования ограничивает тайну переписки.

не ограничивает, у вас остаются другие способы обеспечения тайны (физическая скрытность, например). Действуйте в рамках купленных вами прав. Станете банком - купите лицензию на шифрование. Не купили - не используйте.

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

В данном топике, речь больше не о шифровании, хотя оно тоже важное право каждого человека: https://openssl.org/ «We believe everyone should have access to security and privacy tools, whoever they are, wherever they are or whatever their personal beliefs are, as a fundamental human right.»

Речь идёт о Конституционных правах: «свободно искать, получать, передавать, производить и распространять информацию». Конкретно речь идёт о гарантиях аутентичности и целостности информации.

Вопрос топика, как верифицировать источник информации и гарантировать целостность полученной информации, если с информационным источником вы никогда лично не встречались.

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

купите лицензию на шифрование. Не купили - не используйте.

Ну ты и бЫЫЫЫЫдло.

Право на шифрование переписки, голосовых сообщений, видео звонков - сегодня в цифровую эпоху есть фундаментальным правом всех людей!

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

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

не ограничивает, у вас остаются другие способы обеспечения тайны (физическая скрытность, например)

Как физически скрыться - изчезнуть из физического мира?

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

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

Ты этого хочешь … ?

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

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

Если все будут интерпретировать как ты, то

будет так.

Поэтому надо наглядно показывать к чему приводят такие интерпретации.

А конституция - это всего лишь кодированное сообщение, которую каждый декодирует, как умеет.

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

Что должен знать специалист ИБ на старте (комментарий)

Это не у меня нет лицензии ФСБ. Мне не надо лицензии ФСБ ибо я не есть разработчиком, распространителем, продавцом ПО или услуг в области крыптографии.

Мне даже шифрования не надо. И сертификата ФСБ тоже.

Что мне лично надо, хотелка:

  1. Воспроизводимую бит в бит систему собираемую с исходных текстов пакетов программ.
  2. Все используемые пакеты программ должны быть с верифицированных по публичному ключу источников с проверкой целостности пакетов хешем.
  3. Все используемые, для верификации ПО, публичные ключи должны иметь несколько цепочек доверия от моего личного ключа.
anonymous
()
Ответ на: комментарий от thegoldone

ПО без сертификата ФСБ.

Прошу модераторов не сносить весь топик из-за этого поста. Не нравится удалите только этот пост.

С этим в сообществе большая проблема, которая может быть решена только изменением политики государства и реорганизации ФСБ.

Сегодня разработкой в области безопасного ПО и шифрования можно заниматься только получив лицензию ФСБ на эти виды деятельности. Лицензирование, лицензия и необходимые мероприятия на соответствие требованиям ФСБ стоят больших денег.

После разработки ПО в области безопасности и крыптографии должно быть сертифицировано ФСБ. Это тоже не бесплатно, но легче чем лицензирование.

В общем затраты на лицензирование и сертификацию ФСБ делают невозможным создание в РФ бесплатно распространяемого ПО.

Предлагал и предлагаю:

  1. Изменить ФЗ N99 «О лицензировании отдельных видов деятельности» висключив требование лицензирования для разработки ПО.
  2. Сотрудников ФСБ с лицензирования перевести на консультации по сертификации и саму сертификацию ПО.

Тогда на сертификацию у ФСБ пары библиотек для крыптографии можно на собирать денег сообществом.

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

В X509, HTTPS есть корневые серты CA распространяемые с OS или браузерами для построения цепочек доверия от них к ключам сайтов. Любой, из более чем 100 владельцев корневых CA может сделать вам MitM!!!

  1. Ну и что? Между «может» и «сделает» разница такого масштаба, что «может» превращается в «не может», и вероятность такого MitMa примерно равна нулю.

  2. Чтобы цепочка заработала, надо что бы два (прописью - два) участника в ней участвовали - корневой удостоверяющий центр И какой-либо посредник по сети на пути передачи к оконечной точке.

Это сводит практическую вероятность такого MitM’a в область отрицательных чисел.

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

У Вас ПО без сертификата ФСБ.

Для личного/частного использования сертификат не нужен. Лично (внутри организации) можешь чем угодно проверять подпись налоговой, шифровать внутренние документы и тп.

А вот заблокировать распространение несертифицированных криптографических (опенсорс) библиотек/средств могут.

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

Любой из более 100 владельцев корневых CA сертификатов может сделать вам MitM. Веришь в их непорочность? У скольки из них ключ украли? А у скольких вынудили отдать ключ? Верил в непорочность тех кто украл или вынудил отдать ключ?

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

Нет. В случае цепочек доверия между ключами OpenPGP личная встреча не нужна.

  • Вопрос доверия узлам в цепочке открыт.
  • Открыт вопрос отзыва доверия скомпроментированным узлам.
thegoldone ★★
()
Ответ на: комментарий от thegoldone

В документации по ссылкам на эти вопросы ответ дан. Базу доверия каждый в OpenPGP ведёт сам. Есть 4 уровня доверия. Если известно, что Васян подписывает все что ему подсовывают, то уровень доверия к его ключу надо в своей базе выставить none. Ключу можно относительно доверять если к нему есть более трёх цепочек доверия.

По поводу сертификации криптографических библиотек, желательно у ФСБ получить сертификаты на ядро Linux, openssl, gnutls, libgcrypt, (nss). Это надо делать через наши дистрибутивы которые имеют лицензии от ФСБ, например возможно: Астра, Альт, Роса, Редос, … сертификат получит определенная библиотека.

Настораживает обратный процесс, с LibreSSL в версии 3.9 выкинули всю российскую криптографию. В LibreSSL-3.8.4 ГОСТ поддерживался нормально.

Примеры сертифицированных библиотек:

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

В документации по ссылкам на эти вопросы ответ дан. Базу доверия каждый в OpenPGP ведёт сам.

Можно использовать иерархично-сетевую схему. Где у поставщика не один сертификат, а несколько. От разных удостоверяющих центров. Тогда злой умысел одного УЦ не будет играть решающей роли.

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

В OpenPGP формально нет УЦ. Каждый участник сам для себя выступает в роли УЦ: подписывает верифицированные ключи и выставляет им свои уровни доверия. В этом сложность использования.

В прошлом, на практике использования криптографии с открытым/закрытым ключом, доказано, что любая централизация вредна. На УЦ, один или несколько, надавят и они подпишут что надо, или отдадут свой ключ кому надо.

Децентрализованная схема где каждый участник есть УЦ и на 100% верит только себе на практике оказалась самой живучей к разным атакам. В OpenPGP ключи могут быть вечны, подписи ключей и просроченные, отозванные ключи хранятся вечно. Это даст возможность верификации ПО в будущем. Но вечность всех действий также сохраняет навечно все атаки на OpenPGP. Атак уже было совершено много. По этому сегодня надо более трёх цепочек доверия к ключу, для некого уровня доверия к нему.

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

У поставщиков все хорошо, они поставляют:

Других подписей и другой альтернативы не имеется.

Единственная возможность верификации подписей это сеть доверия OpenPGP.

Юридически в РФ УЦ должен подписать подпись поставщика, что в общем нереально:

Федеральный закон "Об электронной подписи" от 06.04.2011 N 63-ФЗ 

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

1. Электронные подписи, созданные в соответствии с нормами права иностранного государства и международными стандартами, в Российской Федерации признаются электронными подписями того вида, признакам которого они соответствуют на основании настоящего Федерального закона, с учетом частей 3 и 4 настоящей статьи.

(в ред. Федеральных законов от 27.12.2019 N 476-ФЗ, от 04.08.2023 N 457-ФЗ)

(см. текст в предыдущей редакции)

2. Электронная подпись и подписанный ею электронный документ не могут считаться не имеющими юридической силы только на том основании, что сертификат ключа проверки электронной подписи выдан в соответствии с нормами иностранного права.

3. Признание электронных подписей, созданных в соответствии с нормами права иностранного государства и международными стандартами, соответствующими признакам усиленной электронной подписи, и их применение в правоотношениях в соответствии с законодательством Российской Федерации осуществляются в случаях, установленных международными договорами Российской Федерации. Такие электронные подписи признаются действительными в случае подтверждения соответствия их требованиям указанных международных договоров аккредитованной доверенной третьей стороной, аккредитованным удостоверяющим центром, иным лицом, уполномоченными на это международным договором Российской Федерации, с учетом настоящего Федерального закона.

(часть 3 введена Федеральным законом от 27.12.2019 N 476-ФЗ)

4. При отсутствии международного договора Российской Федерации, указанного в части 3 настоящей статьи, электронные подписи, созданные в соответствии с нормами права иностранного государства и международными стандартами, могут применяться в правоотношениях между участниками электронного взаимодействия на основании соглашения между такими участниками. В таком случае электронные подписи признаются действительными при применении их в правоотношениях между участниками электронного взаимодействия, являющимися сторонами соглашения, при условии подтверждения аккредитованной доверенной третьей стороной, или аккредитованным удостоверяющим центром, или иными лицами, уполномоченными сторонами указанного соглашения, соответствия электронных подписей требованиям указанного соглашения. В случаях, если электронное взаимодействие осуществляется с использованием информационных систем, операторами и (или) владельцами которых являются государственные органы, органы местного самоуправления, Центральный банк Российской Федерации, положения настоящей части не применяются, если иное не предусмотрено федеральным законом.

(часть 4 введена Федеральным законом от 04.08.2023 N 457-ФЗ)

Понятия «сети доверия» в РФ отсутствует или ненашол?

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

В OpenPGP формально нет УЦ. Каждый участник сам для себя выступает в роли УЦ: подписывает верифицированные ключи и выставляет им свои уровни доверия. В этом сложность использования.

Имеется ввиду, что если я, по идее PGP, должен считать доверенными три цепочки. То и трём УЦ почему бы и не доверять. При этом пользоваться удобно, и данные всегда актуальны. В отличии от PGP.

Видел сравнение схемы с одним УЦ. Сравнения с N УЦ не видел.

На УЦ, один или несколько, надавят и они подпишут что надо, или отдадут свой ключ кому надо.

УЦ из разных юрисдикций. Только международным террористам стоит переживать о том, что им устроят группового человека посередине в таком случае. Достаточно не взрывать небоскрёбы, наверное.

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

OpenPGP не должен три цепочки считать. Атак на OpenPGP было столько, что сегодня Вася должен построить более трёх цепочек, чтобы хоть чуточку верить ключу.

Три подписки в три УЦ нести глупость.

  • Имеет смысл одну подпись подписать в большого множества разных лиц (а на три УЦ можно надавить).
  • Имеет смысл на один пакет с релизом накладывать несколько подписей с разных юрисдикций, например gnupg подписывается с Германии и Японии.

ЗЫ: с тем как тебе страшно жить в мире где самолёты таранят небоскребы и взрываются: машины, самокаты, статуэтки, пейсджеры иди в толксы.

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

По HTTPS.

Не путай грешное с праведным:

  • WWW(https), rsync, torrent, git - транспортные средства для получения информации.
  • OpenPGP - независимое от транспорта средство аутентификации источника информации и проверки ее целостности.

Не имеет значения с какого не доверительного канала связи вы получили пакет программы и его подпись. Вы проверяете аутентичность подписи и целостность пакета программы по имеющемуся у вас публичному ключу верифицированному через сеть доверия OpenPGP.

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

Вася должен построить более трёх цепочек, чтобы хоть чуточку верить ключу.

У Васи ноль, или чуть больше знакомых, которым он может реально доверять. Как ему построить более трёх цепочек?

Имеет смысл одну подпись подписать в большого множества разных лиц.

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

а на три УЦ можно надавить

УЦ – это эфемерная субстанция. УЦ – это группа лиц. Юридическое лицо. С проверками от компетентных лиц.

Если таких УЦ три. То и давить на них должны три независимые стороны. А перед этим они ещё должны договориться между собой.

Ну пусть будет не три, а четыре УЦ. Пять. Шесть. РФ, Китай, США, Северная Корея, Иран, Папуа Новая Гвинея. В мире существует группа лиц способная надавить на все эти 6 УЦ, чтобы прочитать переписку пятиклассников? Если такая сила есть, то Вас никакой PGP не защитит, уж поверьте.

ЗЫ: с тем как тебе страшно жить в мире где самолёты таранят небоскребы и взрываются: машины, самокаты, статуэтки, пейсджеры иди в толксы.

Если Вы взрываете небоскрёбы, то Ваше вычисление по IP становится делом многих юрисдикций.

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

WWW(https), rsync, torrent, git - транспортные средства для получения информации. OpenPGP - независимое от транспорта средство аутентификации источника информации и проверки ее целостности.

Если можно надавить на УЦ. То можно надавить на поставщика. И он просто подпишет пакет с тем, что ему скажут. Это проще, чем давить на УЦ и устраивать человека посередине.

thegoldone ★★
()

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

В такой формулировке - верно.

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

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

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

Исторически, к УЦ и CA сертификатам еще меньше доверия чем к OpenPGP. OpenPGP сегодня активно и безальтернативно используется, примеры выше приводил: Проверка подлинности ПО (комментарий)

Проще, как в Минесоте, подписать патч с бекдором и закомитить в …

Пример как OpenPGP может выловить отжатый проект: Отдельный аспект ситуации с внедрением бэкдора в xz (комментарий)

Цифровая подпись не гарантирует отсутствие вирусов. Подпись вирусов используют для того чтобы антивирусник добавили вирус в свои белые списки:

Есть подпись, хоть знаешь кто конкретно виноват.

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

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

Главное, хотя бы защитить ключи разработчиков которые подписывают патчи и пакеты релизов. Есть спонсорские программы. Спонсор заключает договор с производителем аппаратной защиты ключей и оплачивает ему аппаратные хранилища ключей определенных разработчиков (по домену E-mail или спискам E-mail) с доставкой по выбору разраба. Разработчики обращаются напрямую к производителю аппаратных хранилищ ключей и, бесплатно, договариваются о получении аппаратного хранилища.

Для остальных как минимум:

chmod go-rwxst /home/$USER
mount -o remount,hidepids=2
# в конфиге ядра:
# CONFIG_SECURITY_YAMA = y
echo '3' > /proc/sys/kernel/yama
anonymous
()