Keystore and Aliases - есть ли смысл использовать несколько псевдонимов? - PullRequest
18 голосов
/ 19 апреля 2010

При экспорте подписанного приложения Android с использованием Eclipse, есть ли смысл использовать несколько псевдонимов?

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

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

Кроме того, зависит ли сгенерированный ключ от имени псевдонима?Другими словами, если вы измените имя псевдонима, но не пароль, сгенерированный сертификат будет другим?

Ответы [ 3 ]

14 голосов
/ 12 октября 2011

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

Внимательно прочитайте ответ, и вы увидите, что «хранилище ключей» содержит «псевдонимы» (которые на самом деле являются парами секретный + открытый ключ). Когда вы подписываете свой apk, именно «открытый ключ» является фактическим внедряемым сертификатом.

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

И единственный способ подписать его под другим псевдонимом - это клонировать предыдущий, как и предполагает ответ.

Я также подтвердил, что при подписании APK с разными псевдонимами (из одного и того же хранилища ключей) будут генерироваться разные подписи APK , что должно служить доказательством того, что разные «псевдонимы» = разные сертификаты. Как получить подпись sig (<- примечание: я не знаю, к какому методу Trace.i они относятся, вместо этого я использовал Log.i) </p>

7 голосов
/ 12 марта 2013

Имейте в виду, что, подписывая приложения различными ключами, вы жертвуете взаимодействием между приложениями на основе подписи.

Выдержка из Android - Подписание ваших приложений - Подписание стратегий

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

3 голосов
/ 12 июня 2012

Я проводил некоторое тестирование, и, хотя кажется, что имеет значение, какой ключ вы используете в хранилище ключей, изменение псевдонима ключа и имени файла хранилища ключей на самом деле не имеет значения для телефона.Если вам интересно, я изменил псевдоним с keytool-iui, который я получил отсюда: http://code.google.com/p/keytool-iui/

Чтобы ответить на OP, я бы сказал, что это полезно, если вы работаете в большой компании с несколькимиподразделения пишут свои собственные приложения.Таким образом, виджеты Уилсона могут иметь хранилище ключей wilsonwidgets.keystore, и там может быть внутренний отдел с ключом «widgetmakers» и отдел с ключом «widgetdelivery», а другой отдел с ключом «hrdepartment».Каждый отдел может помешать другому отделу обновить свое приложение, но сама компания имеет все ключи, хранящиеся в одном хранилище ключей, для которого можно создать резервную копию в одном месте.

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

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