Подтвердить что ты не робот

Как предотвратить использование утечки хранилища ключей и пароля?

Проблема

Хранилище ключей и его пароль используются для подписания приложения, которое затем используется Android для идентификации разработчика. Если просочиться, кто-то может обновить соответствующее приложение от нашего имени. Даже если у человека нет доступа к нашей учетной записи в PlayStore, они все равно могут опубликовать его где-то еще.

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

Вопрос

Даже если я опубликую одно и то же приложение с другим приложением, , как я могу защитить своих пользователей, которые все еще находятся на старом? Есть ли здесь какая-то лучшая практика?

4b9b3361

Ответ 1

К сожалению, похоже, что отличный способ перенести существующее приложение на новый ключ подписи. Это, пожалуй, самое лучшее, так как наилучшей практикой остается: a) иметь сильный ключ и b) держать ваш личный ключ доступа как можно более приватным. Я нашел эту статью, в которой излагался возможный (но довольно удобный для пользователя способ) переход от 1024 бит к 4096-битовому ключу, который, по-видимому, соответствует вашему прецеденту. Поскольку у вас все еще есть действительный ключ подписи для взломанного приложения, вы можете попытаться перенести его с него с помощью обновления.

  • сформировать новый ключ подписи, RSA 4096
  • Обновите первое приложение App1 с механизмом экспорта личных данных с помощью TrustedIntents с сигнатурным выводом нового ключа RSA 4096, который Checkey будет генерировать для вас.
  • Создайте новую версию приложения с другим именем пакета, App2
  • знак App2 с новым ключом, RSA 4096
  • Добавить метод в App2 для получения пользовательских данных из App1, включая вывод подписи старого ключа подписи RSA 1024, для использования с TrustedIntents
  • Опубликовать App2 в магазинах приложений
  • Из App1, предложите пользователю установить App2
  • запускает и импортирует данные из App1
  • App2 предлагает пользователю удалить App1

Ответ 2

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

Однако на Lollipop + существует другое возможное решение. Вы можете использовать клавиши обновления для изменения ключа подписи приложения на месте, что избавляет вас от необходимости создавать второе приложение или выполнять миграцию данных. К сожалению, у Play в настоящее время нет поддержки для этого, так что это действительно действительно вариант для внерыночных приложений, а пользователям в Kitkat не повезло.