Защищаем мобильное приложение с помощью «КриптоПро»: пошаговая инструкция / Хабр

Защищаем мобильное приложение с помощью «КриптоПро»: пошаговая инструкция / Хабр ЭЦП

Что нового

Помимо подтверждения операций подписи, аутентификации и др., мобильное приложение myDSS 2.0 предоставляет следующие возможности3:

Внимание!Для проверки возможности перехода с myDSS на myDSS 2.0 необходимо обратиться в организацию, предоставившую Вам учетную запись.

Pki клиент

PKI Клиент является специальным приложением для iOS-устройств (iPad, iPhone), обеспечивающим управление ключевой информацией и сертификатами ключей проверки электронной подписи, необходимыми для функционирования остальных приложений линейки Защищенная мобильность.

Возможности

PKI Клиент реализует следующие функции:

Авторизация при помощи приватного ключа

Для авторизации с использованием приватного ключа нам понадобится сам ключ, установленный вышеописанным образом, установленный корневой сертификат УЦ, настроенный сервер с «КриптоПро» и с добавленным в доверенные нашим ключом. Сервер должен поддерживать работу по TLS версии 1.2 для всех устройств с iOS 9 и выше, а также иметь ГОСТовые cipher suites от «КриптоПро».

Безопасность

Использование КриптоПро DSS совместно с приложением myDSS 2.0 позволяет подписывать документы квалифицированной электронной подписью в режиме мобильной подписи (с хранением ключей на устройстве пользователя).

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

Дополнительные компоненты

Защищенная почта тесно интегрирована со следующими продуктами из линейки Защищенная мобильность:

Загрузка mydss 2.0

Для загрузки приложения отсканируйте QR-код или перейдите по одной из ссылок ниже.

1 По сравнению с мобильным приложением myDSS.2 С учетом ограничений, описанных на странице о КриптоПро DSS.3 Мобильные приложения DSS Client и myDSS 2.

Защищенная адресная книга

Защищенная адресная книга — iOS-приложение, позволяющее безопасно хранить и работать с корпоративной и личной адресной книгой, используя мобильные устройства iPad или iPhone.

Приложение поддерживает интеграцию с LDAP-каталогами Microsoft Active Directory, IBM Lotus Domino. Хранение контактов в памяти устройства и передача данных по каналам связи обеспечивается с использованием криптографической защиты, отвечающей российским стандартам.

Защищенные задачи

Защищенные задачи — iOS-приложение, позволяющее сотрудникам организации работать со списками задач Microsoft Exchange Server с использованием мобильных устройств iPad или iPhone, аналогично тому как это происходит в среде приложения Microsoft Outlook под Windows.

Приложение обеспечивает криптографическую защиту информации о задачах, хранимую в памяти iOS-устройства и передаваемую по каналам связи.

Защищенный календарь

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

Приложение обеспечивает криптографическую защиту информации календаря, хранимую в памяти iOS-устройства и передаваемую по каналам связи.

Импорт «криптопро» в мобильное приложение

Первый шаг для использования «КриптоПро» в своем приложении — это внедрить фреймворк, скачанный с сайта компании. В пакете для iOS помимо самого фреймворка содержатся также три примера — создание электронной подписи (ЭЦП), создание ssl-тоннеля и пример, позволяющий собрать браузер, обладающий функциональностью создания и проверки ЭЦП на веб-страницах.

Подробное описание содержится внутри примеров, в файлах Readme. На их основе легче понять алгоритм действий. Очень поможет пакет для MacOS: в нем содержится много полезных примеров с подробными комментариями. После его установки все примеры будут находиться на диске в разделе opt/cprocsp/src/doxygen/CSP.

Инструкция по импортированию самого фреймворка находится в CPROCSP.framework в файле ReadMe, разберем его по пунктам.

1. От вас требуется зайти в консоль и прописать путь к скаченному фреймворку, далее запустить утилиту, как описано ниже:

Контейнер закрытого ключа для работы с «криптопро»

