2011-10-04 33 views
11

Tôi đang làm việc trên các khía cạnh bảo mật của ứng dụng Android của mình.Cách bảo mật dữ liệu Intent trong khi gửi dữ liệu qua các ứng dụng

Tôi muốn biết về các cách để bảo mật dữ liệu Intent và các tính năng bổ sung khi gửi ứng dụng này từ ứng dụng này sang ứng dụng khác để không có ứng dụng nào khác ngoài hai ứng dụng này có thể lấy được.

Một trong các phương pháp tiếp cận vũ phu là sử dụng giải mã mã hóa của Android để mã hóa dữ liệu ý định, có cách nào tốt hơn để đạt được điều tương tự không ??

Xin cảm ơn trước.

Trả lời

0

Tôi đoán là nếu bạn sử dụng một mục đích rõ ràng, tức là chỉ định lớp mà mục đích sẽ được gửi đến, thì không có lớp nào khác có thể chặn ý định đó và xem dữ liệu của nó.
Tuy nhiên, phương pháp này có thể thất bại nếu tên lớp trong ứng dụng mà bạn đang cố gắng gửi thông tin đến các thay đổi.

0

Nếu mục đích chỉ định mục tiêu, là một phần của gói ứng dụng của người gửi, thì các ứng dụng khác sẽ không có cơ hội chụp, nó sẽ được gửi đến người nhận dự định.

Mặt khác, nếu bạn gửi ý định đến một ứng dụng khác, không có người bảo lãnh rằng người nhận mục đích sẽ là triển khai mà bạn mong đợi: nếu bạn gửi ý định của mình đến com.mycompany.security.SecureReceiver, nhưng thay vì ứng dụng của bạn, một ứng dụng khác được cài đặt với mô tả lớp đã cho, hơn bạn sẽ gửi ý định của bạn đến ứng dụng đó.

Android cũng là một hệ thống mở. Nếu ai đó biên dịch khuôn khổ ứng dụng của riêng mình, thì anh ta có thể thao tác hệ thống phân phối Intent.

Bạn có muốn bảo vệ dữ liệu của mình khỏi người dùng hoặc từ các ứng dụng độc hại không?

5

Như đã nêu trong các câu trả lời khác, mặc dù bạn có thể gửi Ý định đến một Hoạt động hoàn toàn đủ điều kiện, không có gì ngăn người khác tạo một ứng dụng với cùng một gói.

Bạn có thể muốn thêm một bước bảo mật bổ sung cho chương trình này:

  • đầu tiên gửi một 'Thách thức' ý định hoạt động từ xa (nó nên, ví dụ crypt một chuỗi ngẫu nhiên mà bạn cung cấp sử dụng một chia sẻ cụm từ mật khẩu và gửi lại cho bạn)

  • Nếu bước bảo mật đầu tiên đó là ok, bạn có thể tự do gửi tin nhắn không được mã hóa đến ứng dụng từ xa này bằng cách sử dụng hoạt động đầy đủ của nó.

Điều này khá an toàn khi đặt nó có thể đủ cho nhu cầu của bạn.


Hãy xem CommonsWare nhận xét bên dưới.

Một cách an toàn hơn có thể là mã hoạt động của bạn dưới dạng dịch vụ Ràng buộc, giữ bước Thách thức, nhưng bên trong ý nghĩa truyền thông riêng tư hơn.

+3

"không có gì ngăn người khác tạo ứng dụng với cùng một gói" - lưu ý rằng không thể cài đặt hai ứng dụng trên cùng một thiết bị cùng lúc với cùng một gói.Điều đó đang được nói, quan điểm của bạn rất hợp lệ, vì cả hai bên của kênh truyền thông đều có thể bị giả mạo bởi một sự thay thế. Chưa kể rằng tất cả các tính năng bổ sung 'Intent' được hiển thị cho tất cả các ứng dụng cho' Intents' được sử dụng với 'startActivity()' (http://commonsware.com/blog/2011/06/30/warning-activity-intent-extras- public.html). – CommonsWare

+0

Wow Tôi không biết điều này, nhờ liên kết. Có lẽ bạn có thể giải quyết vấn đề này bằng cách ngăn hoạt động của bạn xuất hiện trong danh sáchTasks gần đây bằng cách sử dụng các cờ phải không? (hoặc sử dụng dịch vụ _bound_ thay thế) –

+0

AFAIK, không có cách nào để chặn dữ liệu được truyền qua dịch vụ bị ràng buộc sử dụng AIDL. Vẫn còn vấn đề nảy sinh một số cơ chế để ngăn chặn một bên bị thay thế bởi một ứng dụng khác giả mạo các liên lạc. – CommonsWare

Các vấn đề liên quan