Asset

Identifie un élément de manière unique.

Un actif numérique est une entité en ligne identifiable et adressable qui fournit généralement des services ou des contenus. Exemples d'éléments : sites Web, applications Android, flux Twitter et pages Google+.

Représentation JSON
{
  // Union field, only one of the following:
  "web": {
    object(WebAsset)
  },
  "androidApp": {
    object(AndroidAppAsset)
  },
}
fieldName Type Description
Union, l'un des éléments suivants uniquement:
web object(WebAsset) Définissez s'il s'agit d'un élément Web.
androidApp object(AndroidAppAsset) Définissez s'il s'agit d'un composant Application Android.

WebAsset

Décrit un élément Web.

Représentation JSON
{
  "site": string,
}
fieldName Type Description
site string

Les éléments Web sont identifiés par une URL qui ne contient que les parties schéma, nom d'hôte et port. Le format est le suivant :

http[s]://<hostname>[:<port>]

Les noms d'hôte doivent être complets: ils doivent se terminer par un seul point (".").

Pour le moment, seuls les schémas "http" et "https" sont autorisés.

Les numéros de ports sont indiqués sous forme de nombre décimal. Ils doivent être omis si les numéros de port standards sont utilisés: 80 pour http et 443 pour https.

Nous appelons cette URL limitée le "site". Toutes les URL qui partagent le même schéma, nom d'hôte et port sont considérées comme faisant partie du site et appartiennent donc à l'élément Web.

Exemple: l'élément avec le site https://www.google.com contient toutes les URL suivantes:

  • https://www.google.com/
  • https://www.google.com:443/
  • https://www.google.com/foo
  • https://www.google.com/foo?bar
  • https://www.google.com/foo#bar
  • https://user@password:www.google.com/

Toutefois, il ne contient pas les URL suivantes:

  • http://www.google.com/ (schéma incorrect)
  • https://google.com/ (le nom d'hôte ne correspond pas)
  • https://www.google.com:444/ (le port ne correspond pas) OBLIGATOIRE

AndroidAppAsset

Décrit un composant Application Android.

Représentation JSON
{
  "packageName": string,
  "certificate": {
    object(CertificateInfo)
  },
}
fieldName Type Description
packageName string Les éléments d'application Android sont identifiés naturellement par leur nom de package Java. Par exemple, l'application Google Maps utilise le nom de package com.google.android.apps.maps. REQUIRED
certificate object(CertificateInfo)

Étant donné qu'il n'existe pas d'application globale de l'unicité du nom du package, nous exigeons également un certificat de signature, qui, en combinaison avec le nom du package, permet d'identifier une application de manière unique.

Les clés de signature de certaines applications sont alternées. Elles peuvent donc être signées avec des clés différentes au fil du temps. Nous les traitons comme des éléments distincts, car nous utilisons (package name, cert) comme identifiant unique. Cela ne devrait normalement pas poser de problème, car les deux versions de l'application feront des déclarations identiques ou similaires. Toutefois, les autres éléments comportant des déclarations concernant l'application devront être mis à jour lors de la rotation d'une clé.

Notez que les syntaxes de publication et d'interrogation d'instructions contiennent du sucre syntaxique pour vous permettre de spécifier facilement des applications connues par plusieurs certificats. REQUIRED

CertificateInfo

Décrit un certificat X509.

Représentation JSON
{
  "sha256Fingerprint": string,
}
fieldName Type Description
sha256Fingerprint string

Empreinte SHA-265 en majuscules du certificat. À partir du certificat PEM, il peut être obtenu comme suit:

$ keytool -printcert -file $CERTFILE | grep SHA256:
SHA256: 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83: \
    42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5

ou comme ceci:

$ openssl x509 -in $CERTFILE -noout -fingerprint -sha256
SHA256 Fingerprint=14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64: \
    16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5

Dans cet exemple, le contenu de ce champ est 14:6D:E9:83:C5:73: 06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF: 44:E5.

Si ces outils ne sont pas disponibles, vous pouvez convertir le certificat PEM au format DER, calculer le hachage SHA-256 de cette chaîne et représenter le résultat sous forme de chaîne hexadécimale (c'est-à-dire des représentations hexadécimales en majuscules de chaque octet, séparées par des deux-points).