# DroidForge
Keamanan & Kernel

Analisis Arsitektur Android Verified Boot (AVB 2.0) dan Rantai Kepercayaan Bootloader

T Tim Riset DroidForge
Diperbarui:
8 min read
Daftar Isi Artikel

Fondasi dan Evolusi Android Verified Boot

Android Verified Boot (AVB) merupakan pilar utama integritas perangkat dalam ekosistem sistem operasi Android modern. Sejak diperkenalkan pada era Android KitKat dalam bentuk dm-verity statis, arsitektur verifikasi boot telah berevolusi secara signifikan hingga mencapai implementasi AVB 2.0 pada Android 8.0 Oreo dan versi-versi berikutnya. Tujuan mendasar dari sistem ini adalah memastikan bahwa setiap instruksi biner yang dieksekusi selama proses inisialisasi perangkat keras berasal dari sumber terpercaya yang belum mengalami manipulasi atau injeksi kode berbahaya.

Pada implementasi awal AVB 1.0, verifikasi dilakukan secara terdistribusi di mana masing-masing partisi sistem (seperti system dan vendor) memuat tabel hash verity dan tanda tangan digitalnya sendiri di bagian akhir partisi (footer). Pendekatan ini menimbulkan tantangan koordinasi yang kompleks ketika melakukan pembaruan firmware berkala serta mempersulit mekanisme rollback protection. AVB 2.0 merevolusi paradigma ini dengan memperkenalkan pustaka libavb dan sentralisasi informasi kriptografis ke dalam struktur metadata khusus yang dikenal sebagai vbmeta.

Komponen Kriptografis dan Struktur Partisi vbmeta

Pusat kendali dari AVB 2.0 berada pada partisi vbmeta. Partisi ini memuat blok data verifikasi kriptografis yang membuktikan keaslian seluruh image sistem operasi. Struktur internal biner vbmeta dirancang secara deterministik dengan header berukuran tetap yang diikuti oleh array deskriptor dinamis.

Struktur Header dan Blok Data VBMeta

Setiap image vbmeta yang valid diawali dengan empat byte magic number AVB0 (nilai heksadesimal 0x41 0x56 0x42 0x30). Header ini mendefinisikan panjang blok otentikasi (authentication data block) dan blok pembantu (auxiliary data block). Blok otentikasi memuat tanda tangan digital berbasis algoritma asimetris seperti RSA-2048, RSA-4096, atau kurva eliptik ECC, yang dihitung dari representasi hash seluruh payload metadata.

Field Metadata Panjang Data Fungsi Arsitektural dalam AVB 2.0
magic[4] 4 Byte Identifier penanda validitas biner struktur metadata (ASCII 'AVB0').
required_libavb_version 8 Byte Versi kompatibilitas minimum parser libavb pada bootloader perangkat.
authentication_data_block Variabel Memuat nilai hash pohon dan digital signature yang diverifikasi dengan kunci OEM.
auxiliary_data_block Variabel Menyimpan public key, deskriptor hash partisi, dan rantai ranting vbmeta chained.
rollback_index_location 8 Byte Pointer indeks anti-rollback pada register memori terisolasi (RPMB / eFuse).

Catatan Riset Keamanan: Integritas Hardware Root of Trust

Baca Juga:
Dokumentasi Protokol Fastboot dan Analisis Partisi Dinamis Super (Retrofit vs Virtual A/B)
Alat & Dokumentasi ADB 4 mnt baca

Keamanan AVB 2.0 bertumpu mutlak pada Hardware Root of Trust. Jika public key OEM pada One-Time Programmable (OTP) eFuse dapat dimanipulasi, seluruh rantai kepercayaan di atasnya akan runtuh. Oleh sebab itu, bootloader komersial mengunci pembacaan hash kunci ini di tingkat silikon SoC.

Rantai Kepercayaan Bootloader (Chain of Trust)

Proses inisialisasi boot Android berjalan secara hierarkis bertingkat. Setiap tahapan bootloader bertanggung jawab memvalidasi integritas tahapan berikutnya sebelum mengeksekusi kendali instruksi prosesor. Rangkaian ini dimulai dari Boot ROM primer pada silikon SoC hingga ke inisialisasi user-space init Android.

