Jump to content
Sign in to follow this  
Guest admin

Тестирование производительности шифрования IP-трафика

Recommended Posts

Guest admin

:idea: Результаты тестирования производительности шифрования IP-трафика с помощью криптоакселератора ViPNet [TURBO 100]

Криптоакселератор ViPNet [TURBO 100] предназначен для разгрузки центрального процессора при операциях шифрования и расшифрования. Все операции, загружающие центральный процессор, выполняются криптоакселератором, и загрузка процессора такая же, как при обработке не шифрованного трафика. Плата ViPNet [TURBO 100] совместима с ПО ViPNet версии 2.8. и может использоваться для закрытия потоков данных со скоростями до 100 Mbit/сек.

Конфигурация стенда для тестирования производительности шифрования IP-трафика:

image002.gif

Рабочая станция №1: PIII 500, 128M, Win XP Pro.

Рабочая станция №2: PIII 600, 128M, Win NT.

Криптошлюз №1: P4 2500, 512M, 533MHz clock, Win 2K Pro Rus, ViPNet [Координатор] 2.8.6 (498)

Криптошлюз №2: P4 2500, 512M, 533MHz clock, Win 2K Pro Rus, ViPNet [Координатор] 2.8.6 (498)

Криптоакселератор: ViPNet [Turbo 100]

Генератор трафика и параметры его запуска:

Для тестирования использовался генератор трафика NetPerf. Продолжительность одного теста 30 сек, результаты являются осреднением трех повторов одного и того же теста. Для генерации трафика TCP использовался размер буфера сокета 65535 байт.

Обозначения на графиках:

- Open - драйвер ViPNet выключен, трафик не шифруется и не фильтруется;

- Soft - драйвер ViPNet включен, трафик шифруется (фильтрация не используется);

- Hard - драйвер ViPNet использует криптоакселератор ViPNet [Turbo 100], трафик шифруется (фильтрация не используется), на каждом криптошлюзе работает по одному ViPNet [Turbo 100];

- 2x Hard - драйвер ViPNet использует криптоакселератор ViPNet [Turbo 100], трафик шифруется (фильтрация не используется), на криптошлюзе №1 работает один ViPNet [Turbo 100], на криптошлюзе №2 - два ViPNet [Turbo 100];

- 1 TCP - устанавливается одна TCP-сессия;

- 10 TCP - устанавливается 10 TCP-сессий.

Результаты тестирования:

Тест №1

Шифрование TCP в режиме точка-точка на 1 Гбит/с-канале (трафик генерируется и шифруется на криптошлюзах, рабочие станции не задействованы).

Данный тест моделирует взаимодействие двух ViPNet [Клиентов] или ViPNet [Клиента] и ViPNet [Координатора].

Производительность (Мбит/с)

image006.gif

Загрузка ЦПУ (%)

image007.gif

Тест №2

Шифрование трафика TCP в режиме туннеля (трафик генерируется рабочими станциями и шифруется на криптошлюзах).

Данный тест моделирует работу двух ViPNet [Координаторов] как туннелирующих серверов.

Производительность (Мбит/с)

image009.gif

Загрузка ЦПУ (%)

image011.gif

Замечание:

замер производительности шифрования при одной TCP-сессии в режимах Soft и 2х Hard не производился.

Замер загрузки ЦПУ при одной TCP-сессии не производился.

Выводы:

1. Скорость шифрования 10 потоков TCP в режиме точка-точка без использования аппаратного шифрования достигала 83 Мбит/с, при 100-% загрузке ЦПУ.

2. Использование платы ViPNet [Turbo 100] в том же тесте позволило снизить загрузку ЦПУ до 35%, хотя скорость при этом несколько снизилась - до 72 Мбит/с.

3. Скорость шифрования 10 потоков TCP при передаче через туннель без использования аппаратного шифрования достигала 65 Мбит/с.

4. Использование плат ViPNet [Turbo 100] (по 1 на каждый сервер) в том же тесте позволило повысить скорость до 80 Мбит/с.

5. Использование 2 плат ViPNet [Turbo 100] на втором сервере в том же тесте позволило повысить скорость до 95 Мбит/с.

Share this post


Link to post
Share on other sites

Коллеги (в области защиты информации)!

Вы опубликовали результаты своего труда, и они впечатляют.

Правда остались без объяснения некоторые вопросы:

Несущественные, но интересующие:

1. Почему тесты проводились всего по 30 секунд? В подобных измерениях всегда присутствует некоторая абсолютная погрешность... и чтобы ее уменьшить, можно было бы прогнать тест хотя бы в течении 4-5 минут. Это существенно не сказалось бы на результатах, но все-таки...

