Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline D-one  
#11 Оставлено : 29 марта 2019 г. 8:14:56(UTC)
D-one

Статус: Новичок

Группы: Участники
Зарегистрирован: 28.03.2019(UTC)
Сообщений: 5

Краткое описание использования stunnel:
Емеем: комплекс станицй, состоящий из сервера и клиентов, Центр сертификации.
Необходимо со станций подключатсья к серверу через канал, созданный при использовании cpro_stunnel для передачи данных.
Контейнеры и сертификаты сгененированы на своём Центре сертификации с использованием ГОСТ 2012 года. (Ранее использовался ГОСТ 2001 года и cpro 3.6). В связи с переходом на ГОСТ 2012 возникла необходимость обновления cpro до версии 4. Ставлю 9963.
С родным банарником не работает, приходиться подкладывать бинарник и билиотеки из весрии 3.6 (как писал в предыдущем посте).

Конфиг stunnel_client.conf на станции клиента.


iptables на станции клиента


Конфиг stunnel_server.conf на станции сервера


Журанл с ошибкой (с stunnel от 4.0):

[root@pak-7574 sysconfig]# /opt/cprocsp/sbin/ia32/stunnel_thread -version



nc mask 7440

Клиент:


Сервер:


[cpro@pak-7574 ~]$ /opt/cprocsp/bin/ia32/csptestf -tlsc -server mask -port 7440 -v -v -v



Журнал с успехом (с stunnel от 3.6)

[root@pak-7574 ia32]# /opt/cprocsp/sbin/ia32/stunnel_thread -version


nc mask 7440

Клиент:



Сервер:




[cpro@pak-7574 ~]$ /opt/cprocsp/bin/ia32/csptestf -tlsc -server mask -port 7440 -v -v -v




п.с.
Заменил хэш чз команду, полученную от Вас, после чека бинарник переименовался в .corrupted всеравно.


Автор: Русев Андрей Перейти к цитате
Было бы здорово получить:

  • конфиг stunnel
  • краткое описание использования stunnel
  • журнал с ошибкой (с stunnel от 4.0)
  • журнал с успехом (с stunnel от 3.6)

Бинарники переименовываются нашей системой контроля целостности. Запустить проверку целостности с руки можно так:
Код:
/etc/init.d/cprocsp check

В тестовых (!) целях можно пересчитать хэш соответствующего файла и положить его в таблицу для проверок:
Код:
[user@test-x64-centos72 ~]$ /opt/cprocsp/bin/amd64/cpverify -mk -alg GR3411_2012_256 /opt/cprocsp/sbin/amd64/stunnel_thread
96A23255F1DD7A620AAEF04CCE50B586045396C29E4DD049E5F3D2EEA96E79A8
[user@test-x64-centos72 ~]$ grep -F stunnel_thread /opt/cprocsp/lib/hashes/cprocsp-stunnel-64
//opt/cprocsp/sbin/amd64/stunnel_thread 96A23255F1DD7A620AAEF04CCE50B586045396C29E4DD049E5F3D2EEA96E79A8


Online Русев Андрей  
#12 Оставлено : 29 марта 2019 г. 13:53:58(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,260

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 442 раз в 322 постах
Журнал сервера всё объяснил: он не может проверить сертификат клиента на отзыв:
Цитата:
2019.03.29 17:23:36 LOG3[25503:140054488999680]: Error 0x40 ((unknown)) returned by CertVerifyCertificateChainPolicy!
2019.03.29 17:23:36 LOG3[25503:140054488999680]: Error 0x40 when validate certificate
2019.03.29 17:23:36 LOG3[25503:140054488999680]: Error 0x8009030e returned by VerifyCertChain (ssl_verify_by_level)
2019.03.29 17:23:36 LOG5[25503:140054488999680]: User not authorized for connect

Ошибка 0x40 - это CERT_TRUST_REVOCATION_STATUS_UNKNOWN, в большинстве случаев означает, что не хватает актуального CRL. Диагностику в этом журнале мы улучшим (для ориентира в changelog: запрос CPCSP-9861). Если сертификаты выпущены на правильно настроенном УЦ, то в них прописано расширение CDP, по URI из которого сервер автоматически должен скачать CRL и использовать его при проверке. Рекомендую с помощью certmgr убедиться в наличии строчки с CDP в сертификате клиента. Ниже верная команда, но выдача от правильного сертификата:
Код:
[rt-admin@test-x64-redos72 ~]$ /opt/cprocsp/bin/amd64/certmgr -list -file /etc/opt/cprocsp/PAK-7574.cer
Certmgr 1.1 (c) "Crypto-Pro",  2007-2018.
program for managing certificates, CRLs and stores

