Asset

Kennzeichnet eindeutig ein Asset.

Ein digitales Asset ist ein identifizierbares und adressierbares Onlineunternehmen, das in der Regel Dienstleistungen oder Inhalte anbietet. Beispiele für Assets sind Websites, Android-Apps, Twitter-Feeds und Google+ Seiten.

JSON-Darstellung
{
  // Union field, only one of the following:
  "web": {
    object(WebAsset)
  },
  "androidApp": {
    object(AndroidAppAsset)
  },
}
Feldname Typ Beschreibung
Union-Feld, nur eines der folgenden:
web object(WebAsset) Legen Sie fest, ob es sich um ein Web-Asset handelt.
androidApp object(AndroidAppAsset) Legen Sie fest, ob es sich um ein Android-App-Asset handelt.

Web-Asset

Beschreibt ein Web-Asset.

JSON-Darstellung
{
  "site": string,
}
Feldname Typ Beschreibung
site string

Web-Assets werden über eine URL identifiziert, die nur das Schema, den Hostnamen und die Portteile enthält. Das Format ist

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

Hostnamen müssen vollständig qualifiziert sein: Sie müssen in einem einzigen Punkt enden („.“).

Derzeit sind nur die Schemas „http“ und „https“ zulässig.

Portnummern werden als Dezimalzahl angegeben und müssen ausgelassen werden, wenn die standardmäßigen Portnummern verwendet werden: 80 für http und 443 für https.

Diese eingeschränkte URL wird als „Website“ bezeichnet. Alle URLs mit demselben Schema, Hostnamen und Port werden als Teil der Website betrachtet und gehören daher zum Web-Asset.

Beispiel: Das Asset mit der Website https://www.google.com enthält alle folgenden URLs:

  • 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/

Die folgenden URLs sind jedoch nicht enthalten:

  • http://www.google.com/ (falsches Schema)
  • https://google.com/ (Hostname stimmt nicht überein)
  • https://www.google.com:444/ (Port stimmt nicht überein) REQUIRED

Android-App-Asset

Beschreibt ein Android-App-Asset.

JSON-Darstellung
{
  "packageName": string,
  "certificate": {
    object(CertificateInfo)
  },
}
Feldname Typ Beschreibung
packageName string Android-App-Assets werden anhand ihres Java-Paketnamens identifiziert. Die Google Maps App verwendet beispielsweise den Paketnamen com.google.android.apps.maps. ERFORDERLICH
certificate object(CertificateInfo)

Weil die Eindeutigkeit des Paketnamens nicht global erzwungen wird, ist außerdem ein Signaturzertifikat erforderlich, mit dem eine App in Kombination mit dem Paketnamen eindeutig identifiziert wird.

Die Signaturschlüssel einiger Apps sind rotiert, sodass sie im Laufe der Zeit möglicherweise von unterschiedlichen Schlüsseln signiert werden. Diese werden als separate Assets behandelt, da wir (Paketname, Zertifikat) als eindeutige ID verwenden. Dies sollte normalerweise keine Probleme verursachen, da beide Versionen der App dieselben oder ähnliche Anweisungen geben. Andere Assets, die Aussagen über die App machen, müssen jedoch aktualisiert werden, wenn ein Schlüssel rotiert wird.

Beachten Sie, dass die Syntaxen für die Veröffentlichung und die Abfrage von Anweisungen syntaktischen Zucker enthalten, damit Sie Anwendungen, die von mehreren Zertifikaten bekannt sind, einfach angeben können. ERFORDERLICH

Zertifikatinformationen

Beschreibt ein X509-Zertifikat.

JSON-Darstellung
{
  "sha256Fingerprint": string,
}
Feldname Typ Beschreibung
sha256Fingerprint string

Der SHA-265-Fingerabdruck des Zertifikats in Großbuchstaben. Aus dem PEM-Zertifikat kann es so erworben werden:

$ 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

oder so:

$ 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

In diesem Beispiel würde der Inhalt dieses Felds 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 lauten.

Wenn Ihnen diese Tools nicht zur Verfügung stehen, können Sie das PEM-Zertifikat in das DER-Format konvertieren, den SHA-256-Hash-Wert dieses Strings berechnen und das Ergebnis als Hexadezimalstring darstellen, d. h., hexadezimale Großbuchstaben jedes Oktetts, getrennt durch Doppelpunkte.