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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline KDA  
#1 Оставлено : 4 июня 2019 г. 13:13:09(UTC)
KDA

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 6 раз в 6 постах
Добрый день!

Используется сборка КриптоПро 5.0.11453

Функция CryptEnumOIDInfo для ГОСТовых алгоритмов хеша, подписи и открытых ключей возвращает записи, у которых поле Algid равно 0xffffffff
Исключение - открытые ключи обмена. Там идентификатор соотвествует ключу подписи, а не обмена
Собственно, в реестре (раздел CryptDllFindOIDInfo) то же самое.

В предыдущей сборке (11319) с открытыми ключами еще все нормально.

Так же при установке по умолчанию (без компоненты RSA/ECDSA support) дополнительно регистрируются функции
CryptDllConvertPublicKeyInfo и CryptDllEncodePublicKeyAndParameters
для OID 1.2.840.10045.2.1 (вроде совсем не ГОСТ)

В списке изменений и в иной документации данное поведение обнаружить не удалось.

Что это, баги или запланированные изменения?
Эта ли версия получит статус сертифицированной?


PS. Возможно, есть и проблемы c CryptFindOIDInfo. В паре тестовых запусков наблюдалась и такая проблема для OID 1.2.643.2.2.9
Offline Максим Коллегин  
#2 Оставлено : 4 июня 2019 г. 13:19:37(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Если установить "компоненту совместимости с продуктами MSFT" - всё будет как раньше. 0xffffffff - это для переключения режима работы в CNG.
Каким приложениям "мешает" такая регистрация?
Знания в базе знаний, поддержка в техподдержке
Offline KDA  
#3 Оставлено : 4 июня 2019 г. 14:11:54(UTC)
KDA

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 6 раз в 6 постах
Какая именно компонента должна быть установлена?
Advanced compatibility with Microsoft products ставится по умолчанию (установка csp-x64-eng.msi)
И с ним имеем наблюдаемое поведение

Далее, по поводу CNG
Открываем
https://docs.microsoft.c...desktop/seccrypto/alg-id
Видим константу CALG_OID_INFO_CNG_ONLY 0xffffffff

Если теперь гостовые алгоритмы - только для протокола CNG, хотелось бы увидеть это в официальной документации, поскольку собственному ПО предстоит очередная сертификация на эту версию КриптоПро.
А для смешанных режимов для CNG алгоритмов там отдельные поля с идентификаторами есть.

Пока вопрос был в том, почему данные через две CryptoAPI функции, у которых одна цель и которые ссылаются на описание ОДНОЙ структуры CRYPT_OID_INFO,
теперь не бьют между собой

Ну и новый вопрос, каким образом опять же, разные идентификаторы для открытых ключей (1.2.643.2.2.98: Enum - 0x2e23, Find - 0xaa24)
помогают работе в режиме CNG?
В КриптоПро SDK идентификаторы те же, что и раньше (т.е. для 1.2.643.2.2.98 там 0xaa24).

Т.е. получаем странную вещь: ПО, которое работает годами с разными версиями КриптоПро, и не только с КриптоПро (отсюда и нужда в динамическом списке алгоритмов системы), отваливается с обновлением КриптоПро с недокументированным изменением функционала.

ПО, наверное, можно и переделать. Но как всегда, с коммерческим ПО, вылезает вопрос "за чей счет банкет"?
Поэтому было бы неплохо хотя бы увидеть это в разделе "Изменения с предыдущей версии", дабы обосновать затраты на доработки.

Offline Максим Коллегин  
#4 Оставлено : 4 июня 2019 г. 14:50:23(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Вот запись из changelog:
Код:
core: Регистрация CNG по умолчанию (при работе без расширенной совместимости с MSFT) (CPCSP-6108, CPCSP-7956).


Мы пытались внедрить поддержку CNG c одной стороны и не сломать совместимость со сторонними приложениями, с другой. Ваше приложение первое, на моей памяти, которое использует Enum, - добавим поддержку такого режима тоже. Спасибо за обратную связь.

