APK Signature Scheme v3 viene con soporte para rotación de claves

APK Signature Scheme v3 ha sido detectado en el Proyecto de código abierto de Android y parece brindar soporte para la rotación de claves.

Si es desarrollador o está familiarizado de alguna manera con la descompilación, modificación y/o instalación de archivos APK modificados, probablemente esté familiarizado con las firmas de aplicaciones. En pocas palabras, Android exige que una aplicación debe firmarse con la misma clave para que el sistema permita actualizar la aplicación en cuestión. Android verifica esto comprobando la firma del APK.

Firmas APK son una medida de seguridad muy básica en Android, de la que hemos hablado anteriormente. Básicamente, todas las firmas son exclusivas de un determinado desarrollador o grupo de desarrolladores, por lo que si la firma/certificado en un APK no es válido o no coincide con la de la aplicación original, la instalación fallará, impidiendo así la instalación de archivos APK manipulados o falsos en tu Android dispositivo. El desarrollador también debe conservar de forma segura las claves de firma, ya que son vitales para verificarlas y, eventualmente, publicar una actualización de la aplicación. Afortunadamente, el esquema de firma para firmar APK está recibiendo otra revisión (v3) que parece agregar una característica conveniente manteniendo altos estándares de seguridad.


Esquema de firma APK v1 y v2

No ha pasado mucho tiempo desde la versión actual del esquema de firma APK, v2, fue lanzado para desarrolladores. Al fin y al cabo, apenas nos lo presentaron con el lanzamiento de Android 7.0 Nougat, a finales de 2016. Se recomendó encarecidamente el uso del esquema de firma v2 en aplicaciones de Android 7.0+, ya que trajo una serie de parches esenciales y Mejoras de seguridad: mientras que la versión 1 solo firmó el JAR, la versión 2 toma medidas adicionales para proteger la integridad del conjunto. archivo. Sin embargo, los esquemas de firma no son compatibles con versiones anteriores y Android Marshmallow y versiones anteriores requieren firmas v1 para las aplicaciones.

Proceso de validación de APK. Fuente: Google.

A menos que esté dirigido específicamente a usuarios de Nougat o superior, el escenario ideal sería usar ambos esquemas de firma uno al lado del otro, firmando primero con la v1 y luego renunciando con la v2. De esta manera, Nougat y versiones superiores reconocerán la firma v2, mientras que Marshmallow y versiones inferiores reconocerán la firma v1.

Sin embargo, se desaconseja encarecidamente el uso de v1 únicamente debido a una serie de vulnerabilidades y otros problemas de seguridad, el más notable de los cuales es la vulnerabilidad de Jano, que permite a los atacantes atacar y modificar directamente los APK sin afectar las firmas. Las aplicaciones populares con actualizaciones poco frecuentes, como Instagram o Snapchat, solo están firmadas con firmas v1, lo que significa que son vulnerables a estos problemas.

Comprobación de las versiones de firma de APK de aplicaciones de pago/redes sociales populares.

Esquema de firma APK v3

La característica principal más importante de la v3, que pretende ser una revisión de la v2, será soporte de rotación de claves. El esquema de firma v3 presenta APK Signer Lineage, que, según uno de los compromisos, "contiene un historial de firma de certificados con cada antepasado que da fe de la validez de su descendiente. Cada descendiente adicional representa una nueva identidad que se puede utilizar para firmar un APK. De esta manera, el linaje contiene una prueba de rotación mediante la cual el APK que lo contiene puede demostrar, a otros partes, su capacidad para que se le pueda confiar su certificado de firma actual, como si estuviera firmado por uno de sus antiguos unos."

La rotación de claves es una gran característica para los desarrolladores en varios sentidos. Para empezar, esto puede ser útil para los desarrolladores de equipos que trabajan en una sola aplicación, de modo que los desarrolladores no tengan que compartir sus claves de firma con el equipo. Dado que la aplicación necesita exactamente la misma firma para actualizarse, actualmente todas las aplicaciones deben ser compiladas por el mismo desarrollador o un grupo de los desarrolladores trabajan con la misma clave, lo que disminuye la seguridad (hay más posibilidades de que la clave sea robada) y ralentiza el desarrollo.

Además, también puede ser útil en el caso de que a un desarrollador le roben o pierdan su clave de firma, lo que normalmente significaría que la aplicación tendría que volver a cargarse en Play Store con un paquete diferente nombre. Este no es un caso poco común, ya que hace mucho tiempo incluso Google aparentemente perdió la clave de firma para la aplicación Google Authenticator, lo que los llevó a volver a publicarla con un nombre de paquete diferente. Desde entonces, Google ha proporcionado medios para almacenar de forma segura sus claves de firma en la nube con Firma de aplicaciones de Google Play, pero la rotación de claves le permitiría continuar actualizando su aplicación en caso de un hipotético error.

¿Cuándo se lanzará?

Si bien es posible que esté ansioso por probarlo para mayor comodidad, el esquema de firma v3 se vio flotando en el AOSP. El sitio Gerrit Code Review y las confirmaciones en sí no se han fusionado en la rama principal en este momento, por lo que no está listo en este momento. todavía. Deberíamos esperar que el esquema de firma v3 llegue a manos de los desarrolladores con el próximo lanzamiento de Android P si el lanzamiento anterior v2 con Android Nougat nos dice algo.

También debemos tener en cuenta que la rotación de claves es, muy probablemente, no la única diferencia con respecto a la versión 2. APK Signature Scheme v3 todavía es un trabajo en progreso, por lo que veremos las mejoras reales del esquema de firma v3 cuando se publique la documentación completa en el futuro.