2013-01-12 18 views
7

Trong trợ cấp ngầm định, mã thông báo truy cập được gửi trở lại trong URL gọi lại. Đây không phải là một nguy cơ bảo mật bởi vì, nếu URL gọi lại này được lưu trữ trong hop. Nói chung, chúng tôi khuyên bạn không nên gửi dữ liệu nhạy cảm trong thông số URL và mã thông báo truy cập này sẽ là mã thông báo để truy cập tất cả tài nguyên người dùng được bảo mật. Vì vậy, tại sao nó được chuyển thành mảnh trong URLKhoản Trợ cấp Ima ngầm 2.0 Oauth an toàn là bao nhiêu?

Trả lời

2

Xây dựng ứng phó @ Vlatko của ...

Để giảm thiểu nguy cơ gửi token trong đoạn (hoặc thông qua bất kỳ cấp OAuth2 khác):

Phát hành mã thông báo truy cập ngắn (như @ vlatko đã nói) sẽ làm giảm tác động của mã thông báo bị rò rỉ, nhưng không phải là biện pháp phòng ngừa.

+1

Ngay cả khi access token được gửi qua https, vì nó là một đoạn, nó sẽ không thể cho các máy chủ hop trung gian trong mạng để đánh hơi nó. – Karthik

+0

Ý của bạn là ngay cả khi được gửi qua http? – codeprogression

+0

Nếu chúng tôi giả định Oauth Server là X và máy khách yêu cầu quyền truy cập là Y. Sau đó, ngay cả khi mã thông báo truy cập được gửi dưới dạng phân đoạn trong https, từ X sang Y, các máy trung gian trong mạng www từ X đến Y có thể đọc mã thông báo truy cập này (tức là: nghe lén trên tham số truy vấn https/phân đoạn là, dễ dàng như nghe trộm một tham số truy vấn http/phân đoạn). Chỉ dữ liệu trong cơ thể HTTP được mã hóa trong trường hợp https. – Karthik

2

Giống như bạn đã chỉ ra, mã thông báo được chuyển đoạn URI. Vì các trình duyệt không gửi các đoạn URL đến các máy chủ HTTP, cơ hội mà ai đó sẽ nghe trộm và nhận mã thông báo truy cập sẽ giảm đáng kể.

Ngoài ra còn có các biện pháp bảo mật bổ sung, như chỉ phát hành mã thông báo truy cập tạm thời ngắn trong luồng tài trợ tiềm ẩn.

Thông tin khác trong OAuth2 threat models document.

+0

Ngay cả khi access token được gửi qua https, vì một mảnh của nó, nó sẽ không thể cho các máy chủ hop trung gian trong mạng để sniff nó – Karthik

5

Hmmm, tôi sợ có một số hiểu lầm trong các câu trả lời ở trên. Mặc dù chuỗi truy vấn URL được bảo mật khi sử dụng TLS và do đó mã thông báo truy cập được bảo vệ trong chuyến bay, nó được hiển thị trong trình duyệt của người dùng (một phần lịch sử của họ) và cũng trong nhật ký trình duyệt web đích. Hầu hết các trình duyệt web sẽ ghi lại toàn bộ URL của yêu cầu gửi đến. Đây là vấn đề bổ sung được gọi là vấn đề rò rỉ "giới thiệu" trong đó chuỗi truy vấn sẽ được chuyển đến các trang web của bên thứ ba. Một cái nhìn tổng quan tốt có thể được tìm thấy tại địa chỉ:

http://blog.httpwatch.com/2009/02/20/how-secure-are-query-strings-over-https/

+0

vlatko - bạn đúng khi nói rằng đoạn URI có một số thuộc tính đặc biệt và vì vậy, hãy nói đúng các nhận xét ở trên của tôi không áp dụng. Tuy nhiên, đây là một khía cạnh rất mong manh của việc trao đổi tin nhắn - bạn thực sự phụ thuộc vào hành vi cụ thể của trình duyệt trên một trực tiếp để bảo vệ luồng (nó bỏ qua thành phần mảnh của một URI trên trực tiếp).Nếu đoạn URI được chọn ở đâu đó, nó sẽ tạo ra một mã thông báo đa sử dụng cho kẻ tấn công. – user3101375

+0

Bạn hoàn toàn chính xác. Kiểu xác thực này không an toàn theo định nghĩa. –

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