Google Play Games đang ở giai đoạn thử nghiệm công khai.

Bảo vệ tính toàn vẹn

Các nhà phát triển được mời có thể truy cập vào một số tính năng để bảo vệ tính toàn vẹn. API Tính toàn vẹn của Play và tính năng Tự động bảo vệ tính toàn vẹn hoạt động trên cả nền tảng Google Play Games và nền tảng di động.

API Tính toàn vẹn của Play

API Tính toàn vẹn của Play giúp bảo vệ các trò chơi của bạn khỏi các hoạt động tương tác tiềm ẩn nguy cơ gian lận và rủi ro, cho phép bạn phản hồi bằng các hành động thích hợp để hạn chế các cuộc tấn công và hành vi sai trái, chẳng hạn như gian lận, lừa đảo và truy cập trái phép. Máy chủ phụ trợ trò chơi của bạn có thể nhận được các tín hiệu về kênh phân phối (được cấp phép/cài đặt từ Cửa hàng Play), gói ứng dụng (không bị can thiệp hoặc sửa đổi theo bất kỳ cách nào) và chính thiết bị đó (ví dụ: không phải là thiết bị đã bị can thiệp vào hệ thống hoặc bị xâm phạm). Đây là giải pháp duy nhất được Google hỗ trợ, cung cấp tín hiệu đáng tin cậy cho biết người dùng đang sử dụng Google Play Games chứ không phải một môi trường ảo khác. Điều này giúp bạn:

  • Ngăn chặn hành vi truy cập trái phép bằng cách đảm bảo rằng APK của bạn được Google Play phân phối và cài đặt.
  • Tránh hành vi can thiệp vào APK bằng cách xác minh rằng máy chủ phụ trợ trò chơi của bạn đang tương tác với tệp nhị phân không bị sửa đổi của bạn.
  • Đảm bảo các tệp nhị phân x86 mới xuất bản của bạn đang chạy trên môi trường ảo của Google Play Games và không dễ bị khai thác trên các nền tảng không được hỗ trợ.

API Tính toàn vẹn của Play kết hợp nhiều tín hiệu trong một mã thông báo được mã hoá. API này cung cấp kết quả tích cực về tính toàn vẹn cho các thiết bị Android chính hãng và các môi trường ảo vượt qua quy trình kiểm tra tính toàn vẹn của Google Play. Bạn nên sử dụng API Tính toàn vẹn của Play trong những sự kiện trò chơi quan trọng khi ứng dụng đang chạy, chẳng hạn như khi người dùng mua hàng trong ứng dụng hoặc khi trò chơi lưu điểm số của người dùng. Bạn không nên sử dụng API này theo cách định sẵn, chẳng hạn như gọi API theo thời gian đã được định trước.

API này mang đến sự linh hoạt tối đa, nhưng cần có mã bổ sung chạy trên một máy chủ đáng tin cậy. Việc xác thực trên thiết bị là không an toàn và không nên áp dụng. Giải pháp hoàn chỉnh phải bao gồm thành phần phía máy chủ cung cấp nền tảng cần thiết để kiểm tra tính toàn vẹn và xác thực phản hồi. Bạn nên tránh gửi một quyết định theo kiểu biến nhị phân có/không về thiết bị. Thay vào đó, hãy tinh chỉnh hành vi của ứng dụng dựa trên kết quả do API Tính toàn vẹn của Play cung cấp.

API Tính toàn vẹn của Play là API kế thừa cho cả API Chứng thực SafetyNet (SNAA) và API Cấp phép ứng dụng của Play. SNAA sẽ không hoạt động với Google Play Games vì SNAA chỉ trả về những tín hiệu tiêu cực khi xác minh tính toàn vẹn của Google Play Games.

Trường Tính toàn vẹn của thiết bị

Trường deviceIntegrity chỉ chứa một giá trị là deviceRecognitionVerdict. Giá trị này thể hiện mức độ hiệu quả của thiết bị trong việc thực thi tính toàn vẹn của ứng dụng. Theo mặc định, deviceRecognitionVerdict có thể có một trong các nhãn sau:

  • MEETS_DEVICE_INTEGRITY: Ứng dụng đang chạy trên một thiết bị Android với các dịch vụ của Google Play. Thiết bị vượt qua quy trình kiểm tra tính toàn vẹn của hệ thống và đáp ứng các yêu cầu về khả năng tương thích với Android.
  • MEETS_VIRTUAL_INTEGRITY: Ứng dụng đang chạy trong môi trường Android ảo với các dịch vụ của Google Play, hiện chỉ giới hạn ở Google Play Games. Môi trường đáp ứng các yêu cầu cốt lõi về khả năng tương thích với Android và vượt qua quy trình kiểm tra tính toàn vẹn của Google Play.
  • Không có nhãn (ví dụ: giá trị trống): Ứng dụng đang chạy trên thiết bị có dấu hiệu bị tấn công (chẳng hạn như nối API) hoặc xâm phạm hệ thống (chẳng hạn như can thiệp vào hệ thống), hoặc ứng dụng đang chạy trên thiết bị không thực (chẳng hạn như trình mô phỏng) mà không vượt qua được quy trình kiểm tra tính toàn vẹn của Google Play.

