Tổng quan về 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ệ ứng dụng và trò chơi khỏi các hoạt động tương tác tiềm ẩn nguy hiểm và lừa đảo, chẳng hạn như hành vi gian lận và truy cập trái phép, cho phép bạn phản hồi bằng các hành động thích hợp để ngăn chặn các cuộc tấn công và giảm hành vi sai trái.

Khi bạn sử dụng ứng dụng hoặc trò chơi trên một thiết bị chạy Android 4.4 (API cấp 19) trở lên, API Tính toàn vẹn của Play cung cấp phản hồi đã ký và được mã hoá có chứa các thông tin sau:

  • Tệp nhị phân của ứng dụng chính thống: Xác định xem bạn có đang tương tác với tệp nhị phân chưa được sửa đổi mà Google Play nhận dạng hay không.
  • Cài đặt Play chính thống: Xác định xem tài khoản người dùng hiện tại có được cấp phép hay không, tức là người dùng đã cài đặt hoặc thanh toán cho ứng dụng hoặc trò chơi trên Google Play chưa.
  • Thiết bị Android chính hãng: Dữ liệu này cho biết liệu ứng dụng có đang chạy trên thiết bị Android chính hãng, được cung cấp bởi các dịch vụ của Google Play hay không.

Điều khoản dịch vụ và an toàn dữ liệu

Bằng cách truy cập hoặc sử dụng API Tính toàn vẹn của Play, bạn đồng ý với Điều khoản dịch vụ của API Tính toàn vẹn của Play. Vui lòng đọc và hiểu tất cả điều khoản và chính sách hiện hành trước khi truy cập API.

Google Play có một mục an toàn dữ liệu dành cho nhà phát triển để công bố các phương pháp thu thập, chia sẻ và phương pháp bảo mật dữ liệu của ứng dụng. Để giúp bạn hoàn thành các yêu cầu trong mục an toàn dữ liệu, hãy xem thông tin trong cách API Tính toàn vẹn của Play xử lý dữ liệu.

Lưu ý về bảo mật

Mặc dù API tính toàn vẹn của Play giúp tăng cường bảo mật và chống lại sự xâm phạm, tuy nhiên API này mang lại nhiều giá trị cho ứng dụng khi bạn làm theo những phương pháp được đề xuất sau:

Có chiến lược chống hành vi sai trái

API Tính toàn vẹn của Play hoạt động tốt nhất khi được sử dụng cùng với các tín hiệu khác như một phần của chiến lược chống hành vi sai trái tổng thể, chứ không phải cơ chế chống hành vi sai trái duy nhất. Sử dụng API này cùng với các phương pháp bảo mật hay nhất phù hợp khác cho ứng dụng.

Không lấy mã thông báo về tính toàn vẹn quá thường xuyên

Việc tạo mã thông báo bảo mật sẽ tốn thời gian, dữ liệu và pin, đồng thời mỗi ứng dụng có số lệnh gọi tối đa có thể thực hiện mỗi ngày theo mức sử dụng. Do đó, bạn nên gọi API để bảo vệ các hành động có giá trị cao và không thường xuyên, vốn là một phần không thể thiếu trong trải nghiệm người dùng, chẳng hạn như đăng nhập vào một dịch vụ hoặc tham gia một máy chủ nhiều người chơi. Bạn không nên gọi API cho các hành động có tần suất cao hoặc có giá trị thấp. Ví dụ: không gọi mỗi lần ứng dụng chuyển sang nền trước, hoặc mỗi vài phút trong nền. Một ứng dụng thực hiện quá nhiều lệnh gọi API có thể bị hạn chế để bảo vệ người dùng khỏi các phương thức triển khai không chính xác.

Sử dụng trường số chỉ dùng một lần để bảo vệ ứng dụng hơn nữa

API Tính toàn vẹn của Play cung cấp một trường nonce, trường này có thể được dùng để bảo vệ ứng dụng khỏi một số cuộc tấn công nhất định, chẳng hạn như cuộc tấn công phát lại và các cuộc tấn công xen giữa (PITM). API Tính toàn vẹn của Play sẽ trả về giá trị bạn đặt trong trường này, bên trong phản hồi về tính toàn vẹn đã ký. Hãy làm theo hướng dẫn một cách cẩn thận về cách tạo số chỉ dùng một lần để bảo vệ ứng dụng khỏi các cuộc tấn công.

