Pixel 바이너리 투명성 로그는 투명성 로그 기술을 활용합니다.
투명성 로그의 유용성은 인증서 투명성은 인증 기관이 인증서를 게시하도록 하는 프로토콜 공개 인증서 투명성 로그에 추가할 수 있습니다. 이 프로세스는 인증서의 오발을 방지하여 인증서의 보안을 강화합니다. 인터넷 구현을 사용하는 많은 인증서 투명성 로그 연산자 transparency.dev에 있는 투명성 로그의 비율
투명성 로그는 머클 트리로 구현됩니다. 이 페이지는 일반적인 머클 트리와 바이너리 투명도에 관한 지식 자세한 내용은 검증 가능한 데이터 구조 머클 트리와 바이너리 개요를 위한 방문 페이지 있습니다.
로그 구현
Pixel 바이너리 투명성 로그는 타일 기반 머클 트리. 루트 3개의 타일 콘텐츠가 https://developers.google.com/android/binary_transparency/tile. 참고: 일반적인 웹페이지가 아닙니다. 해당 하위 디렉터리에 포함된 로그 항목은 Golang SumDB를 사용하여 프로그래매틱 방식으로 읽을 수 있습니다. TLog 라이브러리를 사용할 수 있으며, 있습니다.
자세한 내용은 로그 콘텐츠를 항목에 대한 설명이 있습니다.
체크포인트에 포함된 로그의 머클 트리 루트 해시는 https://developers.google.com/android/binary_transparency/checkpoint.txt. 이 내용은 체크포인트 형식을 참조하세요. 이 머클 트리의 잎은 https://developers.google.com/android/binary_transparency/image_info.txt에서 제공됩니다. 체크포인트의 서명은 다음 공개 키로 확인할 수 있습니다.
-----BEGIN CERTIFICATE-----
MIICPDCCAeOgAwIBAgIVAPooxISw/nFF/dPwmCUaV36Z4s3hMAoGCCqGSM49BAMCMHQxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYD
VQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAgFw0y
MTA3MTkyMjQxNDFaGA8yMDUxMDcxOTIyNDE0MVowdDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
bGlmb3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC0dvb2dsZSBJbmMuMRAw
DgYDVQQLEwdBbmRyb2lkMRAwDgYDVQQDEwdBbmRyb2lkMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD
QgAEU83uXNUiTYE53c2TfdWmqpW20bBXy4KEf5Ff8dV8GLKlVAXKHyjw3Lp9J3E0yCRJ/39XKeuA
AMF7KzSvhD248KNQME4wDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUHRpvuNkzjtBY213BWgUyWWHm
3VYwHwYDVR0jBBgwFoAUHRpvuNkzjtBY213BWgUyWWHm3VYwCgYIKoZIzj0EAwIDRwAwRAIgZsZb
CNBXRkCKLS+LG/41VWj1cTszt9QCdJQNuy7aT94CIDPgn7v5b1ykBVUTuLgRSofxAzHg9R4dg1oA
7tTFAuDg
-----END CERTIFICATE-----
인증 절차에서 체크포인트와 타일을 읽음 전체 목록을 확인할 수 있습니다
인증 절차
투명성 로그는 해시로 구성된 머클 트리로 구현됩니다. 가 리프 노드에는 데이터가 포함되고 상위 노드에는 하위 요소의 해시가 포함됩니다.
머클 트리에서 두 가지 계산이 수행되어 변조 탐지 가능 여부 확인 포괄성 증명과 일관성 증명입니다. 이 은 로그에 이미지 버전에 해당하는 항목이 포함되어 있음을 증명합니다. 즉, 로그 항목에는 VBMeta 다이제스트, OS 이미지를 나타내는 해시로, 기기에서 반환될 수 있습니다. 이 후자는 새 항목이 트리에 추가되면 새 체크포인트가 이전 버전의 트리와 일치합니다.
Pixel 이미지를 확인하려면 포함 증명을 수행합니다. 작업 수행 일관성 증명 계산은 선택사항입니다. 서드 파티가 지속적으로 그렇게 해야 합니다.
Pixel의 인증 개념을 숙지하려는 경우 바이너리 투명도입니다. 아래 안내에 따라 이미지를 사용할 수 있습니다. 실행되는 것입니다. 가장 높은 성능의 Pixel 펌웨어를 실행하려는 경우 자세히 알아보려면 Pixel 바이너리 투명성 전체 인증.
기본 요건
다음 종속 항목을 사용할 수 있는지 확인합니다.
- Golang: 확인 도구는 Go 1.17 이상으로 빌드되어야 합니다(사용 가능). Go 사이트에서 찾을 수 있습니다.
- Android 디버그 브리지 (adb): 검사를 위해 Android 기기와 통신합니다. 이 이미지는 Android SDK 플랫폼 도구 웹사이트
- 포함 증명 인증 도구: 로그에 접속하여 Pixel이 바이너리 투명도 로그에 있습니다.
# Source code for the inclusion proof verifier is found at avb/tools/transparency/verify
git clone https://android.googlesource.com/platform/external/avb
포용성 증명
Pixel 소유자는 먼저 다시 계산된 루트 해시를 루트 해시와 비교하여 포함된 게시된 체크포인트를 확인하세요. 두 기기가 일치하면 Pixel 소유자는 어느 정도의 보호 조치를 취할 수 있습니다. 위협 모델.
Pixel 기기의 이미지가 투명도 로그에 있는지 확인하려면 다음 단계를 따르세요. adb로 기기에 연결 다음 명령어를 실행합니다.
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
첫 번째 스탠자는 Pixel 기기에서
로그 항목을 생성하고 /tmp/log_payload.txt에 저장합니다.
두 번째 스탠자는 Android 자체 검사 부팅 저장소. 이 도구는 후보 로그 항목의 해시를 계산한 후 해시를 변환하여 로그에서 체크포인트를 다시 계산하여 체크포인트를 생성합니다
명령어 출력은 stdout에 기록됩니다.
- 이미지가 로그에 포함된 경우
OK - 그렇지 않은 경우
FAILURE.
일관성 증명 (선택사항)
Google에서는 정기적으로 Pixel 공장 출고 시 이미지의 새 버전을 출시하므로 투명성 로그는 계속 증가하고 있습니다. 증인은 나무가 자라는 것을 확인합니다. 이전 잎과 일치하는 방식으로 말이죠. 목격자는 1900년대 중반의 새 루트 해시를 요청하여 다음 후보 루트 해시를 리프 해시를 사용합니다. 투명성 로그가 변조 탐지되지 않도록 하려면 지속적으로 점검해야 합니다
투명도 로그의 추가 전용 동작은 세 번째로 대부분의 사용자는 직접 수행할 필요는 없지만 누구든지 로그의 일관성을 모니터링할 수 있습니다 Google은 오픈소스 목격자 구현은 GitHub 저장소. 이를 위해서는 사용 구성 픽셀 바이너리 투명성 (PixelBT) 로그에만 적용됩니다.