Thông tin này dành cho nhà phát triển các ứng dụng có cách triển khai giao diện X509TrustManager không an toàn.
Điều gì đang xảy ra
Một hoặc nhiều ứng dụng của bạn có cách triển khai giao diện X509TrustManager không an toàn. Cụ thể là, quá trình triển khai bỏ qua tất cả các lỗi xác thực chứng chỉ SSL khi thiết lập kết nối HTTPS với máy chủ từ xa, khiến cho ứng dụng của bạn dễ bị tấn công xen giữa. Kẻ tấn công có thể đọc dữ liệu được truyền (chẳng hạn như bằng chứng xác thực đăng nhập) và thậm chí thay đổi dữ liệu được truyền trên kết nối HTTPS. Vui lòng xem lại các bước chi tiết bên dưới để khắc phục vấn đề này trên ứng dụng của bạn. Sau thời hạn ghi trên Play Console, chúng tôi có thể sẽ xóa mọi ứng dụng chứa lỗ hổng bảo mật chưa được khắc phục khỏi Google Play.
Việc cần làm
- Đăng nhập vào Play Console và chuyển đến mục Cảnh báo để xem những ứng dụng nào bị ảnh hưởng và thời hạn giải quyết những vấn đề này.
- Cập nhật các ứng dụng bị ảnh hưởng và khắc phục lỗ hổng.
- Gửi phiên bản cập nhật của các ứng dụng bị ảnh hưởng.
Sau khi bạn gửi lại, chúng tôi sẽ xem xét lại ứng dụng của bạn. Quá trình này có thể mất vài giờ. Nếu ứng dụng vượt qua quy trình xem xét và được xuất bản thành công thì bạn không cần thực hiện thêm hành động nào. Nếu ứng dụng không vượt qua được quy trình xem xét thì phiên bản ứng dụng mới sẽ không được xuất bản và bạn sẽ nhận được thông báo qua email.
Thông tin chi tiết bổ sung
Để xác thực chứng chỉ SSL đúng cách, hãy thay đổi mã của bạn trong phương thức checkServerTrusted của giao diện X509TrustManager tùy chỉnh để tạo CertificateException hoặc IllegalArgumentException bất cứ khi nào chứng chỉ do máy chủ hiển thị không đúng như yêu cầu của bạn. Đặc biệt, bạn cần chú ý các bẫy sau đây:
- Hãy chắc chắn rằng các Ngoại lệ do checkServerTrusted tạo ra không xuất hiện trong quá trình thực hiện phương thức. Điều này sẽ khiến checkServerTrust thoát ra bình thường, dẫn đến ứng dụng tin tưởng vào một chứng chỉ có hại.
- Không sử dụng checkValidity cho mục đích kiểm tra chứng chỉ máy chủ. checkValidity chỉ kiểm tra xem chứng chỉ đã hết hạn chưa và không thể xác định liệu chứng chỉ có đáng tin cậy hay không.
Bạn cũng có thể sử dụng cấu hình bảo mật mạng để tùy chỉnh hành vi chứng chỉ của ứng dụng sang một cách khác ít gặp lỗi hơn.
Chúng tôi sẵn sàng trợ giúp
Nếu có câu hỏi về lỗ hổng bảo mật, bạn có thể đăng lên Stack Overflow rồi gắn thẻ “android-security” và “TrustManager”. Để hiểu rõ hơn về các bước cần thực hiện khi giải quyết vấn đề này, bạn có thể liên hệ với nhóm hỗ trợ nhà phát triển của chúng tôi.