2012-07-05 54 views
11

Công ty tạo một dự án và nhận ID người gửi. Công ty tạo một ứng dụng, đặt cược trong ID người gửi và đặt ứng dụng trong cửa hàng.Bảo mật tin nhắn trên đám mây của Google

Trình thu thập thông tin đảo ngược các kỹ sư ứng dụng và trích xuất cả ID người gửi và giao diện máy chủ được sử dụng để nhận ID đăng ký GCM.

Kẻ tấn công tạo ứng dụng của riêng anh ấy, các phiếu cược trong ID người gửi và giao diện đăng ký máy chủ của Công ty, đặt ứng dụng vào cửa hàng. Ứng dụng tấn công về cơ bản mạo danh ứng dụng thực của Công ty theo GCM: nó đăng ký nhận tin nhắn từ ID người gửi của Công ty và sau đó gửi ID đăng ký GCM của mình tới máy chủ của Công ty giống như ứng dụng "thực".

Bây giờ, Công ty muốn phát một số thông tin cho tất cả các phiên bản của ứng dụng. Có thể đó là lời nhắc hơn là bản cập nhật khả dụng. Có cách nào để phân biệt "ứng dụng tấn công" (đăng ký giống như ứng dụng thực) với các phiên bản "thực" của ứng dụng của Công ty không?

+0

Câu hỏi hay nhưng có lẽ là OT ở đây. – ceving

Trả lời

1

Vấn đề tương tự cũng có thể tồn tại với C2DM, bạn có thể đánh địa chỉ email người gửi thay vì ID dự án cho GCM.

C2DM hoặc GCM, không bao giờ được sử dụng để gửi thông tin người dùng nhạy cảm (tức là tên tài khoản, thông tin cá nhân, v.v.), thông tin này hữu ích cho việc thông báo, ứng dụng thực có thể sử dụng nó để thực hiện các tác vụ khác.

Tôi không thể thấy thông báo hữu ích có thể trở thành ứng dụng 'giả mạo/hack', họ sẽ làm gì với thông báo 'Bạn có thông báo mới'?

+1

bạn có nguồn nào không? – Schiavini

2

tốt, điều này thậm chí có thể hoạt động trong phiên bản gỡ lỗi của ứng dụng kẻ tấn công, nhưng anh không thể đưa ứng dụng của mình vào cửa hàng. một phần của nhận dạng GCM là id ứng dụng cần phải là duy nhất trong cửa hàng.

3

Tôi nghĩ từ kịch bản của bạn, người tấn công không thể gửi tin nhắn cho người dùng ngay cả khi người đó có id đăng ký. Máy chủ công ty gửi các thư mà họ cần để xác thực (OAuth2) có tài khoản đầu tiên thông qua Google. Vì vậy, chỉ khi kẻ tấn công biết mật khẩu của bên gửi và id đăng ký hơn là nó có thể gửi cho người dùng. Nhưng mật khẩu của bên gửi tất nhiên là không bao giờ gửi cho phía khách hàng.

1

ID đăng ký GCM được yêu cầu bởi Google, được yêu cầu từ ứng dụng và được gửi tới máy chủ của bạn. Khi ai đó với một ứng dụng khác (nhưng cùng một ID người gửi) tạo ra một Regid, nó vẫn phải được cam kết với máy chủ, và trước tiên bạn phải gửi một thông điệp đến regid cụ thể đó một cách rõ ràng.

Cài đặt ứng dụng, cho dù hợp pháp hay không, không bao giờ có thể nhận được thư không được ủy quyền. (Cung cấp bạn khai báo và sử dụng phép C2D_MESSAGE)

0

Trên thực tế, google cho phép của bạn đăng ký một khóa Server cho GCM, cho phép bạn trắng-List Server IP cũng ... Vì vậy, bạn nên thêm IP máy chủ của bạn và bạn sẽ được an toàn , vì chỉ máy chủ của bạn mới được phép gửi tin nhắn bằng khóa đó.

0

GCM an toàn trong trường hợp này.
Bạn thậm chí không thể sử dụng ID người gửi trong ứng dụng gốc trước khi đăng ký ứng dụng trong GoogleApiConsole. Điều này có nghĩa là bạn trỏ dấu vân tay khóa riêng tư trong GoogleApiConsole. Đủ rôi.

0

Tôi khuyên bạn nên có "máy chủ tạm thời" của riêng bạn sử dụng khóa API (ID người gửi khi bạn gọi nó). Thay vì nhúng nó vào chính ứng dụng.

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