И еще: почему в качестве рабочих станций использовались компьютеры под управление разных ОС? Все-таки стек в них реализован неодинаково...

Существенные

2. Почему одно TCP соединение занимало там мало от пропускной способности канала, при том что десяток работают вроде нормально?

Можно много ругать Microsoft, но все-таки она явно должна работать гораздо быстрее... Или тут имел место факт неправильной настройки?

3.О чем свидетельствует и как измерялся такой показатель как загрузка ЦПУ, если она при простой генерации трафика (тест 1 open) и при генерации трафика и шифровании без акселератора (тест 1 soft) он составляет 100 %, а после установки акселератора (тест 1 hard) он падает до 35 процентов? Я понимаю Ваше желание показать как чудесно работает акселератор, однако он с Центрального процессора мог снять нагрузку только по шифрованию, но никак не по генерации трафика... По моему мнению, и в третьем замере этот показатель должен доходить до 100. Простите, но тут либо неточность, либо неправильная интерпретация данных, либо (хотя я в это не верю) подлог.

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

(в догонку: а какие именно алгоритмы эта плата ускоряет? сколько при этом на ней специализированных процессоров? сертифицированна ли схема такого повышения производительности?)

5. Вопрос как бы от покупателя:

Вы мне предлагаете купить плату (кстати, а сколько она стоит?), которая будет "тормозить" скорость, но разгружать процессор? Т.е за свои деньги я могу иметь либо работающий на 83 Мбит/с криптошлюз, либо доплатить, и получить наполовину простаивающий и выдающий 72 Мбит/с?

6. Вопрос чисто арифметический

бассейн заполняется через трубу со скоростью 80 литров воды в секунду и через такую же трубу сливается.

Затем, на выходе, мы ставим две такие же трубы... ПОЧЕМУ из них выливается 95 литров???? :shock:

Share this post


Link to post
Share on other sites

Спасибо, Михаил, за столь основательные вопросы :wink: Приятно, что люди внимательно читают то, что мы выкладываем на форум...

Буду отвечать по порядку:

1) Практически тестов проводилось гораздо больше, поэтому вопрос времени и трудозатрат был не последним. Тесты по 30 сек. повторялись по 3 раза, тем самым снимался вопрос со случайными погрешностями. Разные ОС на компьютерах использовались для того, чтобы моделировать разнородную среду, которая наиболее вероятна у заказчика. Естественно, в случае конкретного интереса и конкретного заказчика мы готовы провести тестирование в заданных условиях.

2) Настройки стека изменялись только в плане размеров буферов сокетов, все остальное - стандартное. Увеличение пропускной способности при множестве TCP-сессий - известный факт - наиболее частая ситуация в реальных условиях - найдите сервер, который всегда "живет" в режиме одного соединения...

3) Загрузка ЦПУ бралась из стандартного "Диспетчера задач". В режиме Open, прошу обратить внимание на пропускуню способность - это 530 Мб/с, против 83 Мб/с в режиме Soft. Таким образом, в первом случае вся производительность процессора уходила только на формирование трафика, во втором - формирование и шифрование. В режиме Hard на формирование уходило 35%, остальное (шифрование) брал на себя криптоакселератор. То, что ЦПУ не грузится в этом случае на 100% говорит лишь о том, что пока драйвер ViPNet не умеет распараллеливать шифрование между ЦПУ и платой.

4) и 5) Основная задача криптоускорителя ViPNet Turbo 100 - снять с ЦПУ математику по шифрованию данных. Полученные цифры говорят о том, что созданное устройство может по скорости выполнения таких операций соперничать с блоком АЛУ ЦПУ современных моделей. Разгрузка ЦПУ может сыграть положительную роль именно в том случае, когда криптоускоритель используется совместно с ViPNet Клиент на компьютере, который выполняет роль не столько криптошлюза, сколько сервера БД или файл-сервера. В этом случае ЦПУ может спокойно заниматься основной задачей - обработкой запросов к БД, а задачу шифрования возьмет на себя Turbo 100.

Естественно, что в роли чистого криптошлюза выгодней использовать P4 без Turbo 100. Так что, как говорится - наше дело - предложить...

Turbo 100 поддерживает работу только с алгоритмом ГОСТ, процессор - один (это видно и на фотографии), с нашим мат.обеспечением. Turbo 100 может работать только в составе с основным ПО ViPNet (Администратор, Координатор, Клиент) на базе ядра Домен-К, поэтому вопрос сертифицированности по отношению к Turbo 100 ставить некорректно.

