logo
Tema_3_5_Virtualnye_chastnye_se-ti_VPN

Постановка задачи

Пусть существует некая организация, в которой в удаленных друг от друга офисах работают два пользователя. Требуется с использованием технологии виртуальных машин создать структуру сети, состоящую из двух виртуальных узлов, и установить защищенное соединение (Рис. 1 .18). Основная ОС имитирует работу компьютера стороннего наблюдателя и используется для анализа сетевого трафика.

VM 1 VM 2

StrongNet 1 StrongNet 2

192.168.75.11 192.168.75.12

VMWare Network Adapter

Рис. 1.18. Схема соединения виртуальных узлов

Генерация и распространение ключевой информации

Для успешной работы системы «StrongNet» необходимо создать базу данных ключей. Дистрибутив ключей для каждого сетевого узла размещен в файле с расширением «DST». Исходные ключи зашифрованы на парольной фразе и потому недоступны третьим лицам непосредственно из DST-файла. Чтобы создать базу данных ключей нужно запустить программу «Центр генерации ключей».

Защита на транспортном уровне

Для защиты на транспортном уровне применяются протоколы TLS и SSL. Особенностью защиты на данном уровне является независимость от прикладного уровня, однако чаще всего технология применяется для защиты данных, передаваемых по протоколу HTTP (режим HTTPS).

Подробнее рассмотрим функционирование протокола SSL. Протокол часто применяется для установки защищенного соединения, когда пользователь, обратившийся к Web-серверу, передает или получает конфиденциальные сведения, например об объеме и стоимости покупки в Интернет-магазине, либо получает статистику своих соединений у Интернет-провайдера. В этом случае Web-клиент, например InternetExplorerавтоматически переходит в защищенный режим, о чем свидетельствует пиктограмма «замок» в правой нижней части окна.

Рис. 1.19. Сетевой пакет с сертификатом открытого ключа сервера

Протокол SSL предусматривает функции аутентификации, шифрования данных и обеспечения целостности данных. Аутентификация осуществляется путем обмена цифровыми сертификатами при установлении соединения (сессии). Так как Web-сервер обычно принимает запросы от произвольных клиентов, то чаще всего аутентифицируется только сервер. Для шифрования данных применяется стандартный для VPN-соединений подход: для шифрования данных применяется симметричный сеансовый ключ. Обмен симметричными сеансовыми ключами происходит при установлении соединения, при передаче сеансовые ключи шифруются с помощью открытых ключей. Для обеспечения целостности к сообщению добавляется его хэш-код.

Рассмотрим этапы установки SSL-соединения. Сначала устанавливается стандартное TCP-соединение с портом сервера 443. Далее клиент передает сообщение «Client-Hello», в котором сообщает поддерживаемую им версию протокола SSL и случайную последовательность «Challenge_Data». В ответ сервер передает сообщение «Server-Hello», в котором указывает версию SSL, идентификатор соединения «Connection_id», список базовых шифров (протоколов) и сертификат сервера (подписанный открытый ключ).

Цель следующего сообщения, отправляемого клиентом (сообщение «Client_Master_Key»), — передача симметричного сеансового ключа, зашифрованного открытым ключом сервера. Таким образом, только сервер может расшифровать переданный симметричный ключ.

Рис. 1.20. Зашифрованный HTTP-трафик

Получив ключ, сервер зашифровывает этим ключом отправленную ранее последовательность «Challenge_Data» и передает ее в сообщении «Server-Verify». Получив и расшифровав данное сообщение, клиент уверен, что сеансовый ключ получен и расшифрован сервером правильно. Для того чтобы сервер также мог убедиться в правильности полученного им сеансового ключа, клиент зашифровывает этим ключом идентификатор соединения «Connection_id», полученный от сервера, и передает его в сообщении «Client-Finished».

Таким образом, соединение установлено, сервер проверен, сеансовый ключ передан. Теперь весь трафик может передаваться в зашифрованном виде. Для внешнего наблюдателя виден трафик, идущий по 443 TCP-порту между двумя узлами с известными IP-адресами.