Tahapan Eksekusi Sekuensial

  1. Primary Bootloader (PBL): Kode biner statis yang tersimpan permanen di Mask ROM chip. PBL mengeksekusi self-test perangkat keras dan membaca Secondary Bootloader (SBL/XBL) dari media penyimpanan flash UFS.
  2. Secondary Bootloader (XBL/SBL): Memverifikasi kunci publik OEM yang tersimpan pada register eFuse, menginisialisasi bus DDR RAM, dan memuat Application Bootloader (ABL).
  3. Application Bootloader (ABL): Komponen bootloader tingkat tinggi berbasis standar UEFI/Little Kernel. ABL memuat pustaka libavb untuk memvalidasi partisi vbmeta, memeriksa nomor rollback index, dan memverifikasi kernel image pada partisi boot atau init_boot.
  4. Inisialisasi dm-verity Kernel: Kernel Linux menerima parameter dm-verity melalui kernel command line (bootargs) dari ABL. Kernel memvalidasi blok pohon hash partisi system, vendor, dan product secara on-the-fly saat pembacaan I/O filesystem berlangsung.

Mekanisme Chained Partitions dan vbmeta_system

Untuk mendukung kemandirian pembaruan partisi tanpa harus mengompilasi ulang seluruh image vbmeta utama, AVB 2.0 mendukung arsitektur Chained Partitions. Dalam model ini, partisi seperti vbmeta_system atau vbmeta_vendor memiliki pasangan kunci kriptografis tersendiri. Partisi vbmeta root utama hanya menyimpan nilai digest SHA-256 dari kunci publik partisi ranting tersebut (chain descriptor). Jika vendor chipset menerbitkan patch keamanan untuk partisi vendor, mereka cukup menandatangani ulang image vbmeta_vendor tanpa perlu meminta tanda tangan kunci OEM utama, menjaga fleksibilitas siklus rekayasa firmware.

Audit dan Validasi Verifikasi Image via Avbtool

Untuk keperluan analisis forensik dan riset keamanan, Google menyediakan utilitas open-source avbtool yang ditulis dalam Python. Utilitas ini memungkinkan peneliti memeriksa struktur metadata vbmeta, mengekstraksi kunci publik OEM, serta memvalidasi kesesuaian nilai hash tree pada image firmware.

Baca Juga:
Dokumentasi Kompilasi Kernel AOSP: Dari Clang Toolchain hingga Kernel Image
AOSP & Custom ROM 4 mnt baca
# Menampilkan rincian struktur header dan deskriptor partisi pada vbmeta.img
avbtool info_image --image vbmeta.img

# Melakukan verifikasi integritas rantai image boot terhadap vbmeta
avbtool verify_image --image vbmeta.img --key OEM_Root_Key.pem

# Mengekstraksi kunci publik OEM dari image vbmeta untuk analisis perbandingan
avbtool extract_public_key --image vbmeta.img --output extracted_oem_key.bin

Luaran dari perintah info_image akan merinci setiap partition descriptor yang terdaftar di dalam vbmeta, termasuk algoritma digest (misalnya SHA256_RSA4096), ukuran partisi target, dan nilai root digest yang menjadi patokan verifikasi kernel.

Analisis Status Kunci dan Keadaan Perangkat (Device State)

Dalam arsitektur AVB, keadaan perangkat dikategorikan menjadi dua status utama: LOCKED dan UNLOCKED, yang menghasilkan empat warna status boot (Boot State Color Coding) yang ditampilkan kepada pengguna pada layar boot awal:

Warna Status Kondisi Boot State Implikasi Keamanan dan Perilaku Sistem
GREEN Device Locked + OEM Key Perangkat sepenuhnya terkunci, image diverifikasi menggunakan sertifikat pabrikan resmi.
YELLOW Device Locked + Custom Key Perangkat terkunci menggunakan kunci root kustom yang didaftarkan pemilik (user key).
ORANGE Device Unlocked Bootloader dibuka. Verifikasi integritas dinonaktifkan atau hanya memberikan peringatan.
RED Integritas Korup Terjadi kegagalan verifikasi kriptografis pada partisi. Perangkat menghentikan proses boot.
# Memeriksa status kunci bootloader melalui protokol fastboot
fastboot getvar unlocked
fastboot getvar secure
fastboot oem device-info

Kesimpulan dan Implikasi Keamanan Sistem

Android Verified Boot 2.0 memberikan jaminan matematis terhadap keaslian biner sistem operasi Android. Melalui penggabungan Hardware Root of Trust, struktur metadata vbmeta terpusat, dan lapisan proteksi anti-rollback pada penyimpanan terisolasi RPMB, sistem operasi Android modern mampu mencegah modifikasi persisten pada partisi sistem yang tidak memiliki otorisasi kriptografis yang valid.

Topik Terkait: #AVB 2.0 #Kernel Linux #Hardware Keystore

Artikel Terkait

Artikel lain dalam kategori Keamanan & Kernel

Lihat Semua