Các bên thứ ba có thể đọc URL khi duyệt qua HTTPS không?


32

Chúng ta đều biết rằng HTTPS mã hóa kết nối giữa máy tính và máy chủ để bên thứ ba không thể xem được. Tuy nhiên, ISP hoặc bên thứ ba có thể thấy liên kết chính xác của trang mà người dùng đã truy cập không?

Ví dụ, tôi đến thăm

https://www.website.com/data/abc.html

ISP sẽ biết rằng tôi đã truy cập * / data / abc.html hay chỉ biết rằng tôi đã truy cập IP của www.website.com?

Nếu họ biết, thì tại sao Wikipedia và Google có HTTPS khi ai đó chỉ cần đọc nhật ký internet và tìm ra nội dung chính xác mà người dùng đã xem?


7
Gợi ý: Nếu bạn không đăng ký tài khoản của mình, hãy truy cập địa điểm này từ nhiều IP khác nhau và không giữ cookie của bạn, việc tham gia Siêu người dùng sẽ bị phân mảnh một chút, điều đó có nghĩa là bạn thậm chí không thể chấp nhận câu trả lời trên các bài đăng của riêng mình hoặc thêm ý kiến. Tôi rất khuyên bạn nên đăng ký một tài khoản ở đây.
slhck

Câu trả lời:


48

Từ trái sang phải:

Các lược đồ https: , rõ ràng, được giải thích bởi trình duyệt.

Các tên miền www.website.com đã được giải quyết đến một địa chỉ IP sử dụng DNS. ISP của bạn sẽ thấy yêu cầu DNS cho tên miền này và phản hồi.

Đường dẫn /data/abc.html được gửi trong yêu cầu HTTP. Nếu bạn sử dụng HTTPS, nó sẽ được mã hóa cùng với phần còn lại của yêu cầu và phản hồi HTTP.

Chuỗi truy vấn ?this=that , nếu có trong URL, được gửi trong yêu cầu HTTP - cùng với đường dẫn. Vì vậy, nó cũng được mã hóa.

Các mảnh vỡ #there , nếu có, không được gửi bất cứ nơi nào - nó giải thích bởi trình duyệt (đôi khi bởi JavaScript trên trang trả lại).


3
Bạn đã quên rằng các trình duyệt hiện đại hỗ trợ SNI thông báo tên máy chủ bằng văn bản thuần ngay cả đối với các yêu cầu HTTPS.
Monstieur

9
@Kurian: Điều này ít quan trọng, vì tên máy chủ đã được "công bố" bởi DNS.
grawity

2
@Kurian: địa chỉ IP có thể được lấy bằng các phương tiện khác, nhưng trên thực tế hiếm khi có. Và nhìn vào một giao thức đơn lẻ mà không xem xét cách nó thực sự được sử dụng dễ bị bỏ lỡ các phần quan trọng.
Joachim Sauer

Tôi không biết liệu Tor có sử dụng cùng một nút thoát để phân giải tên và thiết lập kết nối HTTPS thực tế hay các kết nối khác nhau hay không. Nếu nó sử dụng các nút riêng biệt, thì đó vẫn là nơi duy nhất SNI quan trọng.
grawity

13

ISP sẽ chỉ biết bạn đã truy cập địa chỉ IP được liên kết với www.website.com(và có thể URL nếu bạn đang sử dụng DNS của họ và họ đang tìm kiếm lưu lượng truy cập cụ thể - nếu truy vấn DNS không đi qua mà họ sẽ không thấy điều đó).

(Chịu đựng tôi một chút ở đây - Tôi có câu trả lời.)

Cách thức hoạt động của giao thức HTTP là kết nối với một cổng (thường là cổng 80) và sau đó trình duyệt web truyền thông trang nào nó muốn đến máy chủ - Một yêu cầu đơn giản để tra cứu http://www.sitename.com/url/of/site.htmlsẽ có các dòng sau:

NHẬN /url/of/site.html HTTP / 1.1
máy chủ lưu trữ: www.sitename.com

HTTPS thực hiện chính xác điều tương tự ngoại trừ cổng 443 - nó bao bọc toàn bộ phiên TCP (nghĩa là mọi thứ bạn thấy trong đoạn trích dẫn ở trên cộng với phản hồi) vào phiên mã hóa SSL - vì vậy ISP không thấy bất kỳ lưu lượng nào ( nhưng họ có thể suy luận điều gì đó dựa trên kích thước của trang web và tra cứu DNS để giải quyết www.sitename.comđịa chỉ IP trong trường hợp đầu tiên).

Tất nhiên, nếu có "lỗi web" được nhúng trong trang, điều này có thể cung cấp cho "đối tác" của nhà phân phối thông tin gợi ý về những gì bạn đang xem và bạn là ai - tương tự, nếu chuỗi tin cậy của bạn bị phá vỡ, ISP có thể thực hiện một cuộc tấn công giữa chừng. Lý do tại sao bạn có thể có mã hóa đầu cuối riêng tư, theo lý thuyết, là vì chứng chỉ CA được phân phối với trình duyệt của bạn. Nếu một ISP hoặc chính phủ có thể thêm chứng chỉ CA hoặc thỏa hiệp CA - và cả hai đã xảy ra trong quá khứ - bạn sẽ mất bảo mật. Tôi tin rằng Bức tường lửa vĩ đại của Trung Quốc thực hiện các cuộc tấn công Man-In-The-Middle một cách hiệu quả để đọc dữ liệu HTTPS, nhưng đã được một thời gian kể từ khi tôi ở đó.

Bạn có thể tự kiểm tra điều này đủ dễ dàng bằng cách lấy một phần mềm sẽ đánh hơi lưu lượng truy cập vào và rời khỏi máy tính của bạn. Tôi tin rằng một phần mềm miễn phí có tên Wireshark sẽ làm điều này cho bạn.


0

Tôi không chắc đây là bình luận hay câu trả lời xứng đáng, nhưng tôi muốn chia sẻ một phụ lục.

Các câu trả lời ở đây cho thấy những gì sẽ xảy ra. Câu hỏi đặt ra là có thể các url được read.The câu trả lời cho rằng là có, mặc dù nó là tương đối khó xảy ra.

Kẻ tấn công (bên thứ ba) hoàn toàn có thể chặn lưu lượng https của bạn và đọc tất cả các yêu cầu của bạn trong các trường hợp cụ thể. Để tìm hiểu thêm, tôi đã mời bạn đọc MITM cũng như SSLStrip . Tôi có thể đi sâu vào vấn đề này hơn nếu cần thiết để hiểu.

Bạn không nên hy vọng ISP của bạn sẽ làm điều này bởi vì điều đó làm lãng phí băng thông của họ nhưng cũng vì họ sẽ mất nhiều hơn nếu bạn tìm hiểu và khởi kiện. Tuy nhiên, câu trả lời chính xác hơn cho câu hỏi của bạn Điều này có thể được thực hiện? là có, mặc dù không chắc ai sẽ quan tâm đủ để xem những gì bạn đang googling hoặc wiki-ing.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.