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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Evstafiev  
#1 Оставлено : 7 июля 2017 г. 12:32:26(UTC)
Evstafiev

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

Группы: Участники
Зарегистрирован: 07.07.2017(UTC)
Сообщений: 4
Откуда: Санкт-Петербург

Добрый день, отцы моих побед!

Стоит задача в операционной системе Linux (точнее - Russian Fedora Remix 25) связать 1С:Бухгалтерия с CryptoPro на предмет подключения к ЭДО. КриптоПро, естественно, выбран последний на сегодняшний день (4.0.0-5, CSP (Type:80) v4.0.9016 KC1 Release Ver:4.0.9914 OS:Linux CPU:AMD64).
Для работы установлены следующие пакеты:
Цитата:
# rpm -qa | grep cprocsp
lsb-cprocsp-base-4.0.0-5.noarch
cprocsp-rdr-gui-gtk-64-4.0.0-5.x86_64
cprocsp-rdr-esmart-64-4.0.0-5.x86_64
cprocsp-rdr-novacard-64-4.0.0-5.x86_64
cprocsp-curl-64-4.0.0-5.x86_64
cprocsp-rdr-gui-64-4.0.0-5.x86_64
lsb-cprocsp-rdr-64-4.0.0-5.x86_64
cprocsp-rdr-inpaspot-64-4.0.0-5.x86_64
cprocsp-rdr-rutoken-64-4.0.0-5.x86_64
cprocsp-rdr-jacarta-64-3.6.408.676-4.x86_64
lsb-cprocsp-kc1-64-4.0.0-5.x86_64
cprocsp-rdr-emv-64-4.0.0-5.x86_64
cprocsp-rdr-mskey-64-4.0.0-5.x86_64
cprocsp-rdr-pcsc-64-4.0.0-5.x86_64
lsb-cprocsp-capilite-64-4.0.0-5.x86_64


И соответствующий драйвер RuToken'а. RuToken к компьютеру подключен:

Цитата:
$ lsusb
................
Bus 001 Device 004: ID 0a89:0020 Aktiv Rutoken S
................

Проблемы следующие -
А: КриптоПро видит контейнеры на RuTokene только если смотреть от рута. А именно:
Цитата:
# /opt/cprocsp/bin/amd64/csptest -card -enum -v -v
Aktiv Co. Rutoken S 00 00
Card present, ATR=3B 6F 00 FF 00 56 72 75 54 6F 6B 6E 73 30 20 00 00 90 00
CSP-applet
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,100 sec
[ErrorCode: 0x00000000]

Работать же в 1С будет никак не рут, а конкретный юзер. А вот этому юзеру RuToken ничего не отдаёт. А именно:
1. Юзер не может получить список подключенных считывателей:
Цитата:
$ /opt/cprocsp/bin/amd64/list_pcsc
ERROR: SCardEstablishContext()

2. Юзер не может добавить считыватель:
Цитата:
$ /opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add 'Aktiv Co. Rutoken S 00 00'
Adding new reader:
Nick name: Aktiv Co. Rutoken S 00 00
Adding Aktiv Co. Rutoken S 00 00 failed
Connection error.

И так далее, вплоть до того, что он не может прочитать из рутокена сертификат и собственные ключи для подписи-шифрования. Всё это работает только от рута.

B: Если работаем от рута, то, несмотря на то, что загружен СА центра сертификации в хранилище root, утилита подписывания пишет, что не может проверить цепочку подписания пользовательского сертификата. Пишет, что

Цитата:
Error: Certificate chain is not checked for this certificate (error code 10000):
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/Certs.cpp:357: 0x20000133


и затем начинаются разного рода "разговоры". Конечно, ключик --nochain спасает, но это, все-таки не есть правильно.

Это сертификат СА удостоверяющего центра:

Цитата:
# /opt/cprocsp/bin/amd64/certmgr -list -cert -store uRoot
Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores

/opt/cprocsp/bin/amd64/certmgr -list -cert -store uRoot
=============================================================================
1-------
Issuer : INN=007710474375, OGRN=1047702026701, E=dit@minsvyaz.ru, STREET=125375 г. Москва ул. Тверская д.7, O=Минкомсвязь России, L=Москва, S=77 г. Москва, C=RU, CN=УЦ 1 ИС ГУЦ
Subject : E=ca_tensor@tensor.ru, OGRN=1027600787994, INN=007605016030, C=RU, S=76 Ярославская область, L=Ярославль, STREET=Московский проспект д.12, OU=Удостоверяющий центр, O=ООО Компания Тензор, CN=TENSORCA5
Serial : 0x742524550003000007E9
SHA1 Hash : 69adfd7a4615cade5eae812c652d37c3275d0600
SubjKeyID : 3690170894ac83db31857a26fab5a6ea770ac0f1
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before : 14/11/2016 07:00:00 UTC
Not valid after : 14/11/2026 07:10:00 UTC
PrivateKey Link : No
CA cert URL : http://rostelecom.ru/cdp/vguc1_4.crt
CA cert URL : http://reestr-pki.ru/cdp/vguc1_4.crt
CDP : http://rostelecom.ru/cdp/vguc1_4.crl
CDP : http://reestr-pki.ru/cdp/vguc1_4.crl
===================================================

Это - пользовательскимй сертификат:
Цитата:
# /opt/cprocsp/bin/amd64/certmgr -list -cert -store uMy
=============================================================================
1-------
Issuer : E=ca_tensor@tensor.ru, OGRN=1027600787994, INN=007605016030, C=RU, S=76 Ярославская область, L=Ярославль, STREET=Московский проспект д.12, OU=Удостоверяющий центр, O=ООО Компания Тензор, CN=TENSORCA5

.....................................
===============================================================================


Скажите, что я неправильно делаю и где ошибаюсь?

############

Источник проблемы, вроде нарыл, pcscd сообщает, что:

Цитата:
00011421 auth.c:137:IsClientAuthorized() Process 26371 (user: 1001) is NOT authorized for action: access_pcsc
00000170 winscard_svc.c:332:ContextThread() Rejected unauthorized PC/SC client


В общем, знатоки, выручайте, как настроить pcscd для того, чтобы он пускал юзера (1001) к девайсу, а не только рута?

Отредактировано пользователем 7 июля 2017 г. 12:43:42(UTC)  | Причина: Не указана

Offline Андрей Емельянов  
#2 Оставлено : 7 июля 2017 г. 15:09:41(UTC)
Андрей Емельянов

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

Группы: Участники
Зарегистрирован: 11.03.2013(UTC)
Сообщений: 805
Мужчина
Российская Федерация
Откуда: Оттуда

Сказал «Спасибо»: 4 раз
Поблагодарили: 148 раз в 144 постах
Добрый день.
Установку базовых пакетов производили скриптом install.sh?
Переустановите CSP.
Выполните:
Код:
# ./uninstall.sh
# rm -rf /etc/opt/cprocsp/


Далее произведите установку:
Код:
# ./install.sh


Из дополнительных пакетов дистрибутива CSP установите минимальный набор, для проверки Вашего Rutoken S
Код:
cprocsp-rdr-gui-gtk-64-4.0.0-5.x86_64 (или cprocsp-rdr-gui-64-4.0.0-5.x86_64, если нужен)
cprocsp-rdr-pcsc-64-4.0.0-5.x86_64
ifd-rutokens-1.0.1-1.x86_64 
cprocsp-rdr-rutoken-64-4.0.0-5.x86_64


Никаких дополнительных действий для добавления считывателей/носителей проводить не нужно.
Проверьте виден ли Rutoken S от пользователя, или только под root?

Для того, чтобы строилась цепочка - в хранилище uRoot поставьте сертификат "Головного удостоверяющего центра", можно скачать с сайта https://e-trust.gosuslugi.ru/MainCA


Техническую поддержку оказываем тут
Наша база знаний
Наша страничка в Instagram
Offline Evstafiev  
#3 Оставлено : 7 июля 2017 г. 16:00:27(UTC)
Evstafiev

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

Группы: Участники
Зарегистрирован: 07.07.2017(UTC)
Сообщений: 4
Откуда: Санкт-Петербург

Автор: eav Перейти к цитате
Добрый день.
Установку базовых пакетов производили скриптом install.sh?
Переустановите CSP.


Именно так все и делалось. Просто считывателей поставил побольше. Оно не принципиально. Собака зарылась в том, что pcscd не пускает к рутокену никого кроме рута:
Цитата:
00040483 auth.c:137:IsClientAuthorized() Process 20643 (user: 1000) is NOT authorized for action: access_pcsc
00000174 winscard_svc.c:332:ContextThread() Rejected unauthorized PC/SC client