=============================================================================
1-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=test_cert
Serial              : 0x1200342665261860AB15E7EEC6000000342665
SHA1 Hash           : 9e8c7f8a3cc2bbbf0ed6b812add8f51af3f40b36
SubjKeyID           : b94c2dfd536d8986304c9b91882b03fe1e499018
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 (512 bits)
Not valid before    : 29/03/2019  10:33:54 UTC
Not valid after     : 29/06/2019  10:43:54 UTC
PrivateKey Link     : Yes
Container           : HDIMAGE\\testrcon.000\4F75
Provider Name       : Crypto-Pro GOST R 34.10-2012 KC1 CSP
Provider Info       : ProvType: 80, KeySpec: 1, Flags: 0x0
CA cert URL         : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt
OCSP URL            : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP                 : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl
Extended Key Usage  : 1.3.6.1.5.5.7.3.4
=============================================================================

[ErrorCode: 0x00000000]

URI в CDP должен быть доступен на сервере. Чтобы упростить задачу тестирования, можно проверять цепочку клиентского сертификата на сервере (с помощью копирования сертификата из одного файла в другой с помощью cryptcp, который проверяет цепочку при любой операции):
Код:
[rt-admin@test-x64-redos72 ~]$ /opt/cprocsp/bin/amd64/cryptcp -copycert -f /tmp/client.cer -df /tmp/client_copy.cer
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.

Будет использован следующий сертификат:
Субъект:test_cert
Действителен с 29.03.2019 10:33:54 по 29.06.2019 10:43:54

Цепочки сертификатов проверены.
Копирование сертификатов завершено.
[ErrorCode: 0x00000000]

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

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

Отредактировано пользователем 29 марта 2019 г. 13:54:56(UTC)  | Причина: Не указана

Официальная техподдержка. Официальная база знаний.
Offline D-one  
#13 Оставлено : 29 марта 2019 г. 15:06:20(UTC)
D-one

Статус: Новичок

Группы: Участники
Зарегистрирован: 28.03.2019(UTC)
Сообщений: 5

Спасибо большое за ответ!

Мой УЦ - это локальный комп, котоырй достаётся только в случае необходимости создания новых контейнеров. В сети он не доступен.

Я экспортировал на нём сертификат отзыва, добавил его на сервер и на станцию, всё заработало.
Если этот сертификат не добавлен на одном из хостов, соединение не устанавливается.

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

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


Автор: Русев Андрей Перейти к цитате
Журнал сервера всё объяснил: он не может проверить сертификат клиента на отзыв:
Цитата:
2019.03.29 17:23:36 LOG3[25503:140054488999680]: Error 0x40 ((unknown)) returned by CertVerifyCertificateChainPolicy!
2019.03.29 17:23:36 LOG3[25503:140054488999680]: Error 0x40 when validate certificate
2019.03.29 17:23:36 LOG3[25503:140054488999680]: Error 0x8009030e returned by VerifyCertChain (ssl_verify_by_level)
2019.03.29 17:23:36 LOG5[25503:140054488999680]: User not authorized for connect

Ошибка 0x40 - это CERT_TRUST_REVOCATION_STATUS_UNKNOWN, в большинстве случаев означает, что не хватает актуального CRL. Диагностику в этом журнале мы улучшим (для ориентира в changelog: запрос CPCSP-9861). Если сертификаты выпущены на правильно настроенном УЦ, то в них прописано расширение CDP, по URI из которого сервер автоматически должен скачать CRL и использовать его при проверке. Рекомендую с помощью certmgr убедиться в наличии строчки с CDP в сертификате клиента. Ниже верная команда, но выдача от правильного сертификата:
Код:
[rt-admin@test-x64-redos72 ~]$ /opt/cprocsp/bin/amd64/certmgr -list -file /etc/opt/cprocsp/PAK-7574.cer
Certmgr 1.1 (c) "Crypto-Pro",  2007-2018.
program for managing certificates, CRLs and stores

=============================================================================
1-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=test_cert
Serial              : 0x1200342665261860AB15E7EEC6000000342665
SHA1 Hash           : 9e8c7f8a3cc2bbbf0ed6b812add8f51af3f40b36
SubjKeyID           : b94c2dfd536d8986304c9b91882b03fe1e499018
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 (512 bits)
Not valid before    : 29/03/2019  10:33:54 UTC
Not valid after     : 29/06/2019  10:43:54 UTC
PrivateKey Link     : Yes
Container           : HDIMAGE\\testrcon.000\4F75
Provider Name       : Crypto-Pro GOST R 34.10-2012 KC1 CSP
Provider Info       : ProvType: 80, KeySpec: 1, Flags: 0x0
CA cert URL         : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt
OCSP URL            : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP                 : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl
Extended Key Usage  : 1.3.6.1.5.5.7.3.4
=============================================================================

