Ký ứng dụng Android và xác thực chữ ký


Ký ứng dụng

Ký ứng dụng là quy trình thông qua đó một APK (Android Package) được ký với một khóa riêng tư mà nhận dạng duy nhất nhà phát triển của ứng dụng. Quy trình này đảm bảo rằng ứng dụng được phát hành từ nhà phát triển đã xác nhận mà không bị can thiệp sau khi được ký. Dưới đây là sự phân tích chi tiết:

Tạo một Keystore

  • Các nhà phát triển tạo một keystore, một tệp nhị phân chứa các khóa mật mã. Keystore này chứa một khóa riêng tư được sử dụng để ký APK.
  • Keystore được bảo vệ bởi một mật khẩu, nên được giữ an toàn để ngăn chặn truy cập trái phép.

Ký APK

  • Trong quá trình hoặc sau quá trình dựng, APK được ký bằng khóa riêng tư lưu trữ trong keystore.
  • Quy trình này tạo ra chữ ký số qua hàm băm, tạo ra một băm duy nhất của nội dung APK.
  • Băm sau đó được mã hóa bằng khóa riêng tư của nhà phát triển, và kết quả được lưu trong APK.

Chèn giấy chứng nhận

  • APK bao gồm giấy chứng nhận chứa khóa công khai tương ứng với khóa riêng tư được sử dụng để ký.
  • Giấy chứng nhận này được sử dụng để xác minh chữ ký số trong quá trình cài đặt.

Tại sao Ký ứng dụng quan trọng?

  • Đảm bảo Tính xác thực: Xác nhận danh tính của nhà phát triển ứng dụng.
  • Bảo vệ Tính toàn vẹn: Đảm bảo ứng dụng không bị can thiệp từ khi được ký.
  • Kích hoạt Cập nhật Bảo mật: Đảm bảo rằng các cập nhật từ nhà phát triển gốc, vì các cập nhật phải được ký bằng cùng một khóa.

Xác thực chữ ký

Xác thực chữ ký là quy trình mà qua đó hệ điều hành Android kiểm tra chữ ký số của một APK để đảm bảo tính toàn vẹn và tính xác thực trước khi cài đặt. Hãy xem bài viết này trên Reddit về cách bạn có thể dễ dàng xác minh chữ ký / tính xác thực của một APK và sau đó trở lại đây để đọc cách hoạt động của quy trình xác thực:

Trích xuất giấy chứng nhận

Khi một APK được tải xuống và quá trình cài đặt được khởi động, thiết bị trích xuất giấy chứng nhận chứa khóa công khai từ APK.

Giải mã Chữ ký

  • Thiết bị sử dụng khóa công khai trích xuất từ giấy chứng nhận để giải mã chữ ký số nhúng trong APK.
  • Giải mã trả về hàm băm gốc (digest) mà đã được tạo ra trong quá trình ký.

Tạo hàm băm

Một cách độc lập, thiết bị tạo hàm băm của nội dung APK. Điều này thực hiện bằng cách sử dụng cùng hàm băm dùng trong quá trình ký.

So sánh các Hàm băm

  • Thiết bị so sánh hàm băm được tạo độc lập với hàm băm giải mã từ chữ ký số.
  • Khớp: Nếu các hàm băm khớp nhau, APK được xác minh là xác thực và không bị can thiệp, cho phép quá trình cài đặt diễn ra.
  • Không khớp: Nếu các hàm băm không khớp, điều này chỉ ra rằng APK có thể đã bị thay đổi từ khi được ký, và quá trình cài đặt bị chặn.

Tại sao Xác thực chữ ký quan trọng?

  • Xác nhận Tính xác thực: Đảm bảo rằng APK được ký bởi nhà phát triển đã nêu.
  • Duy trì Tính toàn vẹn Xác nhận rằng APK không bị thay đổi từ khi được ký.
  • Bảo vệ Người dùng Chặn các APK có thể gây hại khỏi việc cài đặt.

Tôi Nên Chọn Chữ ký Nào nếu một ứng dụng có Nhiều Chữ ký?

Hầu hết các ứng dụng có một chữ ký hợp lệ duy nhất, nhưng một số có thể có nhiều hơn. Bạn cần khớp chữ ký của APK với chữ ký đã được cài đặt trên thiết bị của bạn để tránh các lỗi cập nhật.

Lý do cho Nhiều Chữ ký

  • Luân phiên Khóa: Android 9 cho phép các nhà phát triển chuyển đổi khóa ký. Điều này là do APKS Scheme v3.
  • Kênh Phân phối: Các ứng dụng từ các nguồn khác nhau (vd: Play Store, Github) có thể có các chữ ký khác nhau.
  • Ứng dụng Hệ thống: Khóa ký cho các ứng dụng hệ thống có thể khác nhau tùy theo thiết bị hoặc phiên bản hệ điều hành.
  • Các trường hợp không giải thích: Một số ứng dụng như Google's FilesPlay services chỉ đơn giản có nhiều chữ ký.

Cách để Xác định Chữ ký Đúng:

  1. AndroidFreeware có một APK Checker phức tạp thực hiện, kiểm tra quyền Android, phát hiện Cờ và Bộ lọc nguy hiểm, tính toán checksums md5, sha1, sha256 và thực hiện kiểm tra VirusTotal.
  2. Sử dụng công cụ như My APK để xem chữ ký ứng dụng.
  3. Sử dụng cách tiếp cận Thử và Sai. Cài đặt các APK khác nhau đến khi cập nhật hoạt động, sau đó ghi nhớ chữ ký đúng cho các bản cập nhật trong tương lai.
  4. Tải ứng dụng lên APKMirror bằng cách sử dụng ML Manager để tìm chữ ký hiện có.
  5. Một số công cụ máy tính có thể tìm chữ ký của file apk. Trong đó có apksigner của Google, keytool của IBM, và print-apk-signature của Warren Bank.

Mục Lục