Заголовки запросов REST зашифрованы с помощью SSL? - PullRequest
41 голосов
/ 16 сентября 2008

Я разрабатываю клиент-серверное приложение, которое будет общаться через отдых. Некоторые пользовательские данные запроса будут храниться в заголовке запроса. И сервер, отправляющий запрос, и сервер-получатель имеют сертификат SSL - будут ли зашифрованы заголовки или только содержимое?

Ответы [ 8 ]

57 голосов
/ 16 сентября 2008

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

Кстати, если вы разрабатываете сетевые приложения и заботитесь о безопасности данных, по крайней мере, вам следует прочитать книгу Нильса Фергюсона и Брюса Шнайера «Практическая криптография», и, возможно, дальнейшее чтение, которое в большей степени сосредоточено на безопасности веб-приложений, будь хорошей идеей Если я могу сделать замечание - и, пожалуйста, я не имею в виду это как личную критику - ваш вопрос указывает на фундаментальное непонимание базовых технологий веб-безопасности, и это никогда не является хорошим признаком.

Кроме того, никогда не бывает плохой идеей подтвердить, что данные, которые должны быть зашифрованы, действительно зашифрованы. Вы можете использовать сетевой анализатор для отслеживания трафика по проводам и следить за тем, чтобы что-нибудь чувствительное отправлялось в открытом виде. Я использовал Wireshark, чтобы сделать это раньше - иногда результаты могут быть удивительными.

6 голосов
/ 16 сентября 2008

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

5 голосов
/ 16 сентября 2008

Заголовки и содержимое зашифрованы.

3 голосов
/ 16 сентября 2008

Вы, кажется, думаете, что REST - это отдельный протокол.

REST не является протоколом. Это стиль разработки для приложений на основе HTTP.

Итак, вы пишете HTTP-приложение. Заголовки зашифрованы? Да, если вы используете протокол HTTPS (HTTP через SSL) вместо простого HTTP.

Наличие сертификатов на обеих сторонах не имеет прямого отношения к вашему вопросу. SSL-сертификаты используются для аутентификации. Они помогают в обнаружении атак типа «человек посередине», которые возможны при отравлении кэша DNS.

2 голосов
/ 16 сентября 2008

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

И да, заголовки HTTP шифруются так же, как и данные.

0 голосов
/ 25 апреля 2012

Не все зашифровано: строка запроса не зашифрована. Поверьте мне, я видел такие запросы:

https://mydomain.com/authenticate?user=username&password=MyStrongPasswordSentInTheClear

Пожалуйста, не помещайте конфиденциальные данные в качестве параметров в строке запроса.

0 голосов
/ 18 сентября 2008

Другие ответы верны: заголовки действительно шифруются вместе с телом при использовании SSL. Но имейте в виду, что URL-адрес, который может содержать параметры запроса, никогда не шифруется. Поэтому будьте осторожны, чтобы никогда не помещать конфиденциальную информацию в параметры запроса URL.

Обновление: , как @blowdart указал ниже, это неправильно. Смотрите комментарий ниже.

0 голосов
/ 16 сентября 2008

SSL ... или, скорее, HTTPS (HTTP через SSL) отправляет весь HTTP-контент по SSL, а поскольку HTTP-контент и заголовки фактически одно и то же, это означает, что заголовки также зашифрованы. Поскольку данные GET и POST отправляются через заголовки HTTP, тогда имеет смысл только тогда, когда при безопасной отправке данных вы не захотите просто зашифровать код ответа или контент.

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