Transparence des applications de produits Google

Pour renforcer la confiance dans les applications et les produits Google, nous nous engageons à répertorier tous les packages de produits Google dans notre journal de transparence. Nous avons publié le journal de transparence pour vérifier publiquement les affirmations que nous faisons concernant ces packages (APK et APEX).

Modèle de menace

Les systèmes de transparence peuvent être utilisés pour détecter et donc dissuader les attaques de la chaîne d'approvisionnement. Voici quelques exemples.

Supposons qu'un pirate modifie une application ou un produit Google de manière malveillante et parvienne même à le signer avec la clé de signature utilisée pour la distribution via Google Play. Avec un journal de transparence binaire, toute personne qui reçoit un package douteux (APK ou APEX) peut l'utiliser comme source de vérité supplémentaire vérifiable pour vérifier son authenticité. Elle constatera que Google n'a pas ajouté les métadonnées de package correspondantes au journal et saura qu'elle ne doit pas faire confiance au package compromis.

Étant donné que la publication dans le journal est un processus distinct du processus de publication avec signature (comme illustré dans le schéma de l'écosystème), cela rend la tâche du pirate plus difficile que de simplement compromettre la clé.

Nous prévoyons également d'intégrer ce journal dans un réseau public de témoins à l'aide d'un protocole de témoin standard, mais nous encourageons les tiers externes et indépendants à surveiller l'intégrité de ce journal public. Ces parties peuvent attester de la propriété d'ajout uniquement du journal et signaler toute falsification.

L'existence d'un tel système de transparence et la découverte supplémentaire des attaques découragent les activités malveillantes. Si un package est compromis, mais que les utilisateurs ne font confiance qu'à ceux qui figurent dans le journal, le package compromis doit être exposé publiquement. Cela augmente la probabilité de découvrir l'existence du package compromis, et des mesures peuvent être prises pour supprimer sa distribution.

Modèle de demandeur

Le modèle de demandeur est un framework utilisé pour définir les rôles et les artefacts dans un système vérifiable. Dans le cas de la transparence des applications de produits Google, nous affirmons que le hachage d'un fichier de package enregistré dans ce journal représente une version spécifique d'un produit Google officiel destiné à la consommation publique.

  • ClaimGoogleApp: (I, Google, claim that $hashApp is for $googleApp), where:
    • $hashApp est un hachage cryptographique (par exemple, SHA256) du fichier de package (y compris les APK fractionnés et les packages APEX) d'une version spécifique de $googleApp.
    • $googleApp est un package Android (APK ou APEX) qui constitue une application ou un produit que Google crée et distribue.

Toute personne disposant d'une copie de $googleApp peut vérifier cette affirmation, et nous décrivons ce processus en détail sur la page de validation.

Contenu du journal

Lorsque Google publie une nouvelle version d'un package APK ou APEX, il ajoute une entrée correspondante au journal de transparence des applications de produits Google.

Chaque entrée de ce journal contient quatre métadonnées :

  1. Le hachage du fichier APK ou APEX d'un package signé par Google. Il s'agit d'une chaîne hexadécimale du condensé SHA256 de l'ensemble du fichier.
  2. La description du type de hachage précédent. Il s'agit d'une chaîne.
  3. Le nom du package. Il s'agit d'une chaîne.
  4. Le numéro de version (versionCode) du package. Il s'agit d'un entier non nul.

Le format d'une entrée de journal est la concaténation des quatre informations avec un caractère de nouvelle ligne (\n), comme illustré ci-dessous :

hash\nhash_description\npackage_name\npackage_version\n

Étant donné qu'un produit Google peut être distribué sous forme de fichier APK ou APEX, la description du hachage est définie sur SHA256(APK) ou SHA256(APEX). Cela permet de couvrir de manière exhaustive le contenu de chaque fichier et de faciliter l'obtention de cette mesure par les utilisateurs.

Schéma de l'écosystème

Diagramme de l'écosystème des journaux vérifiables