Как уже указывал @Pierre, способ, которым вы выполняете проверку, является действительным, но я хотел бы предупредить о том факте, что закрепление сертификата может быть обойдено во время выполнения, с такими инструментальными средами, как Frida или xPposed , но все же рекомендуется и рекомендуется использовать его как еще один уровень безопасности. Для получения более подробной информации об этом, пожалуйста, прочитайте эту статью , чтобы понять, как пиннинг легко реализовать, как это может быть кошмаром для поддержания с эксплуатационной точки зрения и как его можно обойти.
Есть ли лучший способ проверить apk?
Да, он существует и называется Аттестацией мобильных приложений. Это решение будет состоять из SDK, интегрированного в мобильное приложение, которое взаимодействует с облачным сервисом в фоновом режиме, что не влияет на работу пользователя.
Решение Mobile App Attestation гарантирует во время выполнения, что приложение не подвергается атаке человека посередине, подделывается, не работает на рутированном или поврежденном устройстве, не подключено к отладчику, не работает на эмуляторе и это тот же самый оригинал, загруженный в магазин приложений или магазин Google Play.
Таким образом, облачная служба при успешной аттестации целостности мобильного приложения выдает очень короткий токен JWT , который подписан секретом, известным только серверу API и службе аттестации мобильных приложений, работающей в облако. При сбое аттестации JWT подписывается секретом, неизвестным серверу API. В каждом запросе к серверу API мобильное приложение будет отправлять этот токен JWT, а сервер API будет проверять, действительна ли подпись и токен не истек, и будет отклонять запрос в случае сбоя любой из проверок.
Когда секретное приложение, используемое службой облачной аттестации, не известно мобильному приложению, невозможно выполнить обратный инжиниринг токена JWT, даже если мобильное приложение подделано, работает на корневом устройстве или осуществляет связь через соединение, которое является быть целью человека в средней атаке.
Вы можете найти такой сервис в Approov (я работаю здесь), в котором есть SDK для нескольких платформ, включая Android. Для интеграции также потребуется небольшая проверка кода сервера API для проверки токена JWT.
Фрида
Динамический инструментарий инструментария для разработчиков, реверс-инженеров и исследователей безопасности.
Экспоузд
Xposed - это фреймворк для модулей, которые могут изменять поведение системы и приложений, не касаясь каких-либо APK.
токен JWT
Аутентификация на основе токена
JSON Web Tokens - это открытый промышленный стандарт RFC 7519 для безопасного представления заявок между двумя сторонами.