Закрепление сертификатов и SSL
Я пытаюсь узнать о создании безопасных мобильных приложений. Мне интересно знать, нужно ли нам закреплять сертификат, если наши сетевые вызовы с мобильного на сервер используют https?
2 ответа
Да, вы должны сохранить его как необработанный файл в папке вашего приложения и использовать его для вызова сервера для запросов. Обратите внимание: если у вас есть самозаверяющий сертификат, вы должны принудительно сделать его так, как это сделано доверенным органом.
Мне интересно знать, нужно ли нам закреплять сертификат, если наши сетевые вызовы с мобильного на сервер используют https?
https гарантирует, что данные, передаваемые между вашим мобильным приложением и сервером API, зашифрованы и не могут быть отслежены третьими сторонами, что частично предотвращает их от атак типа "человек посредине".
Поэтому я говорю частично, потому что злоумышленник может побудить пользователей установить собственный сертификат ssl, чтобы они могли использовать бесплатный Wi-Fi. Обычно это делается с помощью поддельных порталов Wi-Fi, на которых вы должны войти, чтобы иметь бесплатный Wi-Fi, например, те, которые вы нашли в аэропортах, поездах и т. Д. Если злоумышленнику удастся обмануть пользователя, весь трафик направляется через злоумышленника, и, несмотря на то, что он является https, его можно расшифровать, если мобильное приложение использует специальный сертификат злоумышленника, но злоумышленник всегда будет использовать исходный сертификат при взаимодействии с сервером API, поэтому ни API, ни сервер, ни мобильное приложение, ни пользователь Помните, что сообщение перехвачено и, возможно, даже подделано.
Таким образом, использование закрепления сертификата предотвратит любой тип атаки "человек посередине", даже тот, в котором пользователь мобильного приложения является злоумышленником, который намеренно расшифровывает собственный трафик, чтобы реконструировать связь мобильного приложения с сервером API в Чтобы получить достаточно знаний, чтобы начать атаку против него.
Пришло время для плохих новостей... Прикрепление сертификата может быть обойдено, когда злоумышленник получает доступ или контролирует мобильное устройство. В этой статье рассказывается о том, как закрепление сертификата можно использовать и обойти, используя такую среду, как xPposed, которая будет перехватывать вызовы для проверки сертификата, таким образом обходя процесс проверки.
Так я должен использовать закрепление сертификата? Да, вы должны это сделать, потому что это еще один уровень защиты, и злоумышленнику требуется больше усилий для обратного инжиниринга вашего мобильного приложения, что он может посчитать не стоящим усилий, но если он сочтет это достойным, вы можете поискать в Google. для решения для аттестации мобильных приложений для дальнейшей защиты связи между мобильным приложением и сервером API.
Но имейте в виду, что хотя закрепление сертификатов может быть легко внедрено в ваше мобильное приложение, его обслуживание может оказаться кошмаром. Обязательно прочитайте раздел " ПИННИНГ - НОЧЬ" в ссылке, на которую я ссылался ранее об обходе пиннинга сертификата.