Giải thích về SafetyNet: 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ị có nguồn gốc

Mục lục:

Giải thích về SafetyNet: 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ị có nguồn gốc
Giải thích về SafetyNet: 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ị có nguồn gốc

Video: Giải thích về SafetyNet: 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ị có nguồn gốc

Video: Giải thích về SafetyNet: 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ị có nguồn gốc
Video: 06 Bí kíp Mua Xe ÔTô Mới Lần Đầu Cho Người Ít Kinh Nghiệm Để Phục Vụ Gia Đình - YouTube 2024, Tháng tư
Anonim
Khởi động thiết bị Android cho phép bạn truy cập vào nhiều ứng dụng khác nhau và truy cập sâu hơn vào hệ thống Android. Tuy nhiên, một số ứng dụng như Android Pay của Google sẽ không hoạt động trên thiết bị gốc.
Khởi động thiết bị Android cho phép bạn truy cập vào nhiều ứng dụng khác nhau và truy cập sâu hơn vào hệ thống Android. Tuy nhiên, một số ứng dụng như Android Pay của Google sẽ không hoạt động trên thiết bị gốc.

Google sử dụng một cái gì đó gọi là SafetyNet để phát hiện xem thiết bị của bạn có được root hay không 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 các cách khác.

SafetyNet: Cách Google biết bạn đã bắt nguồn từ điện thoại Android của bạn

Thiết bị Android cung cấp “API SafetyNet”, là một phần của lớp Dịch vụ của Google Play được cài đặt trên các thiết bị Android được Google chấp thuận. 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ị can thiệp hay không.

API SafetyNet này được thiết kế để kiểm tra xem thiết bị đã bị giả mạo hay chưa - cho dù thiết bị có được root hay không, đang chạy ROM tùy chỉnh hoặc đã bị nhiễm phần mềm độc hại cấp thấp.

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ộ thử nghiệm tương thích" của Android. Khởi động một thiết bị hoặc cài đặt một ROM tùy chỉnh ngăn không cho thiết bị bị “Tương thích CTS”. Đây là cách SafetyNet API có thể cho biết liệu bạn có được root hay không - nó chỉ kiểm tra tính tương thích của CTS. Tương tự, nếu bạn có thiết bị Android không bao giờ đến với các ứng dụng của Google - như một trong số 20 máy tính bảng được vận chuyển trực tiếp từ nhà máy ở Trung Quốc, nó sẽ không được coi là "tương thích CTS", ngay cả khi bạn chưa root nó.

Để nhận thông tin này, Dịch vụ của Google Play sẽ tải xuống một chương trình có tên “snet” và chạy chương trình 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 dữ liệu đó đế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ừ việc chụp ảnh hệ sinh thái Android rộng hơ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 của nhà máy hay chưa.

Bạn có thể kiểm tra trạng thái SafetyNet của thiết bị của bạn bằng cách tải xuống một ứng dụng như SafetyNet Helper Sample hoặc SafetyNet Playground. Ứng dụng sẽ yêu cầu 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 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 đào sâu vào SafetyNet và giải thích thêm về cách nó hoạt động.

Image
Image

Tính năng ứ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 nó 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ị gốc.

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 - giống như các ứng dụng thử nghiệm ở trên - sẽ không ngừng hoạt động nếu chúng nhận được phản hồi không tốt. Nhà phát triển ứng dụng phải kiểm tra API SafetyNet và làm cho ứng dụng từ chối hoạt động nếu ứng dụng biết phần mềm thiết bị của bạn đã được sửa đổi. Ứng dụng Android Pay của Google là một ví dụ điển hình về hành động này.

Android Pay sẽ không hoạt động trên các thiết bị có nguồn gốc

Giải pháp thanh toán di động Android Pay của Google không hoạt động ở tất cả các thiết bị Android được root. Hãy thử khởi chạy ứng dụng và bạn sẽ chỉ thấy thông báo cho biết “Không thể sử dụng Android Pay. Google không thể xác minh rằng thiết bị của bạn hoặc phần mềm chạy trên thiết bị có tương thích với Android”.

Nó không chỉ là về rễ, tất nhiên-chạy một ROM tùy chỉnh cũng sẽ đưa bạn afoul của yêu cầu này. API SafetyNet sẽ xác nhận rằng nó không phải là "Android tương thích" 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 phần mềm độc hại cấp hệ thống với khả năng gián điệp trên 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.
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 phần mềm độc hại cấp hệ thống với khả năng gián điệp trên 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.

Khởi động thiết bị của bạn sẽ 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 ứng dụng có thể thoát ra khỏi hộp cát trên thiết bị được 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 thiết bị đó bắt nguồn từ hoặc chạy ROM tùy chỉnh không xác định, do đó, họ chặn nó. Kỹ sư Android Pay đã giải thích sự cố trên diễn đàn Nhà phát triển XDA nếu bạn muốn tìm hiểu thêm.

Các cách khác ứng dụng có thể phát hiện gốc

SafetyNet chỉ là một cách mà một ứng dụng có thể kiểm tra xem ứng dụng có đang chạy trên thiết bị được root hay không. Ví dụ, các thiết bị Samsung bao gồm một hệ thống bảo mật tên là KNOX. Nếu bạn root thiết bị của mình, bảo mật KNOX sẽ bị vấp. 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ị gốc. Samsung đang sử dụng KNOX cho điều này, nhưng nó 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 danh sách ứng dụng cập nhật không hoạt động khi thiết bị được bắt nguồn. Tuy nhiên, RootCloak cung cấp một số danh sách. Các 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 mà chúng tôi có thể tìm thấy. Nhiều ứng dụng ngân hàng và ví tiền điện thoại di động khác chặn quyền truy cập trên điện thoại được root trong nỗ lực bảo vệ thông tin ngân hàng của bạn không bị các ứng dụng khác nắm bắt. Các ứng dụng cho dịch vụ phát trực tuyến video cũng có thể từ chối hoạt động trên thiết bị gốc 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 trò chơi mèo và chuột với SafetyNet, liên tục cập nhật trò chơi này nhằm cố gắng vượt qua mọi người. Ví dụ, nhà phát triển Android Chainfire đã tạo ra một phương pháp mới để root các thiết bị Android mà không phải sửa đổi phân vùng hệ thống, được gọi là "root không có hệ thống". SafetyNet ban đầu đã không phát hiện các thiết bị như bị giả mạo, và Android Pay đã làm việc - nhưng SafetyNet cuối cùng đã được cập nhật để phát hiện phương pháp 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ể đánh lừa nó. Ví dụ, có các phương pháp được báo cáo để nhổ tận gốc một số thiết bị Samsung mà không cần 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 Khung Xposed có tên là RootCloak được báo cáo cho phép bạn lừa chúng hoạt động. Tính năng này hoạt động với các ứng dụng như DirecTV GenieGo, Best Buy CinemaNow và Phim của Flixster, thường không hoạt động trên các thiết bị gốc. 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.

Image
Image

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. Ứ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ố ngăn bạn xem video của họ.

Nếu ứng dụng bạn cần không hoạt động trên thiết bị gốc của bạn, bạn luôn có thể hủy thiết bị của mình để sử dụng. Ứng dụng sẽ hoạt động sau khi bạn đã trả lại thiết bị về trạng thái an toàn, nhà máy.

Đề xuất: