Ответ 1
Цитирование HTTPS RFC:
Когда завершено квитирование TLS. Затем клиент может инициировать первый HTTP-запрос. Все HTTP-данные ДОЛЖНЫ быть отправлены как приложение TLS данные".
По существу, сначала устанавливается безопасный канал SSL/TLS. Только тогда используется HTTP-протокол. Это защитит весь HTTP-трафик с помощью SSL, включая заголовки HTTP (которые содержат URL-адрес и файлы cookie).
То, что может быть видно в рукопожатии, - это имя хоста, поскольку оно содержится в сертификате сервера, который будет видимым в рукопожатии (и часто бывает легко угадать имя хоста, все равно глядя на целевой IP-адрес).
При использовании имени имени сервера имя запрашиваемого хоста также должно быть видимым в расширении server_name
в сообщении ClientHello
.
В противном случае может быть немного двусмысленности (для подслушивающего устройства), чтобы угадать имя хоста из сертификата, если сертификат действителен для нескольких имен узлов (например, несколько объектов Alt. Имена или подстановочные знаки). В этом случае подслушивание запроса DNS от клиента может дать злоумышленнику ключ.
Читайте ответы других пользователей и комментарии, некоторые упоминают о проблемах Referer
(потерял r
в спецификации) и журналы.
- Отправляющие не должны отправляться при переходе с HTTPS на HTTP (но они часто отправляются при переходе с одного сайта HTTPS на другой сайт HTTPS).
- Об истории: вам просто нужно доверять тому, кто может потенциально получить этот ключ законно (т.е. ваши пользователи), чтобы не распространять его. Если необходимо, попробуйте изменить его время от времени.
- О журналах: Я предполагал, что вы после защиты по сети. URL (включая запрос) будет действительно в журналах, но если кто-то сможет атаковать ваш компьютер, чтобы получить журналы, вам больше нужно беспокоиться о том, что ваши ключи приложения.
Один из оставшихся потенциальных слабых мест - это то, как вы предоставляете эту ссылку пользователю. Если он встроен в веб-страницу, обслуживаемую простым HTTP, любой, кто может прочитать эту страницу, сможет ее увидеть. Вы также должны обслуживать такую страницу через HTTPS. Если вы отправляете эту ссылку по электронной почте, я бы сказал, что все ставки отключены, поскольку почтовые серверы редко шифруют соединения между собой и пользователями, а также часто получают доступ к своей учетной записи электронной почты без какого-либо шифрования.
EDIT:
Кроме того, если вы используете аутентификацию клиентского сертификата, сертификат клиента будет виден, если он будет согласован во время первоначального подтверждения. Это может привести к утечке имени пользователя, обратившегося к веб-сайту (часто Subject DN содержат имя пользователя). Сертификат клиента не будет отображаться, если он отправлен во время согласованного подтверждения.