Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы и средства передачи данных в автоматизированных системах. Учебное пособие
.pdf
5.3. Методы защиты соединения для передачи данных
151
Например, это может быть точка доступа, которую использует злоумышленник для перехвата паролей и другой секретной информации (honeypot),
когда клиенты корпоративной сети по ошибке пытаются к ней подключиться и передать учетные данные.
Естественно, что точки доступа должны быть хорошо защищены как
физически, так и программно. Здесь имеется в виду использование современных методов шифрования.
Используя методы аутентификации WPA/WPA2-Enterprise, различ-
ные реализации Extensible Authentication Protocol (EAP) и встроенный межсетевой экран, маршрутизатор с контроллером беспроводной сети не
только находит неавторизованные точки доступа, но и блокирует подозрительные действия в корпоративной сети, которые с большой долей вероятности несут в себе злой умысел.
Популярный сейчас WPA2-PSK (pre-shared key) использует един-
ственный ключ для всех клиентов сети. Помимо того, что при компрометации злоумышленник получает доступ ко всей сети, такой ключ достаточно
сложно менять ‒ нужно перенастроить всех клиентов. Тем не менее из-за
простоты реализации такой метод защиты применяется в домашних сетях
и малом бизнесе.
До появления WiFi 6 c WPA3 самым защищенным считался WPA2
Enterprise с использованием индивидуальных динамических ключей, которые могут периодически обновляться без разрыва соединения. Для организации работы с такими ключами используется сервер авторизации (обычно
RADIUS).
Ниже мы рассмотрим самые важные нововведения, которые появились в стандарте 802.11ax (WiFi 6) – это WPA3-Enterprise 192-bit mode.
Улучшения в криптографии в первую очередь затронули именно
WPA3-Enterprise ‒ это действительно более стойкий и переработанный
стандарт.
Для повышения уровня безопасности WPA3-Enterprise использует:
1) 256-битный протокол Galois/Counter Mode – для шифрования;
2) 384-битный Hashed Message Authentication Mode ‒ для создания и
подтверждения ключей;
3) алгоритмы Elliptic Curve Diffie-Hellman exchange, Elliptic Curve
Digital Signature Algorithm ‒ для аутентификации ключей.

Глава 5. Защита передачи данных в компьютерных сетях
152
В WPA3-Enterprise применяются следующие комбинации шифров,
используемых для согласования настроек безопасности во время рукопожатия SSL/TLS:
1) TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, EC DH/D
SA условно-безопасная NIST P-384;
2) TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, EC DH/DSA
условно-безопасная NIST P-384, RSA от 3072 бит;
3) TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 ‒ «облегчен-
ный» режим, без EC, RSA от 3072 бит, DH-группа 15.
В качестве замены Pre-Shared Key, о проблемах которого уже ска-
зано выше, в WPA3 используется метод аутентификации SAE, (стандарт
IEEE 802.11–2016).
В основу работы положен принцип равноправности устройств. В от-
личие от обычного сценария, когда одно устройство объявляется как отправляющее запрос (клиент), а второе ‒ устанавливающее право на подключение
(точка доступа или маршрутизатор) и они обмениваются сообщениями по
очереди, в случае с SAE каждая из сторон может послать запрос на соединение, после чего происходит отправка удостоверяющей информации.
При подключении и идентификации используется метод dragonfly
handshake, с применением криптографической защиты для предотвращения кражи пароля.
SAE предоставляет защиту от атаки с переустановкой ключа или
Key Reinstallation Attacks (KRACK), а также от наиболее распространённых
offline атак по словарю, когда компьютер перебирает множество паролей,
чтобы подобрать подходящий для расшифровки информации, полученной
во время PSK-соединений.
В SAE также добавлена дополнительная функция forward secrecy,
повышающая уровень безопасности. Предположим, злоумышленник получил возможность сохранить зашифрованные данные, которые маршрутизатор транслирует в Интернет или локальную сеть, чтобы после подбора пароля расшифровать их. При переходе на SAE шифрующий пароль меняется
при каждом новом соединении, поэтому злоумышленник получит только
пароль от данных, переданных после вторжения.
Также можно использовать отдельный протокол, разработанный для
защиты соединений в открытой сети. Под открытыми сетями на данный
момент понимаются сети, когда не требуется предварительная аутентифи-

