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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline dorogo  
#1 Оставлено : 13 апреля 2020 г. 12:46:47(UTC)
dorogo

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Здравствуйте, возникла необходимость работы с КриптоПРО CSP на Android.

Для начала решил установить приложение "КриптоПРО CSP" - потыкать, понять что к чему.
На декстопе экспортировал контейнер с закрытым ключом (из вариантов только формат PKCS#12 ".PFX").
При попытке на Android устройстве выполнить функцию "скопировать ключевой контейнер" - файл в окне проводника не виден и загрузить не получается.

Так понимаю проблема с форматом ".PFX". Но тогда вопрос - каким образом переносить контейнер с закрытым ключом?

З.Ы. Пробовал этот же контейнер загрузить в КриптоАРМ ГОСТ - там все получилось. Знаю это другая компания, но там тоже КриптоПРО CSP используется.
Offline Андрей Солдатов  
#2 Оставлено : 13 апреля 2020 г. 17:16:22(UTC)
Андрей Солдатов

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

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

Сказал «Спасибо»: 5 раз
Поблагодарили: 70 раз в 66 постах
Добрый день.
Вам нужно выгрузить и перенести на Android-устройство ключевой контейнер в виде папки с 6-ью файлами *.key
Затем - выполнить копирование в КриптоПро CSP, указав данную папку.
Техническую поддержку оказываем тут.
Наша база знаний.
thanks 1 пользователь поблагодарил Андрей Солдатов за этот пост.
dorogo оставлено 13.04.2020(UTC)
Offline dorogo  
#3 Оставлено : 13 апреля 2020 г. 18:01:17(UTC)
dorogo

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Большое спасибо, все получилось.
Offline dorogo  
#4 Оставлено : 13 апреля 2020 г. 19:35:31(UTC)
dorogo

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Возник еще вопрос.
Чтобы не плодить темы напишу сюда.

Такая ситуация: на девайс установил КриптоПро CSP, сертификаты и контейнер установил.
Из своего приложения вызываю Activity подписи. Все открыватся, подпись создается, возвращается в виде результата в мое приложение, где я сохраняю файл подписи.

после того, как скинул получившиеся файлы подписи на ПК, решил проверить через КриптоАРМ и обнаружил следующее:
- присоединенная подпись: отображается как верная, сертификаты и цепочка тоже. Все ОК.
- отсоединенная подпись: отображает как "Подпись недействительно". По кнопке печать в открывшемся документе
"Статус - Общий статус подписи - Одна или несколько подписей некорректна или нет доверия
Статус проверки математической корректности - Одна или несколько подписей некорректна или нет доверия"

Подписываю на ПК через КриптоАРМ тот же файл - все нормально.
После открытия ASN1 viewer-ом файлов отсоединенной подписи, созданных на ПК и Android сравнил их - отличаются только последние строки, и то, возможно только потому, что в подпись на ПК добавлено "время создания подписи".

Все действия производил на эмуляторе из Android Studio.

- может быть проблема из-за эмулятора?
- трабла по идее в том, что файл "считывается" по разному на Android и на ПК - соответственно при отсоединенной подписи "разные" данные и ошибка, а при присоединенной - то что подписано - внутри файла подписи.
Однако на ПК исходный файл присоединенной подписи открывается корректно.
Offline dorogo  
#5 Оставлено : 14 апреля 2020 г. 1:48:22(UTC)
dorogo

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Разобрался. Все работает верно - это я в коде накосячил.

Но возник теперь другой вопрос.
Из своего приложения я вызываю intent криптопро CSP для подписи.
Правильно я понимаю, что никаких вариантов добавить время создания подписи при подписании через Intent нет?

В руководстве "How_to_build_android_example.docx" в пункте 4 про Intetn-ы сказано

Цитата:
Параметры, которые можно передавать этим activity, есть и используются в примерах в классе ACSPIntentActivity.
Если же разработчику необходимо создать свой собственный интерфейс, то следует обратиться к примерам ниже.


Вопрос по поводу "необходимо создать свой собственный интерфейс". Это имеется ввиду, что в этом случае надо создавать собственное приложение, в которое включено sdk криптопро, и там уже обращаться к функционалу?

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

Отредактировано пользователем 14 апреля 2020 г. 2:13:35(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#6 Оставлено : 16 апреля 2020 г. 9:55:12(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,962
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Добрый день.
Вопрос: никаких вариантов добавить время создания подписи при подписании через Intent нет?
Ответ: Intent'ы были добавлены в качестве эксперимента, что-то вроде высокоуровневого API, чтобы 1) разработчику в вызывающем приложении использовать меньше кода для популярных операций 2) не работать с java-провайдерами и т.д. в вызывающем приложении 3) держать ключевые контейнеры в одном месте вне клиентского приложения, т.е. в ACSP. Но intent'ы ограничены в возможностях, тут лишь некий базовый функционал. Он будет развиваться и дорабатываться, но не сразу.

Вопрос: по поводу "необходимо создать свой собственный интерфейс". Это имеется ввиду, что в этом случае надо создавать собственное приложение, в которое включено sdk криптопро, и там уже обращаться к функционалу? Но в таком случае, мне придется также добавлять функционал загрузки ключевого контейнера, паролей и т.д. и делать подпись с необходимыми параметрами, так?
Ответ: полное SDK добавлять необязательно в свое приложение, но код писать придется. SDK сейчас включает so-библиотеки провайдера (которые по умолчанию находятся в ACSP.apk),ресурсы к нему (raw) и jar-файлы java-провайдеров и др. Если добавить полное SDK с ресурсами и т.д. в свое приложение, то получится приложение с встроенным провайдером (как ACSP) и ACSP станет не нужен. Другой вариант - добавить только jar-файлы к себе, тогда ACSP (c so-библиотеками) по-прежнему нужен, но лишь как приложение, предоставляющее нативный провайдер и для ввода лицензии.
В обоих случаях потребуется писать код: для работы с контейнерами, подписью и т.д., смотря что требуется. Необходимые примеры есть в ACSPClientApp. В случае с включением полного SDK еще потребуется организовать ввод лицензии CSP.

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

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
dorogo оставлено 20.04.2020(UTC)
Offline dorogo  
#7 Оставлено : 20 апреля 2020 г. 14:24:40(UTC)
dorogo

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

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

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