Sử dụng một môi trường máy chủ an toàn

Hãy thực hiện tất cả quy trình giải mã và xác thực trong môi trường máy chủ bảo mật. Nếu ứng dụng khách tiết lộ bất kỳ chi tiết bảo mật nào, kẻ tấn công có thể trích xuất những thông tin đó từ APK hoặc kho lưu trữ của bạn, từ đó có được những thông tin có giá trị về ứng dụng hoặc trò chơi của bạn.

Gửi một loạt các phản hồi từ máy chủ đến ứng dụng

Thay vì gửi cùng một tham số nhị phân/phản hồi thất bại từ máy chủ trở lại ứng dụng mọi lúc, tốt hơn là có một loạt các kết quả của quyết định vì điều này khó sao chép hơn. Ví dụ: bạn có thể sử dụng một loạt các phản hồi có liên quan như Cho phép, Cho phép kèm giới hạn, Cho phép kèm giới hạn sau khi hoàn thành reCAPTCHA và Từ chối.

Có chiến lược thực thi theo thứ bậc

Trong Play Console, bạn có thể chọn sử dụng thêm các nhãn thiết bị để có thể xây dựng chiến lược chống hành vi sai trái nhiều cấp độ thực thi. Sau khi bạn chọn nhận nhãn bổ sung, phản hồi về tính toàn vẹn sẽ bao gồm nhiều nhãn cho cùng một thiết bị nếu bạn đáp ứng từng tiêu chí về nhãn. Ngoài ra bạn có thể chuẩn bị để máy chủ phụ trợ phản ứng theo cách khác tuỳ thuộc vào các loại phản hồi có thể xảy ra.

Ví dụ: Một thiết bị trả về MEETS_BASIC_INTEGRITY, MEETS_DEVICE_INTEGRITYMEETS_STRONG_INTEGRITY có thể đáng tin cậy hơn một thiết bị chỉ trả về MEETS_BASIC_INTEGRITY. Bạn có thể định cấu hình phản hồi của máy chủ dựa vào đó. Bạn có thể kết hợp thuộc tính này với hành động khác nhau để biết tài khoản người dùng là LICENSED hay UNLICENSED.

Thử lại với thời gian đợi luỹ thừa

Các tình trạng môi trường, chẳng hạn như kết nối Internet không ổn định hoặc thiết bị quá tải có thể khiến việc kiểm tra tính toàn vẹn của thiết bị thất bại. Điều này có thể dẫn đến việc không tạo nhãn cho một thiết bị không đáng tin cậy. Để giảm thiểu các trường hợp này, hãy nhớ bao gồm tuỳ chọn thử lại với thời gian đợi luỹ thừa.

Hiện thông báo lỗi có thể xử lý

Khi có thể, hãy cung cấp các thông báo lỗi hữu ích cho người dùng và cho họ biết những việc có thể làm để khắc phục vấn đề, chẳng hạn như thử lại, bật kết nối Internet hoặc kiểm tra để đảm bảo rằng ứng dụng Cửa hàng Play đã được cập nhật.

Lên kế hoạch cho các vấn đề hoặc tình trạng ngừng dịch vụ bất ngờ

Trang tổng quan về trạng thái của Play hiển thị thông tin về trạng thái dịch vụ của API Tính toàn vẹn của Play, cùng với thông tin về mọi sự cố gián đoạn và ngừng hoạt động. Bạn có thể định cấu hình trước cách bạn muốn máy chủ phụ trợ hoạt động trong trường hợp hiếm gặp xảy ra tình trạng ngừng dịch vụ của API Tính toàn vẹn của Play trên quy mô lớn.

Mức sử dụng API cấp cao

Hình 1. Sơ đồ trình tự thể hiện thiết kế cấp cao của API Tính toàn vẹn của Play.