5.4. Защищенный протокол передачи гипертекста HTTPS
153
кация, например по ключу (паролю), который в дальнейшем используются
как ключ для шифрования.
В Enhanced Open применяется свой метод защиты от перехвата тра-
фика ‒ Opportunistic Wireless Encryption, OWE, описанный в стандарте
Internet Engineering Task Force RFC 8110, чтобы защищаться от пассивного
подслушивания. Также обеспечивается защита от метода unsophisticated
packet injection, когда злоумышленник препятствует работе сети через передачу специальных пакетов данных.
Рекомендуемая сфера применения Enhanced Open ‒ защита гостевых
и публичных сетей от пассивного прослушивания.
Здесь были рассмотрены методы защиты канала связи и точек до-
ступа. Теперь необходимо рассмотреть именно защищенную передачу данных, дополняющую уже описанные методы – это защищенный протокол
HTTPS, который сейчас повсеместно внедряется и становится основным
протоколом обмена в сети Интернет.
5.4. Защищенный протокол передачи гипертекста HTTPS
Это расширение протокола HTTP ‒ HyperText Transfer Protocol Se-
cure. Он поддерживает шифрование потока данных для повышения без-
опасности. В протоколе HTTPS информация передается в сопровождении
криптографических протоколов TLS или SSL (хотя SSL признан уже устаревшим в 2015 году).
Еще одно отличие HHTPS от HTTP – данные по этому протоколу
передаются по другому порту: для HTTP актуален TCP-порт 80, а для
HTTPS по умолчанию используется TCP-порт 443.
Рассмотрим далее принцип работы протокола HTTPS.
По своей сути, HTTPS не является отдельным протоколом. Это стандартный протокол HTTP, но по умолчанию работающий через шифрованные транспортные механизмы SSL и TLS. Благодаря этому, он успешно
обеспечивает защиту от атак, основанных на прослушивании сетевого соединения. К таким классам атак относятся снифферские атаки и атаки
типа man-in-the-middle.
Просто так включить HTTPS на сервере не получится – систему
нужно подготовить.

Глава 5. Защита передачи данных в компьютерных сетях
154
Чтобы подготовить веб-сервер для обработки HTTPS-соединений,
администратор должен получить и установить в систему сертификат открытого и закрытого ключа для этого веб-сервера. Для этого используются
схемы из официальных источников – удостоверяющих центров или самоподписные сертификаты.
В TLS используется:
1) асимметричная схема шифрования (для выработки общего секрет-
ного ключа);
2) симметричная схема шифрования (для обмена данными, которые
были зашифрованы общим ключом).
Сертификат, по сути, служит для подтверждения принадлежности
данного открытого ключа владельцу сайта. То есть он подтверждает, что
клиент общается именно с владельцем сервера, либо с его «доверенным лицом». Для этого сертификат и открытый ключ посылаются каждому клиенту в ответ на запрос соединения, а закрытый ключ используется для расшифровки сообщений от клиента. То есть обмен данными происходит по
закрытому и зашифрованному каналу.
Наиболее удобным способом получить сертификат и ключ, является
самоподписной сертификат. Для его получения нет необходимости обращаться в центр сертификации, а можно просто установить и настроить соответствующее программное обеспечение.
Следует отметить, что такие системы также могут применяться и для
аутентификации клиента, т.е. они помогают обеспечивать доступ только
авторизованным пользователям к серверу и его ресурсам.
В HTTPS обычно применяются алгоритмы шифрования, которые используют длину ключа в 40 бит, 56 бит, 128 бит или 256 бит.
Длина ключа менее чем в 40 бит не считается надёжной, хотя может
использоваться в устаревших системах. Наоборот, многие современные системы требуют использования только длинных ключей, т.е. имеющих размер не менее 128 бит.
Специфика протокола HTTPS ограничивает число ресурсов, работающих с одним сертификатом – на каждом IP-адресе с соответствующим
сертификатом может работать только один HTTPS-сервер. Для обхода
этого ограничения и применяется расширение TLS под названием Server
Name Indication (SNI).