[ErrorCode: 0x00000000]

URI в CDP должен быть доступен на сервере. Чтобы упростить задачу тестирования, можно проверять цепочку клиентского сертификата на сервере (с помощью копирования сертификата из одного файла в другой с помощью cryptcp, который проверяет цепочку при любой операции):
Код:
[rt-admin@test-x64-redos72 ~]$ /opt/cprocsp/bin/amd64/cryptcp -copycert -f /tmp/client.cer -df /tmp/client_copy.cer
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.

Будет использован следующий сертификат:
Субъект:test_cert
Действителен с 29.03.2019 10:33:54 по 29.06.2019 10:43:54

Цепочки сертификатов проверены.
Копирование сертификатов завершено.
[ErrorCode: 0x00000000]

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

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


Online Русев Андрей  
#14 Оставлено : 29 марта 2019 г. 15:58:47(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,260

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 442 раз в 322 постах
Ваше решение очень спорное. При таком CRL у вас нет возможности отозвать сертификат скомпрометированного ключа. По поводу года-двух расстрою: срок действия закрытого ключа 1 год и 3 месяца, после этого ваш стенд перестанет работать. В старых версиях CSP технических средств для обеспечения сроков действия закрытых ключей не было, но теперь провайдер не даст вам ими пользоваться. Так что перевыпуск ключей и сертификатов раз в год надо предусмотреть.
Официальная техподдержка. Официальная база знаний.
Offline D-one  
#15 Оставлено : 1 апреля 2019 г. 9:20:02(UTC)
D-one

Статус: Новичок

Группы: Участники
Зарегистрирован: 28.03.2019(UTC)
Сообщений: 5

Подскажите пожалуйста, можно ли средствами криптопро настроить следующее:
С центра сертификации crl сертификат положить на сервер, к которому будут подключаться клиенты (это я могу делать в ручную), а клиентам настроить автомотическое скачивание этого crl себе и добавлениее его к себе-же?
На серевере я могу менять этот сертификат без проблем, а вот в ручном режиме делать это на клиентах, в виду их огромного кол-ва, не очень-то простая задача. Если бы можно было этот момент упростить, было бы просто замечательно.

Автор: Русев Андрей Перейти к цитате
Ваше решение очень спорное.


Online Русев Андрей  
#16 Оставлено : 1 апреля 2019 г. 11:54:06(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,260

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 442 раз в 322 постах
Если УЦ ваш и вы можете управлять расширениями в выпускаемых сертификатах, то лучший способ - заполнить CDP. Туда можно вписать несколько адресов, в том числе локальных для машин без доступа в интернет. Вот хороший пример Министерства обороны (интернет-адрес последний и будет использован в последнюю очередь):
Код:
Issuer              : E=uc@mil.ru, OGRN=1037700255284, INN=007704252261, C=RU, S=77 г. Москва, L=Москва, STREET=ул.Знаменка д.19, OU=4 центр (удостоверяющий) войсковой части 31659, O=Министерство обороны Российской Федерации, CN=Министерство обороны Российской Федерации
Serial              : 0x2F80B07AC40C8C92E911F7040197AE47
SHA1 Hash           : bb1abb69157847abbf0b983225d62a2848b2b4b9
SubjKeyID           : 400f7d8cb1c0a5e61169948b0ca7d23539e52c0b
Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит
PublicKey Algorithm : ГОСТ Р 34.10-2012 (512 bits)
Not valid before    : 21/12/2018  07:56:23 UTC
Not valid after     : 21/12/2019  00:00:00 UTC
PrivateKey Link     : Yes
Container           : SCARD\rutoken_ecp_38f0832c\0A00\05C8
Provider Name       : Crypto-Pro GOST R 34.10-2012 KC1 CSP
Provider Info       : ProvType: 80, KeySpec: 1, Flags: 0x0
OCSP URL            : http://ocsp/ocsp/ocsp.srf
OCSP URL            : http://ocsp:8080/ocsp/ocsp.srf
OCSP URL            : http://uc.mil.ru/ocsp-net/ocsp.srf
CDP                 : http://cr2018/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl
CDP                 : http://cr2018:8080/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl
CDP                 : http://regcvo2018/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl
CDP                 : http://ra2-vvo/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl
CDP                 : http://reguvo1/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl
CDP                 : http://spb2018/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl
CDP                 : http://stat.structure.mil.ru/download/doc/morf/military/files/crl_18.crl
Extended Key Usage  : 1.3.6.1.5.5.7.3.2
                      1.3.6.1.5.5.7.3.4

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

На худой конец можно на клиентах скачивать и ставить CRL вручную (по cron) (доверие ни к каналу, ни к данным не требуется):
* если есть права администратора, то можно ставить всем пользователям сразу (хранилище mCA):
Код:
curl http://your_server/your.crl | /opt/cprocsp/bin/amd64/certmgr -inst -crl -stdin -store mCA

