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

Есть ли причина, по которой я не должен хранить хранилище ключей в контроле версий?

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

Будет ли хранить его в Git ужасной идеей (т.е. будет ли она иметь последствия для безопасности)?

Предположим, что у самого хранилища ключей и закрытых ключей внутри них есть надежные пароли.

4b9b3361

Ответ 1

Любой, у кого есть доступ для чтения к вашему репозиторию Git, получит закрытый ключ. Это считается проблемой безопасности, и по этой причине это не рекомендуется. Если ваш репозиторий Git полностью не имеет значения никому, но у вас есть к нему доступ (НЕ частный репо, то есть GitHub, а скорее Git репо на локальном диске или в инфраструктуре, которую вы контролируете на 100%), а затем добавьте свой частный ключ так же безопасен, как и его сохранение на локальном диске.

Предположим, что у самого хранилища ключей и закрытых ключей внутри них есть сильные пароли на них

Обратите внимание, что пароль - это ваш последний способ защиты в случае вашего ( "открытого" ) закрытого ключа. Если он будет каким-либо образом скомпрометирован (догадался, украден, взломан), то он закончится.

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

Ответ 2

Для обновления вашего приложения вам понадобятся две вещи:

  • Доступ к консоли разработчика Google Play, которая владеет приложением.
  • APK, подписанный с правильным хранилищем ключей

Поместив сертификат в свой репозиторий и поделившись им с вашими разработчиками, вы откажетесь от одного токена безопасности.

Если ваша учетная запись Google Play Dev Console защищена, вы должны быть в порядке. Но это зависит от вашего szenario.

Поместить его в репозиторий намного проще:

  • Ваш репозиторий клонируется во многих местах и ​​обычно подкрепляется должным образом.
  • Ваша команда разработчиков может использовать gradle для автоматической подписывания выпуска.

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

Еще одно соображение:

  • Если владелец продукта приложения android изменится в вашей компании, вы никогда не знаете, есть ли у старого владельца еще копия, и никто не знает, кто уже имеет к ней доступ. Вы не можете изменить ключ. Поэтому, если ключ когда-то передается от одного человека к другому, его следует считать небезопасным.

  • Конечно, вы можете сохранить его полностью закрытым. Он защищен вашим паролем, который никто не знает. Но что произойдет, если вы умрете? Кто-то может захотеть обновить ваше приложение. Это невозможно. Закрытый секретный ключ теряется, когда вы умираете.

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