User Tools

Site Tools


workbook:jno-332:332_ipsec

This is an old revision of the document!


332 IPSec VPNs

Необходимые знания по 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

Проблемы безопасности в разрезе передачи информации через через 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

Обмен информацией осуществляется в три этапа:

  1. отправитель передает получателю ключ (в сети с несколькими абонентами у каждой пары абонентов должен быть свой ключ, отличный от ключей других пар);
  2. отправитель, используя ключ, зашифровывает сообщение, которое пересылается получателю;
  3. получатель получает сообщение и расшифровывает его.

Размер ключа обычно варьируется от 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 и считает хэш.
  • получатель сравнивает высчитанное значение хэша с тем которое он получил от отправителя, если одинаковые, то все ок.

Вставить картинку с chapter7-6

Обмен ключами

Ключи используются при шифровании и аутентификации, ключами надо как-то безопасно обмениваться.

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

При автоматическом обмене флешку возить не надо, но надо как-то безопасным образом передавать ключи через интернет. Для этого используют протокол Diffie-Hellman с помощью которого две стороны получают общий секретный ключ который в дальнейшем используются при не симметричном шифровании.

DH

У протокола DH есть несколько групп определяющие длину числа, над которым производятся математические вычисления (combination of exponential and modulus calculation), используемое при генерации ключа.
Junos поддерживает группы 1 (длина числа 768 бит), 2 (1024 бит) и 5 (1536 бит).

Вставить картинку с chapter7-7

—-

IPSec

IPSec - это набор стандартов\протоколов с помощью которых можно организовать безопасную передачу данных через ip сети.

Два основных этапа:

  • Поднятие ipsec туннеля - туннеля поднимается руками (??) или автоматически c помощью протокола IKE (Internet Key Excahnge).
  • Передача данных внутри ipsec туннеля - собственно шифруем данные.

IKE

IKE это протокол используемый для безопасного согласования параметров туннеля.
IKE работает по udp/500 и udp/4500. System service должен быть включен на интерфейсе от имени которого строится туннель.

{primary:node0}[edit security zones security-zone untrust]
admin@srx650-master# show
...
    reth0.261 {
        host-inbound-traffic {
            system-services {
                ping;
                traceroute;
                ike;
            }
        }
    }

Обмен информацией осуществляется парными сообщениями «запрос — ответ». Такие пары называются «обмен» («exchange»).
Обмен данными в IKE происходит в 2 фазы. В первой фазе устанавливается SA IKE. Во второй фазе SA IKE используется для согласования пары SA IPSec.

SA

Security Associations - это набор согласованных параметров (см. выше), ключей и протоколов которыми будет шифроваться данные. Другими словами SA в принципе можно назвать соединением, после установления которого начинается безопасная передача данных.

SA уникальна и идентифицируется след. параметрами:

  • SPI (Security Paremeter Index)
  • Адрес назначения
  • Протокол безопасности (ESP или AH)

SA IKE - устанавливается во время первой фазы, SA двунаправленная

{primary:node0}[edit security zones security-zone untrust]
admin@srx650-master# run show security ike security-associations
node0:
--------------------------------------------------------------------------
Index   State  Initiator cookie  Responder cookie  Mode           Remote Address
8191533 UP     ef6b34533d577417  7c3c47e505cbae39  Main           10.11.5.5


{primary:node0}[edit security zones security-zone untrust]
admin@srx650-master# run show security ike security-associations index 8191533 detail
node0:
--------------------------------------------------------------------------
IKE peer 10.11.5.5, Index 8191533, Gateway Name: IKE-GW-MSK-01-PTP
  Role: Initiator, State: UP
  Initiator cookie: ef6b34533d577417, Responder cookie: 7c3c47e505cbae39
  Exchange type: Main, Authentication method: Pre-shared-keys
  Local: 10.11.5.4:500, Remote: 10.11.5.5:500
  Lifetime: Expires in 42709 seconds
  Peer ike-id: 10.11.5.5
  Xauth assigned IP: 0.0.0.0
  Algorithms:
   Authentication        : hmac-sha1-96
   Encryption            : aes256-cbc
   Pseudo random function: hmac-sha1
   Diffie-Hellman group  : DH-group-5
  Traffic statistics:
   Input  bytes  :               811208
   Output bytes  :               809296
   Input  packets:                 8773
   Output packets:                 8743
  IPSec security associations: 15 created, 15 deleted
  Phase 2 negotiations in progress: 1

    Negotiation type: Quick mode, Role: Initiator, Message ID: 0
    Local: 10.11.5.4:500, Remote: 10.11.5.5:500
    Local identity: 10.11.5.4
    Remote identity: 10.11.5.5
    Flags: IKE SA is created