P.S. По поводу цены - звоните.

6) А никто и не говорил, что установка двух плат должна умножить производительность на два... 8)

Share this post


Link to post
Share on other sites

вопрос времени и трудозатрат был не последним

У Вас не хватает времени тестировать собственные решения??? :shock:

Увеличение пропускной способности при множестве TCP-сессий - известный факт

Согласен, но не в 5 раз!!!! Попробуйте повторить этот эксперимент в локальной сети на 100 Mбит ! Значение, которое может дать NetPerf при одной сессии может скакать существенно, сумма нескольких потоков дает болеее реальное, но ТО ЖЕ число - реальную пропускную способность.

В режиме Open, прошу обратить внимание на пропускуню способность - это 530 Мб/с, против 83 Мб/с в режиме Soft. Таким образом, в первом случае вся производительность процессора уходила только на формирование трафика, во втором - формирование и шифрование. В режиме Hard на формирование уходило 35%, остальное (шифрование) брал на себя криптоакселератор. То, что ЦПУ не грузится в этом случае на 100% говорит лишь о том, что пока драйвер ViPNet не умеет рапараллеливать шифрование между ЦПУ и платой.

Это не совсем верно... :) NetPerf во всех случаях работает абсолютно одинаково!!! Ему все равно, может ли адаптер "переварить" столько трафика, сколько он генерирует. Для примера вы можете запустить между любыми двумя машинами в сети несколько потоков и убедиться, что загрузка ЦП практически не зависит от их числа и загрузки самой сети!!!

4) и 5) Основная задача криптоускорителя ViPNet Turbo 100 - снять с ЦПУ математику по шифрованию данных. Полученные цифры говорят о том, что созданное устройство может по скорости выполнения таких операций соперничать с блоком АЛУ ЦПУ современных моделей. Разгрузка ЦПУ может сыграть положительную роль именно в том случае, когда криптоускоритель используется совместно с ViPNet Клиент на компьютере, который выполняет роль не столько криптошлюза, сколько сервера БД или файл-сервера. В этом случае ЦПУ может спокойно заниматься основной задачей - обработкой запросов к БД, а задачу шифрования возьмет на себя Turbo 100.

Естественно, что в роли чистого криптошлюза выгодней использовать P4 без Turbo 100. Так что, как говорится - наше дело - предложить...

Снять нагрузку - это понятно, но рекомендовать ставить криптошлюз, межсетевой экран и какое либо прикладное ПО на одной и той же машине - не совсем грамотно с точки зрения безопасности!!!

К тому же... в первом тесте плата снижает, а во втором - повышает производительность... это как? :?

Turbo 100 поддерживает работу только с алгоритмом ГОСТ, процессор - один (это видно и на фотографии), с нашим мат.обеспечением. Turbo 100 может работать только в составе с основным ПО ViPNet (Администратор, Координатор, Клиент) на базе ядра Домен-К, поэтому вопрос сертифицированности по отношению к Turbo 100 ставить некорректно.

Как сказать... Если Вы хотите сказать что это обычный сопроцессор - это один вопрос, и это устройство можно продавать отдельно и т.д. и т.п. Если же (как я понимаю) это специализированный процессор, то коректность выполняемых им операций кто-то должен проверить...

6) А никто и не говорил, что установка двух плат должна умножить производительность на два... size=7]

Вот тут вы меня совсем не поняли!!! :(

если плата - плата - дает 80 то ПОЧЕМУ плата - две платы дает 95? ну с одной стороны стало быстрей - это понятно, но с другой то ничего не изменилось!

Share this post


Link to post
Share on other sites

Ну, что ж, опять тогда по-порядку...

Если у какого-то производителя на все хватает времени - это означает только то, что человек, ответственный за планирование ресурсов, не способен их задействовать в полной мере, либо решение, предлагаемое таким производителем - не развивается :wink:

Мы считаем выбранные временные рамки тестов корректными.

Для сторонних читателей добавлю - ViPNet - это не цифромолотилка для как можно более быстрого закрытия потока - это полноценная VPN с широкими возможностями клиентского ПО. Поэтому поддержка криптоакселератора и он сам - лишь одна из доступных функций. Ее тестирование проходит наравне со всеми другими возможностями.

Замечания насчет работы NetPerf считаю корректными только для UDP, TCP как известно работает по-другому и требует постоянного подтверждения корректности и кол-ва переданных данных. Это сразу же приводит к зависимости от пропускной способности сети.

Согласен, что 5 или 10 потоков - разница небольшая - у нас было 10. На одном потоке никаких скачков не наблюдалось - скорость существенно меньше, чем при 10 потоках. Целью тестирования было создать большой трафик, а не исследовать особенности реализации стека TCP/IP от MS и работу NetPerf.

C точки зрения безопасности грамотным является развертывание VPN, а полноценная VPN требует наличия клиентских точек. Разделив сеть на сегменты с помощью межсетевых экранов и криптошлюзов, нельзя считать задачу обеспечения безопасности решенной. Еще раз повторюсь - ViPNet Turbo 100 может использоваться как с ViPNet Координатором (криптошлюзом), так и с ViPNet Клиентом (однокарточная рабочая станция). Наша компания всегда стремилась и стремится предлагать решения для доведения VPN до каждого компьютера в сети - это единственная возможность защиты от "соседа", а также гарантированного контроля за разграничением доступа к сетевым ресурсам - это подтверждает наш сертификат Гостехкомиссии на АС по классу 1В.

Во втором тесте задействована туннельная схема (в первой - точка-точка на 1Гб/с). Каналы у рабочих станций по 100Мб/с, поэтому 530Мб/с из первого теста получить невозможно физически. А вот шифрование пропущенных в открытом режиме 95 Мб/с во втором тесте с двумя платами компьютер уже способен покрыть полностью.

Если речь, все-таки, велась о сертификации ViPNet и Turbo 100 в целом, то этот вопрос действительно находится пока еще в стадии проработки. Если говорить о ViPNet, как о VPN, построенной на базе криптоядра Домен-К, то Turbo 100 является всего лишь доп.модулем (пусть и аппаратным). Корректность его работы с криптоядром подтверждается возможностью одновременной работы в системе, как Turbo 100, так и программного Домен-К. Более того, Turbo 100, по сути - математический сопроцессор со специализированной прошивкой, реализующей алгоритм ГОСТ, и он обязательно требует наличия программных модулей криптоядра Домен-К для выработки, обработки и хранения ключей, корректность чего, собственно, и сертифицируется ФАПСИ.

Про втекающие и вытекающие литры:

1) Как было указано выше, максимальная скорость шифрования криптоакселератора -- 100 Мбит/с.

2) Трудоемкость дешифрования несколько выше, чем шифрования.

3) Второй Криптошлюз принимал шифрованный трафик, поэтому в основном занимался дешифрованием его. Когда на Втором Криптошлюзе был один криптоакселератор, он пропускал 80 Мбит/с.

4) Установка на Второй Криптошлюз 2-го криптоакселератора позволила повысить скорость дешифрования. Однако на первом криптошлюзе остался один криптоакселератор, поэтому из него в принципе не могло выливаться более 100 Мбит/с. Получилось 95 Мбит/с. Эти 95 литров проходят через оба криптошлюза. Вроде бы, неплохо.

Share this post


Link to post
Share on other sites

То есть промежуточный итог:

1. Решение не сертифицированно.

2. его пропускная способность - 72-80 (по результатам Ваших же тестов)

А можно попросить поподробнее описать, где что генерировалось, и где что ловилось? А еще лучше - опубликуйте конфигурационную строку NetPerf.

А кстати, почему в первом тесте, при загруженном генерацией процессоре в режиме soft Вы получили 83, а во втором, при свободном процессоре - 65?

Чем все-таки вызвано снижение производительности при добавлении акселератора? Это такая особенность драйвера?

Share this post


Link to post
Share on other sites
1. Решение не сертифицированно

Да, сам по себе криптоакселератор не имеет сертификатов. Но так он сам по себе и работать не может (требуется ПО ViPNet с Доменом-К), то вопрос необходимости его сертификации вообще говоря не является однозначным.

2. его пропускная способность - 72-80 (по результатам Ваших же тестов)

Да.

А можно попросить поподробнее описать, где что генерировалось, и где что ловилось? А еще лучше - опубликуйте конфигурационную строку NetPerf.

NETPERF.EXE -H <ip_addr> -t TCP_STREAM -p 10000 -- -s 65536 -S 65536

Естественно, что для организации 10 потоков запускается 10 Netperf, каждый на свой порт.

А кстати, почему в первом тесте, при загруженном генерацией процессоре в режиме soft Вы получили 83, а во втором, при свободном процессоре - 65?

Это действительно интересный вопрос, и мы с ним сейчас разбираемся.

Чем все-таки вызвано снижение производительности при добавлении акселератора? Это такая особенность драйвера?

Тем, что P4 2500 МГц мощнее чем процессор платы, а распараллеливать работу драйвер не умеет.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site, you agree to our Terms of Use.