Интернет - это глобальная сеть, насчитывающая тысячи компьютеров, разбросанных по всему миру. Когда два компьютера взаимодействуют между собой, весь трафик от источника до пункта назначения проходит через множество других устройств (маршрутизаторов, коммутаторов и т.д.). Эти сетевые устройства администрируют посторонние организации, и никто не может поручиться за их честность (в большинстве случаев невозможно узнать заранее, по какому пути пойдут пакеты к пункту назначения).
На любом из хостов, встречающихся на пути пакетов, можно просмотреть их содержимое и/или изменить что-либо в них. Все это создает серьезные проблемы, тем более существенные, чем выше уровень значимости или конфиденциальности передаваемых данных.
Для решения этоих проблем и применяются защищенные информационные каналы. Их можно представить себе как некий туннель. Информация помещается с одной стороны туннеля и прочесть ее можно только с другой стороны.
На самом деле, передаваемая информация модифицируется таким образом, чтобы их невозможно было изменить (аутентификация) или просмотреть (криптография) на пути их следования. При совместном применении этих двух механизмов обеспечивается как сокрытие информации, так и невозможность ее подмены на всем пути ее следования.
Базовыми понятиями в криптографии являются ключ и математический алгоритм. Используя этот алгоритм и ключ, информация модифицируется. Способ, которым это делается, гарантирует возможность обратного преобразования данных к первоначальной форме только при условии, что известны алгоритм и ключ.
Если один из этих компонентов держится в секрете (как правило, ключ), то просмотреть данные постороннему человеку невозможно.
В аутентификации основными понятиями также являются ключ и математический алгоритм, основанный на хэш-функции. В отличие от криптографии, этот алгоритм используется не для шифрования данных, а для созданию электронной подписи. Подпись формируется таким образом, что вычислить ее, не зная алгоритм и ключ невозможно
Созданная таким образом электронная подпись передается вместе с данными в пункт назначения. Если данные в процессе передачи подверглись изменениям, это сразу же обнаружится: в хосте назначения будет вычислена электронная подпись от полученных данных и после сравнения с полученной подписью подмена будет обнаружена.
Операция по вычислению подписи выполняется очень быстро по сравнению с шифрованием. Тем не менее, она не может защитить данные от чтения. Поэтому ее следует применять, если важна надежность доставки, а не конфиденциальность. Для обеспечения обеих характеристик аутентификация используется совместно с криптографией.
В настоящее время существуют различные алгоритмы аутентификации и шифрования. В этом разделе будут рассмотрены только те из них, которые поддерживаются межсетевым экраном Aker.
Одним из параметров оценки прочности алгоритма является размер ключа. Чем большее количество бит содержится в ключе, тем больше можно составить всевозможных комбинаций, и тем сильнее, теоретически, данный алгоритм должен противостоять атакам.
Алгоритмы аутентификации:
это сокращение от Message Digest 5. Этот алгоритм, создан и запатентован RSA Data Security, Inc., но при этом он может быть без ограничений использован для любых приложений. Он применяется для создания электронных подписей со 128 битами в сообщениях любого размера и считается достаточно быстрым и защищенным алгоритмом.
это сокращение от Secure Hash. Этот алгоритм позволяет генерировать электронные подписи длиной 160 бит для сообщений любого размера. Он считается более защищенным алгоритмом в сравнении с MD5, однако его производительность в среднем на 50% ниже в реализации, используемой в межсетевом экране Aker.
В межсетевом экране Aker используется версия SHA-1, незначительно скорректированная по сравнению с SHA. Тем не менее, в данном руководстве и в административном интерфейсе она всегда будет называться SHA.
Алгоритмы шифрования:
DES - это сокращение от Data Encription Standard, он создан IBM в семидесятых годах и до недавнего времени был принят в качестве стандарта в правительстве США . В аппаратных реализациях этот алгоритм оказывается достаточно быстрым; правда, его скорость недостаточна при программной реализации. Его криптографические ключи имеют фиксированный размер в 56 бит, что считается недостаточным для сегодняшних стандартов. Поэтому для критических приложений предпочтение следует отдавать другим алгоритмам.
Алгоритм Triple DES заключается в троекратном применении алгоритма DES с использованием трех различных ключей для одних и тех же данных. Это эквивалентно использованию алгоритма с ключом в 112 бит, что приводит к резкому повышению уровня безопасности по сравнению с DES. Его главным недостатком остается то, что он в два раза медленнее, чем DES (в реализации, используемой межсетевым экраном Aker).
Одной из серьезных проблем при образовании защищенного канала является определение ключей аутентификации и шифрования и выполнение периодических замен этих ключей.
Чтобы снизить риск взлома ключей злоумышленником и уменьшить нанесенный ущерб в случае взлома одного из них, важно проводить периодические замены ключей; предположим, что спустя шесть месяцев после установки ключей злоумышленнику удалось взломать ключи алгоритма шифрования (выбранная ситуация гипотетическая и ничего общего не имеет с реальной ). Если компания продолжает пользоваться теми же ключами,скажем, в течение года, то злоумышленник может расшифровать весь трафик компании за последние 6 месяцев. С другой стороны, если ключи менять ежедневно, тот же нарушитель, расшифровав после шестимесячной работы по взлому трафик первого дня, будет вынужден еще поработать шесть месяцев над расшифровкой трафика второго дня и т.д.
Межсетевой экран Aker предоставляет два способа обмена ключами: ручной обмен и с помощью SKIP:
В этом случае все настройки ключевой информации производятся вручную. При этом если производится замена ключей, обе стороны, между которыми образован защищенный канал, должны быть одновременно переконфигурированы
SKIP - это сокращение от Simple Key Management for IP. По существу, он является алгоритмом , позволяющим выполнять замену ключей в автоматическом режиме с черезвычайно высокой частотой, практически полностью исключающей их взлом. Функционирование SKIP оказывается сложной процедурой, и мы не будем вдаваться в ее детали. Сфокусируем внимание на описании самого процесса.
В основном SKIP работает с тремя различными уровнями ключей:
Опишем сценарий в общих чертах: для установления связи генерируется случайный ключ и он используется для зашифрования и аутентификации посылаемых данных. Затем этот ключ шифруется на мастер ключе и отсылается вместе с зашифрованными данными. Когда принимающая сторона получает пакет, она расшифровывает ключ с помощью мастер ключа и использует его для расшифровки остального пакета.Поскольку алгоритмы, используемые для аутентификации, шифрования пакета и ключа определяются отправителем и передаются как часть протокола, получателю нет нужды настраивать эти параметры в приемнике.
Основным преимуществом SKIP является возможность использовнияя одного и того же секрета годами, не боясь его взлома нарушителем (поскольку замена ключа производится с интервалом от нескольких секунд до максимального значения в один час, в зависимости от трафика между взаимодействующими сетями).
Настоятельно рекомендуется пользоваться этой опцией при конфигурировании защищенных каналов.
Для определения защищенного канала сначала надо выбрать две группы хостов, которые будут обмениваться информацией защищенным образом. Эти группы хостов будут обмениваться подписанными и при необходимости зашифрованными пакетами. На каждом конце канала нужно установить межсетевые экраны, которые будут осуществлять аутентификацию/верификацию и шифрование/дешифрование передаваемых данных.
Для определения групп хостов используется концепция объектов, рассмотренная в главе 5 Регистрация объектов. При определении канала можно пользоваться обектами типа "хост", "сеть" или "набор".
Кроме объектов, необходимо определить алгоритм аутентификации, и в случае необходимости, криптографический алгоритм. Ключи аутентификации и шифрования завершают перечень параметров, необходимых для описания канала.
Межсетевой экран Aker поддерживает несколько одновременно защищенных каналов между различными точками. На межсетевом экране содержится список, каждый элемент которого полностью определяет параметры защищенного канала. Этот элемент называется Security Association или SA.
Планирование защищенных каналов должно проводиться очень тщательно. Использование криптографии отнимает много вычислительных ресурсов. Поэтому шифрование пакетов, если это не диктуется интересами безопасности, представляется напрасной тратой ресурсов. Более того, разные алгоритмы шифрования требуют различного объема обработки, и обеспечивают различные уровни безопасности. Каждый алгоритм следует выбирать в зависимости от необходимого уровня безопасности (выше было дано описание всех алгоритмов, поддерживаемых межсетевым экраном Aker).
Последнее замечание по поводу защищенных каналов касается их одностороннего характера, т.е. если вы хотите настроить защищенную связь между двумя сетями А и В, то должны настроить два разных канала: канал с источником в сети А и пунктом назначения в сети В и другой канал с источником в сети В и пунктом назначения в сети А. Пакеты, посланные из А в В будут использовать настройки первого канала, а пакеты, посланные из В в А - второго. Это свойство подробнее будет проиллюстрировано в приведенных ниже примерах:
Главный пример настройки защищенного канала.
В этом примере рассматривается, как описать защищенный канал связи между двумя сетями, взаимодействующими через Интернет, используя два межсетевых экрана Aker. Канал обеспечивает защиту всего трафика между этими двумя сетями. В качестве алгоритма аутентификации выбран MD5, а в качестве алгоритма шифрования - DES.
При использовании шифрования обязательно должна использоваться аутентификация. Это вызвано тем, что без применения аутентификации к зашифрованым сообщениям могут быть проведены атаки с модификацией текста.
Объекты:
NETWORK1 - IP адрес: A1.B1.C1.0 - Cетевая маска 255.255.255.0
NETWORK2 - IP адрес: A2.B2.C2.0 - Cетевая маска 255.255.255.0
Защищенный канал 1:
Направление канала: отправка
Источник: NETWORK1
Назначение: NETWORK2
Алгоритм шифрования: DES
Алгоритм аутентификации: MD5
Ключ аутентификации: X1
Ключ шифрования: X2
Защищенный канал 2:
Направление канала: прием
Источник: NETWORK2
Назначение: NETWORK1
Алгоритм шифрования: DES
Алгоритм аутентификации: MD5
Ключ аутентификации: X3
Ключ шифрования: X4
Конфигурация межсетевого экрана Aker сети 2
Объекты:
NETWORK1 - IP адрес: A1.B1.C1.0 - Сетевая маска 255.255.255.0
NETWORK2 - IP адрес: A2.B2.C2.0 - Сетевая маска 255.255.255.0
Защищенный канал 1:
Направление канала: прием
Источник: NETWORK1
Назначение: NETWORK2
Алгоритм шифрования: DES
Алгоритм аутентификации: MD5
Ключ аутентификации: X3
Ключ шифрования: X4
Защищенный канал 2:
Направление канала: отправка
Источник: NETWORK2
Назначение: NETWORK1
Алгоритм шифрования: DES
Алгоритм аутентификации: MD5
Ключ аутентификации: X1
Ключ шифрования: X2
Обратите внимание на то, что правило 1 для межсетевого экрана Aker 1 в точности совпадает с правилом 1 для межсетевого экрана Aker 2, за исключением пункта, связанного с направлением. То же касается и правила 2.
Пример конфигурации защищенного канала для подсети
В этом примере определим защищенный канал только для группы хостов в каждой из двух сетей. Кроме того, установим различные алгоритмы для каналов между этими группами.
Использование различных алгоритмов для двух направлений защищенного канала может оказаться полезным в том случае, когда ценность информации в одном направлении больше, чем в другом. В этом случае более защищенный алгоритм применяется в наиболее критическом направлении.
Предположим еще, что сети 1 и 2 содержат два адреса класса В: А1.В1.0.0 и А2.В2.0.0, соответственно.
Объекты:
SUBNET1 - IP адрес: A1.B1.2.0 - Сетевая маска 255.255.255.0
SUBNET2 - IP адрес: A2.B2.5.0 - Сетевая маска 255.255.255.0
Защищенный канал 1:
Направление канала: отправка
Источник: SUBNET1
Назначение: SUBNET2
Алгоритм шифрования: DES
Алгоритм аутентификации: MD5
Ключ аутентификации: X1
Ключ шифрования: X2
Защищенный канал 2:
Направление канала: прием
Источник: SUBNET2
Назначение: SUBNET1
Алгоритм шифрования: 3DES
Алгоритм аутентификации: SHA
Ключ аутентификации: X3
Ключ шифрования: X4
Конфигурация межсетевого экрана Aker сети 2
Объекты:
SUBNET1 - IP адрес: A1.B1.C1.0 - Сетевая маска 255.255.255.0
SUBNET2 - IP адрес: A2.B2.C2.0 - Сетевая маска 255.255.255.0
Защищенный канал 1:
Направление канала: отправка
Источник: SUBNET2
Назначение: SUBNET1
Алгоритм шифрования: 3DES
Алгоритм аутентификации: SHA
Ключ аутентификации: X3
Ключ шифрования: X4
Защищенный канал 2:
Направление канала: прием
Источник: SUBNET1
Назначение: SUBNET2
Алгоритм шифрования: DES
Алгоритм аутентификации: MD5
Ключ аутентификации: X1
Ключ шифрования: X2
Заметьте, что в этом случае совпадение правил возникает в двух межсетевых экранах в другом порядке: правило 1 в межсетевом экране 1 совпадает с правилом 2 в межсетевом экране 2 (с измененными направлениями), а правило 2 в экране1 совпадает с правилом 1 в экране 2 (опять с измененными направлениями). Конечно, порядок описания правил для данных примеров не имеет значения (однако, это не всегда так):
Чтобы получить доступ к окну настройки защищенных каналов, необходимо выполнить следующие действия:
Окно настройки защищенных каналов
Окно содержит параметры конфигурации всех защищенных каналов межсетевого экрана Aker. Каждый канал будет показан на дисплее на отдельной строке, состоящей из нескольких клеток. При выделении одного из каналов строка будет окрашена в другой цвет.
Указание: Если эта опция не установлена и каналы имеют больше двух объектов в источнике или назначении, в каждом поле, содержащем больше двух объектов, будет показана направленная вниз стрелка.
Для выполнения любого действия с параметрами канала, необходимо нажать на нем правой клавишей мыши. Появится следующее меню (Это меню появляется всегда при нажатии на правую клавишу мыши, даже если канал не выделен. В этом случае будут доступны только опции Добавить и Вставить).
Рекомендация: Все опции, кроме опции "отменить выделение", доступны через инструментальное меню, расположенное в верхней части окна. В этом случае сначала надо выделить канал, нажав на нем левой клавишей мыши, а затем выбрать необходимую опцию.
При добавлении или редактировании каналов появится окно свойств, описание которого приведено ниже:
Для использования ручного обмена ключами необходимо выделить опцию Ручной в поле Обмен ключами. Это приведет к изменению окна, на котором появятся необходимые поля для настройки параметров:
Аутентификация
Для создания каналов, в которых используется только аутентификация, нужно выделить опцию Нет в поле Шифрование. В этом случае появятся следующее окно:
Объекты источника : Определяет объекты, адреса которых будут сравниваться с адресом источника IP пакетов, которые должны попадать в канал.
Объекты назначения : Определяет объекты, адреса которых будут сравниваться с адресом назначения IP пакетов, которые должны попадать в канал.
Комментарий: Поле комментариев.
Направление канала: Определяет направление канала. Эта опция может принимать два значения: отправить или принять. За деталями обращайтесь к разделу этой главы Введение.
SPI: (Security Parameter Index) Это уникальное число, используемое приемником, которое идентифицирует потоки. Оно должно превышать 255 и обязательно различаться для каждого канала, направленного к тому же приемнику.
Ключ аутентификации: Это ключ, используемый при аутентификации. Он должен быть записан в шестнадцатиричном формате. Максимальный размер ключа зависит от используемого алгоритма: 32 знака для MD5 и 40 знаков для SHA. Рекомендуется исппользвать максимально допустимымое количество знаков.
Аутентификация: Это поле определяет, какой алгоритм аутентификации будет применяться. Возможны два алгоритма: MD5 или SHA.
Аутентификация с шифрованием, использующим DES
Для создания каналов с шифрованием, использующим алгоритм DES, следует выделить опцию DES в поле Шифрование. Вы увидите следующее окно:
Это окно полностью совпадает с окном для предыдущего элемента меню за исключением двух полей:
Длина вектора инициализации: Это размер в битах вектора инициализации, который применяется в алгоритме DES. Этот вектор генерируется системой автоматически для каждого посылаемого пакета. Рекомендуется использование варианта с 64 битами.
Ключ: Это ключ, который будет применяться для шифрования пакетов. Он обязательно должен быть шестнадцатиричным числом с 16 знаками.
Аутентификация с шифрованием, использующим Triple DES (3DES)
Для создания каналов с шифрованием , использующим алгоритм Triple DES, следует использовать опцию 3DES в поле Шифрование. Вы увидите следующее окно:
В этом окне добавляются 4 новых поля по сравнению с окном только аутентификация:
Длина вектора инициализации: то размер в битах вектора инициализации, который применяется в алгоритме 3DES. Этот вектор генерируется системой автоматически для каждого посылаемого пакета. Рекомендуется использование варианта с 64 битами.
Ключ 1: Это ключ, применяемый при первом преобразовании в алгоритме 3DES. Он обязательно должен быть шестнадцатиричным числом с 16 знаками.
Ключ 2: Это ключ, применяемый при втором преобразовании в алгоритме 3DES. Он обязательно должен быть шестнадцатиричным числом с 16 знаками.
Ключ 3: Это ключ, применяемый при третьем преобразовании в алгоритме 3DES. Он обязательно должен быть шестнадцатиричным числом с 16 знаками.
Для использования SKIP для обмена ключами нужно выделить опцию SKIP в поле Обмен ключами. Окно изменится и в нем появятся необходимые поля.
В протоколе SKIP вся информация, связанная с алгоритмами аутентификации и шифрования, конфигурируется только в хосте, посылающем пакеты. В хосте, который принимает пакеты, необходимо лишь описать объекты источника и назначения и общий секрет.
В обоих случаях появится следующее окно (при настройках на хосте приемнике ненужные поля будут недоступны):
Объекты источника: Определяет объекты, адреса которых будут сравниваться с адресом источника IP пакетов, которые должны попадать в канал.
Объекты назначения: Определяет объекты, адреса которых будут сравниваться с адресом назначения источника IP пакетов, которые должны попадать в канал.
Комментарии:Поле комментариев.
Направление канала: Определяет направление канала. Эта опция может принимать два значения: послать или принять. За деталями обращайтесь к разделу этой главы Введение.
Шифрование ключа: Это алгоритм, применяемый для шифрования посылаемого в пакете ключа сеанса. Рекомендуется пользоваться 3DES.
Шифрование пакетов: Это алгоритм, которым пользуются для шифрования данных. Возможные опции Нет ( при использовании только аутентификации), DES и 3DES. Рекомендуется использовать 3DES.
Алгоритм аутентификации: Определяет , какой алгоритм будет использоваться для аутентификации. Возможные значения: MD5 или SHA.
Общий секрет: Это секрет, который будет использоваться для генерации мастер ключей (за деталями обращайтесь к разделу этой главы Введение).Секрет должен быть одинаков для обоих межсетевых экранов по обе стороны канала. Он обязательно должен быть шестнадцатиричным числом с 64 знаками.
Кроме этих полей, существуют две кнопки, облегчающие настройку секрета в обоих межсетевых экранах, отвечающего за шифрование и дешифрование в защищенном потоке:
Загрузить секрет: Эта кнопка позволяет прочесть значение из ASCII файла в поле общего секрета. Этот файл должен состоять только из одной строки длиной 64 символа.
Сохранить секрет: Эта кнопка позволяет записать содержимое поля общего секрета в ASCII файл. Переписанный файл будет иметь только одну строку длиной 64 символа.
При нажатии какой-либо из этих кнопок появляется окно, позволяющее выбрать имя файла, в котором следует сохранить или считать секрет.
Использование интерфейса командной строки для настройки правил криптографии/аутентификации затрудняется большим числом параметров, которые используются в интерфейсе командной строки.
Этот интерфейс обладает теми же возможностями, что и графический интерфейс, за исключением того, что он не позволяет описывать комментарии или указывать больше одного объекта для источника или назначения.
Путь к программе: /etc/firewall/fwcripto
Синтаксис:
fwcripto [show | help] fwcripto remove <pos> fwcripto add <pos> <source> <destination> [send | receive] manual <spi> [MD5 | SHA] <authentication key> NONE fwcripto add <pos> <source> <destination> [send | receive] manual <spi> [MD5 | SHA] <authentication key> DES <iv size> <encryption key> fwcripto add <pos> <source> <destination> [send | receive] manual <spi> [MD5 | SHA] <authentication key> 3DES <iv size> <key1> <key2> <key3> fwcripto add <pos> <source> <destination> send skip [DES | 3DES] [MD5 | SHA] [NONE | DES | 3DES] <secret> fwcripto add <pos> <source> <destination> receive skip <secret>
Program help:
Aker Firewall - Version 3.01 fwcripto - настройка параметров аутентификации/шифрования Usage: fwcripto [show | help] fwcripto remove <pos> fwcripto add <pos> <source> <destination> [send | receive] manual <spi> [MD5 | SHA] <authentication key> NONE fwcripto add <pos> <source> <destination> [send | receive] manual <spi> [MD5 | SHA] <authentication key> DES <iv size> <encryption key> fwcripto add <pos> <source> <destination> [send | receive] manual <spi> [MD5 | SHA] <authentication key> 3DES <iv size> <key1> <key2> <key3> fwcripto add <pos> <source> <destination> send skip [DES | 3DES] [MD5 | SHA] [NONE | DES | 3DES] <secret> fwcripto add <pos> <source> <destination> receive skip <secret> show = показывает все объекты в таблице каналов add = добавляет новый элемент в таблицу remove = удаляет существующий элемент из таблицы help = показывает данное сообщение Для команды Add: pos = позиция, куда будет включен новый элемент (она может быть целым положительным числом или словом END, если новый элемент добавляется в конец таблицы) send = этот элемент будет использоваться при посылке пакетов receive = этот элемент будет использоваться при приеме пакетов skip = использует SKIP в качестве протокола обмена ключей manual = использует ручной обмен ключей spi = Security Parameter Index (Это целое число, которое служит для описания защищенного соединения между хостами источника и назначения. Это число должно быть больше 255) MD5 = использует MD5 для аутентификации SHA = uses the SHA-1 as the authentication algorithm DES = использует DES для шифрования 3DES = использует 3DES для шифрования NONE = Не использует шифрование, только аутентификацию (для SKIP первый выделенный алгоритм соответствует соответствует алгоритму шифрования ключа, а второй шифрованию пакета) iv_size = размер в битах вектора инициализации для DES или 3DES Значение должно быть равным 32 или 64. Ключ аутентификации, ключ(и) шифрования и общий секрет для SKIP должны вводиться в шестнадцатиричном формате Для 3DES должны быть введены 3 ключа, разделенные пробелами. Для команды удаления: pos = позиция удаляемого элемента (позиция в таблице показана в левой колонке при просмотре командой "смотреть")
Пример 1: (Просмотр таблицы защищенных каналов)
Entry 01: -------- Source : NETWORK1 Destination : AKER Direction : Receive Keys: SKIP Secret : 5ab53faefc7c9845acbe223148065dabe3279819ab01c39654effacbef087022 Entry 02: -------- Source : AKER Destination : NETWORK1 Direction : Send Keys: SKIP Algorithms: 3DES MD5 DES Secret : 5ab53faefc7c9845acbe223148065dabe3279819ab01c39654effacbef087021 Entry 03: -------- Source : Internal Network Destination : External Network 1 Direction : Send Keys: Manual Algorithms: SHA DES SPI : 999 Authentication: 0c234da5677ab5 Encryption : 9a34ac7890ab67ef IV: 64 bits Entry 04: -------- Source : External Network 1 Destination : Internal Network Direction : Receive Keys: Manual Algorithms: SHA DES SPI : 999 Authentication: 0c234da5677ab5 Encryption : 9a3456ac90ab67ef IV: 64 bits
Пример 2: (Удаление третьего элемента)
#/etc/firewall/fwcripto remove 3 Entry 3 removed
Пример 3: (Добавление элемента с ручным обменом ключей и шифрованием DES в конец таблицы)
#/etc/firewall/fwcripto add end NETWORK1 NETWORK2 send manual 7436 MD5 c234da5677ab5 DES 64 4234ad70cba32c6ef Entry added at position 3
Пример 4: (Добавление элемента с обменом ключей через SKIP в начало таблицы)
#/etc/firewall/fwcripto add 1 NETWORK1 NETWORK2 send skip 3DES SHA DES 5ab53faefc7c9845acbe223148065dabe3279819ab01c39654effacbef087022 Entry added at position 1