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

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

‎crypto pro – трекер потфолио

Трекер криптовалют, новости, сигналы и портфель с поддержкой для всех торгуемых криптовалют и токенов.

TODAY WIDGET:
– отображение 2-10 любимых криптовалют
– обновление виджета всякий раз, как вы его видите
– возможность отображения и структуры портфеля

APPLE WATCH:
– отображение 4-20 любимых криптовалют
– настраиваемые расширения для каждого циферблата часов
– обновление расширений каждые 20-30 минут
– графики динамики цен за последние 24 часа
– запросы QR-кода

ПРИЛОЖЕНИЕ ДЛЯ IPHONE И IPAD:
– темный и светлый режимы
– настраиваемые торговые сигналы
– раздел новостей для каждого койна
– калькулятор для конвертации валюты
– FaceID, TouchID или защита паролем
– портфель с калькулятором прибыли/убытков
– настраиваемый список любимых койнов
– сравнение цен на различных биржах
– графики динамики цен и объема торгов
– изменяемый размер шрифта (динамичного типа)
– поддержка Peek & Pop и 3D Touch
– настраиваемые значки приложения (только на iOS 10.3 )
– поддержка горизонтального режима на iPhone Plus
– разнообразные уведомления (3D Touch для показа графиков)

ИМПОРТ ПОРТФЕЛЯ:
– через адреса кошелька (Premium)
– через ключи API биржи (Premium)

ПОЛНАЯ КОНФИДЕНЦИАЛЬНОСТЬ:
– все ваши персональные данные хранятся на вашем устройстве
– резервное копирование/синхронизация через вашу учетную запись iCloud или Dropbox

Поддерживаемые биржи:
Coinbase, GDAX, Kraken, Poloniex, Bitfinex, Quoine, WEX, OKCoin, Bitstamp, Qryptos, Bithumb, Bitsquare, BitFlyer, CEX.IO, Huobi, BTC China, Gemini, Bittrex, Binance, HitBTC, QuadrigaCX, BTC Markets, Mercado Bitcoin, EtherDelta, KuCoin, CoinSpot, Korbit, Liqui
– новые биржи добавляются по требованию

Читайте также:  Что такое Рутокен Lite и кому он необходим

Поддерживаемые валюты:
– все фиатные валюты
– металлы (золото, серебро, платина, палладий)
– все торгуемые криптовалюты и токены
– новые добавляются, как только появляются на биржах

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

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

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

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

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

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

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

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

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

Читайте также:  Заставляем плагин госуслуг работать для всех пользователей в терминальной среде / Хабр

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

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

Форум — форум «КриптоПро», на котором сотрудники ежедневно отвечают на вопросы. Многие ответы на вопросы уже даны, и, несмотря на их давность (порою около 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) и инициализировать криптопанель через них — к примеру, таким образом:

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