Статус: Активный участник
Группы: Участники
Зарегистрирован: 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
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Если установить "компоненту совместимости с продуктами MSFT" - всё будет как раньше. 0xffffffff - это для переключения режима работы в CNG. Каким приложениям "мешает" такая регистрация? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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). Т.е. получаем странную вещь: ПО, которое работает годами с разными версиями КриптоПро, и не только с КриптоПро (отсюда и нужда в динамическом списке алгоритмов системы), отваливается с обновлением КриптоПро с недокументированным изменением функционала. ПО, наверное, можно и переделать. Но как всегда, с коммерческим ПО, вылезает вопрос "за чей счет банкет"? Поэтому было бы неплохо хотя бы увидеть это в разделе "Изменения с предыдущей версии", дабы обосновать затраты на доработки.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 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)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Чтобы ваше приложение перечисляло OIDы как раньше, достаточно на этой версии CSP позвать CryptFindOidInfo почти с любым аргументом перед вызовов CryptEnumOIDInfo. Ошибку с перечислением исправим в ближайшем релизе, ещё раз, огромное спасибо за обратную связь. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Если драйвера (CProCtrl) нет, то будет использоваться функционал CNG (0xffffffff). Так и задумывалось, мы свои приложения начинаем готовить к переходу на CNG (запрету патчей в ОС), и вы можете начинае думать об этом.
Регистрация 1.2.840.10045.2.1 не должна мешать, поскольку, когда не установлен наш ECDSA криптопровайдер, вся работа с ECDSA в ОС идёт через CNG.
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 12.10.2009(UTC) Сообщений: 42
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
Хорошая новость. Но когда можно ожидать обновления документации и SDK под CNG API? Сейчас, что в примерах, что на cpdn.cryptopro.ru, все описания специфичных для КриптоПро вызовов и параметров - это CryptoAPI. И планируется ли замена в данном ключе CAPILite ?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
SDK обновим в течение года. Верхнеуровневый интерфейс CryptMsg не изменяется - большинству приложений не потребуется серьёзных доработок. CNG для CAPILite пока нет даже в планах, мы его внедряем на Windows не из-за того, что это хороший интерфейс -- иного пути для работы без патчей не нашли. Отредактировано пользователем 5 июня 2019 г. 17:13:58(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 12.10.2009(UTC) Сообщений: 42
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
Большое спасибо за информацию. И все же, последний вопрос: Как долго или до каких версий (мажор/минор) планируется поддерживать вот этот самый режим(компонент) "Расширенной совместимости с продуктами Microsoft", который с патчами?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close