Gần đây, chúng tôi đã công bố rằng chúng tôi đã tăng cường các kết quả của API Tính toàn vẹn của Play để các kết quả này nhanh hơn, linh hoạt hơn trước các cuộc tấn công và bảo mật hơn cho người dùng, cùng với các điểm cải thiện khác về bảo mật.
Tóm tắt các thay đổi
Bạn có thể xem thông tin tóm tắt chi tiết về các thay đổi và câu hỏi thường gặp trong phần sau của tài liệu này. Sau đây là những thay đổi về kết quả vào tháng 5 năm 2025:
Nội dung | Những điểm thay đổi | Tác động ước tính* | Thiết bị nào |
---|---|---|---|
Những thay đổi ảnh hưởng đến tất cả nhà phát triển gửi yêu cầu API Tính toàn vẹn của Play | |||
Phản hồi kết quả về thiết bị: meets-device-integrity | Bắt buộc phải có kết quả khởi động đã xác minh tích cực, được hỗ trợ phần cứng | Ảnh hưởng tối thiểu vì API Tính toàn vẹn của Play đã sử dụng các tín hiệu bảo mật dựa trên phần cứng trên các thiết bị chạy Android 13 trở lên (~0,4%) | Android 13 trở lên |
Phản hồi về tính toàn vẹn của ứng dụng: Kết quả nhận dạng ứng dụng | Không có thay đổi | Tác động tối thiểu, điều này sẽ phản ánh sự thay đổi trong kết quả của thiết bị (~0,4%) | Android 13 trở lên |
Phản hồi về thông tin tài khoản: Kết quả về giấy phép của Play | Ứng dụng yêu cầu phải được cài đặt hoặc cập nhật qua Google Play | Số câu trả lời được cấp phép giảm nhẹ (~2,5%) | Android 6 trở lên |
Những thay đổi chỉ ảnh hưởng đến nhà phát triển Play Console và nhà phát triển Play SDK Console sử dụng các tính năng không bắt buộc | |||
Phản hồi kết quả về thiết bị: meets-basic-integrity | Bắt buộc phải có quy trình Chứng thực khoá nền tảng Android nhưng trạng thái khởi động có thể là đã xác minh hoặc chưa xác minh | Số câu trả lời cơ bản giảm nhẹ (~0,4%) | Android 13 trở lên |
Phản hồi về kết quả của thiết bị: meets-strong-integrity | Bắt buộc phải có bản cập nhật bảo mật trong năm qua | Giảm số câu trả lời mạnh (~14,5%) | Android 13 trở lên |
Tất cả tín hiệu không bắt buộc (ngoại trừ các thuộc tính thiết bị)** | Ứng dụng yêu cầu phải được cài đặt hoặc cập nhật qua Google Play | Giảm % số lượt phản hồi có chứa tín hiệu không bắt buộc (~7%) | Android 13 trở lên |
*Tất cả tỷ lệ phần trăm tác động ước tính được đề cập ở trên đều dựa trên mức trung bình và các ứng dụng khác nhau có thể có mức thay đổi nhỏ hơn hoặc lớn hơn tuỳ thuộc vào số lượt cài đặt.
**Các tín hiệu không bắt buộc (ngoại trừ các thuộc tính thiết bị) là: meets-basic-integrity
, meets-strong-integrity
, hoạt động gần đây trên thiết bị, thu hồi thiết bị (thử nghiệm), trạng thái Play Protect và rủi ro truy cập vào ứng dụng.
Câu hỏi thường gặp
Tổng quan
API Tính toàn vẹn của Play là gì?
API Tính toàn vẹn của Play giúp bạn đánh giá độ tin cậy của môi trường ứng dụng của người dùng bằng cách thu thập thông tin về thiết bị, ứng dụng và người dùng, nhờ đó, bạn có thể phát hiện và phản hồi các hành vi sai trái và tấn công tiềm ẩn.
API Tính toàn vẹn của Play cung cấp những tín hiệu nào?
API Tính toàn vẹn của Play bao gồm danh tính của ứng dụng yêu cầu, liệu ứng dụng yêu cầu có được Google Play cài đặt hay không và liệu thiết bị có phải là Thiết bị Android được Play Protect chứng nhận chính hãng hay không. Các tín hiệu này được cung cấp theo mặc định. Bạn có thể đọc các tín hiệu này trên máy chủ phụ trợ của ứng dụng và quyết định xem ứng dụng có nên phản hồi hay không và phản hồi như thế nào. Nhà phát triển trên Google Play có thể chọn nhận thêm tín hiệu trong các lượt cài đặt trên Play để xem thêm thông tin.
Chứng thực khoá trên nền tảng Android là gì?
Tính năng Chứng thực khoá của nền tảng Android cho phép ứng dụng xác minh trạng thái của thiết bị và nhận được tín hiệu mạnh mẽ về tính toàn vẹn khi khởi động dựa trên phần cứng. Điều này phụ thuộc vào khoá do Google cấp trong kho khoá dựa trên phần cứng của thiết bị. API Tính toàn vẹn của Play đã sử dụng tính năng chứng thực khoá để nhận tín hiệu bảo mật dựa trên phần cứng trên một số thiết bị và giờ đây sẽ tích hợp sâu hơn các tín hiệu này trên tất cả thiết bị chạy Android 13 trở lên.
Thay đổi về kết quả
Chúng tôi đã thay đổi những gì đối với kết quả của API Tính toàn vẹn của Play trên các thiết bị chạy Android 13 trở lên?
API Tính toàn vẹn của Play hiện yêu cầu phải có tín hiệu bảo mật dựa trên phần cứng cho tất cả kết quả về tính toàn vẹn:
- Kết quả nhận dạng thiết bị
meets-device-integrity
cho biết rằng thiết bị mà ứng dụng đang chạy là một thiết bị chạy Android chính hãng được Play Protect chứng nhận. Kết quả này sẽ yêu cầu trình tải khởi động của thiết bị phải được khoá và hệ điều hành Android đã tải phải là hình ảnh của nhà sản xuất thiết bị được chứng nhận. - Kết quả nhận dạng thiết bị
meets-strong-integrity
cho biết một thiết bị chạy Android chính hãng được Play Protect chứng nhận và đã cập nhật bản bảo mật gần đây. Kết quả này sẽ yêu cầumeets-device-integrity
và bản cập nhật bảo mật trong năm qua cho tất cả phân vùng của thiết bị, bao gồm cả bản vá phân vùng hệ điều hành Android và bản vá phân vùng của nhà cung cấp. Điều kiện này có thể thay đổi trong tương lai. - Kết quả nhận dạng thiết bị
meets-basic-integrity
cho biết rằng quá trình kiểm tra đã diễn ra trên một thiết bị Android thực. Trình tải khởi động của thiết bị có thể được khoá hoặc mở khoá, còn trạng thái khởi động có thể được xác minh hoặc chưa xác minh. Thiết bị đó có thể chưa được Play Protect chứng nhận. Trong trường hợp này, Google không thể cung cấp bất kỳ đảm bảo nào về tính bảo mật, quyền riêng tư hoặc khả năng tương thích của ứng dụng, cũng như không thể đảm bảo rằng thiết bị đó không hoạt động như một proxy, chẳng hạn như đối với một phiên bản Android ảo. Điều này cũng có nghĩa là các thiết bị bị can thiệp hệ thống đủ điều kiện trả vềmeets-basic-integrity
miễn là có quy trình chứng thực khoá.
Những thay đổi này không ảnh hưởng đến API Tính toàn vẹn của Play trên Play Games dành cho máy tính. API này sẽ tiếp tục trả về meets-virtual-integrity
.
Tại sao kết quả của API Tính toàn vẹn của Play lại thay đổi trên các thiết bị chạy Android 13 trở lên?
API Tính toàn vẹn của Play đã sử dụng một phần các tín hiệu bảo mật dựa trên phần cứng trên Android 12 trở xuống. Bằng cách yêu cầu tính năng bảo mật dựa trên phần cứng trên Android 13 trở lên, kết quả của Play Integrity API sẽ linh hoạt hơn trước các kẻ tấn công, mang lại hiệu suất cao hơn cho ứng dụng và đảm bảo quyền riêng tư hơn cho người dùng. Nhà phát triển có thể trông đợi những điểm cải tiến sau đây trên các thiết bị chạy Android 13 trở lên:
- Giảm khoảng 90% số lượng tín hiệu thiết bị cần thu thập và đánh giá để tạo kết quả mặc định trên máy chủ của Google. Các tín hiệu không bắt buộc sẽ tiếp tục yêu cầu thu thập thêm tín hiệu.
- Giảm độ trễ kết quả lên đến 80% đối với các yêu cầu tiêu chuẩn trong trường hợp xấu nhất và lên đến 80% đối với tất cả các yêu cầu kiểu cũ để nhận kết quả mặc định. Các tín hiệu không bắt buộc có thể làm tăng độ trễ.
- Mức độ tin cậy và hỗ trợ nhất quán cho tất cả kiểu dáng thiết bị Android có chứng thực khoá, bao gồm cả thiết bị di động, máy tính bảng, thiết bị có thể gập lại, TV, Ô tô, Wear OS và ChromeOS.
- Sự khác biệt lớn hơn giữa mỗi nhãn thiết bị trong kết quả nhận dạng thiết bị:
meets-strong-integrity
,meets-device-integrity
vàmeets-basic-integrity
.
Kết quả của API Tính toàn vẹn của Play trên Play Games cho máy tính sẽ không thay đổi và sẽ giống nhau trên Android 12 trở xuống cũng như trên Android 13 trở lên.
Làm cách nào để cập nhật logic phụ trợ của ứng dụng cho kết quả về tính toàn vẹn để tính đến phiên bản SDK Android?
Nếu muốn sử dụng logic khác trên máy chủ phụ trợ của ứng dụng dựa trên phiên bản SDK Android, bạn có thể sử dụng trường thuộc tính thiết bị mới trong kết quả. Sau đây là ví dụ về cách thực hiện việc này:
Kotlin
val deviceIntegrity = JSONObject(payload).getJSONObject("deviceIntegrity") val sdkVersion = if (deviceIntegrity.has("deviceAttributes")) { deviceIntegrity.getJSONObject("deviceAttributes").getInt("sdkVersion") } else { 0 } if (sdkVersion >= 30) { // Provide Android R+ specific experience to the user. }
Java
JSONObject deviceIntegrity = new JSONObject(payload).getJSONObject("deviceIntegrity"); int sdkVersion = deviceIntegrity.has("deviceAttributes") ? deviceIntegrity.getJSONArray("deviceAttributes").getInt("sdkVersion") : 0; if (sdkVersion >= 30) { // Provide Android R+ specific experience to the user. }
Làm cách nào để sử dụng định nghĩa nhãn meets-strong-integrity
cũ trên tất cả phiên bản SDK Android?
Bạn có thể thực hiện việc này bằng cách cập nhật logic phụ trợ của ứng dụng để sử dụng meets-strong-integrity
khi đó là thiết bị chạy Android trước phiên bản 13 và meets-device-integrity
khi đó là thiết bị chạy Android 13 trở lên bằng cách sử dụng trường thuộc tính thiết bị mới trong kết quả có chứa phiên bản SDK Android. Sau đây là ví dụ về cách thực hiện:
Kotlin
val deviceRecognitionVerdict = if (deviceIntegrity.has("deviceRecognitionVerdict")) { deviceIntegrity.getJSONArray("deviceRecognitionVerdict").toString() } else { "" } val deviceIntegrityToCheckFor = sdkVersion < 33 ? "MEETS_STRONG_INTEGRITY" : "MEETS_DEVICE_INTEGRITY"; if (deviceRecognitionVerdict.contains(deviceIntegrityToCheckFor)) { // Looks good! }
Java
JSONObject deviceIntegrity = new JSONObject(payload).getJSONObject("deviceIntegrity"); String deviceRecognitionVerdict = deviceIntegrity.has("deviceRecognitionVerdict") ? deviceIntegrity.getJSONArray("deviceRecognitionVerdict").toString() : ""; String deviceIntegrityToCheckFor = sdkVersion < 33 ? "MEETS_STRONG_INTEGRITY" : "MEETS_DEVICE_INTEGRITY"; if (deviceRecognitionVerdict.contains(deviceIntegrityToCheckFor)) { // Looks good! }
Vì đây cũng là tín hiệu được hỗ trợ phần cứng, nên trường thuộc tính thiết bị đáng tin cậy nhất trên các thiết bị chạy Android 13 trở lên.
Có thay đổi nào khác về kết quả không?
Chúng tôi không ngừng đầu tư để làm cho các tín hiệu hiện có trong API Tính toàn vẹn của Play trở nên đáng tin cậy hơn và định kỳ ra mắt các tính năng mới để giúp nhà phát triển xử lý các mối đe doạ mới nổi và trường hợp sử dụng mới. Chúng tôi cũng đã cải thiện kết quả về các vấn đề khác như sau:
- Phản hồi về việc được cấp phép của Play: Để trả về phản hồi về việc được cấp phép của Play, API Tính toàn vẹn của Play hiện luôn yêu cầu Google Play cài đặt hoặc cập nhật ứng dụng yêu cầu. Điều này giúp khắc phục một số trường hợp hiếm gặp và giúp nhà phát triển dễ dàng diễn giải phản hồi hơn.
- Khả năng sử dụng tín hiệu không bắt buộc: Tất cả tín hiệu không bắt buộc mà nhà phát triển có thể sử dụng khi dùng Google Play Console hoặc Play SDK Console (ngoại trừ các thuộc tính thiết bị) hiện yêu cầu Google Play cài đặt hoặc cập nhật ứng dụng yêu cầu trên Android 13 trở lên. Các API này bao gồm
meets-strong-integrity
,meets-basic-integrity
, hoạt động gần đây trên thiết bị, thu hồi dữ liệu liên kết với thiết bị (beta), kết quả về rủi ro khi truy cập vào ứng dụng và kết quả của Play Protect. Chúng tôi đã chuẩn hoá tất cả các yêu cầu khác của API Tính toàn vẹn của Play để nhận quy trình kiểm tra thiết bị (chỉ với nhãnmeets-device-integrity
), quy trình kiểm tra trình cài đặt, quy trình kiểm tra tính toàn vẹn của ứng dụng và các thuộc tính thiết bị (nếu được bật). - Thay đổi kết quả cho các thiết bị cụ thể: API Tính toàn vẹn của Play đang tự động thay đổi kết quả cho thiết bị trong nhiều trường hợp hơn để bảo vệ ứng dụng sớm hơn trên tất cả các phiên bản SDK Android, chẳng hạn như khi có bằng chứng về hoạt động quá mức hoặc xâm phạm khoá. Điều này bao gồm cả khả năng Play dự phòng cho các tín hiệu khác để tạo kết quả tạm thời về thiết bị cho người dùng khi không có tín hiệu dựa trên phần cứng. Nhà phát triển nên sử dụng hộp thoại khắc phục của Play trong ứng dụng hoặc hướng người dùng đến ứng dụng Cửa hàng Play để khắc phục vấn đề về kết quả về tính toàn vẹn. Theo thời gian, các hộp thoại này sẽ xử lý nhiều tình huống hơn và đưa ra hướng dẫn cụ thể cho người dùng về những vấn đề họ cần khắc phục dựa trên thiết bị hoặc tài khoản cụ thể của họ.
Làm cách nào để báo cáo vấn đề liên quan đến kết quả về tính toàn vẹn?
Để báo cáo vấn đề về phản hồi của API Tính toàn vẹn của Play, cho dù vấn đề là về kết quả trước đây hay kết quả mới, hãy làm theo hướng dẫn trên trang hỗ trợ.
Phạm vi cung cấp
API Tính toàn vẹn của Play cần những gì để hoạt động?
API Tính toàn vẹn của Play yêu cầu bạn phải cài đặt Cửa hàng Google Play và Dịch vụ Google Play trên thiết bị, bao gồm cả thiết bị Android và Google Play Games dành cho máy tính. Yêu cầu kiểu cũ yêu cầu Android 4.4 (API cấp 19) trở lên và yêu cầu thông thường yêu cầu Android 5.0 (API cấp 21) trở lên. Trên các thiết bị chạy Android 13 (API cấp 33) trở lên, API Tính toàn vẹn của Play hiện sẽ có cùng mức độ tin cậy và hỗ trợ trên tất cả kiểu dáng thiết bị Android có chứng thực khoá, bao gồm cả thiết bị di động, máy tính bảng, thiết bị có thể gập lại, TV, Ô tô, Wear OS và ChromeOS.
Tại sao API Tính toàn vẹn của Play có kết quả khác nhau cho các thiết bị?
API Tính toàn vẹn của Play cung cấp nhiều kết quả về thiết bị để phù hợp với các nhà phát triển có nhiều trường hợp sử dụng và mức độ chấp nhận rủi ro, đồng thời giúp bạn có thể áp dụng chiến lược thực thi theo nhiều cấp. Ví dụ: khi ứng dụng và thiết bị đáng tin cậy hơn, nhà phát triển có thể đơn giản hoá các bước xác minh người dùng; trong khi đó, khi không xác định được thiết bị, nhà phát triển có thể yêu cầu xác minh thêm người dùng trước khi thực hiện các hành động được bảo vệ hoặc nhạy cảm. Đây có thể là một cách hiệu quả để giảm hành vi sai trái và các cuộc tấn công.
Thiết bị chạy Android được Play Protect chứng nhận là gì?
Thiết bị chạy Android được Play Protect chứng nhận (còn gọi là thiết bị Android GMS) là thiết bị chạy phần mềm có thể dự đoán được, đã vượt qua hàng trăm bài kiểm tra khả năng tương thích của Google, tuân thủ mô hình bảo mật và quyền của Android, đồng thời được vận chuyển kèm theo bộ tính năng chống phần mềm độc hại của Google Play Protect. Khi có thể xác minh rằng một thiết bị là thiết bị Android chạy Play Protect được chứng nhận, API Tính toàn vẹn của Play sẽ trả về phản hồi meets-device-integrity
trong kết quả nhận dạng thiết bị.
Thiết bị meets-basic-integrity
là gì?
API Tính toàn vẹn của Play cũng trả về một phản hồi không bắt buộc trong kết quả về thiết bị, meets-basic-integrity
. Nếu một thiết bị chỉ trả về kết quả meets-basic-integrity
mà không có meets-device-integrity
hoặc meets-strong-integrity
, thì tức là hệ điều hành Android không thể được xác minh nhưng có chứng thực khoá. Điều này cho biết rằng quy trình kiểm tra đã diễn ra trên một thiết bị thực chạy Android, nhưng Google không thể đảm bảo về tính bảo mật, quyền riêng tư hoặc khả năng tương thích của ứng dụng trên thiết bị, cũng như không thể đảm bảo rằng thiết bị không hoạt động như một proxy, chẳng hạn như đối với một phiên bản ảo của Android. Tuỳ thuộc vào trường hợp sử dụng và khả năng chấp nhận rủi ro của nhà phát triển, họ có thể quyết định cách họ muốn ứng dụng chạy trên các thiết bị này.
Mọi nhà phát triển đều có thể sử dụng API Tính toàn vẹn của Play không?
Có, mọi nhà phát triển Android đều có thể tạo yêu cầu API Tính toàn vẹn của Play để nhận kết quả về tính toàn vẹn mặc định. Mức sử dụng được giới hạn ở 10.000 yêu cầu mỗi ngày, bất kể kênh phân phối. Ngoài các kênh phân phối khác, nhà phát triển phát hành ứng dụng trên Google Play cũng có thể yêu cầu tăng hạn mức hằng ngày.
Mọi nhà phát triển đều có thể sử dụng tính năng Chứng thực khoá nền tảng Android không?
Có, mọi nhà phát triển Android đều có thể sử dụng tính năng Chứng thực khoá nền tảng Android để lấy bản ghi chứng thực khoá. Họ có thể xác minh bản ghi này bằng chứng chỉ công khai của khoá gốc chứng thực của Google. API Tính toàn vẹn của Play mang đến cho nhà phát triển các lợi ích của tính năng chứng thực khoá và các tính năng bổ sung mà không cần phải tự tích hợp với tính năng chứng thực khoá.
Thực thi
Nhà phát triển sử dụng kết quả của API Tính toàn vẹn của Play như thế nào?
Nhà phát triển có thể quyết định việc có sử dụng và cách sử dụng kết quả của API Tính toàn vẹn của Play hay không. Một số nhà phát triển thu thập các tín hiệu để phân tích nội bộ về hành vi sai trái, trong khi các nhà phát triển khác sẽ đưa ra quyết định về cách ứng dụng của họ hoạt động dựa trên kết quả. Ví dụ: nhà phát triển có thể quyết định yêu cầu các thiết bị ít đáng tin cậy hơn thực hiện các bước xác minh người dùng bổ sung trong khi tạo tài khoản; hoặc họ có thể quyết định rằng các thiết bị ít đáng tin cậy hơn sẽ chơi cùng nhau trên cùng một máy chủ nhiều người chơi.
API Tính toàn vẹn của Play có chặn người dùng hoặc thiết bị không?
Không, API Tính toàn vẹn của Play không tự chặn quyền truy cập vào bất kỳ chức năng nào. Đây là một dịch vụ không bắt buộc dành cho nhà phát triển, cung cấp các tín hiệu và nhà phát triển sẽ chọn cách hành động dựa trên các tín hiệu đó.
Người dùng nên làm gì nếu thiết bị của họ không vượt qua được quy trình kiểm tra thiết bị của API Tính toàn vẹn của Play?
Người dùng có thể chuyển đến ứng dụng Cửa hàng Play trên thiết bị, mở trình đơn Cài đặt, cuộn xuống phần Giới thiệu rồi xem trong mục Chứng nhận Play Protect. Nếu chứng nhận Play Protect của thiết bị có vấn đề, người dùng sẽ thấy một nút để thử khắc phục vấn đề. Thao tác này sẽ làm mới trạng thái chứng nhận của thiết bị và cung cấp hướng dẫn cụ thể về những vấn đề cần khắc phục.