В результате этого имеем:

Цитата:
[root@Chronos alex]# /opt/cprocsp/bin/amd64/list_pcsc
Aktiv Co. Rutoken S 00 00
[root@Chronos alex]# exit
exit
[alex@Chronos ~]$ /opt/cprocsp/bin/amd64/list_pcsc
ERROR: SCardEstablishContext()


Оно, конечно, можно прикостылить sudo, но не думаю, что это есть правильно. Я нашел нечто похожее в багах openSUSE за 2015 год. Но решения я там найти не смог.Надо где-то и как-то корректировать политику для access_pcsc. Но где и как - найти не могу. Это по первой проблеме.

По второй - спасибо за наводку на ключи Минкомсвязи. Я до этого тоже догадался. И эти ключи (правда, найденные на другом сайте) поставил. Но это - проблему не решило. То ли ключ Тензора (наш УЦ) какой-то хитрый, то ли руки у меня кривые:



Список головных сертификаторов у меня следующий:

Отредактировано пользователем 7 июля 2017 г. 16:04:00(UTC)  | Причина: Не указана

Offline Русев Андрей  
#4 Оставлено : 10 июля 2017 г. 10:57:39(UTC)
Русев Андрей

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

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

Сказал(а) «Спасибо»: 22 раз
Поблагодарили: 445 раз в 324 постах
В наших стендах на штатных установках следующих ОС эта проблема не наблюдается:

  • Ubuntu 10
  • Ubuntu 12
  • ALTLinux 6
  • CentOS 6
  • CentOS 7
  • FreeBSD 9

Вероятно, у вас по умолчанию включены жёсткие правила запретов в polkit-е:
https://access.redhat.co...ogs/766093/posts/1976313
Официальная техподдержка. Официальная база знаний.
Offline Evstafiev  
#5 Оставлено : 10 июля 2017 г. 10:59:09(UTC)
Evstafiev

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

Группы: Участники
Зарегистрирован: 07.07.2017(UTC)
Сообщений: 4
Откуда: Санкт-Петербург

И в продолжение проблемы. Если программы КриптоПро запускать через sudo, то они нормально общаются с токеном. В общем-то, это ожидаемо, но непонятно, зачем криптопрошному демону лезть к токену (через pcscd) от имени юзера, если он по политикам пускает в себя только рута. Ядро криптопрошное запускается от рута, ведь все вызовы к аппаратуре через него должны идти, как я понимаю, зачем полномочия то снижать до юзерских?
Offline Evstafiev  
#6 Оставлено : 10 июля 2017 г. 11:12:24(UTC)
Evstafiev

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

Группы: Участники
Зарегистрирован: 07.07.2017(UTC)
Сообщений: 4
Откуда: Санкт-Петербург

Автор: olin Перейти к цитате
В наших стендах на штатных установках следующих ОС эта проблема не наблюдается:

  • Ubuntu 10
  • Ubuntu 12
  • ALTLinux 6
  • CentOS 6
  • CentOS 7
  • FreeBSD 9

Вероятно, у вас по умолчанию включены жёсткие правила запретов в polkit-е:
https://access.redhat.co...ogs/766093/posts/1976313


У меня Fedora 25.x64. В ней вообще нет (я не нашел ни в /etc/polkit-1, ни в /usr/share/polkit-1) установленных правил для pcscd. Видимо, он работает без этих правил, по умолчанию. А там - только рут или консоль. За ссылку - спасибо. Буду над ней думать.

Вероятно (на будущее) имеет смысл включить в поставляемый пакет (rpm) и правильные правила, которые позволят работать с токеном, точнее с pcsd, обычному юзеру, а не только руту. Или написать это дело большими красными буквами в соответствующей инструкции, чтобы у тупого сисадмина проблем не возникало.

====================================

Спасибо за ссылку еще раз. Поставил нужные правила. Юзер токен увидел. Буду "развлекаться" с этим делом дальше. Теперь осталось понять, почему оно цепочку сертификатов проверить не может. Или прикостылить алиасную команду с ключиком --nochain.

Отредактировано пользователем 10 июля 2017 г. 11:33:49(UTC)  | Причина: Не указана

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