Registro de transparencia del APK de los servicios del sistema de Google

El registro de transparencia del APK de los servicios del sistema de Google aprovecha la tecnología de registro de transparencia.

Las utilidades de los registros de transparencia se probaron en proyectos como Pixel Binary Transparency y Certificate Transparency.

Los registros de transparencia se implementan con árboles Merkle. En esta página, se supone que tienes conocimiento general de los árboles de Merkle y la transparencia binaria. Consulta Estructuras de datos verificables para obtener una descripción general de los árboles de Merkle y la página principal para obtener una descripción general del esfuerzo de transparencia binaria en Android.

Implementación de registros

El registro de transparencia del APK de los servicios del sistema de Google se implementa como un árbol Merkle basado en tarjetas. La raíz del contenido de la tarjeta se entrega en https://developers.google.com/android/binary_transparency/google1p/tile/. Ten en cuenta que esta no es una página web normal: las entradas de registro que se contienen en sus subdirectorios se deben leer de forma programática con la biblioteca de Tlog de Golang SumDB y no a través de un navegador. Indicamos el vínculo aquí para mayor claridad.

Consulta Contenido del registro para obtener una descripción de lo que contiene cada entrada.

El hash raíz del árbol de Merkle de un registro, contenido en un checkpoint, se entrega en https://developers.google.com/android/binary_transparency/google1p/checkpoint.txt en el formato de punto de control. Las hojas de este árbol de Merkle se publican en https://developers.google.com/android/binary_transparency/google1p/package_info.txt. La firma del punto de control se puede verificar con la clave pública que se describe en el siguiente certificado.

-----BEGIN CERTIFICATE-----
MIICPzCCAeWgAwIBAgIUAV4UWNut89Vj0EIwMTUlOYclCMMwCgYIKoZIzj0EAwIw
dDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v
dW50YWluIFZpZXcxFDASBgNVBAoMC0dvb2dsZSBJbmMuMRAwDgYDVQQLDAdBbmRy
b2lkMRAwDgYDVQQDDAdBbmRyb2lkMCAXDTI0MDkyNTIzNTYwOVoYDzIwNTQwOTE4
MjM1NjA5WjB0MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQG
A1UEBwwNTW91bnRhaW4gVmlldzEUMBIGA1UECgwLR29vZ2xlIEluYy4xEDAOBgNV
BAsMB0FuZHJvaWQxEDAOBgNVBAMMB0FuZHJvaWQwWTATBgcqhkjOPQIBBggqhkjO
PQMBBwNCAASofcYuVig/lsWwIfwMfLk22mMltFDDd8k1IBNKajw6VdQynSh7XapH
Ace10/uT1ceUmwJinyOPR1Bpj431+18vo1MwUTAdBgNVHQ4EFgQUwHSDZ/iAB8Go
Rt1oDkVktxyizhYwHwYDVR0jBBgwFoAUwHSDZ/iAB8GoRt1oDkVktxyizhYwDwYD
VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNIADBFAiEAleFB+Arfv1KW0r6TbSEX
EfvBnJMPqRNAIVPd8LrVhw0CIAX56Txqs8H5XWdMoNF21w8Z0PmUNvLLtZtM+25O
wjq8
-----END CERTIFICATE-----

La misma clave pública también se puede encontrar en el bloque de claves públicas de PGP de Android Security en https://services.google.com/corporate/publickey.txt, identificado por CFAB31BE8DD7AC42FC721980ECA5C68599F17322 si prefieres PGP.

En la página de verificación, se describe con más detalle cómo se usan los diversos componentes del registro para verificar los reclamos realizados en el Modelo de solicitante.