Tại sao nên dùng Tính năng ký ứng dụng của Play? Ngoài việc bảo vệ để khoá của bạn không bị xâm phạm hoặc bị mất vĩnh viễn, tính năng Ký ứng dụng của Play còn cho phép bạn sử dụng các cải tiến cho Android App Bundle (.aab). Khi cho phép Google ký các tệp APK phân phối đã được tối ưu hoá do gói ứng dụng của bạn tạo ra, bạn có thể sử dụng các dịch vụ có giá trị như tự động bảo vệ và tự động dịch chuỗi văn bản qua các mô hình Gemini. Các trò chơi sẽ được sử dụng thêm các dịch vụ tự động bổ sung như Play Games Sidekick, Chơi khi đang tải xuống và dùng thử miễn phí với các trò chơi có tính phí.
Để thiết lập Tính năng ký ứng dụng của Play, bạn phải là chủ sở hữu tài khoản.
Các khái niệm chính
Khi sử dụng Tính năng ký ứng dụng của Play, bạn sẽ xử lý 2 khoá riêng biệt. Việc hiểu rõ sự khác biệt cũng như định dạng kỹ thuật của 2 loại khoá này là rất quan trọng để tránh các vấn đề về xác thực với API của bên thứ ba.
| Loại khoá | Bên giữ khoá | Thông tin kỹ thuật chi tiết và mục đích |
|
Khoá tải lên |
Bạn (Hãy bảo mật khoá này!) |
|
| Khoá ký ứng dụng |
Google Play |
|
| Sẵn sàng cho công nghệ lượng tử | Google Play |
|
Lưu ý: Để đảm bảo an toàn tối đa, khoá tải lên và khoá ký ứng dụng của bạn phải khác nhau.
Cách Google ký ứng dụng của bạn: Khi tạo và ký tệp APK bằng khoá ký ứng dụng, Google sẽ dùng apksigner để thêm 2 dấu kỹ thuật số vào tệp kê khai của ứng dụng (com.android.stamp.source và com.android.stamp.type). Các dấu này đảm bảo rằng các tệp APK của bạn có thể được truy xuất một cách an toàn đến người ký ban đầu.
Thiết lập Tính năng ký ứng dụng của Play
Quy trình thiết lập phụ thuộc vào việc bạn đang xuất bản một ứng dụng mới hay di chuyển một ứng dụng hiện có.
Đối với ứng dụng mới
- Tạo ứng dụng mới: Ứng dụng của bạn sẽ tự động được đăng ký dùng tính năng ký kết hợp sẵn sàng cho công nghệ lượng tử với các khoá do Google tạo. Chúng tôi cũng tạo một khoá cổ điển riêng biệt để sử dụng trong các khối chữ ký được nhận dạng trên các thiết bị chạy Android 16 trở xuống.
- Tạo khoá tải lên: Tạo một kho khoá để ký gói ứng dụng phát hành. Bạn có thể tạo kho khoá này trong Android Studio hoặc sử dụng tiện ích keytool của Java trên dòng lệnh.
- Tải gói ứng dụng lên: Truy cập vào Play Console rồi chuẩn bị một bản phát hành mới. Theo mặc định, khi bạn tải gói ứng dụng lên, ứng dụng của bạn sẽ tự động được đăng ký dùng tính năng ký kết hợp sẵn sàng cho công nghệ lượng tử với các khoá do Google tạo.
- Thay đổi khoá ký ứng dụng (không bắt buộc): Những nhà phát triển giàu kinh nghiệm muốn tự quản lý khoá có thể thay đổi chế độ mặc định này trước khi ra mắt bản phát hành trên kênh thử nghiệm công khai hoặc kênh phát hành công khai. Bạn có thể thực hiện việc này bằng cách chuyển đến phần Được bảo vệ bằng Play > Phân phối trên Cửa hàng Play > Chuyển đến Tính năng ký ứng dụng của Play rồi nhấp vào Thay đổi khoá ký ứng dụng. Sau đó, bạn có thể chọn:
- Dùng cùng một khoá với ứng dụng khác trong tài khoản nhà phát triển này
- Cung cấp bản sao khoá ký ứng dụng (làm theo hướng dẫn)
Đối với ứng dụng hiện có
Nếu đang tự quản lý khoá của riêng mình và tải các tệp APK lên, bạn có thể nâng cấp lên Tính năng ký ứng dụng Play để tận dụng các gói ứng dụng và những cải tiến của Play.
- Truy cập vào Được bảo vệ bằng Play > Bảo vệ trên Cửa hàng Play > Chuyển đến Tính năng ký ứng dụng của Play trong Play Console.
- Chấp nhận điều khoản dịch vụ nếu bạn chưa làm vậy.
- Chuyển một bản sao của khoá gốc: Tải công cụ PEPK xuống và làm theo hướng dẫn từng bước chuẩn để mã hoá và tải khoá ký ứng dụng hiện có lên từ kho lưu trữ bất kỳ.
Đăng ký với nhà cung cấp API
Nếu ứng dụng của bạn dùng các API (chẳng hạn như Google Maps, OAuth hoặc Đăng nhập bằng Facebook), những dịch vụ đó sẽ xác thực ứng dụng của bạn bằng cách dùng vân tay của khoá ký ứng dụng.
Vì Google ký tệp APK cuối cùng, nên bạn phải đăng ký vân tay của khoá ký ứng dụng do Google nắm giữ với nhà cung cấp API, chứ không chỉ dùng khoá tải lên cục bộ.
- Chuyển đến phần Được bảo vệ bằng Play > Phân phối trên Cửa hàng Play > Chuyển đến Tính năng ký ứng dụng của Play.
- Di chuyển đến phần Khoá ký ứng dụng.
- Sao chép các vân tay số bắt buộc (SHA-1 hoặc SHA-256). Nếu ứng dụng của bạn dùng tính năng ký kết hợp sẵn sàng cho công nghệ lượng tử, bạn phải sao chép các vân tay số cho 3 khoá và đăng ký từng khoá với nhà cung cấp API: khoá cổ điển và khoá PQC mới được dùng trên thiết bị mới, còn khoá cổ điển được dùng trên thiết bị cũ.
- Dán các vân tay số này vào bảng điều khiển của nhà cung cấp API (ví dụ: Google Cloud Console).
Lưu ý: Hãy cập nhật các vân tay này vào tệp assetlinks.json nếu bạn sử dụng Đường liên kết trong ứng dụng Android.
Quản lý khoá
Nâng cấp khoá ký ứng dụng
Nếu khoá ký ứng dụng của bạn bị xâm phạm hoặc bạn cần một khoá có độ mã hoá cao hơn, bạn có thể yêu cầu nâng cấp khoá hằng năm cho mọi lượt cài đặt trên Android 17 (API cấp 37) trở lên.
Cách thực thi trên các phiên bản Android:
- Android 17 (API cấp 37) trở lên: Nền tảng Android sẽ thực thi nghiêm ngặt việc sử dụng khoá kết hợp đã nâng cấp và sẵn sàng cho công nghệ lượng tử. Xem Giao thức chữ ký APK phiên bản 3.2.
- Android 13 (cấp độ API 33) đến Android 16 (cấp độ API 36): Nền tảng Android sẽ thực thi nghiêm ngặt việc sử dụng khoá cổ điển mới nhất của bạn. Xem Giao thức chữ ký APK phiên bản 3.1
- Android 7 (API cấp 24) đến Android 12 (API cấp 32): Bản thân Nền tảng Android không thực thi khoá đã nâng cấp và vẫn nhận dạng khoá cổ điển mới nhất. Tuy nhiên, Google Play Protect cung cấp thêm quy trình xác thực bằng cách kiểm tra để đảm bảo các bản cập nhật ứng dụng được ký bằng khoá cổ điển mới nhất (trừ trường hợp người dùng tắt tính năng này).
Điểm quan trọng cần lưu ý:
- Dữ liệu được chia sẻ: Vì nền tảng không thực thi khoá đã nâng cấp trên Android S (API cấp 32) trở xuống, nên nếu bạn dùng cùng một khoá trên nhiều ứng dụng để chia sẻ dữ liệu, những phiên bản Android cũ đó sẽ chỉ nhận dạng khoá cũ cho các tính năng như chia sẻ quyền tuỳ chỉnh.
Cách nâng cấp:
- Chuyển đến phần Được bảo vệ bằng Play > Phân phối trên Cửa hàng Play > Chuyển đến Tính năng ký ứng dụng của Play.
- Trong phần Khoá ký ứng dụng, hãy nhấp vào Nâng cấp khoá.
- Chọn lộ trình nâng cấp:
- Hãy để Google Play tạo một khoá ký ứng dụng mới (khuyến nghị)
- Dùng cùng một khoá ký ứng dụng cho ứng dụng khác trong tài khoản nhà phát triển này
- Cung cấp bản sao khoá ký ứng dụng (làm theo hướng dẫn)
- Nhấp vào Lưu.
- Đăng ký vân tay số mới cho khoá với nhà cung cấp API. Nếu ứng dụng của bạn dùng tính năng ký kết hợp sẵn sàng cho công nghệ lượng tử, thì bạn phải đăng ký vân tay số cho hai khoá mới, khoá cổ điển mới và khoá PQC mới.
Yêu cầu đặt lại khoá tải lên
Nếu bị mất khoá tải lên hoặc nghi ngờ khoá này bị xâm phạm, bạn sẽ không bị mất quyền truy cập vào ứng dụng của mình.
- Tạo khoá tải lên mới trong Android Studio.
- Xuất chứng chỉ sang định dạng PEM:
keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
(Để được trợ giúp thêm về keytool và đường dẫn đến kho khoá, hãy tham khảo hướng dẫn ký ứng dụng của Android Studio). - Sau khi tạo tệp PEM, hãy gửi yêu cầu đặt lại trong Play Console.
- Chuyển đến phần Được bảo vệ bằng Play > Bảo vệ trên Cửa hàng Play > Quản lý Tính năng ký ứng dụng của Play.
- Trong phần Chứng chỉ khoá tải lên, hãy nhấp vào Yêu cầu đặt lại khoá tải lên.
- Nhập lý do đặt lại.
- Tải tệp
upload_certificate.pemlên rồi nhấp vào Yêu cầu.
Các phương pháp hay nhất và cách phân phối thay thế
- Bảo mật: Bảo vệ quyền truy cập vào Play Console bằng cách buộc tất cả người dùng sử dụng tính năng Xác minh 2 bước.
- Các tính năng nâng cao của gói ứng dụng: Khi đăng ký sử dụng tính năng Ký ứng dụng của Play, bạn có thể sử dụng các tính năng nâng cao cho gói ứng dụng của mình. Để áp dụng các tính năng nâng cao, trước tiên, hãy thực hiện mọi thay đổi cần thiết về cấu hình khi tạo một bản phát hành mới, sau đó tải gói ứng dụng mới lên.
- Hoạt động phân phối bên ngoài Google Play: Nếu phân phối qua các cửa hàng ứng dụng khác và muốn dùng cùng một khoá ký ở mọi nơi, bạn có 2 lựa chọn. [1] Bạn có thể cho phép Google tạo khoá ký ứng dụng và tải xuống một tệp APK chung, đã được ký từ Play Console hoặc Play Developer API để phân phối ở nơi khác (trong Play Console, hãy chuyển đến mục Kiểm thử và phát hành > Gói và bản phát hành mới nhất, chọn gói ứng dụng của bạn rồi nhấp vào thẻ Tải xuống), hoặc [2] bạn có thể tạo khoá ký ứng dụng mà mình muốn dùng cho tất cả các cửa hàng ứng dụng và chuyển bản sao của khoá đó cho Google khi bạn thiết lập Tính năng ký ứng dụng của Play. Tìm hiểu thêm về cách hoạt động của bản cập nhật ứng dụng và các lựa chọn bật hoặc tắt bản cập nhật xuyên cửa hàng.
- Thử nghiệm: Sử dụng tính năng Chia sẻ ứng dụng trong nội bộ để thử nghiệm chính xác những gì Google Play sẽ cung cấp cho người dùng, hoặc tải các tệp APK dành riêng cho thiết bị xuống từ trình khám phá gói ứng dụng rồi cài đặt trên thiết bị bằng lệnh adb install-multiple *.apk.
- Giao thức ký APK phiên bản 4: Tính năng ký ứng dụng của Play tự động sử dụng phiên bản 4 cho các ứng dụng đủ điều kiện để hỗ trợ hoạt động phân phối được tối ưu hoá trên các thiết bị Android 11 trở lên. Bạn không cần làm gì cả. Giao thức này loại trừ mọi ứng dụng dùng tính năng ký kết hợp sẵn sàng cho công nghệ lượng tử. Tính năng này chưa tương thích với tính năng ký phiên bản 4. Bạn có thể đọc thêm về các lợi ích kỹ thuật trong tài liệu về Giao thức ký APK phiên bản 4.
Dự án Google Cloud tự lưu trữ
Nếu có các yêu cầu bảo mật rất cụ thể (ví dụ: sử dụng khoá OEM), bạn có thể dùng Play Developer API để đăng ký Tính năng ký ứng dụng của Play bằng một dự án trên đám mây Google Cloud tự lưu trữ.
Đây là một chế độ thiết lập không theo tiêu chuẩn và không được khuyến khích Khi sử dụng một dự án tự lưu trữ, tức là bạn phải chịu hoàn toàn trách nhiệm đối với các hoạt động ký ứng dụng.
- Điều này sẽ ngăn Google Play thực hiện các tính năng thiết yếu như khôi phục khi có sự cố.
- Google không thể tạo lại hoặc sửa một bản phát hành hiện có. Để khắc phục mọi lỗi liên quan đến bản phát hành, bạn phải tải một bản phát hành mới lên.
- Các tính năng tối ưu hoá nâng cao, một số tính năng nâng cao của Play và các tính năng bảo mật như Ký kết hợp sẵn sàng cho công nghệ lượng tử có thể không dùng được trong cấu hình này.
- Tạo hoặc nhập khoá ký vào Cloud KMS, đảm bảo vị trí được định cấu hình là nhiều khu vực ở Hoa Kỳ và làm theo tài liệu nhập khoá KMS.
- Để thay đổi khoá ký, hãy sử dụng phương thức enrollApp. Bạn chỉ có thể thay đổi khoá ký trước khi phát hành ứng dụng lên kênh Thử nghiệm công khai hoặc kênh Phát hành công khai.
- Để nâng cấp khoá ký sau khi xuất bản, hãy sử dụng phương thức rotateAppSigningKey.
- Cấp các vai trò IAM sau đây cho tài khoản ứng dụng hoặc dịch vụ xác thực bằng Google Play Developer API:
- Hãy đảm bảo bạn có đủ hạn mức để thực hiện các thao tác mã hoá. Cụ thể, bạn nên tăng hạn mức cho asymmetric_requests lên ít nhất 350 QPS.
- Để xem cách sử dụng khoá ký, hãy bật nhật ký kiểm tra trong dự án Cloud KMS của bạn.