5.5. Криптографические протоколы безопасной связи SSL, TLS
155
Рассмотрим далее, как работает идентификация сервера и клиента в
рамках протокола HTTPS.
Идентификация на стороне сервера проводится следующим обра-
зом. HTTP/TLS запросы генерируются путём разименования URI, т.е. имя
хоста и путь ресурса становится известно клиенту. Перед тем, как начинать
обмен данными, сервер отправляет клиенту свой сертификат (как бы, представляется) для того, чтобы клиент однозначно идентифицировал его.
В этом случае атака «посредника» уже становится невозможной, так как в
сертификате четко и однозначно указывается URI сервера и все необходимые сведения о владельце ресурса.
Если имя сервера, полученное в ответе на первый запрос, не совпадает с тем, которое указано в исходном запросе или с тем, что указано в
сертификате, то браузер или другое программное обеспечение, инициировавшее обмен данными, сообщают об этом пользователю. Браузеры в основном предоставляют пользователю решать проблему: или продолжить
незащищённое соединение или прервать его. Подобное поведение наблюдается и тогда, когда сертификат становится просроченным – пользователь
также должен сопоставить запрашиваемое имя сервера с реальным адресом
и решить, что делать дальше.
Идентификация со стороны клиента несколько сложнее, так как
обычно сервер ничего не знает заранее о подключаемых клиентах и не может
их идентифицировать однозначно. Однако в таком случае может быть использована так называемая двухсторонняя аутентификация или two-way
authentication. В таком случае сервер после подтверждения «серверного» сертификата, сам запрашивает «клиентский» сертификат. Т.е. ситуация становится диаметрально противоположной и уже сервер проверяет клиент.
Рассмотрим далее более подробно протоколы SSL и TLS, которые
применяются при работе с HTTPS.
5.5. Криптографические протоколы безопасной связи SSL, TLS
Протокол SSL или secure sockets layer – это «уровень защищённых
сокетов». SSL представляет собой специальный криптографический протокол, обеспечивающий безопасную связь между клиентом и сервером. Здесь
применяется асимметричная криптография для аутентификации, симмет-

Глава 5. Защита передачи данных в компьютерных сетях
156
ричная криптография для сохранения конфиденциальности. Также применяются специальные коды аутентификации сообщений для проверки целостности сообщений.
SSL изначально разработан компанией Netscape Communications для
внедрения в протокол HTTPS и для применения его в своем собственном
браузере Netscape Navigator, который сейчас уже не известен широким массам пользователей.
Несколько позднее на основе третьей версии SSL (начиная с 3.0) был
принят стандарт RFC, получивший имя TLS.
Протокол SSL работает на высоком уровне и обеспечивает защищён-
ный обмен данными благодаря следующим двум элементам:
1) Аутентификация пользователей.
2) Шифрования трафика.
Как уже говорилось выше, SSL содержит процедуры асимметричной
криптографии для обмена ключами и симметричные шифры для обеспечения конфиденциальности.
Ниже приведены основные свойства протокола SSL:
1) Канал считается приватным (частным) за счет того, что шифрова-
ние применяется для всех сообщений, начиная с первого диалога, в котором происходит определение секретного ключа.
2) Канал работает в режиме аутентификации на 100 % со стороны
сервера и опционально со стороны клиентов.
3) Канал является надежным, так как передача и прием сообщений
выполняется с проверкой целостности сообщений.
4) SSL может применяться практически не зависимо от протокола, т.е.
протоколы приложений типа HTTP, FTP, Telnet и другие могут работать «поверх» SSL в прозрачном режиме, т.е. они управляют передачей данных, а SSL
согласовывает дополнительное применение алгоритмов шифрования, сессионных ключей, механизмов аутентификации еще до того, как приложение
передаст свой первый байт пользовательского сообщения.
Преимуществом SSL является то, что он независим от прикладного протокола. Протоколы приложений (HTTP, FTP, TELNET и т. д.) могут работать
поверх протокола SSL совершенно прозрачно, т.е. SSL может согласовывать
алгоритм шифрования и ключ сессии, а также аутентифицировать сервер до
того, как приложение примет или передаст первый байт сообщения.

