SafetyNet đã giải thích lý do tại sao Android Pay và các ứng dụng khác không hoạt động trên các thiết bị đã root
Root thiết bị Android của bạn cho phép bạn truy cập vào nhiều ứng dụng hơn và truy cập sâu hơn vào hệ thống Android. Nhưng một số ứng dụng - như Android Pay của Google - hoàn toàn không hoạt động trên thiết bị đã root.
Google sử dụng thứ gọi là SafetyNet để phát hiện xem thiết bị của bạn đã được root hay chưa và chặn quyền truy cập vào các tính năng đó. Google không phải là người duy nhất, - nhiều ứng dụng của bên thứ ba cũng sẽ không hoạt động trên các thiết bị Android đã được root, mặc dù họ có thể kiểm tra sự hiện diện của root theo những cách khác.
SafetyNet: Cách Google biết bạn đã root điện thoại Android của bạn
Các thiết bị Android cung cấp API SafetyNet của API, là một phần của lớp Dịch vụ Google Play được cài đặt trên các thiết bị Android được Google phê duyệt. API API này cung cấp quyền truy cập vào các dịch vụ của Google giúp bạn đánh giá sức khỏe và sự an toàn của thiết bị Android, theo Google. Nếu bạn là nhà phát triển Android, bạn có thể gọi API này trong ứng dụng của mình để kiểm tra xem thiết bị bạn đang chạy có bị giả mạo hay không.
API SafetyNet này được thiết kế để kiểm tra xem một thiết bị có bị giả mạo hay không - ví dụ như nó đã được người dùng root, đang chạy ROM tùy chỉnh hay đã bị nhiễm phần mềm độc hại cấp thấp, chẳng hạn.
Các thiết bị đi kèm với Cửa hàng Play của Google và các ứng dụng khác được cài đặt phải vượt qua Bộ kiểm tra tương thích Android của Google. Root thiết bị hoặc cài đặt ROM tùy chỉnh sẽ ngăn thiết bị không bị CTS Tương thích. Đây là cách API SafetyNet có thể cho biết bạn đã root chưa - nó chỉ kiểm tra tính tương thích của CTS. Tương tự, nếu bạn nhận được một thiết bị Android không bao giờ đi kèm với các ứng dụng của Google - như một trong số những máy tính bảng 20 đô la đó được vận chuyển trực tiếp từ một nhà máy ở Trung Quốc - thì nó sẽ không được coi là phù hợp với CTS, ngay cả khi bạn chưa root nó.
Để có được thông tin này, Google Play Services tải xuống một chương trình có tên là snet và chạy nó trong nền trên thiết bị của bạn. Chương trình thu thập dữ liệu từ thiết bị của bạn và gửi nó đến Google thường xuyên. Google sử dụng thông tin này cho nhiều mục đích khác nhau, từ lấy hình ảnh về hệ sinh thái Android rộng hơn đến xác định xem phần mềm của thiết bị của bạn có bị giả mạo hay không. Google không giải thích chính xác những gì snet đang tìm kiếm, nhưng có khả năng snet sẽ kiểm tra xem phân vùng hệ thống của bạn đã được sửa đổi từ trạng thái xuất xưởng chưa.
Bạn có thể kiểm tra trạng thái SafetyNet của thiết bị bằng cách tải xuống một ứng dụng như Mẫu người trợ giúp SafetyNet hoặc Sân chơi SafetyNet. Ứng dụng sẽ hỏi dịch vụ SafetyNet của Google về trạng thái thiết bị của bạn và cho bạn biết phản hồi mà nó nhận được từ máy chủ của Google.
Để biết thêm chi tiết kỹ thuật, hãy đọc bài đăng trên blog này được viết bởi John Kozyrakis, một chiến lược gia kỹ thuật tại Cigital, một công ty bảo mật phần mềm. Anh tìm hiểu về SafetyNet và giải thích thêm về cách thức hoạt động của nó.
Tùy thuộc vào ứng dụng
SafetyNet là tùy chọn cho nhà phát triển ứng dụng và nhà phát triển ứng dụng có thể chọn sử dụng hay không. SafetyNet chỉ ngăn ứng dụng hoạt động nếu nhà phát triển ứng dụng không muốn ứng dụng hoạt động trên các thiết bị đã root.
Hầu hết các ứng dụng sẽ không kiểm tra API SafetyNet. Ngay cả một ứng dụng kiểm tra API SafetyNet - như các ứng dụng thử nghiệm ở trên - sẽ không hoạt động nếu chúng nhận được phản hồi xấu. Nhà phát triển ứng dụng phải kiểm tra API SafetyNet và khiến ứng dụng từ chối hoạt động nếu ứng dụng biết phần mềm của thiết bị của bạn đã bị sửa đổi. Ứng dụng Android Pay của riêng Google là một ví dụ điển hình về hoạt động này.
Android Pay không hoạt động trên các thiết bị đã root
Giải pháp thanh toán di động Android Pay của Google hoàn toàn không hoạt động trên các thiết bị Android đã root. Hãy thử khởi chạy nó và bạn sẽ chỉ thấy một thông báo nói rằng Android Android Pay không thể được sử dụng. Google không thể xác minh rằng thiết bị của bạn hoặc phần mềm đang chạy trên thiết bị đó có tương thích với Android hay không.
Tất nhiên, không chỉ là về root, chạy ROM tùy chỉnh cũng sẽ khiến bạn không thể yêu cầu này. API SafetyNet sẽ tuyên bố rằng nó không phải là Android tương thích với Android nếu bạn đang sử dụng ROM tùy chỉnh mà thiết bị không đi kèm.
Hãy nhớ rằng, điều này không chỉ phát hiện ra rễ. Nếu thiết bị của bạn bị nhiễm một số phần mềm độc hại cấp hệ thống có khả năng do thám Android Pay và các ứng dụng khác, API SafetyNet cũng sẽ ngăn Android Pay hoạt động, đó là một điều tốt.
Root thiết bị của bạn phá vỡ mô hình bảo mật thông thường của Android. Android Pay thường bảo vệ dữ liệu thanh toán của bạn bằng các tính năng hộp cát của Android, nhưng các ứng dụng có thể thoát ra khỏi hộp cát trên thiết bị đã root. Google không có cách nào để biết Android Pay sẽ an toàn như thế nào trên một thiết bị cụ thể nếu nó được root hoặc chạy ROM tùy chỉnh không xác định, vì vậy họ chặn nó. Một kỹ sư Android Pay đã giải thích vấn đề trên diễn đàn XDA Developers nếu bạn tò mò muốn đọc thêm.
Các cách khác Ứng dụng có thể phát hiện Root
SafetyNet chỉ là một cách mà một ứng dụng có thể kiểm tra xem nó có chạy trên thiết bị đã root hay không. Ví dụ: các thiết bị của Samsung bao gồm một hệ thống bảo mật có tên KNOX. Nếu bạn root thiết bị của mình, bảo mật KNOX sẽ bị ngắt. Samsung Pay, ứng dụng thanh toán di động của Samsung, sẽ từ chối hoạt động trên các thiết bị đã root. Samsung đang sử dụng KNOX cho việc này, nhưng cũng có thể sử dụng SafetyNet.
Tương tự, nhiều ứng dụng của bên thứ ba sẽ chặn bạn sử dụng chúng và không phải tất cả chúng đều sử dụng SafetyNet. Họ chỉ có thể kiểm tra sự hiện diện của các ứng dụng và quy trình gốc đã biết trên thiết bị.
Thật khó để tìm thấy một danh sách các ứng dụng cập nhật không hoạt động khi thiết bị đã được root. Tuy nhiên, RootCloak cung cấp một số danh sách. Những danh sách này có thể đã lỗi thời, nhưng chúng là những danh sách tốt nhất chúng ta có thể tìm thấy. Nhiều ứng dụng ngân hàng và ví điện thoại di động khác, chặn các quyền truy cập trên điện thoại đã root để cố gắng bảo vệ thông tin ngân hàng của bạn khỏi bị bắt bởi các ứng dụng khác. Các ứng dụng cho dịch vụ truyền phát video cũng có thể từ chối hoạt động trên thiết bị đã root như một loại biện pháp DRM, cố gắng ngăn bạn ghi lại luồng video được bảo vệ.
Một số ứng dụng có thể bị lừa
Google đang chơi một trò chơi mèo vờn chuột với SafetyNet, liên tục cập nhật nó trong nỗ lực để đi trước mọi người xung quanh nó. Ví dụ, nhà phát triển Android Chainfire đã tạo ra một phương pháp mới để root thiết bị Android mà không cần sửa đổi phân vùng hệ thống, được gọi là root systemless hệ thống. SafetyNet ban đầu không phát hiện ra các thiết bị như bị giả mạo và Android Pay đã hoạt động - nhưng cuối cùng SafetyNet đã được cập nhật để phát hiện phương thức root mới này. Điều này có nghĩa là Android Pay không còn hoạt động cùng với root không có hệ thống.
Tùy thuộc vào cách ứng dụng kiểm tra quyền truy cập root, bạn có thể lừa nó. Ví dụ: có các phương pháp được báo cáo để root một số thiết bị Samsung mà không vấp phải bảo mật KNOX, điều này sẽ cho phép bạn tiếp tục sử dụng Samsung Pay.
Trong trường hợp các ứng dụng chỉ kiểm tra các ứng dụng gốc trên hệ thống của bạn, có một mô-đun Xposed Framework có tên RootCloak cho phép bạn lừa chúng hoạt động bằng mọi cách. Điều này hoạt động với các ứng dụng như DirecTV GenieGo, BestN CinemaNow và Phim của Flixster, thường không hoạt động trên các thiết bị đã root. Tuy nhiên, nếu các ứng dụng này được cập nhật để sử dụng SafetyNet của Google, chúng sẽ không dễ bị lừa theo cách này.
Hầu hết các ứng dụng sẽ tiếp tục hoạt động bình thường sau khi bạn đã root thiết bị của mình. Các ứng dụng thanh toán di động là ngoại lệ lớn, cũng như một số ứng dụng ngân hàng và tài chính khác. Các dịch vụ truyền phát video trả phí đôi khi cũng cố gắng chặn bạn xem video của họ.
Nếu một ứng dụng bạn cần không hoạt động trên thiết bị đã root của bạn, bạn luôn có thể hủy thiết bị của mình để sử dụng nó. Ứng dụng sẽ hoạt động sau khi bạn trả lại thiết bị của mình về trạng thái nhà máy an toàn..
Tín dụng hình ảnh: Daniel Choo trên Flickr