На момент написания статьи «КриптоПро CSP 4.0» не поддерживает работу с сертификатами *.pfx, которые содержат и публичный, и приватный ключ. Необходимо использовать контейнеры *.000, которые можно получить только при использовании «КриптоПро»; их формат нигде не описан, и записываются они, как правило, на ключевых носителях, токенах (флешках, дискетах).

Механизмы защиты

Для обеспечения безопасности данных применяется: защита канала связи с внешним периметром организации: TLS-ГОСТ, двухфакторная аутентификация, шифрование и контроль целостности трафика; хранение электронных сообщений, вложений, базы контактов на iOS-устройстве в зашифрованном виде; шифрование содержимого сообщений на сертификате адресата, формирование и проверка ЭП сообщения и вложений;

Назначение

Защищенная почта — является программным средством защиты информации (СЗИ), позволяющим мобильным сотрудникам работать с электронной почтой с использованием устройств iPad или iPhone, минимизируя риски утечек и несанкционированного доступа к информации.

Защищенная почтаориентирована на использование в государственных и коммерческих организациях, по почтовому каналу которых передается информация, классифицируемая как конфиденциальная, коммерческая тайна, персональные данные (ПДн).

Защищенная почтареализует поддержку протокола S/MIME, позволяя адресатам обмениваться шифрованными и подписанными с помощью ЭП сообщениями. Расшифровка писем выполняется с участием закрытого ключа сертификата получателя, что гарантирует конфиденциальность переписки между отправителем и получателем.

Полезные ссылки

— подробное описание всех функций, входящих в них параметров, а также рабочие примеры.

Форум — форум «КриптоПро», на котором сотрудники ежедневно отвечают на вопросы. Многие ответы на вопросы уже даны, и, несмотря на их давность (порою около 6 лет), они все еще могут вам помочь.

Руководство разработчика — написанное компанией руководство, которое содержит в себе перечень входящих в состав криптопровайдера функций с кратким описанием и примерами.

Описание ошибок — большой список возможных ошибок, возникающих в функциях С , с их кодом и кратких описанием. Чтобы получить код ошибки, используйте в коде приложения функцию CSP_GetLastError, входящей в состав фреймворка. Она хранит в себе код последней полученной ошибки.

Работа с «криптопро»

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

Компания «КриптоПро» предоставляет мобильным разработчикам мощный инструмент для внедрения в свое приложение такого сложного функционала совершенно бесплатно, но есть и ложка дегтя. К сожалению, за долгое время существования компании не было сделано удобной и понятной документации. Отдельно для мобильных разработчиков ее нет в принципе.

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

Также придется поработать с С и самостоятельно заботиться о выделении и очистке памяти.Стоит отметить, что статья написана при актуальной версии «КриптоПро CSP 4.0», поэтому описанные ниже пакеты для разработчиков в будущем могут отличаться.

Уникальность

Отличительными чертами приложения Защищенная почта являются:

Установка контейнера закрытого ключа в приложение

Как пишут сами сотрудники «КриптоПро», есть три варианта установки контейнера на устройство:

• Через iTunes File Sharing.• Использовать отдельное приложение для записи файлов на iOS, типа iExplorer.• Написать собственный экспорт ключа в блоб (PRIVATEKEYBLOB) и импортировать его в коде приложения. Пример такого способа находится в вышеупомянутом пакете для MacOS под названием EncryptKey/DecryptKey.

Мы использовали первый вариант — как самый быстрый и удовлетворяющий требованиям заказчика. Именно для его реализации при импорте был выбран флаг USE_CACHE_DIR = false; если iTunes File Sharing вами использоваться не будет или вы хотите скрыть от пользователя возможность заглянуть в папку с ключами, то лучше скройте ее, выставив флаг true.После первого запуска с установленным фреймворком в папке Documents приложения будет создана папка cprocsp:

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

Далее существует два пути: написать все функции самому или использовать уже готовый контроллер, и так как его хватит для решения большинства задач, о нем и поговорим.Фреймворк содержит в себе хедер-файл с названием PaneViewController.h. Если вы не обременены строгостью по дизайну, то можете импортировать предложенные xib-файлы (находятся в CPROCSP.framework/Resources) и инициализировать криптопанель через них — к примеру, таким образом:

Оцените статью
ЭЦП64
Добавить комментарий