Gần đây, chúng tôi đã thông báo 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 để giúp 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à riêng tư hơn cho người dùng, cùng với những đ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 bản tóm tắt chi tiết về các thay đổi và câu hỏi thường gặp ở phần sau của tài liệu này. Những thay đổi về kết quả từ tháng 5 năm 2025 như sau:
Nội dung | Nội dung 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 đưa ra 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 | Cần có kết quả xác minh quy trình khởi động dương được hỗ trợ bằng phần cứng | Tác động tối thiểu vì Play Integrity API đã sử dụng 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 không đáng kể, đ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ó bản quyền giảm nhẹ (~2,5%) | Android 6 trở lên |
Những thay đổi chỉ ảnh hưởng đến nhà phát triển trên Play Console và nhà phát triển trê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 | Giảm nhẹ số câu trả lời cơ bản (~0,4%) | Android 13 trở lên |
Phản hồi về kết quả của thiết bị: meets-strong-integrity | Yêu cầu 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 mẽ (~14,5%) | Android 13 trở lên |
Tất cả tín hiệu không bắt buộc (ngoại trừ 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 tỷ lệ % số phản hồi có 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ước đó đều dựa trên mức trung bình và các ứng dụng khác nhau có thể thấy 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ừ 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ị, thông tin thu hồi thiết bị (bản thử nghiệm), trạng thái Play Protect và rủi ro khi 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à ứng phó vớ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à một thiết bị Android chính hãng và được chứng nhận hay không. Theo mặc định, các tín hiệu này sẽ được cung cấp. 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ủa bạn 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 lượt cài đặt trên Play để xem thêm thông tin.
Chứng thực khoá nền tảng Android là gì?
Chứng thực khoá nền tảng Android cho phép các ứ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. Dịch vụ này phụ thuộc vào một khoá do Google cung 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 phương pháp chứng thực khoá để lấy 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 các tín hiệu này sâu hơn trên mọi thiết bị chạy Android 13 trở lên.
Thay đổi về kết quả
Những thay đổi nào đã được thực hiện đố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?
Play Integrity API 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 thiết bị mà ứng dụng đang chạy là một thiết bị Android chính hãng và được chứng nhận. Phán quyết 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 đây là một thiết bị Android chính hãng, được chứng nhận và có bản cập nhật bảo mật gần đây. Phán quyết này sẽ yêu cầumeets-device-integrity
và các 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 quá trình kiểm tra đã diễn ra trên một thiết bị thực chạy Android. Trình tải khởi động của thiết bị có thể bị khoá hoặc mở khoá, đồng thời trạng thái khởi động có thể là đã xác minh hoặc chưa xác minh. Thiết bị có thể chưa được chứng nhận. Trong trường hợp đó, 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, đồng thời 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ư cho một phiên bản ảo của Android. Đ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 các kết quả của Play Integrity API lại thay đổi trên các thiết bị chạy Android 13 trở lên?
Play Integrity API đã sử dụng một phần 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 phải có tính năng bảo mật dựa trên phần cứng trên Android 13 trở lên, các kết quả của Play Integrity API sẽ có khả năng chống lại kẻ tấn công hiệu quả hơn, hoạt động hiệu quả 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ể mong đợi những điểm cải tiến sau 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 được thu thập và đánh giá để tạo ra kết quả mặc định trên các 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ễ khi đưa ra 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 được 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à khả năng hỗ trợ nhất quán cho mọi kiểu dáng thiết bị Android bằng 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.
- Mức độ phân biệt lớn hơn giữa từng 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 Play Integrity API trên Play Games cho máy tính 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 Android SDK?
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:
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ả cá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 13 trở xuống 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à một tín hiệu dựa trên 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.
Những thay đổi nào khác về kết quả đã được thực hiện?
Chúng tôi không ngừng đầu tư để 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 đối phó với các mối đe doạ mới nổi và các trường hợp sử dụng mới. Những điểm cải tiến khác về kết quả mà chúng tôi đã thực hiện bao gồm:
- Phản hồi được cấp phép của Play: Để trả về phản hồi đượ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 ứng dụng gửi yêu cầu phải được Google Play cài đặt hoặc cập nhật. Điều này khắc phục một số trường hợp đặc biệt và giúp nhà phát triển dễ dàng diễn giải phản hồi hơn.
- Tính sẵn có của 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 sử dụng Google Play Console hoặc Play SDK Console (ngoại trừ thuộc tính thiết bị) hiện đều yêu cầu ứng dụng gửi yêu cầu phải được Google Play cài đặt hoặc cập nhật trên Android 13 trở lên. Trong đó có
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ả đánh giá rủi ro khi truy cập vào ứng dụng và kết quả đánh giá 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 của thiết bị (nếu được bật). - Thay đổi kết quả cho một số thiết bị cụ thể: API Tính toàn vẹn của Play sẽ tự động thay đổi kết quả về 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 Android SDK, chẳng hạn như khi có bằng chứng về hoạt động quá mức hoặc khoá bị xâm phạm. Điều này bao gồm khả năng Play chuyển sang 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 cá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 trường hợp hơn và đưa ra hướng dẫn cụ thể cho người dùng để cho họ biết những việc cần làm 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 đề liên quan đến phản hồi từ API Tính toàn vẹn của Play, cho dù vấn đề đó liên quan đến kết quả cũ 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 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. Các yêu cầu kiểu cũ yêu cầu Android 4.4 (API cấp 19) trở lên và các 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, Play Integrity API hiện sẽ có cùng mức độ tin cậy và hỗ trợ trên mọi 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 lại có các kết quả khác nhau cho các thiết bị khác nhau?
API Tính toàn vẹn của Play cung cấp nhiều kết quả về thiết bị để đáp ứng nhu cầu của những nhà phát triển có các trường hợp sử dụng và mức độ chấp nhận rủi ro khác nhau, đồng thời giúp bạn có được một chiến lược thực thi theo 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 một thiết bị không xác định, nhà phát triển có thể yêu cầu xác minh người dùng bổ sung 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ị Android được chứng nhận là gì?
Thiết bị Android được chứng nhận (còn gọi là thiết bị Android được Play Protect chứng nhận) là thiết bị chạy phần mềm có thể dự đoán, đã 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 cài đặt sẵn bộ tính năng chống phần mềm độc hại Google Play Protect. Khi có thể xác minh rằng một thiết bị là thiết bị Android chính hãng và đượ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ì có nghĩa là hệ điều hành Android không thể xác minh nhưng có quy trình chứng thực khoá. Điều này cho biết 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ị và 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ư cho 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 của mình chạy trên những thiết bị này.
Nhà phát triển nào cũng 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ể gửi yêu cầu đến API Tính toàn vẹn của Play để nhận kết quả mặc định về tính toàn vẹn. 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 xuất bản ứng dụng của họ trên Google Play cũng có thể yêu cầu tăng hạn mức hằng ngày.
Nhà phát triển nào cũng 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 lại cho nhà phát triển những lợi ích của chứng thực khoá và các tính năng bổ sung mà không gặp phải mọi sự phức tạp khi phải tự tích hợp với chứng thực khoá.
Thực thi
Nhà phát triển sử dụng kết quả đánh giá của API Tính toàn vẹn của Play như thế nào?
Nhà phát triển có quyền quyết định có sử dụng kết quả của API Tính toàn vẹn của Play hay không và sử dụng như thế nào. Một số nhà phát triển thu thập các tín hiệu để phân tích nội bộ nhằm chống hành vi sai trái, trong khi những 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 tin cậy thực hiện thêm các bước xác minh người dùng trong khi tạo tài khoản; hoặc họ có thể quyết định rằng các thiết bị ít tin cậy nên 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 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 có thể chọn cách hành động dựa trên những 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 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ị của họ, mở trình đơn Cài đặt, di chuyển xuống phần Giới thiệu rồi xem phần Chứng nhận Play Protect. Nếu có vấn đề về chứng nhận Play Protect của thiết bị, người dùng sẽ thấy một nút để nhấn vào nhằm cố gắng 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.