Um das Vertrauen in Google-Apps und ‑Produkte zu stärken, werden wir alle Google-Produktpakete in unserem Transparenzlogbuch auflisten. Wir haben das Transparenzlogbuch veröffentlicht, um die von uns gemachten Aussagen zu diesen Paketen (APKs und APEXs) öffentlich zu bestätigen.
Bedrohungsmodell
Transparenzsysteme können verwendet werden, um Angriffe auf die Lieferkette zu erkennen und so zu verhindern. Wir veranschaulichen dies anhand einiger Beispiele.
Angenommen, ein Angreifer ändert eine Google-App oder ein Google-Produkt böswillig und schafft es sogar, sie mit dem Signaturschlüssel zu signieren, der für die Verteilung über Google Play verwendet wird. Mit einem binären Transparenzlogbuch kann jeder, der ein fragwürdiges Paket (APK oder APEX) erhält, es als zusätzliche überprüfbare Quelle der Wahrheit verwenden, um die Authentizität des Pakets zu bestätigen. Er wird feststellen, dass Google die entsprechenden Paketmetadaten nicht dem Logbuch hinzugefügt hat, und weiß, dass er dem kompromittierten Paket nicht vertrauen sollte.
Da die Veröffentlichung im Logbuch ein separater Prozess vom Releaseprozess mit Signierung ist (wie im Ökosystemdiagramm dargestellt), wird die Hürde für den Angreifer höher, da er nicht nur den Schlüssel kompromittieren muss.
Wir planen, dieses Logbuch auch in ein öffentliches Netzwerk von Zeugen zu integrieren , das ein Standard-Zeugenprotokoll verwendet . Wir empfehlen externen, unabhängigen Parteien, die Integrität dieses öffentlich verfügbaren Logbuchs zu überwachen. Diese Parteien können die Eigenschaft des Logbuchs bestätigen, dass nur Anhänge möglich sind, und jede Manipulation melden.
Die Existenz eines solchen Transparenzsystems und die zusätzliche Erkennbarkeit von Angriffen schrecken böswillige Aktivitäten ab. Wenn ein Paket kompromittiert ist, Nutzer aber nur Paketen vertrauen, die im Logbuch enthalten sind, muss das kompromittierte Paket öffentlich zugänglich gemacht werden. Dadurch steigt die Wahrscheinlichkeit, dass die Existenz des kompromittierten Pakets entdeckt wird, und es können Maßnahmen ergriffen werden, um die Verteilung zu verhindern.
Modell des Anspruchstellers
Das Modell des Anspruchstellers ist ein Framework, mit dem Rollen und Artefakte in einem überprüfbaren System definiert werden. Im Fall der Google-Produktanwendungstransparenz ist die Aussage, die wir machen, dass der Hash einer in diesem Logbuch aufgezeichneten Paketdatei eine bestimmte Version eines offiziellen Google-Produkts darstellt, das für die öffentliche Nutzung bestimmt ist.
- AnspruchGoogleApp: (Ich, Google, behaupte, dass
$hashAppfür$googleAppist.) Dabei gilt:$hashAppist ein kryptografischer Hash (z.B. SHA256) der Paketdatei (einschließlich Split-APKs und APEX-Pakete) einer bestimmten Version von$googleApp.$googleAppist ein Android-Paket (APK oder APEX), das eine App oder ein Produkt darstellt, das von Google erstellt und vertrieben wird.
Jeder, der eine Kopie von $googleApp hat, kann diesen Anspruch bestätigen,
und wir beschreiben diesen Prozess ausführlich auf der
Bestätigungsseite.
Logbuchinhalt
Wenn Google eine neue Version eines APK- oder APEX-Pakets veröffentlicht, wird dem Google-Transparenzlogbuch für Produktanwendungen ein entsprechender Eintrag hinzugefügt.
Jeder Eintrag in diesem Logbuch enthält vier Metadaten:
- Der Hash der APK oder APEX Datei eines von Google signierten Pakets. Dies ist ein Hex-String des SHA256-Digests der gesamten Datei.
- Die Beschreibung des Typs des vorherigen Hashs. Dies ist ein String.
- Der Paketname des Pakets. Dies ist ein String.
- Die Versionsnummer (versionCode) des Pakets. Dies ist eine Ganzzahl ungleich null.
Das Format eines Logbucheintrags ist die Verkettung der vier Informationen mit einem Zeilenumbruchzeichen (\n), wie im Folgenden dargestellt:
hash\nhash_description\npackage_name\npackage_version\n
Da ein Google-Produkt als APK- oder APEX-Datei vertrieben werden kann, wird die Hash-Beschreibung entweder auf SHA256(APK) oder SHA256(APEX) gesetzt. Dadurch wird der Inhalt jeder Datei umfassend abgedeckt und Nutzer können diese Messung einfacher abrufen.
Ökosystemdiagramm
