Dziennik przejrzystości plików APK usług systemowych Google

Dziennik przejrzystości plików APK usług systemowych Google korzysta z technologii dziennika przejrzystości.

Użyteczność dzienników przejrzystości została potwierdzona w projektach takich jak Pixel Binary TransparencyCertificate Transparency.

Dzienniki przejrzystości są implementowane za pomocą drzew Merkle. Na tej stronie zakłada się ogólną znajomość drzew Merkle i przejrzystości binarnej. Więcej informacji o drzewach Merklego znajdziesz w artykule Verifiable Data Structures, a o działaniach związanych z przejrzystością binarną w Androidzie – na stronie głównej.

Implementacja logowania

Dziennik przejrzystości plików APK usług systemowych Google jest zaimplementowany jako drzewo Merkle oparte na kafelkach. Główna treść kafelka jest wyświetlana pod adresem https://developers.google.com/android/binary_transparency/google1p/tile/. Uwaga: to nie jest zwykła strona internetowa. Wpisy w dzienniku znajdujące się w jej podkatalogach należy odczytywać programowo za pomocą biblioteki Golang SumDB Tlog, a nie w przeglądarce. Podajemy link, aby uniknąć wątpliwości.

Opis zawartości poszczególnych wpisów znajdziesz w sekcji Log Content (Zawartość dziennika).

Hash korzenia drzewa Merkle dziennika, zawarty w punkcie kontrolnym, jest udostępniany na stronie https://developers.google.com/android/binary_transparency/google1p/checkpoint.txtformacie punktu kontrolnego. Liście tego drzewa Merkle są dostępne na stronie https://developers.google.com/android/binary_transparency/google1p/package_info.txt. Podpis punktu kontrolnego można zweryfikować za pomocą klucza publicznego opisanego w tym certyfikacie.

-----BEGIN CERTIFICATE-----
MIICPzCCAeWgAwIBAgIUAV4UWNut89Vj0EIwMTUlOYclCMMwCgYIKoZIzj0EAwIw
dDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v
dW50YWluIFZpZXcxFDASBgNVBAoMC0dvb2dsZSBJbmMuMRAwDgYDVQQLDAdBbmRy
b2lkMRAwDgYDVQQDDAdBbmRyb2lkMCAXDTI0MDkyNTIzNTYwOVoYDzIwNTQwOTE4
MjM1NjA5WjB0MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQG
A1UEBwwNTW91bnRhaW4gVmlldzEUMBIGA1UECgwLR29vZ2xlIEluYy4xEDAOBgNV
BAsMB0FuZHJvaWQxEDAOBgNVBAMMB0FuZHJvaWQwWTATBgcqhkjOPQIBBggqhkjO
PQMBBwNCAASofcYuVig/lsWwIfwMfLk22mMltFDDd8k1IBNKajw6VdQynSh7XapH
Ace10/uT1ceUmwJinyOPR1Bpj431+18vo1MwUTAdBgNVHQ4EFgQUwHSDZ/iAB8Go
Rt1oDkVktxyizhYwHwYDVR0jBBgwFoAUwHSDZ/iAB8GoRt1oDkVktxyizhYwDwYD
VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNIADBFAiEAleFB+Arfv1KW0r6TbSEX
EfvBnJMPqRNAIVPd8LrVhw0CIAX56Txqs8H5XWdMoNF21w8Z0PmUNvLLtZtM+25O
wjq8
-----END CERTIFICATE-----

Ten sam klucz publiczny znajdziesz też w bloku klucza publicznego PGP w sekcji Bezpieczeństwo Androida na stronie https://services.google.com/corporate/publickey.txt. Jeśli wolisz PGP, możesz go zidentyfikować za pomocą symbolu CFAB31BE8DD7AC42FC721980ECA5C68599F17322.

Na stronie weryfikacji znajdziesz szczegółowy opis tego, jak poszczególne komponenty logu są używane do weryfikowania roszczeń zgłaszanych w modelu zgłaszającego roszczenie.

Nieplanowany model koncepcyjny

Wpis w tym logu pod indeksem 39 jest błędnym wpisem testowym. Jego ciągłe istnienie jest gwarancją integralności naszego dziennika. Nie możemy go usunąć, co dowodzi, że nikt nie może ukryć złośliwych wpisów. Szczegółowe informacje znajdziesz na stronie erraty.