2011-07-27 22 views
100

Esta es una pregunta general, pero particularmente estoy interesado en su uso para Android. ¿Qué es un archivo de almacén de claves y para qué se utiliza?¿Qué es el archivo de keystore de Android y para qué se utiliza?

¿Pueden las aplicaciones de Android múltiples usar el mismo almacén de claves para firmar su aplicación (qué significa exactamente "firmar" un archivo .apk?), Y ¿cuáles son las implicaciones (si las hay) de esto?

+0

Parece que está combinando dos temas. Primero está el almacén de claves, y el segundo es la firma de APK. Consulte también [Elementos internos de seguridad de Android: una guía en profundidad de la arquitectura de seguridad de Android] de Nikolay Elenkov (https://www.amazon.com/dp/1593275811). – jww

Respuesta

105

La respuesta que proporcionaría es que un archivo de almacén de claves debe autenticarse ante cualquiera que pregunte. No se limita a la firma de archivos .apk, puede usarlo para almacenar certificados personales, firmar datos para transmitir y una gran variedad de autenticación.

En términos de lo que haces con Android y probablemente lo que estás buscando ya que mencionas la firma de apk, es tu certificado. Está marcando su aplicación con sus credenciales. Puede marcar varias aplicaciones con la misma clave, de hecho, se recomienda que use un certificado para marcar varias aplicaciones que escriba. Es más fácil hacer un seguimiento de las aplicaciones que le pertenecen.

No estoy seguro de lo que quiere decir con implicaciones. Supongo que significa que nadie más que el titular de su certificado puede actualizar su aplicación. Eso significa que si lo libera al aire libre, pierde el certificado que utilizó para firmar la aplicación, entonces no puede lanzar actualizaciones, así que mantenga ese certificado seguro y respaldado si es necesario.

Pero aparte de firmar los apk para lanzarlos a la naturaleza, puede usarlo para autenticar su dispositivo a un servidor a través de SSL si lo desea, (también relacionado con Android), entre otras funciones.

+26

amo su término "lanzamiento en la naturaleza" – bluezald

+2

Muy buena respuesta. También debería tener en cuenta que necesita un archivo de almacén de claves si va a utilizar "datos de inserción" en su aplicación. – KapteinMarshall

+0

¿Es específica la máquina Keystore? ¿O podemos usarlo en cualquier máquina para actualizar nuestra aplicación? – Yawar

0

la idea de una herramienta de claves es firmar su apk con un identificador único que transmite la fuente de ese apk a. un archivo de almacén de claves (según tengo entendido) se utiliza para la depuración, por lo que su apk tiene la funcionalidad de una herramienta de claves sin firmar su apk para producción. Así que sí, para la depuración, debe poder firmar múltiples apk con un solo almacén de claves, pero entiendo al empujar hacia la producción, necesita herramientas clave únicas como identificadores para cada apk

+0

No necesita firmar una aplicación para depurarlo, ya sea en el emulador o en un dispositivo real. – Marcus

+0

No quise decir que TIENE que firmarlo para depurarlo ... pero puede usar keystore como una implementación de prueba de su herramienta de claves. –

+0

No creo que 'keytool' sea lo que quieres decir. keytool es un programa de Java utilizado para generar almacenes de claves. – Otra

7

Puede encontrar más información sobre el proceso de firma en el sitio oficial Documentación de Android aquí: http://developer.android.com/guide/publishing/app-signing.html

Sí, puede firmar varias aplicaciones con el mismo almacén de claves. Pero debe recordar una cosa importante: si publica una aplicación en Play Store, debe firmarla con un certificado que no sea de depuración. Y si algún día desea publicar una actualización para esta aplicación, el almacén de claves utilizado para firmar la aplicación debe ser el mismo. De lo contrario, no podrá publicar su actualización.

14

Android Market requiere que firme todas las aplicaciones que publica con un certificado, utilizando un mecanismo de clave pública/privada (el certificado está firmado con su clave privada). Esto proporciona una capa de seguridad que evita, entre otras cosas, que los atacantes remotos introduzcan actualizaciones maliciosas en el mercado (todas las actualizaciones deben estar firmadas con la misma clave).

De La App-Signing Guide del sitio del desarrollador Android:

En general, la estrategia recomendada para todos los desarrolladores es firmar todas sus aplicaciones con el mismo certificado, a lo largo de la vida útil esperada de sus aplicaciones. Hay varias razones por las que debe hacerlo ...

Usar la misma clave tiene algunas ventajas: una es que es más fácil compartir datos entre aplicaciones firmadas con la misma clave. Otra es que permite que múltiples aplicaciones firmadas con la misma clave se ejecuten en el mismo proceso, por lo que un desarrollador puede crear más aplicaciones "modulares".