Разница между HTTP и HTTPS
Когда вы открываете сайт, браузер и сервер обмениваются данными.
Базовый механизм этого Web-обмена — HTTP. А механизм, который делает HTTP-связь безопаснее, — HTTPS.
HTTPS — не просто механизм шифрования содержимого связи. Важно, что он помогает защищаться от чтения, подмены и имитации со стороны третьих лиц на маршруте связи.
В HTTPS особенно важны три вещи:
- сделать содержимое связи труднее читаемым по пути
- сделать подмену содержимого по пути труднее
- облегчить проверку, что другая сторона связи — именно та, с кем вы хотели связаться
То есть HTTPS крайне важен как мера против атак посредника.
Однако HTTPS — не технология анонимизации. Даже при HTTPS запрос доходит до Web-сайта назначения. IP-адрес источника доступа, , состояние входа, журналы доступа и другое остаются отдельными вопросами.
В этой статье объясняется разница HTTP и HTTPS, что HTTPS защищает и что может быть видно даже при HTTPS.
Что такое HTTP
HTTP — правило связи для обмена данными в Web.
Когда вы открываете сайт в браузере, браузер отправляет запрос серверу. Например: «отправьте HTML этой страницы», «хочу получить это изображение».
Сервер возвращает на запрос HTML, изображения, CSS, JavaScript и другие данные.
Механизм такого обмена запросами и ответами между браузером и сервером называется HTTP.
HTTP сам по себе является основой Web-связи. Но в одном HTTP нет механизма защиты содержимого связи.
В HTTP содержимое не шифруется. Поэтому третья сторона на маршруте связи может прочитать содержимое, изменить его или притвориться другой стороной.
| Слабое место HTTP | Описание |
|---|---|
| Слабая защита от чтения | Содержимое не шифруется, поэтому есть риск чтения по пути |
| Слабая защита от подмены | Содержимое страницы или отправляемые данные могут быть изменены по пути |
| Слабая защита от имитации | Труднее проверить, что другая сторона действительно нужный сервер |
Например, если отправить пароль через HTTP-форму входа, пароль может быть виден по пути. Также содержимое HTTP-страницы может быть изменено по пути, и в нее могут вставить фальшивую форму или вредный скрипт.
HTTP — основа Web-связи, но сам по себе имеет серьезные проблемы безопасности.
Что такое HTTPS
HTTPS — механизм, который выполняет HTTP-связь внутри безопасного канала.
Точнее, HTTPS использует HTTP поверх TLS. Детали TLS здесь не рассматриваются, но для понимания HTTPS удобно считать, что содержимое HTTP защищается TLS.
В HTTPS важны три элемента:
| Элемент | Роль | Описание |
|---|---|---|
| Шифрование | Делает содержимое связи труднее читаемым | Не дает третьим лицам по пути прямо читать пароли и формы |
| Обнаружение подмены | Помогает заметить изменение содержимого | Измененные по пути данные труднее принять как правильные |
| Проверка другой стороны | Проверяет, с кем идет связь | Сертификаты помогают проверить, что сервер назначения легитимен |
Сила HTTPS в сочетании этих трех элементов.
Одного шифрования недостаточно. Например, даже если содержимое зашифровано, нельзя считать связь безопасной, если атакующий может выступить фальшивым сервером и подключить пользователя к себе.
Поэтому HTTPS защищает не только содержимое, но и использует механизм проверки, что другая сторона — тот Web-сайт, который был нужен.
Разница HTTP и HTTPS
Разница HTTP и HTTPS — не только в том, начинается ли URL с http[:]// или https[:]//.
В HTTP связь браузера и сервера не защищена. В HTTPS между браузером и сервером создается безопасный канал, и внутри него выполняется HTTP-обмен.
| Пункт | HTTP | HTTPS |
|---|---|---|
| Начало URL | http[:]// | https[:]// |
| Шифрование содержимого | Нет | Да |
| Защита от чтения содержимого | Слабая | Сильная |
| Защита от подмены содержимого | Слабая | Подмену легче обнаружить |
| Проверка другой стороны | В целом слабая | Выполняется с помощью сертификатов |
| Устойчивость к атаке посредника | Низкая | Высокая |
| Анонимизация | Нет | Нет |
Понимать HTTPS как «HTTP плюс шифрование» немного недостаточно. Точнее, HTTPS помещает HTTP-связь в безопасный канал и помогает защищаться от чтения, подмены и имитации.
Что такое атака посредника
Атака посредника — это ситуация, когда третья сторона встает между браузером и сервером, читает связь, меняет ее или притворяется другой стороной.
Пользователь думает, что открывает настоящий сайт, но атакующий на маршруте может видеть содержимое. Также атакующий может изменить содержимое и вставить фальшивую форму входа или вредный код.
HTTP слаб против таких атак.
В HTTPS содержимое шифруется, подмена обнаруживается, другая сторона проверяется. Поэтому атаку посредника сделать труднее.
| Что хочет атакующий | При HTTP | При HTTPS |
|---|---|---|
| Читать содержимое связи | Есть риск чтения | Трудно читать как открытый текст |
| Подсмотреть пароль | Риск высок | По пути подсмотреть трудно |
| Изменить содержимое страницы | Есть риск изменения | Подмена легче обнаруживается |
| Заставить подключиться к фальшивому серверу | Пользователь может не заметить | Проверка сертификата помогает предотвратить |
| Притвориться другой стороной | Сравнительно легче | Без правильного сертификата трудно |
Суть HTTPS здесь.
Важно не только, что содержимое шифруется, но и что можно проверить, не изменилось ли оно по пути и является ли другая сторона нужной.
Что защищает HTTPS
HTTPS в основном защищает содержимое HTTP-связи между браузером и сервером.
Например, такие данные труднее прочитать по пути:
| Что защищается | Описание |
|---|---|
| Пароль | Пароль из формы входа труднее прочитать по пути |
| Содержимое формы | Имя, email, текст обращения и другое труднее прочитать по пути |
| Содержимое страницы | Текст страницы труднее прочитать или изменить по пути |
| Содержимое запроса | То, что браузер отправляет серверу, лучше защищено |
| Содержимое ответа | То, что сервер возвращает браузеру, лучше защищено |
| Cookie | Cookie, отправляемые и получаемые в связи, труднее подсмотреть по пути |
Особенно важны пароли и Cookie.
Cookie могут использоваться для сохранения входа или идентификации пользователя. Если Cookie украден по пути, иногда возможно войти от имени пользователя.
В HTTPS Cookie отправляются внутри зашифрованного канала, поэтому их труднее подсмотреть по пути.
Однако HTTPS не решает все проблемы Cookie. Способ хранения Cookie, настройки сайта, среда браузера и безопасность устройства остаются отдельными вопросами.
Даже при HTTPS сервер назначения получает содержимое
HTTPS защищает содержимое от третьих лиц на маршруте. Он не скрывает содержимое от Web-сайта назначения.
Например, если ввести пароль в HTTPS-форму, по пути его труднее прочитать. Но сервер Web-сайта, который выполняет вход, получает эту информацию.
Это естественно. Чтобы выполнить вход, сервер должен получить отправленные данные.
Область защиты HTTPS — в основном маршрут связи.
| Объект | Роль HTTPS | Описание |
|---|---|---|
| Третьи лица на маршруте | Основная цель защиты | Помогает предотвращать чтение, подмену, имитацию |
| Сервер назначения | Другая сторона связи | Содержимое запроса доходит до сервера |
| IP-адрес пользователя | Напрямую не скрывает | Один HTTPS не скрывает IP источника доступа |
| Аккаунт в состоянии входа | Напрямую не скрывает | Действия при входе связываются с аккаунтом |
То есть HTTPS — механизм против чтения и подмены по пути. Это не механизм сокрытия ваших данных от сайта назначения.
Что может быть видно даже при HTTPS
Даже при HTTPS скрывается не вся информация.
Содержимое связи защищается. Но сведения об источнике доступа, назначении и информация, которую получает сайт, остаются отдельными вопросами.
| Информация | Кому может быть видна | Описание |
|---|---|---|
| IP-адрес источника доступа | Сервер назначения и др. | Сайт может понимать, с какого IP был доступ |
| Время доступа | Сервер назначения и др. | Время может записываться в журнал |
| Содержимое запроса | Сервер назначения | Даже при HTTPS содержимое доходит до получателя |
| Cookie | Web-сайт назначения | Может использоваться для различения браузера или пользователя |
| Состояние входа | Web-сайт назначения | Если пользователь вошел, действия связываются с аккаунтом |
| Журналы доступа | Web-сайт назначения | Может записываться, какие страницы и действия были |
| Сведения браузера | Web-сайт назначения | Может отправляться User-Agent и другая информация |
| Сведения о назначении | Зависит от среды связи | Даже при шифровании иногда можно предполагать сайт назначения |
Важно разделять содержимое связи и факт связи.
HTTPS защищает содержимое. Но он автоматически не скрывает, с какого IP был доступ, когда он был, под каким аккаунтом был вход.
Кроме того, при HTTPS весь URL не всегда полностью виден третьим лицам. Путь страницы и содержимое форм защищаются как содержимое связи. С другой стороны, информация, связанная с доменным именем назначения, может быть видна в зависимости от среды связи.
Поэтому HTTPS не стирает следы доступа и идентификационную информацию.
HTTPS — не технология анонимизации
HTTPS — не технология анонимизации.
Основные цели HTTPS:
- сделать содержимое связи труднее читаемым по пути
- сделать подмену содержимого по пути труднее
- облегчить проверку, что другая сторона — нужная
Это другое, чем анонимизация.
При размышлении об анонимности нужно разделять, защищено ли содержимое связи и скрыто ли, кто обращался.
HTTPS сильно связан с первым. Но он не решает второе напрямую.
| Точка | Решает ли HTTPS | Описание |
|---|---|---|
| Защита от чтения содержимого | Сильная на маршруте связи | Делает содержимое труднее читаемым по пути |
| Защита от подмены содержимого | Сильная на маршруте связи | Делает изменение по пути труднее |
| Проверка другой стороны | Да | Проверяет назначение с помощью сертификатов |
| Сокрытие IP-адреса | Нет | Один HTTPS не скрывает IP источника доступа |
| Идентификация через Cookie | Нет | Идентификация на стороне сайта остается отдельным вопросом |
| Сокрытие состояния входа | Нет | Действия при входе связываются с аккаунтом |
| Удаление журналов доступа | Нет | Хранение журналов сайта не относится к HTTPS |
Понимание «HTTPS значит анонимно» ошибочно.
HTTPS — технология для безопасности связи. Это не технология создания анонимности.
Как правильно понимать HTTPS
Для правильного понимания HTTPS нужно разделять, от кого и что он защищает.
Главная цель HTTPS — третьи лица на маршруте связи.
Например, он помогает предотвратить чтение, подмену и имитацию со стороны других пользователей той же Wi-Fi-сети, оборудования на маршруте, злонамеренных посредников.
Сайт назначения — конечная сторона связи. Поэтому отправленное содержимое доходит до сайта.
| Сторона | Что HTTPS помогает предотвратить | Чего HTTPS не предотвращает |
|---|---|---|
| Третье лицо на маршруте | Чтение, подмена, имитация | Компрометация самого устройства |
| Web-сайт назначения | Утечку по дороге | Запись журналов и идентификацию аккаунта на стороне сайта |
| Пользователь той же Wi-Fi-сети | Чтение содержимого связи | Предположение сайта назначения не исчезает полностью |
| Фальшивый сервер | Легче обнаружить без действительного сертификата | Риск, если пользователь игнорирует предупреждение |
HTTPS очень силен, но не универсален.
Например, если браузер показывает предупреждение о сертификате, а пользователь игнорирует его и продолжает, безопасность HTTPS резко снижается. Если само устройство заражено вредоносным ПО, вводимые данные могут быть украдены на устройстве даже при HTTPS.
HTTPS — сильная защита от чтения, подмены и имитации в сети. Но безопасность устройства, управление сайтом, аккаунты, Cookie и журналы нужно рассматривать отдельно.
Итоги
HTTP — базовый механизм обмена данными в Web. Но один HTTP не шифрует содержимое, поэтому по пути есть риск чтения и подмены.
HTTPS выполняет HTTP-связь внутри безопасного канала.
Важные роли HTTPS:
- сделать содержимое связи труднее читаемым по пути
- сделать подмену содержимого по пути труднее
- облегчить проверку, что другая сторона связи — нужная
Поэтому HTTPS крайне важен против атак посредника.
Однако HTTPS — не технология анонимизации. Даже при HTTPS запросы доходят до Web-сайта назначения. IP-адрес источника, Cookie, состояние входа, журналы доступа и другое остаются отдельными вопросами.
HTTPS — технология для безопасности связи. Она особенно важна против чтения, подмены и имитации на маршруте.
Но это не технология, которая скрывает, кто обращался.
При размышлении об анонимности нужно разделять, что защищает HTTPS и что он не защищает. HTTPS важен как предпосылка, но один HTTPS не создает анонимность.