quiero incondicional a esta pregunta con dos cosas para que pueda reducir en donde mi pregunta real es:¿Cómo funciona la verificación de la aplicación/firma de Android?
a) que he hecho dev software antes, aunque nunca para android
b) Estoy familiarizado con PKI y encriptaciones y hashing y firmas digitales y blah blah blah
Dicho esto, tengo problemas para encontrar más información sobre dónde y cómo Android verifica los creadores de aplicaciones. He escuchado mucha información diferente, así que intento sintetizar para tener una mejor idea del flujo de trabajo.
Sé que cada desarrollador de aplicaciones obtiene su propio par de claves privadas/públicas y firman sus aplicaciones mediante el hash del APK (con SHA-1 la mayor parte del tiempo si no me equivoco) y listo. Usted lo sube y (creo) la clave pública entra en META INF dentro de la APK. Esto mucho lo entiendo.
Mi pregunta es cómo se relaciona esto con cuando un usuario descarga la aplicación. Sé que el teléfono verifica para asegurarse de que la aplicación esté firmada válidamente, y que la firma también tenga información sobre el autor, etc. incluida. Pero también he leído que las aplicaciones están autofirmadas y que Google Play (o lo que sea que llamen ahora al Mercado) no implementa una CA, y que no hay autenticación de identidad. Pero mi pregunta es, ¿qué impide que las personas carguen una aplicación con el nombre de otro desarrollador (crowdsourcing aparte)?
Si el teléfono solo comprueba si hay firmas válidas, ¿eso implica que el único medio de autenticación se realiza cuando se carga la aplicación? Y si ese es el caso, ¿cómo lo comprueba el mercado de aplicaciones? ¿Es lo habitual: usar la clave privada en el archivo y verificar la firma? ¿O el desarrollador tiene que proporcionar al mercado su clave privada para autenticarse?
Cuando firme el apk, debe proporcionar la contraseña privada. Por lo tanto, para que alguien publique una aplicación "como otra persona", necesitaría acceder a sus claves de acceso/archivos de claves y contraseñas. Y acceso a la cuenta de Google que está vinculada al mercado. – FoamyGuy
@Tim: Creo que él pregunta: ¿Qué es para evitar que otra persona cree su propio par de llaves y un certificado autofirmado que también contenga "Fewmitz"? ¿Está de alguna manera vinculado a una cuenta en alguna parte? –