Вы не можете ограничить веб-сервис apks, подписанный определенным ключом.
Подпись вашего apk проверяется операционной системой Android и напрямую не используется совместно с веб-сервисами, к которым подключается устройство. Даже если вы прочтете свою подпись из хранилища ключей и отправите ее вместе с запросами, злоумышленник может просто отправить одну и ту же подпись (например, тот же поток байтов), не имея доступа к вашему закрытому ключу. Ему просто нужно захватить подписанный apk, прочитать байты из хранилища ключей (или послушать законный запрос) и испортить данные.
Вам необходимо будет подписать индивидуальные запросы на уровень безопасности. Но если вы сохраняете закрытый ключ в версиях выпуска (ключ, не распределенный по gitHub), и подписывайте запросы с использованием этого ключа, вы небезопасны, так как закрытый ключ распространяется как часть вашего apk и, таким образом, может быть легко извлечен.
В любом случае ваш API может получить доступ другими apks.
Однако может быть другой способ ограничить ваш API, например, с помощью лицензионных токенов и т. Д. В этом случае вам, вероятно, не понравится, если пользователь сам построит apk, если у него есть действительная лицензия маркер. Если токен лицензии используется и распространяется, вы можете реагировать на большой объем трафика на этом токен лицензии и, например, блокировать его из дальнейших запросов. Поскольку я не использую Google Play, я не уверен, насколько они могут быть проверены с вашего сервера, но, возможно, application licensing portal является хорошей отправной точкой для поиска подходящих токенов.
имя пользователя/пароль в хранилище ключей? Если я правильно вас понимаю, вы хотите ограничить свой веб-сервис подпиской, подписанной вами? – dst
Правильно, сейчас единственный способ, который я мог себе представить, - подтвердить, что apk была подписана мной с помощью моего имени пользователя/пароля. – KDEx
Вы подписываетесь с именем пользователя? Как? – dst