Per aumentare la fiducia nelle app e nei prodotti Google, ci impegniamo a elencare ogni pacchetto di prodotti Google nel nostro log di trasparenza. Abbiamo pubblicato il log di trasparenza per verificare pubblicamente le dichiarazioni che facciamo in merito a questi pacchetti (APK e APEX).
Modello di minaccia
I sistemi di trasparenza possono essere utilizzati per rilevare e quindi scoraggiare gli attacchi alla catena di fornitura. Di seguito sono riportati alcuni esempi.
Supponiamo che un attaccante modifichi in modo dannoso un'app Google o un prodotto e riesca persino a firmarlo con la chiave di firma utilizzata per la distribuzione tramite Google Play. Con un log di trasparenza binario, chiunque riceva un pacchetto discutibile (APK o APEX) può utilizzarlo come fonte di verità di base verificabile aggiuntiva per verificarne l'autenticità. L'utente scoprirà che Google non ha aggiunto i metadati del pacchetto corrispondenti al log e saprà di non fidarsi del pacchetto compromesso.
Poiché la pubblicazione nel log è un processo separato dal processo di release con firma (come illustrato nel diagramma dell'ecosistema), questo aumenta la difficoltà per l'utente malintenzionato, che non deve solo compromettere la chiave.
Sebbene prevediamo di integrare questo log anche in una rete pubblica di testimoni utilizzando un protocollo di testimonianza standard, invitiamo terze parti esterne e indipendenti a monitorare l'integrità di questo log disponibile pubblicamente. Queste parti possono attestare la proprietà di sola aggiunta del log e segnalare eventuali manomissioni.
L'esistenza di un sistema di trasparenza di questo tipo e l'ulteriore rilevabilità degli attacchi scoraggiano le attività dannose. Se un pacchetto è compromesso, ma gli utenti si fidano solo di quelli presenti nel log, il pacchetto compromesso deve essere esposto pubblicamente. In questo modo è più probabile scoprire l'esistenza del pacchetto compromesso e intraprendere azioni per rimuoverne la distribuzione.
Modello di autore della rivendicazione
Il modello di autore della rivendicazione è un framework utilizzato per definire ruoli e artefatti in un sistema verificabile. Nel caso della trasparenza delle applicazioni dei prodotti Google, la nostra rivendicazione è che l'hash di un file di pacchetto registrato in questo log rappresenta una versione specifica di un prodotto Google ufficiale destinato al consumo pubblico.
- ClaimGoogleApp: (io, Google, affermo che
$hashAppè per$googleApp), dove:
Chiunque abbia una copia di $googleApp può verificare questa rivendicazione,
e descriviamo questo processo in dettaglio nella
pagina di verifica.
Contenuti log
Quando Google rilascia una nuova versione di un pacchetto APK o APEX, aggiunge una voce corrispondente al log di trasparenza delle applicazioni dei prodotti Google.
Ogni voce di questo log contiene quattro metadati:
- L'hash del file APK o APEX di un pacchetto firmato da Google. Si tratta di una stringa esadecimale del digest SHA256 dell'intero file.
- La descrizione del tipo di hash precedente. Si tratta di una stringa.
- Il nome del pacchetto. Si tratta di una stringa.
- Il numero di versione (versionCode) del pacchetto. Si tratta di un numero intero diverso da zero.
Il formato di una voce di log è la concatenazione delle quattro informazioni con un carattere di nuova riga (\n), come illustrato di seguito:
hash\nhash_description\npackage_name\npackage_version\n
Poiché un prodotto Google può essere distribuito come file APK o APEX, la descrizione dell'hash è impostata su SHA256(APK) o SHA256(APEX). In questo modo viene fornita una copertura completa dei contenuti di ogni file e gli utenti possono ottenere più facilmente questa misurazione.
Diagramma dell'ecosistema
