Как защитить ключи Google API - PullRequest
1 голос
/ 06 июня 2019

Я проводил тестирование безопасности в приложении для Android.Одна вещь, которую я пытаюсь обернуть вокруг себя, это безопасность ключей API;в частности ключи Google Места и Карты.Существует множество публикаций, в которых рассказывается о параметрах, а именно о компиляции ключей в исходный код, размещении их в файлах ресурсов, компиляции их в общую библиотеку и т. Д. В моем конкретном случае ключ Maps находится в файле манифеста, а ключ Placesнаходится в общей библиотеке.Я создал подписанный APK, чтобы проверить, насколько сложно будет получить и использовать один из ключей.Я сделал следующее:

  • Обратный инжиниринг APK с помощью apktool,
  • Открыл манифест и взял ключ Карты,
  • Создал поддельную версию приложения ста же структура пакета, что и у оригинала, содержащего действие с фрагментом карты Google,
  • Поместите ключ Maps в поддельный манифест,
  • Запустил приложение, которое отображало карту

Тогда я:

  • Создал новый класс в поддельном приложении с тем же пакетом и именем, что и оригинал с кодом для загрузки общей библиотеки из / data / data / [имя пакета],
  • Скопировал совместно используемую библиотеку из APK, созданного в обратном порядке, в папку / data / data / [имя пакета] поддельного приложения,
  • Запустил поддельное приложение, которое затем распечаталоКлюч API Locations

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

Я уверен, что долженупустить что-то.Похоже, что единственная опция для Карт - хранить ключ в манифесте.Что мешает кому-то делать то, что я сделал?Конечно, это не может быть просто равнодушным.Я понимаю, что кто-то, вероятно, был бы пойман, если бы попытался опубликовать свое приложение, используя взломанный ключ API.Тем не менее, кто-то может создать приложение и попросить людей загрузить его.Для клиентов было бы огромным препятствием, если бы компании приходилось менять взломанный ключ каждый раз, когда кто-то с ним связывался.

Ответы [ 2 ]

2 голосов
/ 06 июня 2019

Полагаю, вам снова нужно просмотреть ключи API Документов для Google.Кажется, есть нечто, называемое ограничениями, которое должно помочь вам гарантировать, что ваши ключи защищены и не используются в каком-либо другом приложении.

Я считаю, что ограничения препятствуют запросу других доменов, от которых вы не включилиневозможность визуализации.

Ключевые рекомендации API

1 голос
/ 06 июня 2019

Существует много способов защитить ваш ключ API.Ниже ссылки объясняют, как защитить ваши ключи. В зависимости от вашего варианта использования вы можете следовать одному из них

Использование Gradle

Использование NDK

Использование вызова с сервера

...