Android 메인라인 모듈 투명성 로그는 검증 가능한 데이터 구조를 사용하여 메인라인 모듈의 무결성을 보장합니다.
투명성 로그의 유용성은 Pixel 바이너리 투명성 및 인증서 투명성과 같은 프로젝트를 통해 입증되었습니다.
투명성 로그는 머클 트리를 기반으로 빌드됩니다. 이 페이지에서는 머클 트리 및 바이너리 투명성에 관한 일반적인 지식이 있다고 가정합니다. 머클 트리에 관한 개요는 검증 가능한 데이터 구조를 참고하고 Android 내 바이너리 투명성 노력에 관한 개요는 메인 페이지를 참고하세요.
로그 구현
Android 메인라인 모듈 투명성 로그는 Tessera 를 사용하여 구현되며 타일 높이가 8인 tlog-tiles 사양을 준수합니다 (각 타일 또는 번들에는 최대 28 = 256개의 항목이 포함됨).
로그 콘텐츠의 루트는 https://gstatic.com/android/binary_transparency/mainline/2026/02/tile/entries/에서 제공됩니다.
타일 콘텐츠의 루트는 https://gstatic.com/android/binary_transparency/mainline/2026/02/tile/에서 제공됩니다.
이러한 URL은 표준 웹페이지가 아닙니다. 대신 하위 디렉터리의 로그 항목은 Tessera 또는 Golang SumDB Tlog 라이브러리와 같은 도구를 사용하여 프로그래매틱 방식으로 액세스해야 합니다.
- 트리 타일: 머클 트리 내부 및 리프 노드 해시는
tile/<level>/<path>에서 제공됩니다 (예:tile/0/000,tile/1/000). - 항목 번들: 로그 리프 페이로드는
tile/entries/<path>(예:tile/entries/000,tile/entries/001) 아래의 항목 번들로 구성되며 각 번들에는 최대 256개의 연결된 항목이 포함됩니다.
각 항목에 포함된 내용은 로그 콘텐츠를 참고하세요.
체크포인트에 포함된 로그의 머클 트리 루트 해시는 체크포인트 형식으로 https://gstatic.com/android/binary_transparency/mainline/2026/02/checkpoint에서 제공됩니다.
체크포인트 출처는 gstatic.com/android/binary_transparency/mainline/modules/2026/1입니다.
체크포인트 서명은 Ed25519 서명 알고리즘을 사용하여 생성됩니다.
체크포인트의 서명은
golang.org/x/mod/sumdb/note에 정의된 대로 노트 검증 도구 형식 또는 표준 PEM 형식으로 다음 공개 키를 사용하여 확인할 수 있습니다.
- 노트 검증 도구 형식 (
<name>+<key_hash>+<public_key_bytes>):
MainlineModulesLogV2+e490c9dd+AfwnHm59rNQTJICchMd7a2W5PQa7nC5h2gTEfq3fhCEI
- PEM 형식 (SubjectPublicKeyInfo):
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA/Ccebn2s1BMkgJyEx3trZbk9BrucLmHaBMR+rd+EIQg=
-----END PUBLIC KEY-----
보관된 로그 (V1)
2026년 3분기 업데이트 이전에는 로그가 ECDSA (SHA-256이 포함된 NIST P-256) 서명을 사용하는 이전 V1 구현에서 작동했습니다. V1 로그는 보관되고 읽기 전용이지만 이전 항목을 확인하기 위해 공개적으로 액세스할 수 있습니다.
- 체크포인트: https://gstatic.com/android/binary_transparency/mainline/2026/01/checkpoint.txt
- 데이터 리프: https://gstatic.com/android/binary_transparency/mainline/2026/01/module_info.txt
- 타일 루트:
https://gstatic.com/android/binary_transparency/mainline/2026/01/tile/ - 공개 키 (PEM 형식, ECDSA P-256):
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEr6nPds8eKCYU42avidXNM1GDCtQ/
66GjGuIpUcZjqQNngwRFVCFZDpWuvDnqXzhJRxqccL9lbeEVVZGpa4x6pg==
-----END PUBLIC KEY-----
메인라인 모듈은 APK와 유사하므로 Google APK 확인 페이지에 설명된 확인 방법이 여기에도 적용됩니다. 거기에서 제공되는 메서드를 사용하여 신고자 모델에서 이루어진 소유권 주장을 확인할 수 있습니다.