Learn

284 статейКатегория: Все
Сеть

Разница между 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-обмен.

ПунктHTTPHTTPS
Начало URLhttp[:]//https[:]//
Шифрование содержимогоНетДа
Защита от чтения содержимогоСлабаяСильная
Защита от подмены содержимогоСлабаяПодмену легче обнаружить
Проверка другой стороныВ целом слабаяВыполняется с помощью сертификатов
Устойчивость к атаке посредникаНизкаяВысокая
АнонимизацияНетНет

Понимать HTTPS как «HTTP плюс шифрование» немного недостаточно. Точнее, HTTPS помещает HTTP-связь в безопасный канал и помогает защищаться от чтения, подмены и имитации.

Что такое атака посредника

Атака посредника — это ситуация, когда третья сторона встает между браузером и сервером, читает связь, меняет ее или притворяется другой стороной.

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

HTTP слаб против таких атак.

В HTTPS содержимое шифруется, подмена обнаруживается, другая сторона проверяется. Поэтому атаку посредника сделать труднее.

Что хочет атакующийПри HTTPПри HTTPS
Читать содержимое связиЕсть риск чтенияТрудно читать как открытый текст
Подсмотреть парольРиск высокПо пути подсмотреть трудно
Изменить содержимое страницыЕсть риск измененияПодмена легче обнаруживается
Заставить подключиться к фальшивому серверуПользователь может не заметитьПроверка сертификата помогает предотвратить
Притвориться другой сторонойСравнительно легчеБез правильного сертификата трудно

Суть HTTPS здесь.

Важно не только, что содержимое шифруется, но и что можно проверить, не изменилось ли оно по пути и является ли другая сторона нужной.

Что защищает HTTPS

HTTPS в основном защищает содержимое HTTP-связи между браузером и сервером.

Например, такие данные труднее прочитать по пути:

Что защищаетсяОписание
ПарольПароль из формы входа труднее прочитать по пути
Содержимое формыИмя, email, текст обращения и другое труднее прочитать по пути
Содержимое страницыТекст страницы труднее прочитать или изменить по пути
Содержимое запросаТо, что браузер отправляет серверу, лучше защищено
Содержимое ответаТо, что сервер возвращает браузеру, лучше защищено
CookieCookie, отправляемые и получаемые в связи, труднее подсмотреть по пути

Особенно важны пароли и Cookie.

Cookie могут использоваться для сохранения входа или идентификации пользователя. Если Cookie украден по пути, иногда возможно войти от имени пользователя.

В HTTPS Cookie отправляются внутри зашифрованного канала, поэтому их труднее подсмотреть по пути.

Однако HTTPS не решает все проблемы Cookie. Способ хранения Cookie, настройки сайта, среда браузера и безопасность устройства остаются отдельными вопросами.

Даже при HTTPS сервер назначения получает содержимое

HTTPS защищает содержимое от третьих лиц на маршруте. Он не скрывает содержимое от Web-сайта назначения.

Например, если ввести пароль в HTTPS-форму, по пути его труднее прочитать. Но сервер Web-сайта, который выполняет вход, получает эту информацию.

Это естественно. Чтобы выполнить вход, сервер должен получить отправленные данные.

Область защиты HTTPS — в основном маршрут связи.

ОбъектРоль HTTPSОписание
Третьи лица на маршрутеОсновная цель защитыПомогает предотвращать чтение, подмену, имитацию
Сервер назначенияДругая сторона связиСодержимое запроса доходит до сервера
IP-адрес пользователяНапрямую не скрываетОдин HTTPS не скрывает IP источника доступа
Аккаунт в состоянии входаНапрямую не скрываетДействия при входе связываются с аккаунтом

То есть HTTPS — механизм против чтения и подмены по пути. Это не механизм сокрытия ваших данных от сайта назначения.

Что может быть видно даже при HTTPS

Даже при HTTPS скрывается не вся информация.

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

ИнформацияКому может быть виднаОписание
IP-адрес источника доступаСервер назначения и др.Сайт может понимать, с какого IP был доступ
Время доступаСервер назначения и др.Время может записываться в журнал
Содержимое запросаСервер назначенияДаже при HTTPS содержимое доходит до получателя
CookieWeb-сайт назначенияМожет использоваться для различения браузера или пользователя
Состояние входа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 не создает анонимность.

Связанные статьи