Xác minh chữ ký APK: Cách đảm bảo ứng dụng của bạn an toàn
Việc tải các ứng dụng trên Android mang lại sự tự do và linh hoạt, nhưng nó đi kèm với một rủi ro lớn: ứng dụng giả mạo. Những kẻ độc hại thường sửa đổi các ứng dụng phổ biến để bao gồm phần mềm gián điệp hoặc phần mềm quảng cáo trước khi phân phối lại chúng trên các trang web không chính thức. Làm cách nào bạn có thể chắc chắn APK bạn vừa tải xuống chính xác là APK mà nhà phát triển đã tải lên Google Play?
Câu trả lời thuộc về Chữ ký số APK. Dưới đây, chúng tôi sẽ đề cập đến cách tính năng ký ứng dụng thực sự hoạt động và hướng dẫn sử dụng Trình xác minh APK trực tuyến của chúng tôi để kiểm tra hàm băm và chứng chỉ của APK trước khi bạn quyết định tin tưởng nó.
Phiên bản 60 giây:
Android ký mọi APK bằng khóa nhà xuất bản. Điện thoại từ chối "bản cập nhật" có chữ ký không khớp với bản cài đặt hiện có; đó là biện pháp bảo vệ chống mạo danh chính của HĐH. Để xác minh một APK đã được tải sẵn, hãy tính hàm băm SHA-256 và dấu vân tay chứng chỉ ký của nó, sau đó so sánh cả hai với các giá trị mà bạn tin cậy (bản cài đặt Cửa hàng Play hiện tại, dấu vân tay đã xuất bản của nhà phát triển hoặc bản sao đã biết trước đó). Sự trùng khớp có nghĩa là tệp giống hệt byte và được ký bởi cùng một nhà xuất bản; không khớp có nghĩa là không cài đặt.
Chữ ký APK là gì?
Chữ ký số là một bằng chứng mật mã về danh tính. Khi nhà phát triển hoàn thành một ứng dụng, họ sẽ "ký" ứng dụng đó bằng khóa riêng (kho khóa). Sau đó, Android sẽ sử dụng khóa chung tương ứng được nhúng trong APK để đảm bảo:
- Chính trực: Tệp chưa bị thay đổi kể từ khi được ký.
- Tính xác thực: Nhà phát triển chính là người mà họ nói.
- Cập nhật: Chỉ các APK được ký bằng cùng một khóa mới có thể cập nhật ứng dụng hiện có trên điện thoại của bạn.
Sự phát triển của ký kết: V1, V2, V3 và V4
Google đã liên tục cải thiện tính bảo mật của APK trong những năm qua:
- V1 (Ký Jar): Ký các mục riêng lẻ trong ZIP. Chậm và dễ bị tấn công nhất định.
- V2 (Lược đồ chữ ký APK): Ký hiệu toàn bộ khối tệp. Nhanh hơn nhiều để xác minh và an toàn hơn. (Android 7.0+)
- V3 (Xoay phím): Cho phép nhà phát triển thay đổi khóa ký trong khi duy trì các bản cập nhật ứng dụng. (Android 9.0+)
- V4 (Truyền phát): Được tối ưu hóa để cài đặt tăng dần qua ADB. (Android 11+)
Cách xác minh chữ ký APK trực tuyến
Công cụ xác minh APK của chúng tôi không chỉ tính toán giá trị băm; nó thực hiện kiểm tra mật mã đầy đủ đối với chuỗi chứng chỉ. Đây là cách sử dụng nó:
Các bước để xác minh:
- Điều hướng đến trang Trình xác minh APK.
- Chọn tệp APK hoặc XAPK của bạn.
- Công cụ của chúng tôi phân tích thư mục META-INF/ và trích xuất dữ liệu chứng chỉ (.RSA, .DSA hoặc .EC).
- Đợi quá trình phân tích hoàn tất (chỉ mất vài giây).
- Xem lại Thông tin chứng chỉ: Tên nhà phát triển, tổ chức và quốc gia xuất xứ.
- Kiểm tra Băm: So sánh SHA-256 được hiển thị trên trang web của chúng tôi với giá trị mà nhà xuất bản đã công bố trên trang web chính thức, trang phát hành dự án hoặc bảng kê khai ký tên của riêng họ.
Cảnh báo bảo mật
Nếu trình xác minh hiển thị "Chứng chỉ gỡ lỗi" hoặc thực thể "Tự ký" không xác định cho một ứng dụng chính như Facebook hoặc WhatsApp, thì đó là KHÔNG CÀI ĐẶT NÓ. Nó gần như chắc chắn bị xâm phạm.
Hiểu tổng kiểm tra (MD5, SHA-1, SHA-256)
Tổng kiểm tra là các chuỗi có độ dài cố định đại diện cho toàn bộ tệp. Nếu bạn thay đổi một pixel trong biểu tượng của ứng dụng, hàm băm SHA-256 sẽ thay đổi hoàn toàn.
| Loại băm | Cấp độ bảo mật | Ghi chú |
|---|---|---|
| MD5 | Di sản | Dễ bị va chạm. Không phải vì an ninh. |
| SHA-1 | Vừa phải | Vẫn được sử dụng rộng rãi để tra cứu nhanh chóng. |
| SHA-256 | Xuất sắc | Tiêu chuẩn hiện đại để xác minh ứng dụng. |
Chứng chỉ ký thực sự cho bạn biết điều gì
Khi trình xác minh trả về chứng chỉ, các phần quan trọng đối với sự an toàn khi tải qua bên ngoài không phải là các bit đầy màu sắc của siêu dữ liệu X.509 mà là một số ít trường. Về mặt thực tế:
- Dấu vân tay SHA-256 của chứng chỉ. Đây là giá trị quan trọng nhất: hàm băm 64 ký tự hex xác định duy nhất khóa ký. Hai APK có cùng dấu vân tay SHA-256 được ký bằng cùng một khóa riêng. Đó là ý nghĩa của "sự liên tục của chữ ký" trong logic cập nhật của hệ điều hành.
- Tên phân biệt chủ đề. Thường giống như CN=Some App, O=Example Inc., C=US. Hữu ích như một gợi ý, không phải là bằng chứng nhận dạng, vì kẻ tấn công có thể đặt bất kỳ chuỗi nào chúng thích vào DN của chứng chỉ tự ký của chính chúng. Luôn kiểm tra chéo dấu vân tay, không phải tên.
- Thời hạn hiệu lực. Hầu hết các khóa xuất bản hợp pháp đều được tạo với hiệu lực ~ 25 năm (khuyến nghị lịch sử là 10000 ngày). Chứng chỉ hết hạn vào tháng tới hoặc chứng chỉ có hiệu lực trùng lặp với quá khứ là một dấu hiệu cảnh báo.
- Thuật toán chữ ký. Các ứng dụng hiện đại sử dụng SHA256withRSA hoặc SHA256withECDSA. MD5 bị hỏng; SHA1withRSA không được dùng nữa. APK chỉ được ký bằng v1 / SHA-1 bị nghi ngờ vào năm 2026.
Hash vs Signature: Sự khác biệt Hầu hết các hướng dẫn đều bỏ qua
Mọi người thường nhầm lẫn giữa "băm" và "chữ ký". Chúng phục vụ các mục đích rất khác nhau và việc xác minh an toàn cần cả hai:
- hàm băm (SHA-256 của toàn bộ APK) cho bạn biết liệu byte của tệp có giống với bản sao tham chiếu hay không. Nếu hàm băm của bạn khớp với hàm băm được xuất bản của nhà xuất bản thì tệp sẽ không bị thay đổi kể từ khi họ tính toán hàm băm đó. Chỉ kiểm tra hàm băm không nói lên được ai đã tạo byte.
- chữ ký chứng minh ai đã tạo ra các byte, cụ thể là người giữ khóa riêng được ghép nối với chứng chỉ ký đã tạo ra tệp này. Chỉ kiểm tra chữ ký không nói lên điều gì về việc tệp có bị giả mạo hay không sau khi ký (HĐH sẽ phát hiện điều đó và từ chối nó, nhưng bản thân chứng chỉ không "biết" về nội dung tệp).
Đối với APK được tải sẵn, sự đảm bảo mạnh nhất kết hợp cả hai yếu tố: dấu vân tay chứng chỉ khớp với dấu vân tay đã biết của nhà xuất bản Và SHA-256 của tệp khớp với giá trị mà nhà xuất bản đã xuất bản cho bản dựng chính xác đó.
Nơi lấy dấu vân tay tham chiếu đáng tin cậy
Phần khó nhất của việc xác minh là biết giá trị phù hợp để so sánh. Một vài cách tiếp cận đáng tin cậy, theo thứ tự tin cậy:
- Trang web hoặc trang phát hành riêng của nhà xuất bản. Nhiều dự án nguồn mở và nhà cung cấp quan tâm đến bảo mật xuất bản dấu vân tay SHA-256 của chứng chỉ ký cùng với các bản tải xuống của họ. Đây là tiêu chuẩn vàng.
- Bản cài đặt Cửa hàng Play hiện có. Nếu ứng dụng đã được cài đặt trên thiết bị do Play quản lý thì dấu vân tay chứng chỉ của ứng dụng đó theo định nghĩa là dấu vân tay của nhà xuất bản. So sánh dấu vân tay của APK đã tải của bạn với dấu vân tay đó. Các công cụ như Apk Phân tích (trong Android Studio) hoặc apksigner verify --print-certs đọc trực tiếp từ APK đã cài đặt.
- APK đầu tiên bạn từng cài đặt của ứng dụng này. Nếu bạn đã sử dụng ứng dụng được một thời gian và chưa bao giờ gặp thông báo "chữ ký không khớp", bạn có thể sử dụng bất kỳ bản sao cũ nào của mình làm tài liệu tham khảo. Các bản cập nhật tiếp theo từ cùng một nhà xuất bản phải sử dụng cùng một khóa (hoặc xoay qua v3, trong trường hợp đó chuỗi vẫn xác minh).
- Một ảnh chụp nhanh công khai được lưu trữ. Internet Archive và các dịch vụ tương tự đôi khi lưu giữ các trang phát hành APK cũ cùng với các giá trị băm được khai báo của chúng. Hữu ích cho các bản dựng rất cũ nơi trang nhà xuất bản ban đầu không còn nữa.
Những lỗi xác minh phổ biến
- So sánh sai trường. "MD5 của tệp APK" không giống với "MD5 của chứng chỉ." Sử dụng cùng một trường cho tệp ứng viên và người tham chiếu.
- Tin tưởng vào siêu dữ liệu của chính tập tin. Một APK có thể bao gồm bất kỳ chuỗi phiên bản nào, bất kỳ nhãn gói nào, bất kỳ thẻ tác giả nào trong tệp kê khai của nó. Không ai trong số đó là mật mã. Khối chữ ký là thứ duy nhất mà hệ điều hành thực sự xác minh.
- Bỏ qua xác minh vì tệp được gửi bởi một người bạn. Một người bạn nói "đây là APK chính thức" chưa xác minh nó nhiều hơn bạn. Yêu cầu một nguồn xuất bản dấu vân tay mà bạn có thể kiểm tra.
- Xử lý một trường phù hợp là đủ. Khớp cả SHA-256 của tệp và dấu vân tay SHA-256 của chứng chỉ; khớp cái này nhưng không khớp cái kia là dấu hiệu cho thấy byte bị thay đổi hoặc nguồn đang mạo danh nhà xuất bản.
- Tắt Play Protect để "thuận tiện". Play Protect là trình quét ý kiến thứ hai, không thay thế cho xác minh chữ ký, nhưng nó phát hiện phần mềm độc hại thực tế mà việc xác minh chữ ký không thể thực hiện được, vì Protect biết về các gói đã biết xấu theo nội dung chứ không phải bằng khóa ký. Để nó đi.
Ứng dụng của bạn có an toàn không?
Đừng đoán. Xác minh các APK đã tải sẵn của bạn dựa trên chứng chỉ nhà phát triển chính thức trong vài giây.
Bắt đầu xác minh APKCâu hỏi thường gặp (FAQ)
Tại sao Android chặn tôi cài đặt APK đã sửa đổi?
Bởi vì chữ ký của APK mới không khớp với chữ ký đã được cài đặt. Điều này ngăn chặn tin tặc "ghi đè" ứng dụng ngân hàng thực của bạn bằng ứng dụng giả.
Tôi có thể ký lại APK sau khi sửa đổi nó không?
Có, nhưng bạn sẽ sử dụng chìa khóa khác. Ứng dụng sẽ vẫn cài đặt trên điện thoại "sạch" nhưng sẽ không nhận được bản cập nhật từ nhà phát triển ban đầu nữa.
Ghim chứng chỉ là gì?
Đây là một tính năng bảo mật nâng cao trong đó ứng dụng kiểm tra rõ ràng một chứng chỉ cụ thể trước khi liên lạc với máy chủ của nó, khiến các ứng dụng giả mạo trở nên vô dụng ngay cả khi chúng cài đặt đúng cách.
Thực hiện một phần xác minh chữ ký của mỗi Sideload
Chữ ký đang thực hiện rất nhiều công việc nặng nhọc trong bảo mật Android hiện đại. Dành thêm vài giây để chạy tệp qua Trình xác minh APK là một cách rẻ tiền để loại bỏ ứng dụng giả mạo khỏi thiết bị của bạn trước khi ứng dụng đó được cài đặt.