Что такое файл keystore для Android и для чего он используется?

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

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

Ответ 1

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

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

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

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

Ответ 2

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

В Руководстве по подписке на приложения на сайте разработчика Android:

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

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

Ответ 3

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

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

Ответ 4

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