Khi người dùng thực hiện một hành động có giá trị cao trong ứng dụng và bạn muốn bảo vệ bằng quy trình kiểm tra tính toàn vẹn, hãy hoàn thành các bước sau:

  1. Phần phụ trợ phía máy chủ của ứng dụng sẽ tạo và gửi một giá trị duy nhất đến logic phía máy khách. Các bước còn lại gọi logic này là "ứng dụng".
  2. Ứng dụng của bạn tạo ra số chỉ dùng một lần từ giá trị duy nhất và nội dung của hành động có giá trị cao. Sau đó, phương thức này sẽ gọi API Tính toàn vẹn của Play, được gửi qua một lần.
  3. Ứng dụng sẽ nhận kết quả đã ký và mã hoá từ API Tính toàn vẹn của Play.
  4. Ứng dụng chuyển kết quả đã ký và mã hoá cho phần phụ trợ của ứng dụng.
  5. Phần phụ trợ của ứng dụng sẽ gửi kết quả đến máy chủ Google Play. Máy chủ Google Play giải mã và xác minh kết quả, trả về kết quả cho phần phụ trợ của ứng dụng.
  6. Phần phụ trợ của ứng dụng sẽ quyết định cách tiến hành, dựa trên các tín hiệu có trong phần tải trọng mã thông báo.
  7. Phần phụ trợ của ứng dụng sẽ gửi kết quả của quyết định cho ứng dụng.

Cấp sử dụng API

Các yêu cho API sẽ tuân theo số lượng tối đa/mỗi ứng dụng/ngày, tuỳ thuộc vào cấp sử dụng đã chỉ định của ứng dụng gọi. Bảng sau đây hiển thị các cấp khác nhau:

Bảng 1. Các cấp sử dụng API Tính toàn vẹn của Play
Cấp sử dụng Số lệnh gọi API được cho phép mỗi ngày Điều kiện của cấp sử dụng
Tiêu chuẩn Tối đa là 10.000 Dành cho các ứng dụng sử dụng bất kỳ kênh phân phối nào
Nâng cao Trên 10.000 – giới hạn phải được phê duyệt Phải triển khai chính xác logic API, bao gồm cả các lần thử lại
Sẵn có cho các ứng dụng sử dụng bất cứ kênh phân phối nào ngoài Google Play

Tên gói tương tự trên Google Play và trên các kênh phân phối khác đều được tính là một ứng dụng duy nhất xét về việc sử dụng API. Bạn có thể sử dụng một mã dự án Google Cloud cho nhiều ứng dụng có tên gói khác nhau. Nếu bạn làm vậy, các ứng dụng đó sẽ được tính là một ứng dụng duy nhất dựa trên mức sử dụng API.

Xem cấp sử dụng của bạn

Để giúp bạn đánh giá tần suất tương tác với API Tính toàn vẹn của Play, Play Console sẽ hiển thị cấp sử dụng của ứng dụng. Để xem cấp sử dụng này, hãy làm như sau:

  1. Đăng nhập vào Play Console.
  2. Chọn một ứng dụng sử dụng API Tính toàn vẹn của Play.
  3. Trong mục Release (Bản phát hành) của trình đơn bên trái, hãy chuyển đến phần Setup > App integrity (Thiết lập > Tính toàn vẹn của ứng dụng).
  4. Trên thẻ API về tính toàn vẹn, hãy tìm thuộc tính Usage tier (Cấp sử dụng) trong mục Settings (Cài đặt). Giá trị của thuộc tính này cho biết cấp sử dụng của ứng dụng.

Thay đổi cấp sử dụng

Để yêu cầu thay đổi cấp sử dụng của ứng dụng, hãy hoàn thành biểu mẫu này. Bạn nên yêu cầu chuyển sang cấp sử dụng cao hơn nếu ứng dụng của bạn cần xử lý nhiều người dùng hơn nhưng không cần gọi API thường xuyên hơn cho mỗi người dùng. Ngay cả khi chuyển sang cấp sử dụng cao hơn, ứng dụng của bạn vẫn phải tiếp tục giới hạn lệnh gọi API trong các hành động không thường xuyên và có giá trị cao.

Thiết lập tính năng giám sát và cảnh báo hạn mức

Yêu cầu tăng cấp thường được xử lý trong vài ngày làm việc. Để duy trì trải nghiệm tốt cho người dùng và tránh các tình huống khẩn cấp, bạn nên thiết lập tính năng giám sát và cảnh báo việc sử dụng hạn mức API của ứng dụng bằng tính năng Giám sát trên đám mây.