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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline sumatra  
#1 Оставлено : 31 августа 2022 г. 15:35:26(UTC)
sumatra

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

Группы: Участники
Зарегистрирован: 23.05.2012(UTC)
Сообщений: 63
Мужчина
Российская Федерация
Откуда: Подмосковье

Сказал «Спасибо»: 5 раз
Уважаемые сотрудники КриптоПро, не могли бы вы прокомментировать?

Жалуются на зависание при установке электронной подписи на одном определенном типе устройств.
В том числе, воспроизводится на CreateFile.

Есть несколько устройств. Среди них несколько iPad 9 поколения (которые 2021 года).
Одна и та же версия ios.
Одни и те же ключевые контейнеры с одними и теми же сертификатами.
На ipad9 зависает процедура подписания. На остальных устройствах работает.

Пробовались разные сертификаты. Пробовались ключевые контейнеры как с паролем, так и без.
Устройства перезапускались, приложения переустанавливались, версия ios обновлена до крайней.
Контроль целостности успешен, лицензия активна.

Зависает мертво.

В случае CreateFile зависание случается на:
Код:

do_low_sign
if(CryptMsgGetParam(
						hMsg,                      // Handle to the message
						CMSG_CONTENT_PARAM,        // Parameter type
						0,                         // Index
						pbEncodedBlob,             // Pointer to the blob
						&cbEncodedBlob))           // Size of the blob


У меня такого устройства нету под рукой пока. На симуляторе не воспроизводится.

Подскажите, чего может быть? Чего еще посмотреть?

CPROCSP во время работы пишет что-то в протокол устройства. Можно как-то средствами самого фреймворка переопределить этот вывод куда-нибудь в другое место?
Offline sumatra  
#2 Оставлено : 1 сентября 2022 г. 16:13:27(UTC)
sumatra

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

Группы: Участники
Зарегистрирован: 23.05.2012(UTC)
Сообщений: 63
Мужчина
Российская Федерация
Откуда: Подмосковье

Сказал «Спасибо»: 5 раз
Если попытаться переопределить stdout и stderr, то перед зависанием добавляется есть такие строчки:
Код:

2022-09-01 14:37:37.783 CreateFile5[7535:721809] You shall not call CryptoPro CSP from main thread
2022-09-01 14:37:37.783 CreateFile5[7535:721809] cpui ios_modern_controls = 0

Отредактировано пользователем 1 сентября 2022 г. 16:14:03(UTC)  | Причина: Не указана

Offline sumatra  
#3 Оставлено : 1 сентября 2022 г. 16:21:38(UTC)
sumatra

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

Группы: Участники
Зарегистрирован: 23.05.2012(UTC)
Сообщений: 63
Мужчина
Российская Федерация
Откуда: Подмосковье

Сказал «Спасибо»: 5 раз
В releasenotes-а есть такое:
https://www.cryptopro.ru...&m=125801#post125801
Цитата:

ios: Дополнительная реализация окон на UIAlertController для swift-приложений, активируемая по ключу ios_modern_controls в конфиге (CPCSP-7041).


Не могли бы вы рассказать, что это за параметр и как его установить во что-нибудь не 0?
Offline Андрей Русев  
#4 Оставлено : 1 сентября 2022 г. 17:05:39(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,521

Сказал(а) «Спасибо»: 42 раз
Поблагодарили: 618 раз в 428 постах
Здравствуйте.
Зависания бывают по двум причинам:

  • У вас swift-приложение и вы не используете ios_modern_controls, его можно задать единицей в config.ini в секции [parameters]:
    Код:
    [parameters]
    ios_modern_controls = 1

    В этой реализации окон не будет галки "Запомнить пароль" при его предъявлении.
  • Вы вызываете криптографию из main thread. Начиная с 2020-11-24 КриптоПро CSP 5.0.12000 Kraken в этом случае в консоль XCode мы выбрасываем сообщение "You shall not call CryptoPro CSP from main thread", чтобы разработчик мог протыкать своё приложение под XCode и увидеть, что он сделал плохой код, а не ждать зависания у клиентов.
Официальная техподдержка. Официальная база знаний.
Offline sumatra  
#5 Оставлено : 1 сентября 2022 г. 18:09:49(UTC)
sumatra

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

Группы: Участники
Зарегистрирован: 23.05.2012(UTC)
Сообщений: 63
Мужчина
Российская Федерация
Откуда: Подмосковье

Сказал «Спасибо»: 5 раз
Давно нельзя вызывать криптографию из основного потока?
Я про такое вспомнить не могу. В файлах описаний во фреймворке про это не сказано, в releasenotes-а (по ссылке из предыдущего поста) тоже.
И стандартное приложение CreateFile этому не соответствует.

Правильно я понимаю, что такое поведение как-то связано с окном пароля? Если пароля нет, а все равно виснет - значит, это не про запуск из основного потока?

И вопрос тогда еще.
Т.е. получается, что синхронное подписание я не смогу вызвать?
Потому что если вызвать синхронно на неосновном потоке, а есть пароль, то видимо будет дедлок. Нет?
Offline Андрей Русев  
#6 Оставлено : 1 сентября 2022 г. 18:35:18(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,521

Сказал(а) «Спасибо»: 42 раз
Поблагодарили: 618 раз в 428 постах
Никогда было нельзя. Не только из-за окон, но и из-за времени, в течение которого основной поток можно блокировать работой. Имитацию синхронной работы несложно сделать с помощью ожидания снятия блокировки асинхронным кодом.
Официальная техподдержка. Официальная база знаний.
Offline sumatra  
#7 Оставлено : 1 сентября 2022 г. 18:44:05(UTC)
sumatra

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

Группы: Участники
Зарегистрирован: 23.05.2012(UTC)
Сообщений: 63
Мужчина
Российская Федерация
Откуда: Подмосковье

Сказал «Спасибо»: 5 раз
Хорошо, я попробую на фоновом потоке. Спасибо.

Цитата:

У вас swift-приложение и вы не используете ios_modern_controls, его можно задать единицей в config.ini в секции [parameters]:

Что имеется в виду под swift-приложением? Что-то про SwiftUI? Приожение на objective-c с последующими вставками swift-кода и наоборот - это swift-приложения?
Offline Андрей Русев  
#8 Оставлено : 2 сентября 2022 г. 9:28:47(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,521

Сказал(а) «Спасибо»: 42 раз
Поблагодарили: 618 раз в 428 постах
Да, это про SwiftUI.
Официальная техподдержка. Официальная база знаний.
Offline sumatra  
#9 Оставлено : 23 сентября 2022 г. 18:49:30(UTC)
sumatra

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

Группы: Участники
Зарегистрирован: 23.05.2012(UTC)
Сообщений: 63
Мужчина
Российская Федерация
Откуда: Подмосковье

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