2014-09-24 5 views
2

Я создаю приложение для Android, в котором я буду использовать некоторые из API Google из самого приложения. Я включил выставление счетов и увеличил квоту для некоторых из API.Google API Security при использовании устройства android

При создании учетных данных я выбрал Установленное приложение, Тип приложения в качестве Android и предоставил имя пакета и отпечаток SHA1. Я просто хотел узнать, как Google решает, возникает ли запрос из моего собственного приложения для Android.

Любой, у кого есть мое приложение, установленное на их устройстве, может получить APK, укореняя устройство и получив отпечаток пальца и имя пакета SHA1. Также, декомпилируя код с помощью некоторых инструментов Dex, вы также можете извлечь идентификатор клиента. Поскольку я включил выставление счетов за свою учетную запись, если кто-либо сможет получить все эти данные, они могут начать использовать API с помощью моего идентификатора.

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

Creating credential for API consumption

+1

Я не знаю, как это делает Google. Это коммерческая тайна. Сбой при переполнении пакета. Вы упомянули все об обратном проектировании приложения, кроме самой важной части. Поместите трассировку в сеть, чтобы увидеть, как работает api-связь. Подумайте о том, что веб-сервис может извлекать файлы cookie из браузера и как вы можете использовать эту технологию. – danny117

+0

Да, я согласен, что пропустил эту часть. благодаря –

ответ

1

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

На устройствах Android вы используете сервисы google через Google Play Services APK. Этот код отправляет запрашивающие приложения, подписывающие сертификат отпечатка пальца на серверные серверы Google. Ваш (или потенциальный злоумышленник) код не предоставляет этот отпечаток при вызове API Google API. Сертификат отпечатка пальца запрашивается за кулисами с помощью диспетчера пакетов. Бэкэнд Google сравнивает полученный отпечаток с зарегистрированным вами. Если это не соответствует, запрос отклоняется. Все это сообщение зашифровано, поэтому отслеживание трафика не работает.

Таким образом, для того, чтобы злоумышленник использовал ваш идентификатор клиента, он должен манипулировать платформой Android или Play APK, чтобы отсылать неправильный отпечаток сертификата. Это непростая задача. Google Play Services не является открытым исходным кодом, также Google очень активно обновляет его и отказывается обслуживать запросы из старых версий. Это означает, что если некоторые атаки APK появятся в дикой природе, они выпустят новую версию.

Подобные механизмы, вероятно, установлены для Chrome и iOS.

0

Сортировать ответ: вы не можете. Более длительный ответ: переместите важные вещи на защищенный веб-сервер ... Больше и лучшие трюки и объяснения здесь How to avoid reverse engineering of an APK file?

Смежные вопросы