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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline SuslegStyle  
#1 Оставлено : 30 сентября 2020 г. 21:37:30(UTC)
SuslegStyle

Статус: Активный участник

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

Сказал(а) «Спасибо»: 2 раз
Добрый день.

Подскажите, пожалуйста,
на машине Windows Server 2012 установлена Crypto Pro 4
Есть своя Windows служба, которая должна зашифровывать/расшифровывать данные. Служба выполняет вход от имени Локальная Система.

Контейнер располагается на локальном диске (он единственный). Сертификат установлен в Личное хранилище Локального Компьютера с привязкой к закрытому ключу.
Средствами Крипто ПРО нажимали на кнопку протестировать, все в порядке.

Проблема в следующем, при попытке расшифровать данные, получаю ошибку от CryptDecryptMessage - Не удается найти сертификат и закрытый ключ для расшифровки. (Исключение из HRESULT: 0x8009200C)
Код:

// Cхематично метод расшифровки

CertOpenSystemStore(IntPtr.Zero, "MY");

CryptDecryptMessage


Попробовал вывести список контейнеров, доступных службе (CryptGetProvParam PP_ENUM_CONTAINERS) - контейRjнер находит.

Служба работала и код не менялся уже лет 5, но при попытки развернуть это на новом сервере - не удачны.

Offline Андрей *  
#2 Оставлено : 30 сентября 2020 г. 22:06:21(UTC)
Андрей *

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

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

Сказал «Спасибо»: 492 раз
Поблагодарили: 2034 раз в 1578 постах
Здравствуйте.

Сверьте серийные номера сертификатов (из зашифрованного файла и из своего сертификата)
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#3 Оставлено : 30 сентября 2020 г. 22:23:01(UTC)
Андрей *

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

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

Сказал «Спасибо»: 492 раз
Поблагодарили: 2034 раз в 1578 постах
Если зашифровать на свой сертификат - расшифровывает служба?

Если Да - нет проблем, Вам поступил зашифрованный файл для другого получателя.
Техническую поддержку оказываем тут
Наша база знаний
Offline SuslegStyle  
#4 Оставлено : 1 октября 2020 г. 20:50:29(UTC)
SuslegStyle

Статус: Активный участник

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

Сказал(а) «Спасибо»: 2 раз
Спасибо, за советы.
Реализовал тестовый сценарий, когда шифруем данные своим сертификатом и пробуем расшифровать.
Проблема повторилась, при попытке расшифровать получаю ошибку

"Не удается найти сертификат и закрытый ключ для расшифровки. (Исключение из HRESULT: 0x8009200C)"

Под подозрение падает способ открытия хранилища.
Сейчас это так
CertOpenSystemStore(IntPtr.Zero, "MY");
Первый параметр NULL так как не используется согласно документации (https://docs.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-certopensystemstorew)
Но в тоже время, увидел пример расшифровки (https://docs.microsoft.com/en-us/windows/win32/seccrypto/example-c-program-using-cryptencryptmessage-and-cryptdecryptmessage), где первый параметр задают.
Offline SuslegStyle  
#5 Оставлено : 1 октября 2020 г. 22:18:25(UTC)
SuslegStyle

Статус: Активный участник

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

Сказал(а) «Спасибо»: 2 раз
Попробовал вызвать CryptAcquireContext перед тем, как вызывать CryptOpenSystemStore, не помогло.
Скопировал контейнер из считывателя Диск D, в Реестр, переустановил сертификат. Тоже не помогло.

Может такое быть, что пользователю Локальная Система нужно дополнительно где-то какие-то права выдать?
Offline Андрей *  
#6 Оставлено : 1 октября 2020 г. 22:41:04(UTC)
Андрей *

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

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

Сказал «Спасибо»: 492 раз
Поблагодарили: 2034 раз в 1578 постах
Подписание работает из службы с этим сертификатом?
Техническую поддержку оказываем тут
Наша база знаний
Offline SuslegStyle  
#7 Оставлено : 2 октября 2020 г. 9:06:30(UTC)
SuslegStyle

Статус: Активный участник

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

Сказал(а) «Спасибо»: 2 раз
Нет, не работает. Пишет, что не смог найти сертификат в хранилище MY
Offline SuslegStyle  
#8 Оставлено : 12 октября 2020 г. 23:18:05(UTC)
SuslegStyle

Статус: Активный участник

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

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