Адрес любого сайта, посещаемого пользователем в интернете, начинается с «http://» или «https://». Что представляют собой эти конструкции, для чего используются и какие особенности имеют, будет рассказано в представленной статье.
Что такое HTTP/HTTPS
HTTP и HTTPS – это протоколы передачи гипертекста. Они отвечают за обмен данными между сервером и браузером, то есть за процесс передачи сформулированного и отправленного запроса на сервер и отправки обработанного результата на браузер с преобразованием его в нужный вид.
Содержимое запроса зависит от URL-адреса. Для передачи через протоколы HTTP/HTTPS используются файлы со следующими типичными расширениями:
- HTM (или HTML) - HTML-файлы (HTML);
- TXT - открытые тексты ASCII;
- GIF - двоичные изображения GIF;
- XBM - двоичные изображения Xbitmap.
HTTP (HyperText Transfer Protocol) является открытым протоколом передачи данных, а HTTPS (HyperText Transfer Protocol Secure) – закрытым (в нем есть надстройка для шифровок). Шифрование в HTTPS поддерживается при помощи криптографических протоколов SSL и TLS. НТТР задействует порт 80, HTTPS – 443.
Чтобы обеспечить подготовку веб-сервер для обработки https-соединений, администратору следует получить и встроить в систему сертификат открытого и закрытого ключа для данного веб-сервера. В TLS применяется как асимметричная схема шифрования (для оформления секретного ключа для каждой стороны), так и симметричная (для обмена данными, зашифрованными общим ключом).
Перед переносом сайта на защищенный протокол понадобится сертификат SSL. Существует несколько видов SSL-сертификатов, каждый из которых имеет свои особенности по уровню защиты (с проверкой домена в упрощенном виде, со стандартной и расширенной проверкой организации). SSL-сертификаты бывают бесплатными и платными.
Требования для HTTP
Для правильной работы пакета сервера NetX Web HTTP требуется установить NetX Duo 5.10 или более поздней версии. Кроме того, будет необходимо создать экземпляр IP, для которого предусматривается включенное использование TCP. Для поддержки HTTPS также необходимо установить NetX Secure TLS 5.11 или более поздней версии.
Для HTTP-клиента из пакета NetX Web HTTP иных требований не предъявляется, но они имеются для HTTP-сервера из пакета NetX Web HTTP. В первую очередь, ему следует обеспечить полный доступ к известному TCP-порту 80 для работы со всеми запросами HTTP-клиента (приложением может быть указан любой другой допустимый порт TCP). HTTP-сервер также предназначается для работы с внедренной файловой системой FileX. В случае недоступности FileX пользователь может использовать все применяемые им разделы этой системы в собственной рабочей среде.
Требования для HTTPS
Чтобы протокол HTTPS на основе пакета NetX Web HTTP работал корректно, требуется, чтобы были установлены NetX Duo 5.10 или более поздней версии и NetX Secure TLS 5.11 или более поздней версии. Также нужно создать экземпляр IP, для которого есть все возможности использования протокола TCP для работы с протоколом TLS. Также необходимо будет инициализировать сеанс TLS с помощью соответствующих процедур шифрования и сертификата доверенного ЦС. Помимо этого, потребуется подготовить достаточное пространство для сертификатов, которые будут предоставляться удаленными узлами сервера во время подтверждения TLS.
К HTTPS-клиенту из пакета NetX Web HTTP не предъявляется дополнительных требований. Однако HTTPS-серверу из пакета NetX Web HTTP следует предоставлять полный доступ к определенному TCP-порту 443 для обработки всех HTTPS-запросов клиента (как и в случае протокола HTTP без шифрования, приложение может изменить известный порт). Также потребуется инициализировать сеанс TLS с помощью соответствующих шифровальных процедур и сертификата удостоверения сервера (или общего ключа). HTTPS-сервер может использоваться для работы с внедренной файловой системой FileX. При недоступности данной системы применяемые разделы FileX могут быть перенесены пользователем в его собственную среду.
Ключевые различия
Помимо разницы в механизмах защиты, шифровке текста и номерах портов, между HTTP и HTTPS существует еще несколько ключевых различий, они представлены в таблице
В дополнение, HTTP отличается от HTTPS тем, что:
- работает на уровне приложения, а HTTPS - на транспортном уровне;
- по сравнению с HTTPS работает быстрее, поскольку последнему нужно время для шифрования канала связи (также более высокая скорость HTTP обусловлена тем, что его страницы хранятся в кэше компьютера и Интернета);
- может быть реализован на основе другого протокола в Интернете или в других сетях, обладает кроссплатформенностью, может использоваться через брандмауэры и глобальные приложения. Также он не нуждается в поддержке среды выполнения и не ориентирован на подключение.
Однако у HTTPS также имеются свои плюсы:
- в большинстве случаев сайты, работающие по протоколу HTTPS, будут перенаправлены. Поэтому даже при вводе http:// произойдет переход на https при помощи защищенного соединения;
- технология SSL обеспечивает защиту всех пользователей, поскольку в каждом SSL-сертификате содержится уникальная аутентифицированная информация о владельце сертификата.
Протокол HTTPS имеет неоспоримые преимущества перед НТТР. Во-первых, при его использовании шифруются все данные – URL, история просмотров и любая другая информация. Во-вторых, поисковые системы отдают предпочтение сайтам на HTTPS при ранжировании. Это означает, что защищенный сайт будет отображаться в поисковой выдаче выше, чем незащищенный.
Новый протокол HTTPA (HTTPS Attestable)
HTTPS защищает передаваемые данные на этапе передачи по сети, но это не может исключить нарушение их целостности в результате атак на сервер. Поэтому для расширения HTTPS дополнительными гарантиями безопасности произведенных вычислений инженерами из компании Intel был предложен новый протокол HTTPA (HTTPS Attestable).
HTTPA позволяет обеспечить целостность обработки запроса пользователя на сервере и убедиться в том, что web-сервис заслуживает доверия, и работающий в TEE-окружении (Trusted Execution Environment) на сервере код не был изменен в результате взлома или диверсии администратора.
В новом протоколе применяются изолированные анклавы, создаваемые при помощи таких технологий, как Intel SGX (Software Guard Extension), ARM TrustZone и AMD PSP (Platform Security Processor). Они дают возможность защиты важных вычислений и снижения риска утечек или изменения конфиденциальной информации на конечном узле.
Для подтверждения достоверности переданной через HTTPA информации задействуются используемые в Intel SGX средства аттестации, подтверждающие подлинность анклава, в котором произведены вычисления.
Помимо штатного для HTTPS процесса установки защищенного соединения, для HTTPA дополнительно требуется согласования сессионного ключа, заслуживающего доверия. Новый HTTP-метод «ATTEST», который применяется в этом протоколе, позволяет обрабатывать три типа запросов и ответов:
- «preflight» - проверяет поддержку аттестации анклавов удалённой стороной;
- «attest» - согласовывает параметры аттестации. К этим параметрам относятся подбор криптографического алгоритма, обмен уникальными для сеансов случайными последовательностями, особенности генерации идентификатора сеанса и передачи клиенту открытого ключа анклава;
- «trusted session» - формирует сессионный ключ, предназначенный для доверительного обмена информацией. Сессионный ключ оформляется на основе ранее согласованной предварительной секретной последовательности (pre-session secret), которая формируется клиентом с использованием предоставленного сервером открытого ключа TEE, и случайных последовательностей, сгенерированных каждой стороной.
Для ситуаций, когда вычисления в TEE необходимо подтвердить как для сервера, так и для клиента, применяется вариант протокола mHTTPA (Mutual HTTPA). Он предназначен для двухсторонней верификации. Эта технология отличается большей сложностью из-за необходимости двустороннего формирования сессионных ключей для сервера и клиента.
Заключение
Протокол HTTPA может предоставить гарантии безопасности, чтобы установить надежность веб-служб и обеспечить целостность обработки запросов для веб-пользователей. Ожидается, что удаленная аттестация станет новым трендом для снижения рисков безопасности веб-сервисов.