Что такое SSL-сертификат для мобильных приложений
Защита данных пользователя является одной из основных задач разработчиков мобильных приложений, работающих по схеме клиент-сервер. Это особенно актуально при разработке приложений для Android и iOS в сфере интернет-банкинга. В таком случае, при наличии проблем с безопасностью, клиент рискует своими деньгами, а банк – репутацией.
Для чего нужен SSL-сертификат
SSL-сертификат необходим для установления защищенного соединения по безопасному протоколу HTTPS. Он обеспечивает шифрование и целостность передаваемых данных, а также позволяет идентифицировать сервер, с которым устанавливается соединение.
Корневые сертификаты, на основании которых создаются все дочерние, выпускаются доверенными организациями, которые называются центрами сертификации. Список доверенных сертификатов присутствует в каждой мобильной ОС и обновляется вместе с ней. При этом могут добавляться новые сертификаты или удаляться те, которые были скомпрометированные. При этом недействительными становятся все дочерние сертификаты, выданные на основании корневого, утратившего доверия.
Для получения SSL-сертификата нужно подать заявление в авторитетную организацию. В заявлении указывается авторизуемый адрес соединения и данные о владельце сервера или сайта.
Такая схема позволяет справиться с хакерскими атаками, когда злоумышленник перехватывает и расшифровывает поток данных между приложением и сервером. Шифрование данных может осуществляться симметричным методом, когда для кодирования и раскодирования данных используется один и тот же ключ, или асимметричным – использующим два разных ключа.
SSL pinning
У такого метода защиты есть один существенный недостаток. Клиент сверяет сертификат со списком доверенных на устройстве. Пользователь, по невнимательности, может установить поддельный сертификат, и тогда перехват и дешифровка данных станут возможны. Для того, чтобы закрыть эту уязвимость при создании приложений применяется метод, называемый SSL pinning – внедрение сертификата безопасности в код клиентской части. В таком случае можно быть уверенным, что сверка происходит именно с требуемым SSL-сертификатом.