[devel] Взгляд на сертификаты в /usr/share/ca-certificates/ca-bundle.crt и сертификаты УЦ РФ
Vitaly Lipatov
lav на altlinux.ru
Ср Авг 2 01:57:04 MSK 2017
Konstantin Lepikhov писал 1.8.17 18:47:
> Hi Vitaly!
>
> On 08/01/17, at 12:31:07 AM you wrote:
>
>>
>> Прошу помощи в обсуждении ситуации с корневыми сертификатами, которые
>> у
>> нас помещаются пакетом ca-certificates в
>> /usr/share/ca-certificates/ca-bundle.crt и (в идеале) используются
>> всеми
>> средствами работы с сертификатами.
> До сих пор не используются, но такой файл есть и про него знает
> openssl.
Он про него знает всего лишь с помощью /var/lib/ssl/cert.pem is link to
/usr/share/ca-certificates/ca-bundle.crt
...
>> После этого совершенно свободно удалось проверить подпись на
>> упомянутом
>> XML-файле с помощью xmlsec и модуля xmlsec-openssl.
> Если напрячься то можно и не так раскорячится. Ну проверили вы что-то,
> через какой-то блоб, дальше то что?
Я проверил не что-то, а файл, содержащий сертификаты всех УЦ,
публикуемый уполномоченным органом.
Не через блоб, а обычным openssl. Надеюсь, openssl engine, добавляющий
поддержку ГОСТ, блобом не считается?
>> Поскольку нынешняя архитектура не предусматривает подключение
>> промежуточных сертификатов, хочу посоветоваться, что мы с ними будем
>> делать.
> Нынешняя архитектура предусматривает работу openssl через список
> сертификатов, которые прошли процедуру доверия в Mozilla в соответствии
> с
> https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/policy/
>
> Все остальное не является сертификатами, которым можно доверять как
> корневым. Данная система гарантирует, что у вас на уровне утилит
> которые
Вопрос доверия на самом деле достаточно условный. Мы же много лет
наблюдали за тем, как CACert, выдававший сертификаты бесплатно, так и не
допустили (и я уверен, из-за нежелания терять доходы), а Let's Encrypt
раз и взлетел без проблем. Вы вот доверяете инфраструктуре выдачи и
получения ключей, предлагаемой Let's Encrypt?
> используют libssl будет ровно такое же поведение как и при
> использовании
> браузеров Firefox и Chromium.
Пока не понял, зачем нужно одинаковое поведение, поэтому не впечатлился.
...
>> Насколько я понимаю ситуацию в мире веб-сервисов (смотрю на примере
>> nginx, postfix, jabberd2 и т.п.) с установленными SSL-сертификатами,
>> там
>> приходится применять следующий подход: указывается не только
>> сертификат, полученный для сайта, но ещё и все промежуточные
>> сертификаты, чтобы клиент, имеющий скудный набор корневых сертификатов
>> (в браузере или в ca-bundle.crt) мог удостовериться в его подлинности.
> А еще в браузерах используется CRL URL и OCSP для проверки и еще
> некоторые
> техники, гарантирующие что ваша база сертификатов не скомпрометирована.
> Сертификат вам как таковой гарантирует только целостность данных а их
> не
> подлинность.
Это очень хорошо, что они там используются. Но на браузерах жизнь не
заканчивается, и ведь
хочется увидеть такие же механизмы на уровне openssl CLI, и вдобавок не
привязанные к сети.
И всё же: администраторы веб-сервисов вынуждены выкладывать на сайты
также и промежуточные сертификаты,
чтобы пользователи (браузеры) могли проверить подлинность сертификата на
сайт.
Неужели это так замечательно? А где механизм подгрузки промежуточных
сертификатов?
>> Сертификаты УЦ РФ сейчас практически не используются на сайтах (в
>> основном по причине проблем с браузерами), но планируются к активному
>> использованию в подписывании документов, проверке подписей.
>> Как правило, во всех случаях использования пользователю предлагается
>> скачать и установить необходимую цепочку сертификатов, что при
>> повседневном широкой работе с различными организациями мало приемлемо.
> У вас есть коммерческие заказчики, которые сидят на Сизифе? Думаю, у
> них
При чём тут Сизиф? У меня вообще не заказчики, но я смотрю на p8 как на
платформу, на которой ещё долго придётся работать.
...
> поставит что-то от ООО где вместо firefox будет firefox-gost с
> одобренным
> ФСБ бэкдорами )
Я думаю, прогрессивному мировому сообществу не составит труда обнаружить
бэкдор в свободном коде.
>> К моему большому удивлению, (в openssl) нет механизма (или я его не
>> заметил) использования нескольких файлов с сертификатами. Даже не
>> существует стандартного пути, и программы (библиотеки), использующие
>> ca-bundle.crt, должны сами указывать к нему путь.
> Вам уже ответили письмом ниже, что все есть в libssl нужно только
> внимательно читать документацию.
Это вы разработчикам Go, Qt и прочим, которые не осилили?
Я подозреваю, что ничего нет в документации.
>> Вопросы:
>> 1. Существуют ли механизмы, упрощающие совмещение нескольких наборов
>> сертификатов
>> (чтобы совместить наборы, идущие в ca-certificates и в
>> ca-gost-certificates), или предложения, как красиво решить этот
>> вопрос.
> Убедите ФСБ отказаться от сертификации для ГСЦ и вам не нужно будет
> решать эту проблему.
Ещё раз: сейчас у нас сложилась схема, при которой добавить произвольный
сертификат (для пользователя, для системы) невозможно.
Сравните со структурой хранения и добавления сертификатов в Windows.
>> 2. Существуют ли механизмы, подразумевающие локальное хранение и
>> обновление промежуточных сертификатов?
> ??
В мире конечное число удостоверяющих центров. Я хочу загрузить их все на
компьютер не обращаться
в сеть за проверкой сертификатов (да и обращаться некуда).
И я спрашивал о том, можно ли сказать openssl, как ему обратиться в
локальное хранилище промежуточных сертификатов.
Видимо, суть в том, что никто не использует сертификаты, кроме как для
сайтов.
--
С уважением,
Виталий Липатов,
Etersoft
Подробная информация о списке рассылки Devel