А чем мешает регистрация для 1.2.840.10045.2.1?

Отредактировано пользователем 4 июня 2019 г. 15:11:31(UTC)  | Причина: Не указана

Знания в базе знаний, поддержка в техподдержке
Offline Максим Коллегин  
#5 Оставлено : 4 июня 2019 г. 21:29:50(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Чтобы ваше приложение перечисляло OIDы как раньше, достаточно на этой версии CSP позвать CryptFindOidInfo почти с любым аргументом перед вызовов CryptEnumOIDInfo.
Ошибку с перечислением исправим в ближайшем релизе, ещё раз, огромное спасибо за обратную связь.
Знания в базе знаний, поддержка в техподдержке
Offline KDA  
#6 Оставлено : 5 июня 2019 г. 14:28:19(UTC)
KDA

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 6 раз в 6 постах
Спасибо за workaround, при установках по умолчанию помогло.
Но помогает только в случае, если установлена та самая компонента расширенной совместимости с продуктами Microsoft.
Если ее не установить/удалить, то и CryptFindOIDInfo отдает записи с неверным AlgId для ГОСТ алгоритмов. Что, в общем, понятно: информация берется напрямую из реестра (а не подпихивается исправлениями кода в драйвере). Но не менее неприятно.
Надеюсь, что этот момент тоже будет учтен в следующих релизах.

Что касается регистрации OID 1.2.840.10045.2.1
- Его не было в версии 4
- Если я правильно понимаю, то код КриптоПро для данного OID будет активироваться даже при работе не с его CSP. Callback определяется по паре - имя функции и OID.
ИСпользуется, скорее всего в функционале Crypt(Export/Import)PublicKeyInfo
Соответвенно, вопрос, какое влияние данный код оказывает на CSP не КриптоПро и насколько он вообще необходим при отсуствии установленной поддержки RSA/ECDSA?
Offline Максим Коллегин  
#7 Оставлено : 5 июня 2019 г. 16:37:30(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Если драйвера (CProCtrl) нет, то будет использоваться функционал CNG (0xffffffff). Так и задумывалось, мы свои приложения начинаем готовить к переходу на CNG (запрету патчей в ОС), и вы можете начинае думать об этом.

Регистрация 1.2.840.10045.2.1 не должна мешать, поскольку, когда не установлен наш ECDSA криптопровайдер, вся работа с ECDSA в ОС идёт через CNG.
Знания в базе знаний, поддержка в техподдержке
Offline KDA  
#8 Оставлено : 5 июня 2019 г. 17:02:30(UTC)
KDA

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 6 раз в 6 постах
Хорошая новость.
Но когда можно ожидать обновления документации и SDK под CNG API?
Сейчас, что в примерах, что на cpdn.cryptopro.ru, все описания специфичных для КриптоПро вызовов и параметров - это CryptoAPI.
И планируется ли замена в данном ключе CAPILite ?
Offline Максим Коллегин  
#9 Оставлено : 5 июня 2019 г. 17:12:51(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
SDK обновим в течение года.
Верхнеуровневый интерфейс CryptMsg не изменяется - большинству приложений не потребуется серьёзных доработок.
CNG для CAPILite пока нет даже в планах, мы его внедряем на Windows не из-за того, что это хороший интерфейс -- иного пути для работы без патчей не нашли.

Отредактировано пользователем 5 июня 2019 г. 17:13:58(UTC)  | Причина: Не указана

Знания в базе знаний, поддержка в техподдержке
Offline KDA  
#10 Оставлено : 5 июня 2019 г. 17:49:03(UTC)
KDA

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 6 раз в 6 постах
Большое спасибо за информацию.
И все же, последний вопрос: Как долго или до каких версий (мажор/минор) планируется поддерживать вот этот самый режим(компонент) "Расширенной совместимости с продуктами Microsoft", который с патчами?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.