Asset

Identifica in modo univoco una risorsa.

Una risorsa digitale è una persona giuridica online identificabile e indirizzabile che in genere fornisce determinati servizi o contenuti. Esempi di asset sono i siti web, le app per Android, i feed di Twitter e le pagine Plus.

Rappresentazione JSON
{
  // Union field, only one of the following:
  "web": {
    object(WebAsset)
  },
  "androidApp": {
    object(AndroidAppAsset)
  },
}
Nome campo Tipo Descrizione
di esempio, solo uno dei seguenti:
web object(WebAsset) Impostalo se si tratta di un asset web.
androidApp object(AndroidAppAsset) Impostalo se si tratta di un asset per app per Android.

Asset web

Descrive una risorsa web.

Rappresentazione JSON
{
  "site": string,
}
Nome campo Tipo Descrizione
site string

Gli asset web sono identificati da un URL che contiene solo le parti schema, nome host e porta. Il formato è

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

I nomi host devono essere completi e devono terminare con un singolo periodo (".").

Al momento sono consentiti solo gli schemi "http" e "https".

I numeri di porta sono indicati come numeri decimali e devono essere omessi se vengono utilizzati i numeri di porta standard: 80 per http e 443 per https.

Questo URL limitato viene chiamato "sito". Tutti gli URL che condividono lo stesso schema, nome host e porta vengono considerati parte del sito e appartengono quindi all'asset web.

Esempio: l'asset con il sito https://www.google.com contiene tutti questi URL:

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

Tuttavia, non contiene i seguenti URL:

  • http://www.google.com/ (schema errato)
  • https://google.com/ (il nome host non corrisponde)
  • https://www.google.com:444/ (porta non corrispondente) OBBLIGATORIO

Asset Android

Descrive un asset per app Android.

Rappresentazione JSON
{
  "packageName": string,
  "certificate": {
    object(CertificateInfo)
  },
}
Nome campo Tipo Descrizione
packageName string Gli asset per app Android sono identificati in modo naturale dal nome del pacchetto Java. Ad esempio, l'app Google Maps utilizza il nome pacchetto com.google.android.apps.maps. OBBLIGATORIA
certificate object(CertificateInfo)

Poiché non esiste un'applicazione globale dell'unicità del nome del pacchetto, richiediamo anche un certificato di firma, che in combinazione con il nome del pacchetto identifica in modo univoco un'app.

Alcune chiavi di firma di alcune app vengono ruotate, quindi nel tempo potrebbero essere firmate da chiavi diverse. Le consideriamo come risorse distinte, in quanto utilizziamo (nome del pacchetto, certificato) come ID univoco. Generalmente, questo non dovrebbe creare problemi perché entrambe le versioni dell'app presentano dichiarazioni uguali o simili. Tuttavia, gli altri asset relativi all'app dovranno essere aggiornati quando una chiave viene ruotata.

Tieni presente che le sintassi per la pubblicazione e l'esecuzione di query di istruzioni contengono zucchero sintattico per consentirti di specificare facilmente le app note da più certificati. OBBLIGATORIA

Informazioni certificato

Descrive un certificato X509.

Rappresentazione JSON
{
  "sha256Fingerprint": string,
}
Nome campo Tipo Descrizione
sha256Fingerprint string

L'impronta SHA-265 maiuscola del certificato. Dal certificato PEM, può essere acquisito così:

$ 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

o in questo modo:

$ 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 questo esempio, il contenuto di questo campo è 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.

Se questi strumenti non sono disponibili, puoi convertire il certificato PEM nel formato DER, calcolare l'hash SHA-256 di quella stringa e rappresentare il risultato come stringa esadecimale, ovvero rappresentazioni esadecimali maiuscole di ogni ottetto, separate da due punti.