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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline sumatra1  
#1 Оставлено : 15 июня 2017 г. 17:44:58(UTC)
sumatra1

Статус: Участник

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

Добрый день

Два вопроса по cprocsp.

1. Можно ли как-нибудь перенаправить вывод фреймворка, чтобы можно было отобразить в собственном протоколе? Сейчас по факту, в релизном варианте то, что пишет фреймворк, нигде не остается, в том числе - в консоли устройства.


2. Просьба помочь.
Существует ли способ программной переинициализации фреймворка, типа "сброса к состоянию на момент старта приложения"?

Периодически фреймворк перестает работать. С чем связано - непонятно. Грешили на проблемы в своих приложениях, но получилось добиться этого и на входящем в комплект фреймворка приложении CreateFile.
Фреймворк просто перестает работать - его функции возвращают ошибки. При этом, если войти в "панель настроек - взаимодействие с уц - по сертификату", то установленные сертификаты не отображаются. Также, например, проверка целостности возвращает ошибку "при выполнении функции CryptAcquireContext".
Работоспособность восстанавливается после перезагрузки приложения.

Как точно воспроизвести - не понятно.
Как вариант - запустить приложение CreateFile в отладчике, установить точку остановки, например, на строчке 239 файла SignFile.cpp:
Цитата:
//--------------------------------------------------------------------
// Update the message with the data.

---> if(CryptMsgUpdate(

Нажать кнопку "Create file" и оставить приложение висящим на этой точке останова на какое-то время - несколько минут.
Потом продолжить. Может быть не с первого раза, но точно получится, что результат будет "sign failed" с надписью "ключ отсутствует" в консоли отладки:
Цитата:
cpcsp: 0x3a276e40: :281 QueryTester FAIL: Flags 0x7ffffff
cpcsp: 0x3a276e40: :5373 CPCSignHash (hProv=-1596358534, hHash=0xe1be00de, dwKeySpec=1, dwFlags=0x0). Result=0, Err=0x80090020.
capi20: 0x3a276e40: :542 CryptMsgGetParam () Exception :'\316\370\350\341\352\340 0x8009000d: \312\353\376\367 \355\345 \361\363\371\345\361\362\342\363\345\362.' at file:'/dailybuildsbranches/CSP_3_9/CSPbuild/CSP/capilite/CMSSignedMessage.cpp' line:2311
MsgGetParam failedcpcsp: 0x3a276e40: :632 CPCReleaseContext (hProv=-1596358534, dwFlags=0x0). Result=1, Err=0x80090020


Дальнейшие попытки нажимать кнопки "Create file" и "Read file" приводят к ошибке.
Не отображаются сертификаты, проверка целостности возвращает ошибку "при выполнении функции CryptAcquireContext" и т.п.

Понятно, что это режим отладки и все такое, но то же самое может происходить и при работе релизного варианта приложения. При этом, приложение ничего особенного не делает - подписание-проверка подписи-подписание-проверка подписи...

Были замечены также вот такие интересные сообщения в консоль:
Цитата:
cpcsp: 0x3957cfc0: :281 QueryTester FAIL: Flags 0x7ffffff
<название приложения>(3407,0x3957cfc0) malloc: *** mach_vm_map(size=962039808) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
cpcsp: 0x3957cfc0: :281 QueryTester FAIL: Flags 0x7ffffff
<название приложения>(3407,0x3957cfc0) malloc: *** mach_vm_map(size=962039808) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
cpcsp: 0x3957cfc0: :281 QueryTester FAIL: Flags 0x7ffffff


CreateFile проверялся на csp 3.9, но точно это встречалось и в 3.6, и в 4.

Вопрос - с чем может быть связано? Похоже на "что-то с памятью".
Прокомментируйте как-нибудь, пожалуйста...
Offline Русев Андрей  
#2 Оставлено : 16 июня 2017 г. 9:44:56(UTC)
Русев Андрей

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 442 раз в 322 постах
1. Нет. В iOS нет системного журнала, доступного из приложений, поэтому мы пишем только в консоль, вывод с которой ловит XCode.
2. По описанию вы неправильно собираете приложение: перечитайте readme. Целостность приложения контролируется нашим провайдером, если контрольные суммы не прошиты в приложении или не совпадают с фактическими (такое будет при подключении отладчика), что не более, чем через 15 минут API будет заблокировано. Поэтому оценку правильности сборки надо всегда начинать с нажатия на кнопку "проверить целостность".

Отредактировано пользователем 16 июня 2017 г. 9:46:01(UTC)  | Причина: Не указана

Официальная техподдержка. Официальная база знаний.
Offline sumatra1  
#3 Оставлено : 16 июня 2017 г. 10:53:29(UTC)
sumatra1

Статус: Участник

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

1. Понятно. Системного журнала такого нет, да, но дать возможность приложению явно перехватывать ваш лог было бы полезно. Но нет, так нет. Спасибо.

2. С отладчиком понятно. Мог и бы и сам догадаться.

В целом - то, что я спрашиваю, - это именно симптомы принудительной явной блокировки api csp?
Блокировка может произойти только по причине нарушения целостности?

Дело в том, что такие ошибки случались и при штатной работе релизных сборок у обычных реальных пользователей. Никаких отладчиков, переподписания приложения без пересборки и т.п. нет.
Offline Русев Андрей  
#4 Оставлено : 16 июня 2017 г. 19:40:49(UTC)
Русев Андрей

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 442 раз в 322 постах
В следующей сборке CSP 4.0 при ошибке встроенной системы тестирования (Query Tester в журналах) в CryptoAPI будут возвращаться специальные коды ошибок: CRYPT_E_SECURITY_SETTINGS или ERROR_FILE_CORRUPT. Так можно будет отличить прочие ошибки от этих. А сейчас после возникновения ошибки в приложении надо сразу пускать контроль целостности по кнопке - это также позволит отделить прочие ошибки.
Официальная техподдержка. Официальная база знаний.
Offline sumatra1  
#5 Оставлено : 16 июня 2017 г. 19:58:34(UTC)
sumatra1

Статус: Участник

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

угу. понятно.

по моему вопросу
>Дело в том, что такие ошибки случались и при штатной работе релизных сборок у обычных реальных пользователей

посмотрел использованные конкретно в тех случаях конкретные сборки. во всех - целостность нарушена.
почему так собралось - это уже другой вопрос. надеюсь, больше ни у кого не повторится.

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