Câu hỏi này là về việc tìm hiểu các rủi ro bảo mật liên quan đến việc triển khai oauth trên nền tảng di động như Android. Giả định ở đây là chúng ta có một ứng dụng Android có khóa/mật khẩu người tiêu dùng được nhúng trong mã.Làm cách nào để giữ bí mật người dùng OAuth và cách phản ứng khi bị xâm nhập?
Giả sử bí mật của người tiêu dùng đã bị xâm phạm và tin tặc đã nắm giữ nó, hậu quả của việc này là gì?
giả địnhxâm Bí mật người dùng
Tôi thích hợp trong tuyên bố rằng một mật của người dùng bị tổn thương như vậy không ảnh hưởng đến an ninh của người dùng, hoặc bất kỳ dữ liệu được lưu trữ tại các nhà cung cấp cho phép OAuth mà người dùng đã tương tác với. Bản thân dữ liệu không bị xâm nhập và hacker không thể truy lục dữ liệu.
Hacker sẽ cần giữ mã thông báo truy cập người dùng hợp lệ và điều đó khó khăn hơn nhiều.
Tin tặc có thể làm gì với bí mật của người tiêu dùng bị xâm phạm?
Tôi cũng đúng trong đó nêu như sau:
- Các hacker có thể thiết lập/phát hành một ứng dụng mà bắt chước ứng dụng của tôi.
- Tin tặc có thể thu hút người dùng sẽ truy cập thông qua luồng OAuth, truy xuất mã thông báo truy cập qua tin tặc OAuth khiêu vũ (sử dụng khóa/bí mật của người tiêu dùng bị xâm nhập ).
- Người dùng có thể nghĩ rằng anh ấy đang xử lý ứng dụng của tôi, vì anh ta sẽ xem tên quen thuộc (khóa người dùng) trong quá trình ủy quyền.
- Khi một người tiêu dùng đưa ra một yêu cầu qua các hacker, các hacker có thể dễ dàng đánh chặn access token, và kết hợp với bí quyết của người tiêu dùng có thể tại ký yêu cầu thay mặt tôi để tăng quyền truy cập vào các nguồn tài nguyên của tôi.
End-user tác động
Trong giả định rằng
- một hacker đã cài đặt một ứng dụng/ trang web sử dụng của người tiêu dùng của tôi bí mật
- một trong những người dùng của tôi đã bị lừa vào phép truy cập vào ứng dụng/trang web đó
Theo dõi g có thể xảy ra:
- người dùng cuối có thể là nhận thấy rằng một cái gì đó tanh đang xảy ra, và thông báo cho nhà cung cấp dịch vụ (ví dụ: Google) về ứng dụng độc hại
- cung cấp dịch vụ thì có thể thu hồi chìa khóa tiêu dùng/bí mật
OAuth tiêu dùng (ứng dụng của tôi) tác động:
ứng dụng của tôi (có chứa các bí mật của người tiêu dùng) sẽ cần phải được cập nhật, nếu không tất cả các khách hàng của tôi sẽ không thể cho phép ứng dụng của tôi làm gì để yêu cầu thay mặt họ nữa (vì bí mật người tiêu dùng của tôi sẽ không còn hợp lệ nữa).
ủy thác tất cả giao thông OAuth
Mặc dù nó sẽ có thể để ủy thác rất nhiều sự tương tác OAuth thông qua một máy chủ web trung gian (thực hiện điệu nhảy OAuth và gửi thẻ truy cập cho người dùng), người ta sẽ có để proxy tất cả tương tác dịch vụ cũng như yêu cầu khóa/bí mật của người tiêu dùng để ký từng yêu cầu. Đây có phải là cách duy nhất để giữ bí mật/khóa người dùng bên ngoài ứng dụng dành cho thiết bị di động và được lưu trữ ở một nơi an toàn hơn trên máy chủ web trung gian không?
Giải pháp thay thế
Có các lựa chọn thay thế cho proxy này không? Có thể lưu trữ bí mật của người tiêu dùng tại máy chủ web trung gian hay không và có một số loại cơ chế mà ứng dụng Android (xuất bản trên thị trường và được ký hợp đồng), có thể thực hiện yêu cầu an toàn tới máy chủ web trung gian để tìm bí mật người tiêu dùng và lưu trữ nó trong ứng dụng? Cơ chế có thể được thực hiện là máy chủ web trung gian "biết" rằng đây là ứng dụng Android chính thức yêu cầu tìm nạp bí mật của người tiêu dùng và máy chủ web trung gian sẽ chỉ tiết lộ bí mật của người tiêu dùng cho ứng dụng android cụ thể đó không?
Tôi đã chỉnh sửa câu hỏi một chút. Tôi muốn chắc chắn rằng những giả định mà tôi đưa ra trong câu hỏi là chính xác. Tôi cũng không muốn tránh sự bất tiện đối với người dùng. Vì vậy, tôi thấy 2 tùy chọn. 1. chỉ chấp nhận rủi ro, giữ bí mật trong mã và làm một số obfuscation. hoặc 2. làm proxy-ing và giữ bí mật trên máy chủ web, nơi tôi khá chắc chắn nó sẽ không bị tổn hại. Đó có phải là một kết luận hợp lý không? – ddewaele
Cảm ơn rất nhiều vì đã trả lời cập nhật! – ddewaele
Tôi có một câu hỏi về điều này. Tại sao bạn nói nó không thể thấy rằng mã gọi là một trong những bạn đã viết. Không phải bạn chỉ cần gửi một số mã thông báo được liên kết với chữ ký ứng dụng của bạn mà lần lượt được liên kết với chứng chỉ của bạn. Chỉ các ứng dụng của bạn được ký bằng chứng chỉ của bạn và tệp này vẫn được giữ riêng tư. – PSIXO