Das binäre Transparenzlog von Pixel nutzt die Technologie des Transparenzprotokolls.
Der Nutzen von Transparenzprotokollen wurde mit Certificate Transparency, -Protokoll, bei dem Zertifizierungsstellen die von ihnen an öffentlichen Certificate Transparency-Protokollen übergeben. Durch diesen Prozess haben sich die falsche Ausstellung von Zertifikaten, wodurch die Sicherheit der Internet. Viele Anbieter von Certificate Transparency-Protokollen verlassen sich auf eine Implementierung von Transparenz-Logs auf transparency.dev
Transparenzlogs werden mit Merkle-Bäumen implementiert. Auf dieser Seite wird von allgemeinen Wissen über Merkle-Bäume und binäre Transparenz. Weitere Informationen finden Sie unter Überprüfbare Datenstrukturen für einen Überblick über Merkle-Bäume und Landingpage für eine Übersicht über Binärprogramme Transparenz.
Logimplementierung
Das binäre Transparenzprotokoll von Pixel ist als kachelbasierten Merkle-Baum verwendet. Der Stamm des Kachelinhalts werden an https://developers.google.com/android/binary_transparency/tile. Hinweis: Dies ist keine reguläre Webseite, sollten die in den Unterverzeichnissen enthaltenen Logeinträge Programmatisch mit der Golang SumDB gelesen werden TLog-Bibliothek und nicht über ein Browser.
Unter Protokollinhalte finden Sie eine Beschreibung des Inhalts der Einträge.
Der Merkle-Baum-Stamm-Hash eines Logs, der in einem Prüfpunkt enthalten ist, wird an folgendem Ort bereitgestellt: https://developers.google.com/android/binary_transparency/checkpoint.txt. Sie wird in den Checkpoint-Format an. Die Blätter dieses Merkle-Baums werden unter https://developers.google.com/android/binary_transparency/image_info.txt bereitgestellt. Die Signatur des Prüfpunkts kann mit dem folgenden öffentlichen Schlüssel verifiziert werden:
-----BEGIN CERTIFICATE-----
MIICPDCCAeOgAwIBAgIVAPooxISw/nFF/dPwmCUaV36Z4s3hMAoGCCqGSM49BAMCMHQxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYD
VQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAgFw0y
MTA3MTkyMjQxNDFaGA8yMDUxMDcxOTIyNDE0MVowdDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
bGlmb3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC0dvb2dsZSBJbmMuMRAw
DgYDVQQLEwdBbmRyb2lkMRAwDgYDVQQDEwdBbmRyb2lkMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD
QgAEU83uXNUiTYE53c2TfdWmqpW20bBXy4KEf5Ff8dV8GLKlVAXKHyjw3Lp9J3E0yCRJ/39XKeuA
AMF7KzSvhD248KNQME4wDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUHRpvuNkzjtBY213BWgUyWWHm
3VYwHwYDVR0jBBgwFoAUHRpvuNkzjtBY213BWgUyWWHm3VYwCgYIKoZIzj0EAwIDRwAwRAIgZsZb
CNBXRkCKLS+LG/41VWj1cTszt9QCdJQNuy7aT94CIDPgn7v5b1ykBVUTuLgRSofxAzHg9R4dg1oA
7tTFAuDg
-----END CERTIFICATE-----
Der Verifizierungsprozess liest den Prüfpunkt und die Kacheln. die die Logeinträge aus dem Log enthält.
Überprüfungsverfahren
Ein Transparenzlog wird mit einem Merkle-Baum implementiert, der aus Hashes besteht. A Blattknoten enthält Daten und ein übergeordneter Knoten enthält den Hash seiner untergeordneten Knoten.
Im Merkle-Baum werden zwei Berechnungen durchgeführt, um die manipulationssichere Eigenschaft von Transparenzprotokollen: der Einschluss- und Konsistenznachweis. Die zeigt nach, dass das Log einen Eintrag enthält, der einer Image-Version entspricht, also. Der Logeintrag enthält VBMeta-Digest Ein Hash für die Betriebssystem-Images, die von einem Gerät zurückgegeben werden können. Die beweist, dass der neue Prüfpunkt beim Hinzufügen neuer Einträge zum Baum entspricht der vorherigen Version der Baumstruktur.
Um Ihr Pixel-Bild zu verifizieren, führen Sie den Aufnahmenachweis durch. Die Durchführung der Die Berechnung des Konsistenznachweises ist optional, da Drittanbieter dies tun.
Wenn Sie sich mit den Konzepten der Überprüfung in Pixel vertraut machen möchten Binäre Transparenz. Folgen Sie der Anleitung unten, um das Bild zu verwenden. auf Ihrem Pixel-Gerät ausgeführt wird. Wenn Sie die Pixel-Firmware mit der höchsten sicher sein, finden Sie im Überprüfungsverfahren unter Vollständige Bestätigung der Binärautorisierung für Pixel.
Vorbereitung
Achten Sie darauf, dass die folgenden Abhängigkeiten verfügbar sind:
- Golang: Das Verifizierungstool muss mit Go 1.17 oder höher (verfügbar in von der Go-Website aus.
- Android Debug Bridge (ADB): Kommunikation mit einem Android-Gerät zur Prüfung das Bild, verfügbar auf der Android SDK Platform Tools-Website
- Bestätigung der Inklusion: Wird mit dem Protokoll verknüpft, um zu prüfen, ob das Pixel Bild ist im binären Transparenzprotokoll.
# Source code for the inclusion proof verifier is found at avb/tools/transparency/verify
git clone https://android.googlesource.com/platform/external/avb
Aufnahmenachweis
Ein Pixel-Nutzer kann überprüfen, ob sich sein Bild im Protokoll befindet, indem er zuerst die relevanten Metadaten und vergleicht dann den neu berechneten Root-Hash mit dem Root-Hash in der veröffentlichter Prüfpunkt zurückgegeben. Wenn sie übereinstimmen, kann der Pixel-Nutzer sichergehen, dass er einige Schutzfunktionen erhält. am Beispiel der Bedrohungsmodell.
So kannst du prüfen, ob das Bild auf einem Pixel-Gerät im Transparenzprotokoll aufgeführt ist: mit ADB mit dem Gerät verbinden, und führen Sie dann die folgenden Befehle aus:
FINGERPRINT=$(adb shell getprop ro.build.fingerprint)
VBMETA_DIGEST=$(adb shell getprop ro.boot.vbmeta.digest)
LOG_ENTRY="${FINGERPRINT}\n${VBMETA_DIGEST}\n"
PAYLOAD_PATH="/tmp/log_payload.txt"
echo -e $LOG_ENTRY >> $PAYLOAD_PATH
cd avb/tools/transparency/verify/
go build cmd/verifier/verifier.go
./verifier --payload_path=$PAYLOAD_PATH
Die erste Stanza ruft die Metadaten von einem Pixel-Gerät im Format einer
Logeintrag und speichert ihn unter /tmp/log_payload.txt.
Die zweite Stanza führt die Überprüfung des Inklusionsnachweises aus, die in der Repository für den verifizierten Bootmodus von Android. Dieses Tool berechnet den Hash des Kandidaten-Logeintrags, ruft den anderen Hashes, die zur Neuberechnung des Prüfpunkts aus dem Log erforderlich sind, und ihn mit den vom Log veröffentlichten Checkpoint.
Die Ausgabe des Befehls wird in stdout geschrieben:
OK, wenn das Image im Log enthalten ist,FAILURE, wenn dies nicht der Fall ist.
Konsistenznachweis (optional)
Da Google regelmäßig neue Versionen des Pixel-Factory Images veröffentlicht, Transparenz-Log wächst stetig. Ein Zeuge prüft, ob der Baum wächst. in Übereinstimmung mit den vorherigen Blättern. Der Zeuge verfolgt die Baumstamm-Hash und berechnet den nächsten Kandidaten-Root-Hash, indem das neue Blatt-Hashes aus dem Baum. Damit ein Transparenzprotokoll manipulationssicher ist, muss es kontinuierlich auf Einheitlichkeit überprüft werden.
Das Verhalten des Transparenzprotokolls, für das nur Anfügungen zulässig sind, wird aktiv von Daher müssen die meisten Nutzer das nicht selbst tun. Es ist aber möglich, damit jeder die Konsistenz des Logs überwachen kann. Google hat eine Open-Source- Implementierung eines Zeugen in diesem GitHub-Repository. Es ist notwendig, verwenden Sie die Konfiguration spezifisch für das Log Binary Transparency (PixelBT) von Pixel.