Контакты
Подписка
МЕНЮ
Контакты
Подписка

Применение криптографии в качестве сервиса для мобильных приложений

Сергей Петренко, 10/01/19

Авторы: Сергей Петренко, Руслан Щучинов

 Актуальность вопросов обеспечения информационной безопасности в мобильных устройствах растет вместе с популярностью их использования.

В данной статье мы коротко рассмотрим некоторые аспекты применения криптографических методов защиты информации для мобильных платформ.

 

Применение криптографии в персональных мобильных устройствах

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

Защищенные коммуникации "точка–точка"

Многим бы хотелось, чтобы их личные разговоры по мобильным телефонам были защищены и недоступны третьим лицам. Однако изначально "защищенная" сотовая связь стандарта GSM по факту таковой уже не является в силу постоянно растущего количества обнаруженных закладок и уязвимостей в протоколах защиты мобильной связи (A3, А5, A8, G4 и др.), мобильных ОС и аппаратной части устройств. Кроме того, известны случаи "прослушки" абонентов с использованием поддельных базовых станций, в том числе передвижных, есть атаки на сами базовые станции с возможностью перехвата управления и т.д.

Использование наложенных криптографических механизмов потенциально может обеспечить конфиденциальность связи в сотовой сети, но сценариев их массового применения пока нет. Известны лишь экзотические варианты, например приобретение и использование группой людей для связи между собой одинаковых "криптотелефонов" (Blackphone, Cryptophone и др.).

Доступ к системе ДБО

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

Электронная цифровая подпись

Удаленно использовать ряд сервисов, например предоставляемых порталом государственных услуг, можно при наличии квалифицированной ЭЦП, реализация которой требует наличия сертифицированных ФСБ России средств криптографической защиты информации (далее – СКЗИ). Исходя из этого, использование квалифицированной ЭЦП на мобильном устройстве сопряжено с решением специфических задач, таких как контроль распространения СКЗИ, безопасное хранение ключей в устройстве и др.

Альтернативным путем является реализация ЭЦП непосредственно на SIM-карте. Такой сценарий, например, уже начал реализовываться в этом году в Казахстане в рамках проекта "Мобильное правительство". В России реализация ЭЦП на SIM-карте потенциально интересна по следующим причинам:

  • на российском рынке есть примеры сертификации программных СКЗИ, реализованных на иностранных чипах и сертифицированных по классу КС3, чего нельзя сказать про СКЗИ для мобильных платформ, а SIM-карта по сути и является микрочипом иностранного производства;
  • российские производители микросхем технологически уже готовы выпускать "отечественные" SIM-карты – сертификация СКЗИ на таких чипах может быть заметно проще и быстрее, чем на SIM-картах иностранного производства;
  • SIM-карта выдается при обязательном предъявлении паспорта; запросив дополнительно к паспорту СНИЛС, можно выполнить требование по установлению личности владельца при выдаче квалифицированного сертификата ЭЦП.

Вариант размещения ЭЦП на SIM-карте в течение последних нескольких лет достаточно активно прорабатывался как Минкомсвязи России, так и операторами сотовой связи и некоторыми вендорами СКЗИ. Однако реального воплощения в жизнь пока так и не получил.

NFC-платежи

При наличии в мобильном телефоне NFC-модуля и Secure Element (далее – SE) определенные технические решения позволяют "превратить" его в "электронный кошелек" для совершения бесконтактных платежей. SE представляет из себя отдельный микрочип, отвечающий за информационную безопасность, и бывает нескольких типов: встроенный (Embedded SE), отчуждаемый (Removable SE – microSD-карта) или SE на U-SIM. Для реализации "на борту" телефона виртуальной платежной карты необходима поддержка в SE международных стандартов (например, EMV) и соответствующих им криптоалгоритмов (3DES, RSA, SHA).

Массового распространения технология NFC-платежей с мобильного телефона в России пока не получила, но уже есть отдельные пилотные проекты и работающие сервисы.

Встраивание криптографии

Для наиболее популярных мобильных платформ (Android и iOS) встраивание криптографии возможно по двум вариантам, каждый из которых имеет свои особенности.

  • Получение прав "суперпользователя" (Jailbreak для iOS и UnlockRoot для Android) и размещение криптобиблиотек на уровне ядра ОС с заменой системной криптографии на "свою".
  • Встраивание криптографии через предоставляемый ОС специальный API. Такой интерфейс доступен в OC Android и iOS начиная с версий 4.х и 9.х соответственно. Этот путь выглядит более предпочтительным, т.к. реализация происходит легитимным путем, и сохраняется работоспособность всех системных средств защиты платформы.

Разработка криптографического ПО

Существует как минимум три важных отличия в разработке ПО для мобильных устройств от создания приложений для ПК.

1. Дефицит памяти. ОС Android 4 может ограничить размер выделенной для приложения оперативной памяти объемом в 64 Мб. Это означает, что Android-приложение, работающее с большими файлами, не может, например, сначала сформировать нужную структуру формата PKCS#7 в памяти, а затем записать ее в файл. Возможный дефицит памяти приходится учитывать на всех уровнях приложения вплоть до чтения и записи сущностей в формате стандарта двоичного кодирования информации ASN.1. Отсюда следует, что поточность, т.е. способность программы обрабатывать большие массивы данных порциями, а не целиком, должна закладываться в мобильное приложение с криптографией еще на этапе проектирования.

Заказчик системы электронного документооборота может, например, предъявить требование поддержать шифрование файлов объемом до 200 Мбайт. Для разработчиков это означает, что файлы в формате PKCS#7 на мобильных устройствах могут записываться только в поточном режиме с помощью TLV-элементов неопределенной длины. А это уже влияет на выбор модуля для работы с ASN.1, реализацию стандарта PKCS#7 и т.д.

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

Каждый из российских криптоалгоритмов имеет свои способы повышения скорости работы. В алгоритме шифрования ГОСТ 28147–89 вместо стандартной таблицы узлов замены можно использовать расширенный вариант таблицы с "утопленной" операцией циклического сдвига. В новой функции хеширования ГОСТ Р 34.11–2012 трудоемким является линейное преобразование L, которое можно оптимизировать, вычислив заранее результаты для комбинаций из 8 бит. Одна из самых "тяжелых" операций в криптографии – процедура создания/проверки подписи. В алгоритмах ГОСТ Р 34.10–2012 эту процедуру можно оптимизировать сразу по трем независимым направлениям:

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

3. Реализация. Возможности для кастомизации криптографии в иностранных мобильных ОС сильно ограничены, что вынуждает российских разработчиков искать нестандартные решения. Например, если в Android-приложении стандартный элемент WebView должен показывать HTTPS-страницы с ГОСТ TLS, программе необходимо сначала "добраться" до системного класса, обслуживающего HTTPS-соединения, заменить в нем фабрику SSL-сокетов на собственную, поддерживающую Cipher Suites с алгоритмами ГОСТ и уже после этого открыть заданную HTTPS-ссылку. На практике это можно реализовать, например, с использованием методов рефлексивно-ориентированного программирования.

Криптография во вредоносном ПО

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

Зашифровываться могут:

  • SMS-коды и сообщения;
  • адреса удаленных ботнет-серверов;
  • канал передачи данных удаленному серверу;
  • имена функций, переменных и файлов, используемых в коде;
  • исполняемые и бинарные файлы, содержащие вредоносный функционал.

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

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

 

Темы:КриптографияИнфоТеКС2015
Комментарии

More...