5.5. Криптографические протоколы безопасной связи SSL, TLS
157
Что же касается TLS, то этот метод защиты данных определен
в RFC 2246 в январе 1999 г., и, как уже говорилось ранее, введен начиная с
SSL версии 3.0.
TLS определяет безопасность транспортного уровня – это специ-
ально разработанный криптографический протокол, предназначенный для
обеспечения безопасности связи. Протокол широко используется в таких
приложениях, как электронная почта, обмен мгновенными сообщениями и
передача голоса по IP, но его использование в качестве уровня безопасности в HTTPS остается наиболее заметным.
Протокол TLS в первую очередь предназначен для обеспечения кон-
фиденциальности и целостности данных между двумя или более приложениями (как минимум в обмене участвует один сервер и один клиент). Он
работает на прикладном уровне Интернета и состоит из двух уровней:
1) запись TLS;
2) протокол установления связи TLS.
Поскольку приложения могут взаимодействовать как с TLS (или
SSL), так и без него, клиенту необходимо отдельно создать запрос, чтобы
сервер установил соединение TLS.
Один из основных способов добиться этого ‒ использовать другой
номер порта для TLS-соединений. Как уже говорилось выше, порт 80
обычно используется для открытого HTTP-трафика, а порт 443 – для зашифрованного HTTPS-трафика.
Другой механизм заключается в том, что клиент делает запрос к серверу для переключения соединения на TLS, например, сделав запрос
STARTTLS при использовании почтовых и новостных протоколов.
После того, как клиент и сервер согласились использовать TLS, они
согласовывают соединение с отслеживанием состояния, используя процедуру установления связи. Протоколы используют рукопожатие с асимметричным шифром, чтобы установить не только параметры шифра, но и общий ключ для конкретного сеанса, с помощью которого дальнейшая связь
шифруется с использованием симметричного шифра. Во время этого рукопожатия клиент и сервер согласовывают различные параметры, используемые для установления безопасности соединения:
1) Рукопожатие (handshake) начинается, когда клиент подключается
к серверу с поддержкой TLS, запрашивая безопасное соединение, и клиент

Глава 5. Защита передачи данных в компьютерных сетях
158
представляет список поддерживаемых наборов шифров (шифров и хэшфункций).
2) Из этого списка сервер выбирает шифр и хэш-функцию, которые
он также поддерживает, и уведомляет клиента о решении.
3) Затем сервер обычно обеспечивает идентификацию в виде цифро-
вого сертификата. Сертификат содержит имя сервера, доверенный центр
сертификации (CA), который гарантирует подлинность сертификата, и открытый ключ шифрования сервера.
4) Перед тем, как продолжить, клиент подтверждает действитель-
ность сертификата.
5) Чтобы сгенерировать ключи сеанса, используемые для безопас-
ного соединения, клиент либо:
а) шифрует случайное число (PreMasterSecret) открытым ключом
сервера и отправляет результат на сервер (который только сервер может
расшифровать своим закрытым ключом); обе стороны затем используют
случайное число для генерации уникального сеансового ключа для последующего шифрования и дешифрования данных во время сеанса;
б) использует обмен ключами Диффи-Хеллмана для безопасного
создания случайного и уникального сеансового ключа для шифрования и
дешифрования, который имеет дополнительное свойство прямой секретности: если закрытый ключ сервера будет раскрыт в будущем, его нельзя будет использовать для расшифровки текущего сеанса, даже если сеанс перехватывается и записывается третьей стороной.
На этом рукопожатие завершается и начинается защищенное соеди-
нение, которое шифруется и дешифруется с помощью сеансового ключа до
тех пор, пока соединение не закрывается. Если какой-либо из вышеперечисленных шагов завершился неудачно, рукопожатие TLS завершится
ошибкой и соединение не будет создано.
При защите с помощью TLS соединения между клиентом (например,
веб-браузером) и сервером должны иметь одно или несколько из следующих свойств:
1) Соединение является частным (или безопасным), поскольку для
шифрования передаваемых данных используется алгоритм с симметричным ключом. Ключи для этого симметричного шифрования генерируются
уникально для каждого соединения и основаны на общем секрете, который

