Чи можна прочитати URL-адресу третьою стороною під час перегляду HTTPS?


32

Всі ми знаємо, що HTTPS шифрує зв’язок між комп'ютером та сервером, щоб його не могли переглядати треті сторони. Однак чи може Інтернет-провайдер або третя сторона бачити точне посилання сторінки, до якої користувач отримав доступ?

Наприклад, я відвідую

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

Чи дізнається провайдер про те, що я отримував доступ * / data / abc.html, або просто дізнається, що я відвідав IP-адресу www.website.com?

Якщо вони знають, то чому у Вікіпедії та Google є HTTPS, коли хтось може просто прочитати Інтернет-журнали та дізнатися точний вміст, який переглядав користувач?


7
Підказка: Якщо ви не зареєструєте свій обліковий запис, відвідайте це місце з різних IP-адрес і не зберігайте файли cookie, участь у Super User буде трохи… фрагментарним, а це означає, що ви навіть не можете приймати відповіді на свої власні повідомлення або додати коментарі. Я настійно пропоную вам зареєструвати тут рахунок.
slhck

Відповіді:


48

Зліва направо:

Схема https: , очевидно, інтерпретується браузером.

Ім’я домену www.website.com дозволено до IP-адреси за допомогою DNS. Ваш Інтернет-провайдер побачить запит DNS для цього домену та відповідь.

Шлях /data/abc.html відправляється в запиті HTTP. Якщо ви використовуєте HTTPS, він буде зашифрований разом із рештою HTTP-запиту та відповіді.

Рядок запиту ?this=that , якщо він присутній у URL-адресі, надсилається у HTTP-запиті разом із шляхом. Так що це також зашифровано.

Фрагмент #there , якщо присутній, не передається в будь-якому місці - це інтерпретується браузером (іноді JavaScript на яку повертатимуть сторінці).


3
Ви забули, що сучасні браузери, які підтримують SNI, оголошують ім'я хоста простим текстом навіть для HTTPS-запитів.
Монсьє

9
@Kurian: Що мало важливо, оскільки DNS вже "оголосив" ім'я хоста.
grawity

2
@Kurian: IP-адресу можна отримати іншими способами, але на практиці це рідко. І дивлячись на єдиний протокол ізольовано, не враховуючи, як він насправді використовується, схильний пропускати важливі частини.
Йоахім Зауер

Я не знаю, чи Tor використовує той самий вузол виходу для вирішення імен та встановлення фактичного HTTPS-з'єднання, або різні. Якщо він використовує окремі вузли, то це все ще є єдиним місцем, де SNI має значення.
grawity

13

Інтернет-провайдер дізнається лише, що ви відвідали IP-адресу, пов’язану з цим www.website.com(і, можливо, URL-адресою, якщо ви використовуєте їх DNS, і вони спеціально шукають трафік - якщо запит DNS не пройде, він цього не побачить).

(Потерпіть зі мною трохи тут - я дістаюсь до відповіді.)

Те, як працює протокол HTTP, полягає в підключенні до порту (як правило, порт 80), а потім веб-браузер повідомляє, яку сторінку хоче отримати до сервера. Простий запит на пошук http://www.sitename.com/url/of/site.htmlповинен мати такі рядки:

GET /url/of/site.html HTTP / 1.1
хост: www.sitename.com

HTTPS робить саме те ж саме, за винятком порту 443 - і він обгортає весь сеанс TCP (тобто все, що ви бачите в цитованому біті вище плюс відповідь) в зашифрований SSL сеанс - тому провайдер не бачить жодного трафіку ( але вони можуть зробити висновок про щось залежно від розміру веб-сайту та пошуку DNS для вирішення www.sitename.comпершої інстанції до IP-адреси).

Звичайно, якщо на сторінці вбудовані "веб-помилки", це може дати "партнерам" розповсюджувачів інформації підказки про те, що ви переглядаєте та хто ви такі - також, якщо ваша ланцюжок довіри порушена, провайдер може працювати атака чоловіка в середині. Причина, чому ви можете мати приватне шифрування в кінці, теоретично, через те, що сертифікати CA розповсюджуються у вашому браузері. Якщо Інтернет-провайдер або уряд можуть або додати сертифікат сертифіката ЦС, або поставити під загрозу ЦА - і те і інше траплялося в минулому - ви втрачаєте свою безпеку. Я вважаю, що Великий Брандмауер Китаю ефективно робить атаки "Людина в середині", щоб прочитати дані HTTPS, але пройшов деякий час, як я був там.

Ви можете перевірити це досить легко самостійно, отримавши частину програмного забезпечення, яке буде нюхати трафік, що входить і залишає ваш комп'ютер. Я вірю, що безкоштовна частина програмного забезпечення під назвою Wireshark зробить це за вас.


0

Я не впевнений, чи це коментар чи відповідь гідний, але я хотів би поділитися одним доповненням.

Відповіді тут показують, що має статися. Питання в тому, чи можна читати URL-адресу. Відповідь на це - так, хоча це малоймовірно.

Зловмисник (сторона) може абсолютно перехопити ваш трафік https та прочитати всі ваші запити в конкретних випадках. Щоб дізнатися більше, я б запропонував вам прочитати MITM , а також SSLStrip . Я можу зайнятися цим більше, якщо потрібно для розуміння.

Ви не повинні сподіватися, що ваш Інтернет-провайдер буде робити це і тому, що це марно їх пропускну здатність, а також тому, що вони мають більше втратити, якщо ви дізнаєтесь і подали до суду. Однак більш точна відповідь на ваше запитання Чи можна це зробити? так, хоча навряд чи комусь буде достатньо подбати, щоб побачити, що ви гуглите чи вікі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.