* если надо ставить без прав, то надо делать для каждого пользователя (хранилище uCA):
Код:
curl http://your_server/your.crl | /opt/cprocsp/bin/amd64/certmgr -inst -crl -stdin -store uCA


Подробнее про разницу между mCA / uCA (которые ведут себя аналогично mRoot / uRoot):
https://www.cryptopro.ru...aspx?g=posts&m=99144
https://www.cryptopro.ru...aspx?g=posts&m=97728

Поддержка ключа -stdin появилась в certmgr начиная с 2017-05-25 КриптоПро CSP 4.0.9907 Shannon, но ставить надо либо последнюю сертифицированную версию (2018-11-23 КриптоПро CSP 4.0.9963 Abel), либо последнюю (2019-03-11 КриптоПро CSP 4.0.9969 Bayes).
Официальная техподдержка. Официальная база знаний.
Offline D-one  
#17 Оставлено : 19 сентября 2019 г. 20:28:03(UTC)
D-one

Статус: Новичок

Группы: Участники
Зарегистрирован: 28.03.2019(UTC)
Сообщений: 5

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


Здравствуйте!
В данный момент в плотную занялся настройкой "своих" комплексов.
Сегодня прописал на Центре Сертификации CDP, выпустил тестовый клиенский контейнер, убедился, что в поле CDP указан нужный мне путь.
Подложил на http сервер crl файл (http сервером является сторонний сервер в моей-же сети, на нём нет cpro, но соединение безопасное - не внешняя сеть). Убедился, что указанный путь работает, чз браузер файл скачивается.
Установил crl на сервер.
Установил контейнер + сертификат на клиента. Попытался подключиться - соединение не установилось ( надеялся, что crl подтянется с сервера). Установил crl на клиента, соединение установилось.

Отозвал сертификат на Центре Сертификации (ЦС), перевыпустил файл crl, подложид его на сервер, к которому подключаются клиенты, подложил crl на http сервер.

Клиент продолжил подключаться как не в чём не бывало.

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


Так-же вы писали : срок действия закрытого ключа 1 год и 3 месяца, после этого ваш стенд перестанет работать.....Так что перевыпуск ключей и сертификатов раз в год надо предусмотреть.

Поясните пожалуйста, речь идёт не только о перевыпуске crl ? сами клиентские контейнеры так-же придётся перевыпускать??

Буду очень благодарен за ответ. Спасибо.
Offline two_oceans  
#18 Оставлено : 23 сентября 2019 г. 8:24:00(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Автор: D-one Перейти к цитате
Отозвал сертификат на Центре Сертификации (ЦС), перевыпустил файл crl, подложид его на сервер, к которому подключаются клиенты, подложил crl на http сервер. Клиент продолжил подключаться как не в чём не бывало.
Логично, ведь до этого момента Вы вручную установили crl в котором еще не было отзыва сертификата и срок действия crl еще не истек. Чем меньше срок действия поставите тем быстрее будет реакция на отзыв сертификата. Кроме того, в стандарте предусмотрены еще и дельта списки отзыва, содержащие отозванные сертифкаты с момента выпуска основного crl, но их также надо настраивать и прописывать адреса в сертификате. В отечественных сертификатах ни разу не видел такую дельту.
Автор: D-one Перейти к цитате
Прошу Вас подсказать, как же правильно настроить автоматическое обновление crl через http сервер.
Попробуйте указать адрес именно http, не https, это публичная информация - шифровать соединение не требуется, зато при установлении защищенного соединения возможны разнообразные ошибки. Еще есть параметры в каждом браузере и общие в КриптоПро CSP. В большинстве браузеров crl скачиваются "неохотно" (вплоть до полного запрета), предпочтение отдается OCSP.
Автор: D-one Перейти к цитате
Так-же вы писали : срок действия закрытого ключа 1 год и 3 месяца, после этого ваш стенд перестанет работать.....Так что перевыпуск ключей и сертификатов раз в год надо предусмотреть.

Поясните пожалуйста, речь идёт не только о перевыпуске crl ? сами клиентские контейнеры так-же придётся перевыпускать??
Именно, точнее пересоздавать сами клиентские контейнеры. В штатном режиме сертификат клиента должен быть не более чем на 1 год 3 месяца (3 года для неизвлекаемых ключей, но их не беру в расчет) и согласован со сроком закрытого ключа в клиентском контейнере, по истечении срока идет генерация нового контейнера и выпуск нового сертификата. Если УЦ аккредитованный - это единственный вариант.

Отредактировано пользователем 23 сентября 2019 г. 8:28:55(UTC)  | Причина: Не указана

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