5.5. Криптографические протоколы безопасной связи SSL, TLS
159
был согласован в начале сеанса. Сервер и клиент согласовывают детали
того, какой алгоритм шифрования и криптографические ключи использовать, прежде чем будет передан первый байт данных (см. ниже). Согласование общего секрета является как безопасным (согласованный секрет недоступен для перехватчиков и не может быть получен даже злоумышленником, который находится в середине соединения), так и надежным (ни
один злоумышленник не может изменить обмен данными во время согласования, не будучи обнаружен).
2) Личности взаимодействующих сторон могут быть подтверждены с
использованием криптографии с открытым ключом. Эта аутентификация
требуется для сервера и необязательна для клиента.
3) Соединение является надежным, поскольку каждое переданное со-
общение включает проверку целостности сообщения с использованием
кода аутентификации сообщения, чтобы предотвратить необнаруженную
потерю или изменение данных во время передачи.
В дополнение к вышесказанному тщательная настройка TLS может
предоставить дополнительные свойства, связанные с конфиденциальностью, такие как прямая секретность, гарантируя, что любое раскрытие ключей шифрования в будущем не может быть использовано для расшифровки
любых сообщений TLS, записанных в прошлом.
Другой особенностью данной системы является использование многослойной среды на базе SSL.
Это становится доступным потому как протокол SSL размещается
между двумя протоколами:
1) протоколом, который использует клиент (HTTP, FTP, LDAP,
TELNET и так далее);
2) транспортным протоколом TCP/IP.
SSL защищает данные, выступая в роли фильтра для обеих сторон и
передаёт их далее на транспортный уровень. Работу протокола можно разделить на два уровня:
1) слой протокола подтверждения подключения (Handshake Protocol
Layer);
2) слой протокола записи.
Первый слой, в свою очередь, состоит из трёх подпротоколов:
1) протокол подтверждения подключения (Handshake Protocol);

Глава 5. Защита передачи данных в компьютерных сетях
160
2) протокол изменения параметров шифра (Cipher Spec Protocol);
3) предупредительный протокол (Alert Protocol).
Протокол подтверждения подключения используется для согласования данных сессии между клиентом и сервером. К данным сессии мы можем отнести следующее:
1) идентификационный номер сессии;
2) сертификаты обеих сторон;
3) параметры алгоритма шифрования;
4) алгоритм сжатия информации;
5) «общий секрет» для создания ключей;
6) открытый ключ.
Протокол подтверждения подключения производит цепочку обмена
данными, что в свою очередь начинает аутентификацию сторон и согласовывает шифрование, хеширование и сжатие. Следующий этап ‒ аутентификация участников, которая осуществляется также протоколом подтверждения подключения.
Протокол изменения параметров шифра используется для изменения данных ключа, который используется для создания всех ключей шифрования. Протокол состоит всего из одного сообщения, в котором сервер
говорит, что отправитель хочет изменить набор ключей.
Предупредительный протокол содержит сообщение, которое показывает сторонам изменение статуса или сообщает о возможной ошибке.
Обычно предупреждение отсылается тогда, когда подключение закрыто и
получено неправильное сообщение, сообщение невозможно расшифровать
или пользователь отменяет операцию.
Далее рассмотрим цифровые сертификаты и как они используются в
протоколе SSL.
Стандарт SSL использует следующие методы получения SSL-сертификата:
1) использование сертификата, выданного удостоверяющим центром;
2) использование самоподписного сертификата;
3) использование «пустого» сертификата.
Самоподписанный или самоподписной сертификат – это сертификат, созданный самим пользователем при помощи специального программного обеспечения. В этом случае издатель и владелец – это одно лицо.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
