This is an old revision of the document!
Table of Contents
332 IPSec
Необходимые знания по IPSec:
- Identify the concepts, benefits and operation of IPSec VPNs:
- Secure VPN characteristics and components
- IPSec tunnel establishment
- IPSec traffic processing
- Junos OS IPSec implementation options
- Demonstrate knowledge of how to configure, monitor and troubleshoot IPSec VPNs:
- IPSec VPN configuration steps
- Monitoring and troubleshooting
IPSec - это набор стандартов\протоколов с помощью которых можно организовать безопасную предачу данных через ip сети.
Проблемы безопасности в разрезе передачи информации через через ip сети:
- Конфиденциальность (Confidentiality) - чувствительную для бизнеса информацию надо шифровать.
Нужно добиться того, что бы в случае перехвата информации её нельзя было прочесть и\или понять. - Целостность (Integrity) - всегда надо проверять целостность принятой информации.
Информация по пути может “попортиться” в случае потерь на одном из каналов связи или при её намеренном изменении. Факт изменения информации надо отслеживать . - Аутентификация (authentication) - всегда надо понимать с кем ты строишь ipseс туннель, что бы не построить его с врагом.
Соответственно задачи srx при построении ipsec туннеля будут такими:
- Зашифровать ip пакет.
- Проверить целостность передаваемых пакетов
- Идентифицировать удаленный srx c которым строится ipsec туннель.
Confidentiality
Data Encryption
Шифрование - процесс перевода plaintext в нечитаемый вид, т.н. ciphetext.
Основные составными части шифрования - алгоритм и ключ шифрования, что бы можно было расшифровать данные нужно знать алгоритм и ключ.
Типы шифрования :
- Шифрование симметричный ключом - данные шифруются и расшифровываются одним и тем же ключом.
Пример - AES (Advanced Encryption Standart), ГОСТ, Blowfish, CAST, DES (Data Encryprion Standart). - Шифрование несимметричный (открытым) ключом - данные шифруются открытым ключом, а расшифровываются закрытом ключом получателя.
Пример - RSA, El-Gamal.
Symmetric Key Encryption
Обмен информацией осуществляется в три этапа:
- отправитель передает получателю ключ (в сети с несколькими абонентами у каждой пары абонентов должен быть свой ключ, отличный от ключей других пар);
- отправитель, используя ключ, зашифровывает сообщение, которое пересылается получателю;
- получатель получает сообщение и расшифровывает его.
Размер ключа обычно варьируется от 40 до 1024 бит. Такой способ хорошо подходит для шифрования больших объемов данных. Надо аккуратно относиться к передачи секретного ключа.
Симметричное шифрование используется при построении ipsec туннелей, с каждой стороны пишем pre-shared-key (??).
Public (open) Key Encryption
Схема обмена информацией следующая:
- Получатель вычисляет открытый и секретный ключи, секретный ключ хранит в тайне, открытый же делает доступным (сообщает отправителю, группе пользователей сети, публикует);
- Отправитель, используя открытый ключ получателя, зашифровывает сообщение, которое пересылается получателю;
- Получатель получает сообщение и расшифровывает его, используя свой секретный ключ.
Размер ключа обычно выбирают от 512 до 2048 бит. Т.к. ключ длинный процесс шифрование идет медленнее.
Integrity
Данные зашифрованы и отправлены, теперь на стороне получателя надо проверить, что эти данные по пути не были модифицированы. Для этого используют алгоритмы хэширования.
Перед отправкой данные пропускаются через алгоритм хэширования и на выходе получается некое значение хэша.
Это значение отправляется вместе с данными.
На принимающей стороне данные прогоняются через тот же алгоритм хэширования и полученное значение хэша сравнивается со значением которые насчитал отправитель. Если значения одинаковые значит все хорошо, если значения не совпадают, то пакет дропается.
К функции хэша применяются след. требования:
- Не должно быть возможности получить оригинальные данные из значения хэша.
- Одно и тоже значение хэша не должно получаться из двух разных начальных данных, хэш всегда должен быть уникальным.
Примером такой функции является функция определения остатка от деления - остаток при делении 80 на 11 будет равняться 3 (80 делим на 11 целое число раз и получаем остаток - целое число раз будет равняться 7, 7*11=77, 80-77=3 ). Зная, что остаток равняется 3 мы не сможем точно узнать что на что делилось.
80mod11=3
13mod5=3
203mod10=3 и т.д.
13mod5=3 эта такая форма записи в англоязычной литературе, к нашему модулю “| |” отношение вроде не имеет.
На на практике вычисления функция вычисления остатка не применяется, т.к. невозможно обеспечить уникальность результата.
Наиболее распространенными функциями являются SHA1, SHA3 (secure hash algoritm) и MD5 (message digest).
Аuthentication
Данные зашифрованы - никто их не прочитает. Хэш посчитан - о изменении передаваемых данных узнаем.
Осталось убедиться, что мы обмениваемся данными с правильным “собеседником”.
Для этого применяется механизм HMAC (Hashed MeassageAuthentication Code).
Принцип hmac:
- отправляющий к данным добавляем (appends) preshared-key, хэширует данные и отправляет
- данные с хэшем доходят до получателя
- получатель отделяет данные от хэша
- получатель добавляет свою версию preshared-key и считает хэш.
- получатель сравнивает высчитанное значение хэша с тем которое он получил от отправителя, если одинаковые, то все ок.