Нужен ли SSL/TLS при работе с протоколом HTTP?

«Нужен ли SSL/TLS при работе с протоколом HTTP?» — вопрос из категории Тестирование безопасности, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, для работы чистого HTTP SSL/TLS не требуется — это незашифрованный протокол. Однако в современной разработке использование HTTPS (HTTP поверх SSL/TLS) является обязательным best practice.

Проблемы HTTP (без SSL/TLS):

  • Конфиденциальность: все данные (логины, пароли, cookies) передаются в открытом тексте.
  • Целостность: данные могут быть незаметно изменены при передаче (MITM-атака).
  • Аутентичность: нельзя гарантировать, что вы подключены к настоящему серверу.

Пример незащищённого HTTP-запроса (видимого для перехватчика):

POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded

username=admin&password=123456

HTTPS решает эти проблемы, обеспечивая:

  1. Шифрование передаваемых данных.
  2. Целостность данных с помощью кодов аутентификации сообщений (MAC).
  3. Аутентификацию сервера (а иногда и клиента) с помощью цифровых сертификатов.