Để tăng độ tin cậy đối với các ứng dụng của Google, chúng tôi cam kết liệt kê mọi ứng dụng sản phẩm của Google trong nhật ký minh bạch. Chúng tôi đã xuất bản nhật ký minh bạch để xác minh công khai các tuyên bố mà chúng tôi đưa ra liên quan đến những APK này.
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 ứng dụng Google và thậm chí còn ký được ứng dụng đó bằng khoá ký được dùng để phân phối thông qua Google Play. Với nhật ký minh bạch nhị phân, bất kỳ ai nhận được một APK đáng ngờ đều có thể sử dụng nhật ký này làm nguồn thông tin thực tế có thể xác minh để xác minh tính xác thực của APK. Họ sẽ thấy rằng Google chưa thêm siêu dữ liệu APK tương ứng vào nhật ký và sẽ biết không nên tin tưởng APK 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ý (như minh hoạ trong Sơ đồ hệ sinh thái), điều này sẽ nâng cao yêu cầu đối với kẻ tấn công, không chỉ 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 APK bị xâm nhập nhưng người dùng chỉ tin tưởng những APK có trong nhật ký, thì APK bị xâm nhập đó cần phải được công khai. Điều này làm tăng khả năng phát hiện APK bị xâm nhập và bạn có thể thực hiện hành động để ngừng phân phối APK đó.
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 Tính minh bạch của ứng dụng bên thứ nhất của Google, chúng tôi tuyên bố rằng hàm băm của một tệp APK đượ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ột ứng dụng Google chính thức dành cho người dùng.
- ClaimGoogleApp: (Tôi, Google, tuyên bố rằng
$hashApplà dành cho$googleApp), trong đó:$hashApplà một hàm băm mật mã (ví dụ: SHA256) của tệp APK (bao gồm cả các tệp APK phân tách) của một phiên bản cụ thể của$googleApp.$googleApplà một gói Android (APK) tạo nên một ứng dụng mà Google tạo và phân phối.
Bất cứ ai có bản sao $googleApp đều có thể xác minh tuyên bố này và chúng tôi mô tả chi tiết quy trình này trên trang xác minh.
Nội dung nhật ký
Khi phát hành một phiên bản APK mới, Google sẽ thêm một mục tương ứng vào Nhật ký minh bạch về APK bên thứ nhất của Google.
Mỗi mục trong nhật ký này chứa 4 phần siêu dữ liệu:
- Hàm băm của tệp APK của một ứng dụng do Google ký. Đâ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ước đó. Đây là một chuỗi.
- Tên gói của APK. Đây là một chuỗi.
- Số phiên bản (versionCode) của APK. Đâ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\nSHA256(APK)\npackage_name\npackage_version\n
Vì chúng ta đang đo toàn bộ tệp APK, nên nội dung mô tả hàm băm được đặt thành SHA256(APK). Điều này giúp cung cấp thông tin đầy đủ về nội dung của từng tệp và giúp người dùng dễ dàng thu thập thông tin đo lường này.
Sơ đồ hệ sinh thái
