Статус: Новичок
Группы: Участники
Зарегистрирован: 31.01.2020(UTC) Сообщений: 4  Откуда: Москва
|
Добрый день. ОС: Windows 7 x32 Token: Aktiv Rutoken ECP Crypto pro: 4.0 Пытаемся использовать подпись через MS Crypto API под сетевой службой (Network Service). Пин-код контейнера сохраняем в контекст сертификата. На Windows 10 x64 все отлично работает. На Windows 7 x32 выдается ошибка: signtsf.c:468:Cryptographic context could not be acquired. Error number 0x80090016 (-2146893802). Набор ключей не существует. (ошибка взята из утилиты csptest, запущенной с правами network service-а, но если вызывать через API - тоже самое). Пробовали давать права методами: 1. https://support.cryptopr...sluzhbkh-windows-iis-etc2. https://docs.microsoft.c...cess?redirectedfrom=MSDNОднако, они работают только для контейнеров вроде локального диска. Для нашего сертификата не работают (никаких ошибок не возникает, однако эффекта нет). Например, в методе из п.1. Network Service - запись на секунду появляется в списке, после подтверждения и открытия окна управления приватными ключами список разрешений возвращается в первозданное состояние. Замечание: если в Windows 7 запустить службу с правами LocalService - все работает. Вопрос в том, как заставить это работать на Windows 7 с правами NetworkService-а. Спасибо.
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 396 раз в 366 постах
|
Добрый день. Мне вот тоже интересна такая конфигурация с запуском из-под службы. Поэтому вопрос: права прописывали на Network Service или на виртуальную учетную запись конкретной службы? В одной из тем видел, что с виртуальной учетной записью метод 1 вроде бы не работает. Как с этим в Вашем окружении? Отредактировано пользователем 1 февраля 2020 г. 1:13:00(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 31.01.2020(UTC) Сообщений: 4  Откуда: Москва
|
Автор: two_oceans  Добрый день. Мне вот тоже интересна такая конфигурация с запуском из-под службы. Поэтому вопрос: права прописывали на Network Service или на виртуальную учетную запись конкретной службы? В одной из тем видел, что с виртуальной учетной записью метод 1 вроде бы не работает. Как с этим в Вашем окружении? На Network Service. Целевая служба запускается под этой учетной записью. Главный нюанс в том, что в Win10 для работы достаточно просто сохранить пин в контекст сертификата (как вариант), либо использовать прямо при подписи. Очевидно, в Win7 Network Service не может достучаться до контейнеров, расположенных на токене (не видит либо самого токена, либо контейнера). Пытался изучать разницу в работе через procmon, но не осилил.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 12.08.2013(UTC) Сообщений: 834   Откуда: Москва Сказал «Спасибо»: 5 раз Поблагодарили: 215 раз в 174 постах
|
Добрый день. Если я не ошибаюсь, в Win 7 у NetworkService нет прав на обращение к службе смарт-карт. Соответственно, подгружать в службу, запущенную под данным пользователем, провайдер в режиме библиотеки можно, но контейнеры на токенах видны не будут. Попробуйте запустить провайдер в режиме службы - тогда работа с токенами будет проходить в нашей службе и проблем быть не должно. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 31.01.2020(UTC) Сообщений: 4  Откуда: Москва
|
Автор: Агафьин Сергей  Добрый день. Если я не ошибаюсь, в Win 7 у NetworkService нет прав на обращение к службе смарт-карт. Соответственно, подгружать в службу, запущенную под данным пользователем, провайдер в режиме библиотеки можно, но контейнеры на токенах видны не будут. Попробуйте запустить провайдер в режиме службы - тогда работа с токенами будет проходить в нашей службе и проблем быть не должно. Большое спасибо. Это помогает, НО с БОЛЬШИМ НО. После включения работы через службу нужно обязательно хотя бы один раз "подписаться" через админскую учетную запись или Local Service-ную (ту, у которой изначально был доступ). Если этого не сделать - не работает. Перезагрузка не помогает. Более того - после перезагрузки опять потребуется один раз подписать через админскую учетку. Т.е. в моем случае помогает включение службы и однократная подпись под другой учетной записью. Мне трудно это объяснить, но два раза воспроизвелось именно так. В чем может быть проблема?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 31.01.2020(UTC) Сообщений: 4  Откуда: Москва
|
Автор: DDimka  Автор: Агафьин Сергей  Добрый день. Если я не ошибаюсь, в Win 7 у NetworkService нет прав на обращение к службе смарт-карт. Соответственно, подгружать в службу, запущенную под данным пользователем, провайдер в режиме библиотеки можно, но контейнеры на токенах видны не будут. Попробуйте запустить провайдер в режиме службы - тогда работа с токенами будет проходить в нашей службе и проблем быть не должно. Большое спасибо. Это помогает, НО с БОЛЬШИМ НО. После включения работы через службу нужно обязательно хотя бы один раз "подписаться" через админскую учетную запись или Local Service-ную (ту, у которой изначально был доступ). Если этого не сделать - не работает. Перезагрузка не помогает. Более того - после перезагрузки опять потребуется один раз подписать через админскую учетку. Т.е. в моем случае помогает включение службы и однократная подпись под другой учетной записью. Мне трудно это объяснить, но два раза воспроизвелось именно так. В чем может быть проблема? Уточнение: Достаточно просто проенумерейтить, например, хранилища, чтобы все разработало, причем от любой учетки, которая эта может (можно даже без админа). Вопрос: как обойти эту необходимость - хочется оставаться в рамках Network Service и не добавлять лишних частей.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 12.08.2013(UTC) Сообщений: 834   Откуда: Москва Сказал «Спасибо»: 5 раз Поблагодарили: 215 раз в 174 постах
|
Да, это правда. Без данного обращения работать не будет. Исправить это в обозримой перспективе не представляется возможным, т.к. связано с ограничениями ОС Windows на доступ к смарт-картам.
Наша строгая рекомендация - перестать пользоваться NetworkService для работы с ключами, т.к. то, что из него удаётся получить доступ к картам в Win10 больше похоже на ошибку операционной системы, чем на новую фичу. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close