SA IPSEC - устанавливается во время второй фазы через ранее установленный SA IKE, SA однонаправленный, нужно две.

{primary:node0}[edit security zones security-zone untrust]
admin@srx650-master# run show security ipsec security-associations
node0:
--------------------------------------------------------------------------
  Total active tunnels: 24
  ID    Algorithm       SPI      Life:sec/kb  Mon lsys Port  Gateway
  <131075 ESP:aes-cbc-256/sha1 2c00e182 2074/ unlim - root 500 10.11.5.5
  >131075 ESP:aes-cbc-256/sha1 34ea8f60 2074/ unlim - root 500 10.11.5.5

{primary:node0}[edit security zones security-zone untrust]
admin@srx650-master# run show security ipsec security-associations detail index 131075
node0:
--------------------------------------------------------------------------

ID: 131075 Virtual-system: root, VPN Name: IKE-VPN-MSK-01-PTP
  Local Gateway: 10.11.5.4, Remote Gateway: 10.11.5.5
  Local Identity: ipv4_subnet(any:0,[0..7]=0.0.0.0/0)
  Remote Identity: ipv4_subnet(any:0,[0..7]=0.0.0.0/0)
  Version: IKEv1
  DF-bit: clear, Bind-interface: st0.905
  Port: 500, Nego#: 1644, Fail#: 0, Def-Del#: 0 Flag: 0x600a29
  Tunnel events:
    Tue May 30 2017 11:35:04 +0300: IPSec SA negotiation successfully completed (218 times)
    Mon May 29 2017 23:38:32 +0300: IKE SA negotiation successfully completed (57 times)
    Mon May 22 2017 23:38:01 +0300: Reached maximum allowed negotiation trigger. Delayed triggering negotiation (2 times)
    Mon May 22 2017 23:15:42 +0300: IPSec SA negotiation successfully completed (48 times)
    Sun May 21 2017 07:33:52 +0300: Reached maximum allowed negotiation trigger. Delayed triggering negotiation (1 times)
    Sun May 21 2017 07:33:47 +0300: IPSec SA negotiation successfully completed (17 times)
    Sat May 20 2017 17:30:06 +0300: Reached maximum allowed negotiation trigger. Delayed triggering negotiation (1 times)
    Sat May 20 2017 17:30:01 +0300: IPSec SA negotiation successfully completed (3 times)
    Sat May 20 2017 15:00:49 +0300: Reached maximum allowed negotiation trigger. Delayed triggering negotiation (1 times)
    Mon Apr 03 2017 23:35:26 +0300: No response from peer. Negotiation failed (64 times)
    Mon Apr 03 2017 19:40:34 +0300: IKE SA negotiation successfully completed (1 times)
  Direction: inbound, SPI: 2c00e182, AUX-SPI: 0
    Hard lifetime: Expires in 2056 seconds
    Lifesize Remaining:  Unlimited
    Soft lifetime: Expires in 1494 seconds
    Mode: Tunnel(0 0), Type: dynamic, State: installed
    Protocol: ESP, Authentication: hmac-sha1-96, Encryption: aes-cbc (256 bits)
    Anti-replay service: counter-based enabled, Replay window size: 64
  Direction: outbound, SPI: 34ea8f60, AUX-SPI: 0
    Hard lifetime: Expires in 2056 seconds
    Lifesize Remaining:  Unlimited
    Soft lifetime: Expires in 1494 seconds
    Mode: Tunnel(0 0), Type: dynamic, State: installed
    Protocol: ESP, Authentication: hmac-sha1-96, Encryption: aes-cbc (256 bits)
    Anti-replay service: counter-based enabled, Replay window size: 64

Фазы IKE

Фаза 1

Тезисно:

  • Два пира построили безопасный канал связи через который в дальшейшем будут согласовываться SA IPSec.
  • Алгоритм DH сформировал симметричный ключ.
  • Main mode - используется когда оба пира имеют статический внешний ip адрес.
  • Aggressive mode - используется когда один из пиров находится за vpn.
Main mode

Полезные материалы

workbook/jno-332/332_ipsec.1496135766.txt.gz · Last modified: (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki