Защищены ли с помощью HTTPS URL-адрес и заголовки запроса как тело запроса? - PullRequest
29 голосов
/ 14 января 2012

Просто хочу проверить, при создании SSL-соединения (http post) сказать:

https://www.example.com/some/path?customer_key=123123123

Если вы не хотите, чтобы кто-то знал о customer_key, этот подход не сработает, даже если я установлю правильное соединение https?

Все данные, которые я хочу защитить, должны быть в теле запроса, верно?

Ответы [ 5 ]

36 голосов
/ 14 января 2012

Цитирование HTTPS RFC :

Когда рукопожатие TLS закончилось. Затем клиент может инициировать первый HTTP-запрос. Все данные HTTP ДОЛЖНЫ быть отправлены как приложение TLS данные».

По сути, сначала устанавливается безопасный канал SSL / TLS. Только тогда используется протокол HTTP. Это защитит весь трафик HTTP с помощью SSL, включая заголовки HTTP (которые содержат URL-адрес и файлы cookie).

Что может быть видно в рукопожатии, так это само имя хоста, так как оно содержится в сертификате сервера, которое будет ясно видно в рукопожатии (и зачастую легко угадать имя хоста, смотря на IP-адрес назначения в любом случае). ).

При использовании индикации имени сервера запрошенное имя хоста также должно отображаться в расширении server_name в сообщении ClientHello. В противном случае может быть некоторая двусмысленность (для подслушивающего устройства), позволяющая угадать имя хоста из сертификата, если сертификат действителен для нескольких имен хостов (например, несколько дополнительных имен или подстановочных знаков субъекта). В этом случае прослушивание DNS-запроса от клиента может дать злоумышленнику ключ к разгадке.

Чтение ответов и комментариев других людей, некоторые упоминают проблемы с Referer (потеряли r в спецификации) и журналы.

Одним из оставшихся потенциальных слабых мест является как вы даете эту ссылку пользователю. Если он встроен в веб-страницу, обслуживаемую по обычному HTTP, любой, кто сможет прочитать эту страницу, сможет ее увидеть. Вы должны обслуживать такую ​​страницу и по HTTPS. Если вы отправите эту ссылку по электронной почте, я бы сказал, что все ставки отключены, поскольку почтовые серверы редко шифруют соединения между собой и пользователями, а также часто получают доступ к своей учетной записи электронной почты без какого-либо шифрования.

EDIT:

Кроме того, если вы используете аутентификацию по сертификату клиента, сертификат клиента будет виден, если он был согласован во время первоначального рукопожатия. Это может привести к утечке имени пользователя, обращающегося к веб-сайту (часто DN субъекта содержат имя пользователя). Сертификат клиента не будет виден, если он будет отправлен во время повторного согласования рукопожатия.

7 голосов
/ 14 января 2012

Только www.example.com будет виден злоумышленникам. Раздел пути запроса защищен SSL / TLS.

Очевидно, что вам также необходимо отправить оригинальную гиперссылку по HTTPS.

3 голосов
/ 14 января 2012

Данные запроса будут отправлены после установления безопасного соединения, поэтому не беспокойтесь о вышеуказанном URL-адресе, но помните, что ваши данные не зашифрованы, шифруется только канал между сервером и клиентом, если кто-то может взломать этот канал, то сможет ясно увидеть ваши данные,

SSL - это зашифрованный канал-обертка поверх ваших данных.Если данные простые, любой, кто сможет взломать SSL, сможет ясно увидеть ваши данные.

1 голос
/ 14 января 2012

Пересмотр моего ответа на НЕТ! По-видимому, перед установлением SSL-соединения передается только имя хоста в виде открытого текста.

http://answers.google.com/answers/threadview/id/758002.html

0 голосов
/ 14 января 2012

Это зависит ..

Если вы используете анализатор пакетов, вы не сможете увидеть данные, отправленные по проводам.Основная проблема этого подхода заключается в том, что URL-адрес запроса часто сохраняется в журнале сервера в виде простого текста, в истории браузера сохраняется URL-адрес, URL-адреса передаются в заголовках Referrer и, возможно, сохраняются сторонними службами (Google Analytics).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...