вторник, 16 августа 2016 г.

IPsec Overhead

Шифрование и туннелирование трафика влечет за собой накладные расходы. При одном и том же MTU канала связи, в случае использования шифрования размер полезных передаваемых данных меньше, чем без шифрования. Соответственно, в некоторых ситуациях при включении шифрования возможна фрагментация пакетов, которая в свою очередь приводит к снижению производительности и некорректной работе части сервисов.


Самый распространенный способ решения этой проблемы - изменение величины MTU в локальной сети или канале связи. Необходимо уменьшить MTU локальной сети и/или увеличить MTU в канале связи, таким образом, что они отличались как минимум на величину накладных расходов (естественно MTU канала должно быть больше). 



В некоторых случаях при проектировании VPN сети на накладные расходы с запасом закладывают 100 байт. Но большой запас может обходиться очень дорого - за повышение MTU региональные провайдеры порой просят баснословные деньги, а понижать MTU локальной сети тоже не всегда возможно. Поэтому важно понимать точное значение накладных расходов.

Рассмотрим расчет для продуктов С-Терра с применением ГОСТ-алгоритмов. Часть информации верна и для других продуктов, реализованных на базе IPsec. Но накладные расходы, связанные именно с криптографией отличаются в зависимости от алгоритма и его реализации.

Параметры, влияющие на величину overhead:
  • Режим работы IPsec (туннельный или транспортный);
  • На каком уровне требуется  шифровать данные (на L2 или L3);
  • Осуществляется ли трансляция сетевых адресов (NAT);
  • Набор алгоритмов или преобразований, на основе которых обеспечивается конфиденциальность и целостность.
Рассмотрим следующие случаи:
  • Туннельный режим с шифрованием на уровне L3 без использования NAT;
  • Туннельный режим с шифрованием на уровне L3 и с использованием NAT;
  • Транспортный режим с шифрованием на уровне L2 без использования NAT.
Во всех случаях в качестве набора алгоритмов используется комплексное преобразование, обеспечивающее конфиденциальность и имитозащиту информации на основе ГОСТ28147  (ESP_GOST-4M-IMIT). Для продуктов С-Терра это рекомендованный и наиболее производительный набор преобразований. Подробнее о нем на русскоязычном и англоязычном ресурсах.


Туннельный режим с шифрованием на уровне L3 без использования NAT



Сначала идет официальный заголовок ESP:
SPI (Security Parameters Index) - 4 байта
SN (Sequence Number) - 4 байта
Потом скрытая часть заголовка:
IVRandom - 4 байта
IVCounter - 4 байта
Далее непосредственно зашифрованный исходный пакет.
После этого трейлер - "хвостовик". Выравнивание производится по границе 8 байтов после добавления двух однобайтовых полей - PadLength и NextHeader.
Худший случай - если было 7 байтов, то добавится ещё 2+7.
Лучший случай - если было 6 байтов, то добавится только 2.
Получается от 2 до 9 байтов переменного дополнения.
Потом отдельно добавляется 4 байта ICV (Integrity Check Value).
Итого:
Дополнение 1 фиксированное в начале = 16 байтов.
Дополнение 2 переменное в конце = от 6 до 13 байтов.
Суммарное дополнение ESP (IMIT) добавляет 22-29 байт.

При использовании туннельного режима L3 , дополнительно добавляется IP заголовок 20 байт. Суммарный overhead составляет 42-49 байт.

Туннельный режим с шифрованием на уровне L3 и с использованием NAT



Аналогично первому случаю, но дополнительно добавляется 8 байт UDP заголовка.
Суммарный overhead составляет 50-57 байт.

Транспортный режим с шифрованием на уровне L2 без использования NAT

Реализация шифрования на канальном уровне для продуктов С-Терра основана на предварительном туннелирования в L3 - продукт перехватывает исходный фрейм целиком, добавляет IP и UDP заголовки. Далее трафик шифруется в транспортном режиме.



Обратите внимание, что отсутствует IP заголовок туннельного режима. Но для реализации L2 добавлены UDP заголовок 8 байт и IP 20 байт (именно он будет использоваться далее в канале связи), а также Ethernet исходного фрейма - 14+4 байт.
Суммарный overhead составляет 68-75 байт.
Если перехватывается тегированный трафик, то в overhead попадет и метка VLAN 4 байта.

ОБНОВЛЕНО:
Если в конфигурации С-Терра L2 используется параметр fragment (а он используется практически всегда), то дополнительно добавляется 4 байта. При этом суммарный overhead составляет 72-79 байт.
Если перехватывается тегированный трафик, то в overhead попадет и метка VLAN 4 байта.


Возможны комбинации рассмотренных случаев и дополнительные накладные расходы (например, GRE добавляет еще 20 байт). Для других криптоалгоритмов величина ESP Trailer и ESP ICV могут отличаться, длины других заголовков фиксированы.

Комментариев нет:

Отправить комментарий