Что такое файл хранилища ключей Android и для чего он используется? - PullRequest
118 голосов
/ 27 июля 2011

Это общий вопрос, но особенно меня интересует его использование для Android. Что такое файл хранилища ключей и для чего он используется?

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

Ответы [ 4 ]

125 голосов
/ 27 июля 2011

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

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

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

Но кроме подписания apks для выпуска в дикую природу, вы можете использовать его для аутентификации вашего устройства на сервере по SSL, если вы того пожелаете, (в том числе для Android) среди других функций.

18 голосов
/ 27 июля 2011

Android Market требует, чтобы вы подписывали все приложения, которые вы публикуете, с помощью сертификата, используя механизм открытого / секретного ключа (сертификат подписывается вашим закрытым ключом).Это обеспечивает уровень безопасности, который предотвращает, среди прочего, удаленные злоумышленники от доставки вредоносных обновлений для вашего приложения на рынок (все обновления должны быть подписаны одним и тем же ключом).Руководство сайта разработчика Android:

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

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

10 голосов
/ 27 июля 2011

Более подробную информацию о процессе подписания вы можете найти в официальной документации Android здесь: http://developer.android.com/guide/publishing/app-signing.html

Да, вы можете подписать несколько приложений одним и тем же хранилищем ключей. Но вы должны помнить одну важную вещь: если вы публикуете приложение в Play Store, вы должны подписать его не отладочным сертификатом. И если однажды вы захотите опубликовать обновление для этого приложения, хранилище ключей, используемое для подписания apk, должно быть таким же. В противном случае вы не сможете опубликовать свое обновление.

0 голосов
/ 27 июля 2011

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

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