API Tính toàn vẹn của Play sử dụng nhãndeviceRecognitionVerdict MEETS_VIRTUAL_INTEGRITY để cho biết trò chơi đang chạy trên Google Play Games. Sau đây là ví dụ về một phản hồi đã vượt qua quy trình kiểm tra của API Tính toàn vẹn của Play:

deviceIntegrity: {
    // "MEETS_VIRTUAL_INTEGRITY" indicates the game is running on Google Play Games
    deviceRecognitionVerdict: ["MEETS_VIRTUAL_INTEGRITY"]
}

Đảm bảo logic xác thực của bạn đang kiểm tra nhãn MEETS_VIRTUAL_INTEGRITY trên Google Play Games.

Nếu bạn có trò chơi đa nền tảng trên thiết bị di động, hãy đảm bảo logic xác thực của bạn cũng kiểm tra nhãn MEETS_DEVICE_INTEGRITY.

Vui lòng tham khảo tài liệu về API Tính toàn vẹn của Play để biết thêm thông tin.

Tự động bảo vệ tính toàn vẹn

Tính năng Tự động bảo vệ tính toàn vẹn là một chế độ kiểm tra thời gian chạy được Google Play thêm vào mỗi khi bạn mở trò chơi. Nếu trò chơi của bạn bị can thiệp hoặc không được cài đặt bởi Google Play, tính năng tự động bảo vệ tính toàn vẹn có thể ngăn không cho trò chơi chạy. Tính năng này không kiểm tra thiết bị. Bạn cần sử dụng API Tính toàn vẹn của Play để lấy thông tin về trạng thái toàn vẹn của thiết bị.

Tính năng Tự động bảo vệ tính toàn vẹn giúp bảo vệ tính toàn vẹn, bao gồm các đặc điểm sau:

  • Yêu cầu cài đặt qua Google Play: Thêm một chế độ kiểm tra để xem ứng dụng của bạn có được cài đặt qua Google Play hay không. Nếu chế độ kiểm tra này cho thấy ứng dụng không được cài đặt từ Play, người dùng sẽ thấy lời nhắc tải ứng dụng của bạn qua Google Play. Tính năng đề xuất này được bật theo mặc định nhưng bạn có thể tắt đi. Việc tắt tính năng này sẽ vô hiệu hóa khả năng chống vi phạm bản quyền cho ứng dụng có tính phí.
  • Hạn chế việc sửa đổi: Thêm một chế độ kiểm tra để xem có phải ứng dụng của bạn chưa bị sửa đổi hay không. Nếu chế độ này không hoạt động, ứng dụng sẽ không chạy. Tính năng này sẽ luôn bật và không thể tắt đi.
  • Hạn chế kỹ thuật đảo ngược: Thêm phương thức làm rối mã nguồn và các kỹ thuật tiên tiến khác để gây khó khăn cho việc loại bỏ chế độ kiểm tra thời gian chạy. Tính năng này sẽ luôn bật và không thể tắt đi.

Tính năng Tự động bảo vệ tính toàn vẹn yêu cầu nhà phát triển chọn tham gia và không yêu cầu thay đổi mã hay phát triển thêm bất cứ gì. Các biện pháp bảo vệ vẫn sẽ chạy cho dù có hay không có dữ liệu hoặc kết nối Internet, và không yêu cầu thành phần phía máy chủ. Lưu ý rằng: chế độ "Yêu cầu cài đặt từ Play" sẽ định kỳ yêu cầu kết nối dữ liệu nếu ứng dụng Cửa hàng Play trên thiết bị không có kết nối mạng trong một thời gian dài.

Một số cân nhắc khác dành cho Google Play Games

Play cung cấp một tập hợp các sản phẩm về tính toàn vẹn để giúp bảo vệ trò chơi của bạn. Vui lòng tham khảo tài liệu về Tính toàn vẹn của Play để biết thêm thông tin về các sản phẩm hiện có. Phần này nêu bật các lưu ý đặc biệt khi sử dụng các sản phẩm nói trên với Google Play Games.

Loại trừ các thiết bị không đáng tin cậy khỏi phạm vi phân phối

Google Play Console có một chế độ cài đặt cho phép bạn không cho phép cài đặt trò chơi của mình từ Google Play trên những thiết bị không vượt qua các bước kiểm tra tính toàn vẹn.

Tính năng này hiện không tương thích với Google Play Games và ngăn chặn việc phân phối trò chơi trên nền tảng này. Không bật quy tắc loại trừ này trong danh mục thiết bị.

API Tính toàn vẹn của Play

API Tính toàn vẹn của Play sử dụng nhãn deviceRecognitionVerdict MEETS_VIRTUAL_INTEGRITY để cho biết trò chơi đang chạy trên Google Play Games. Sau đây là ví dụ về một phản hồi đã vượt qua quy trình kiểm tra của API Tính toàn vẹn của Play:

deviceIntegrity: {
    // "MEETS_DEVICE_INTEGRITY" is one of several possible values.
    deviceRecognitionVerdict: ["MEETS_VIRTUAL_INTEGRITY"]
}

Đảm bảo logic xác thực của bạn kiểm tra nhãn MEETS_VIRTUAL_INTEGRITY.

Vui lòng tham khảo tài liệu về API Tính toàn vẹn của Play để biết thêm thông tin.