Является ли google-services.json безопасным от хакеров?

Если хакер декомпилировал мой APK, он сможет увидеть мои ключи API из этого файла? Меня не беспокоит мой репозиторий исходного кода. Я просто беспокоюсь о том, что хакер может увидеть этот ключ API от моего APK каким-то образом. Я пытаюсь зашифровать этот файл и расшифровать его во время выполнения, но с некоторыми проблемами

Ответ 1

При настройке плагина Google вам будет очень трудно скрыть содержимое файла google-services.json. Единственным жизнеспособным способом было бы заново реализовать то, что плагин уже сделал для вас, что я бы не советовал. Когда вы используете плагин так, как того хочет Google, любой, к сожалению, легко разархивирует ваш APK, чтобы получить ваш Firebase/ключ API Google.

Однако вы можете предотвратить любое злоупотребление этим ключом API, указав, кто может его использовать. Для приложения Android вы можете указать, что ваш ключ API может использоваться только приложением Android, которое было подписано определенным хранилищем ключей и использует указанное имя пакета.

Чтобы настроить эти ограничения, следуйте документации здесь: https://cloud.google.com/docs/authentication/api-keys#api_key_restrictions

Помимо ограничения ключа API, если вы используете Firebase RTD/Firestore, вы также должны убедиться, что вы настроили правила безопасности для хранилища данных. В зависимости от вашего варианта использования вы можете запретить анонимному пользователю читать или писать в разделах вашей базы данных.

Если вы хотите получить больше информации, вот хорошая статья, которую я нашел о том, как защитить ваши ключи API в приложении Android: https://proandroiddev.com/developing-secure-android-apps-8edad978d8ba

Ответ 2

Все в приложении может быть прочитано очень просто, так как Google предлагает вам избегать помещать информацию в apk, особенно серверный ключ, в случае облачной службы обмена firebase/google или услуг такого рода.

Ответ 3

Согласно документации Firebase здесь:

Когда вы подключаете приложение к своему проекту Firebase, консоль Firebase предоставляет файл конфигурации Firebase (Android/iOS) или объект конфигурации (веб), который вы добавляете непосредственно в локальный проект.

  • Для iOS добавьте файл конфигурации GoogleService-Info.plist

  • Для Android вы добавляете файл конфигурации google-services.json

Файл конфигурации Firebase или объект конфигурации связывает ваше приложение с вашим проектом Firebase и его ресурсами (базами данных, хранилищами и т.д.).

А затем он идентифицирует контент как общедоступный:

Содержимое считается общедоступным, в том числе идентификатор вашей платформы (введенный в рабочий процесс настройки консоли Firebase) и значения, характерные для вашего проекта Firebase, такие как ключ API, URL-адрес базы данных в реальном времени и имя корзины хранилища.

Помните, что если вы используете базу данных реального времени, Cloud Firestore или Cloud Storage, вам все равно нужно следовать рекомендациям по безопасности, описанным Firebase.

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

Ответ 4

Используйте Firebase и добавьте Fingerprint после созданного файла хранилища ключей, добавьте 256 с помощью проект и сохранить ценность в Firebase.