it-swarm-vi.com

Các URL được xem trong các giao dịch HTTPS đến một hoặc nhiều trang web từ một IP có thể phân biệt được không?

Ví dụ: giả sử các URL HTTPS sau đây cho hai trang web trong một IP trong 5 phút: "A.com/1", "A.com/2", "A.com/3", "B.com/1" , "B.com/2".

Sẽ giám sát các gói tiết lộ:

  • không có gì,
  • chỉ tiết lộ IP đã truy cập "A.com" và "B.com" (nghĩa là chỉ DNS),
  • chỉ tiết lộ IP đã truy cập "A.com/1" và "B.com/1" (yêu cầu HTTPS đầu tiên cho mỗi trang web),
  • tiết lộ danh sách đầy đủ tất cả các URL HTTPS đã truy cập,
  • chỉ tiết lộ IP của "A.com" và "B.com",
  • hay cái gì khác?

Câu hỏi liên quan: công ty của tôi có thể xem trang web HTTPS nào tôi đã truy cập không?

Mặc dù câu hỏi này có thêm thông tin, nhưng theo như tôi có thể nói thì không đề cập cụ thể đến kịch bản "chỉ tiết lộ IP đã truy cập" A.com/1 "và" B.com/1 "(lần đầu tiên Yêu cầu HTTPS cho mỗi trang web) "- mặc dù khả năng sai về vấn đề này rất cao và rất vui khi xóa câu hỏi nếu đó là một bản sao.


LƯU Ý: Đây là câu hỏi tiếp theo cho một câu trả lời được đăng lên thành: Tại sao HTTPS không phải là giao thức mặc định?

69
blunders

TLS tiết lộ cho kẻ nghe trộm thông tin sau:

  • trang web mà bạn đang liên hệ
  • độ dài (có thể gần đúng) của phần còn lại của URL
  • độ dài (có thể gần đúng) của HTML của trang bạn đã truy cập (giả sử nó không được lưu trong bộ nhớ cache)
  • số lượng (có thể gần đúng) của các tài nguyên khác (ví dụ: hình ảnh, iframe, biểu định kiểu CSS, v.v.) trên trang mà bạn đã truy cập (giả sử chúng không được lưu trong bộ nhớ cache)
  • thời gian mà mỗi gói được gửi và mỗi kết nối được bắt đầu. (@nealmcb chỉ ra rằng kẻ nghe trộm học a lot về thời gian: thời gian chính xác của mỗi kết nối được bắt đầu, thời lượng kết nối, thời gian mỗi gói được gửi và thời gian Phản hồi đã được gửi, thời gian để máy chủ trả lời từng gói, v.v.)

Nếu bạn tương tác với một trang web bằng cách nhấp vào các liên kết trong chuỗi, kẻ nghe trộm có thể thấy từng liên kết cho mỗi lần nhấp trên trang web. Thông tin này có thể được kết hợp để cố gắng suy ra những trang bạn đang truy cập.

Do đó, trong ví dụ của bạn, TLS chỉ tiết lộ A.com so với B.com, vì trong ví dụ của bạn, phần còn lại của URL có cùng độ dài trong mọi trường hợp. Tuy nhiên, ví dụ của bạn được chọn kém: nó không đại diện cho thực tiễn điển hình trên web. Thông thường, độ dài URL trên một trang web cụ thể khác nhau và do đó tiết lộ thông tin về URL mà bạn đang truy cập. Hơn nữa, độ dài trang và số lượng tài nguyên cũng khác nhau, điều này cho thấy vẫn còn nhiều thông tin.

Đã có nghiên cứu cho thấy những rò rỉ này có thể tiết lộ thông tin đáng kể cho những kẻ nghe trộm về những trang bạn đang truy cập. Do đó, bạn nên không giả sử rằng TLS che giấu những trang bạn đang truy cập từ một kẻ nghe trộm. (Tôi nhận ra điều này là phản trực giác.)


Đã thêm: Dưới đây là trích dẫn của một số nghiên cứu trong tài liệu về phân tích lưu lượng của HTTPS:

81
D.W.

Sự lựa chọn thứ hai. Hầu hết.

Khi trình duyệt truy cập trang web HTTPS, nó sẽ thiết lập một đường hầm TLS , liên quan đến việc trao đổi khóa bất đối xứng (máy khách và máy chủ đồng ý về một bí mật chung). Cơ chế trao đổi khóa đó sử dụng khóa chung của máy chủ, mà máy chủ hiển thị như một phần của chứng chỉ. Chứng chỉ máy chủ chứa tên máy chủ (ví dụ: A.com) và ứng dụng khách xác minh rằng tên đó khớp với tên mà nó mong đợi (nghĩa là tên máy chủ trong URL). Chứng chỉ máy chủ được gửi, gây tử vong, trước trao đổi khóa, do đó ở chế độ xem đơn giản.

Phần còn lại của URL được gửi như một phần của yêu cầu HTTP xảy ra trong đường hầm được mã hóa, do đó vô hình với các bên thứ ba. Một đường hầm nhất định có thể được sử dụng lại cho một số yêu cầu HTTP khác, nhưng (bằng cách xây dựng) chúng đều dành cho cùng một máy chủ (cùng tên miền).

20
Thomas Pornin