Để tăng cường hơn nữa độ tin cậy của hệ điều hành Android, chúng tôi cam kết liệt kê mọi mô-đun hệ điều hành Android (gọi là Mainline) được cung cấp dưới dạng bản cập nhật thông qua Google Play trong nhật ký minh bạch của chúng tôi. Chúng tôi xuất bản nhật ký minh bạch để xác minh các tuyên bố mà chúng tôi đưa ra về những mô-đun này. Các mô-đun được cài đặt sẵn không được liệt kê rõ ràng vì chúng đã được đề cập trong phần Tính minh bạch của tệp nhị phân Pixel.
Mô hình mối đe doạ
Bạn có thể sử dụng các hệ thống minh bạch để phát hiện và ngăn chặn các cuộc tấn công vào chuỗi cung ứng. Chúng tôi minh hoạ bằng một số ví dụ.
Giả sử kẻ tấn công sửa đổi một cách độc hại một mô-đun Mainline (có thể là tệp APEX hoặc APK) và thậm chí còn ký được mô-đun đó bằng khoá ký được dùng để phân phối qua Google Play. Bất kỳ ai nhận được một mô-đun đáng ngờ đều có thể truy vấn nhật ký minh bạch nhị phân để xác minh tính xác thực của mô-đun. Họ sẽ thấy rằng Google chưa thêm siêu dữ liệu mô-đun tương ứng vào nhật ký và sẽ biết không nên tin tưởng mô-đun hệ điều hành bị xâm nhập.
Vì việc xuất bản vào nhật ký là một quy trình riêng biệt với quy trình phát hành có chữ ký, nên điều này sẽ nâng cao mức độ khó khăn cho kẻ tấn công, không chỉ đơn thuần là xâm phạm khoá.
Mặc dù chúng tôi cũng dự định tích hợp nhật ký này vào một mạng công cộng của nhân chứng bằng cách sử dụng giao thức nhân chứng tiêu chuẩn, nhưng chúng tôi khuyến khích các bên độc lập bên ngoài giám sát tính toàn vẹn của nhật ký công khai này. Các bên này có thể chứng thực thuộc tính chỉ cho phép thêm của nhật ký và báo cáo mọi hành vi giả mạo.
Sự tồn tại của một hệ thống minh bạch như vậy và khả năng phát hiện thêm các cuộc tấn công sẽ ngăn chặn hoạt động độc hại. Nếu một mô-đun hệ điều hành bị xâm nhập nhưng người dùng chỉ tin tưởng những mô-đun có trong nhật ký, thì mô-đun bị xâm nhập đó sẽ cần được công khai. Điều này làm tăng khả năng phát hiện ra rằng các mô-đun bị xâm nhập tồn tại và có thể thực hiện hành động để loại bỏ việc phân phối mô-đun đó.
Mô hình bên xác nhận quyền sở hữu
Mô hình bên yêu cầu là một khung dùng để xác định vai trò và cấu phần phần mềm trong một hệ thống có thể xác minh. Trong trường hợp Minh bạch về các mô-đun Mainline của Android, tuyên bố mà chúng tôi đưa ra là hàm băm của một tệp mô-đun được ghi lại trong nhật ký này đại diện cho một phiên bản cụ thể của mô-đun Android chính thức dành cho người dùng.
- ClaimMainlineModule: (I, Google, claim that
$hashModuleis for$mainlineModule), where:
Bất kỳ ai có bản sao của $mainlineModule đều có thể xác minh yêu cầu này.
Trang xác minh cung cấp hướng dẫn chi tiết về quy trình này.
Các bước này áp dụng cho cả tệp APK thông thường và mô-đun Mainline (có thể là tệp APK hoặc APEX).
Nội dung nhật ký
Khi phát hành một phiên bản mới của mô-đun Mainline, Google sẽ thêm một mục tương ứng vào Nhật ký minh bạch về mô-đun Mainline.
Mỗi mục trong nhật ký này chứa 4 phần siêu dữ liệu:
- Mã băm của APK hoặc APEX của một mô-đun Mainline đã ký trên Android. Đây là một chuỗi hex của thuật toán SHA256 cho toàn bộ tệp.
- Nội dung mô tả về loại hàm băm ở trên. Đây là một chuỗi.
- Tên gói của mô-đun. Đây là một chuỗi.
- Số phiên bản (versionCode) của mô-đun. Đây là một số nguyên khác 0.
Định dạng của một mục nhập nhật ký là sự kết hợp của 4 thông tin với một ký tự dòng mới (\n), như minh hoạ trong phần sau:
hash\nhash_description\npackage_name\npackage_version\n
Vì mô-đun chính có thể là tệp APK hoặc tệp APEX, nên nội dung mô tả hàm băm có thể là SHA256(APK) hoặc SHA256(APEX).