Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы и средства передачи данных в автоматизированных системах. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
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) использование «пустого» сертификата.
Самоподписанный или самоподписной сертификат – это сертифи­кат, созданный самим пользователем при помощи специального программ­ного обеспечения. В этом случае издатель и владелец – это одно лицо.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]