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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Гроботрон  
#1 Оставлено : 4 февраля 2008 г. 20:26:03(UTC)
Гроботрон

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

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

Добрый день!
Проблема следующая.
Есть сервер (ОС - Windows Server 2003), к которому подсоединен eToken (usb-ключ).
Есть пользователь с правами администратора (назовем его admin). Все описанные ниже
действия произведены от него в интерактивном режиме с консоли.
Установлены: eToken (RTE_3.66), CryptoPro 3.0 (csp-sp3-kc1-rus).
Стандартно настроены считыватели и носитель: AKS ifdh 0, AKS ifdh 1; eToken PRO32.
При просмотре сертификатов в контейнере с помощью КриптоПро CSP проблем нет - контейнер с сертификатом виден.
Аналогично, при просмотре свойств eToken видны оба считывателя (AKS ifdh 1 - пустой).
Есть Windows Service, работающий на этом сервере от пользователя admin.
Пользователь admin запускает сервис.
Сервис пытается перечислить все имеющиеся контейнеры, т.е. выполняется примерно такой стандартный код
(обработка ошибок опущена):


CryptAcquireContext( &hProv, NULL, NULL, 75, CRYPT_VERIFYCONTEXT | CRYPT_SILENT ); //75 - Crypto-Pro GOST R 34.10-2001

bool result = CryptGetProvParam( hProv, PP_ENUMCONTAINERS, null, &len, CRYPT_FIRST | CRYPT_FQCN );

//Дальше идет, собственно, цикл перебора имен контейнеров с остальной логикой

Так вот, в описанной ситуации result всегда равно FALSE, а последняя ошибка: ERROR_NO_MORE_ITEMS.
Если же этот код выполняется из обычного приложения, все работает OK - получается полное имя контейнера (как и должно быть).
Было испробовано множество вариантов (просто перечислю примеры функций, которые вызывались для достижения работоспособности -
логика их вызовов, понятно, стояла до обращения к CryptoAPI):
LogonUser, ImpersonateLoggedOnUser, LoadUserProfile, RegCloseKey( HKEY_CURRENT_USER ). [#]
При этом личные сертификаты пользователя admin отлично получаются в сервисе - т.е., на самом деле, профиль пользователя admin загружен.
Так же загрузку профиля подтверждает, например, утилита от Microsoft ProcessMonitor. Причем с помощью этой утилиты, не видно каких-либо ошибок.

На Windows XP все описанное отлично работает (без дополнительного геморроя в виде [#]).

В чем может быть загвоздка?
Может быть КриптоПро некорректно работает в таких ситуациях (windows service, например) на Windows Server 2003?
Может ли помочь в этом случае CSP 3.6?
Offline Максим Коллегин  
#2 Оставлено : 5 февраля 2008 г. 3:08:33(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,377
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
я б сказал, что это проблема скорее работы из сервиса с pcsc. В Vista/2008 вроде как лучше с этим. Особенно с имперсонализацией.
Знания в базе знаний, поддержка в техподдержке
Offline Гроботрон  
#3 Оставлено : 5 февраля 2008 г. 3:25:28(UTC)
Гроботрон

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

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

Очень уклончивый ответ!
А возможно ли немного поподробнее по поводу 'работы из сервиса с PCSC'?
'Особенно с имперсонализацией' - но профиль пользователя-то загружен! Да и привилегированные операции
сервис может выполнять (все-таки работает от пользователя с правами администратора).
Я так полагаю, все-таки это что-то в вашем ПО.
'В Vista/2008 вроде как лучше с этим' - это что значит? Особенно слово 'вроде'.
Опять же, было несколько вопросов. Хотелось бы получить по возможности ответ на каждый из них.
Еще вопрос: а были ли подобные проблемы или я первый?
Вообщем, хочется четкого развернутого ответа, а не отговорки.
Offline Гроботрон  
#4 Оставлено : 5 февраля 2008 г. 3:31:16(UTC)
Гроботрон

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

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

Еще раз уточню - в Windows XP все работает нормально.
Offline Максим Коллегин  
#5 Оставлено : 5 февраля 2008 г. 13:39:16(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,377
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Цитата:
Еще раз уточню - в Windows XP все работает нормально

тоже в сервисе?
Какое поведение, если ключи хранятся на дискете/в реестре?

Отредактировано пользователем 5 февраля 2008 г. 13:41:50(UTC)  | Причина: Не указана

Знания в базе знаний, поддержка в техподдержке
Offline Гроботрон  
#6 Оставлено : 5 февраля 2008 г. 14:10:47(UTC)
Гроботрон

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

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

да, в Windows XP тоже в сервисе (см. первое сообщение)

Цитата:
Какое поведение, если ключи хранятся на дискете/в реестре?

Не могу сказать.
Вам были заданы конкретные вопросы, неужели нельзя на них ответить?
Если для этого требуется ответ на предыдущий вопрос, то подскажите,
как добавить ключ в реестр.
Offline Максим Коллегин  
#7 Оставлено : 5 февраля 2008 г. 16:46:10(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,377
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Если я бы мог ответить на эти вопросы - то не задавал бы свои.
С таким вариантом использования не сталкивался.
Как добавить ключ в реестр - читайте документацию (Добавить считыватель Registry, скопировать контейнер).
А кто мешает открыть провайдер c флагом CRYPT_MACHINE_KEYSET?
С etoken CSP работает или со встроенными в Windows провайдерами смарт-карт?
Знания в базе знаний, поддержка в техподдержке
Offline Гроботрон  
#8 Оставлено : 5 февраля 2008 г. 18:07:57(UTC)
Гроботрон

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

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

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