Все мы слышали об SSL. SSL – это то, благодаря чему процветают такие вещи, как E-commerce. SSL позволяет нам безопасно взаимодействовать с сайтами… но что нам делать, если нужно конфиденциально подключиться к другой сети, а не сайту? Здесь и пригодится IPSec.
Многие ИТ-специалисты и системные администраторы не до конца понимают IPSec. Конечно же, все мы знаем, что IPSec – это тип защищенной передачи данных, но какие приложения им пользуются? И как работает IPSec?
Давайте в этом разберемся. В данной статье мы обсудим, что такое IPSec, для чего используется, как работает и чем отличается от таких протоколов, как SSL и TLS.
Что такое IPSec?
IPSec – это метод безопасного и зашифрованного обмена данными между клиентом и сетью. Такое «сообщение» передается через общедоступные сети (Интернет). Чаще всего IPSec используется для VPN, а также подключения двух частных сетей.
Сам по себе IPsec не является протоколом. Это, скорее, набор протоколов, которые используются вместе. К таким протоколам относятся:
- Authentication Header (Аутентификационный заголовок)
- Encapsulating Security Protocol (Инкапсулирующий протокол безопасности)
- Security Association (Ассоциация безопасности)
- Internet Protocol (Интернет-протокол)
Как работает IPsec?
IPSec позволяет клиенту безопасно обмениваться данными с другой сетью. Необходимо отметить, что данный метод обычно не используется для взаимодействия между устройствами, а применяется для подключения ноутбука к частной сети через общедоступную сеть (по типу Интернета). Кроме того, IPsec может соединять две частные сети.
Обратите внимание, что мы не используем HTTP или TCP для передачи данных. Это потому, что в рамках модели OSI (модель открытого системного взаимодействия) IPSec проходит по уровню Layer 3 сети. То есть, в принципе, IPSec может оказаться безопаснее других методов защищенной передачи данных.
IPSec-соединения по-прежнему устанавливаются между клиентом и хостом через другие сети. И эти другие сети обычно являются общедоступными – как, например, Интернет. Поэтому все взаимодействия между клиентом и хостом зашифрованы. В любом случае, ключи шифрования не согласовываются с каждым новым подключением. До установки соединения и клиент, и хост должны знать закрытые ключи шифрования.
Это последнее предложение очень важное. Дело в том, что в ходе взаимодействия зашифровывается весь пакет данных, включая его заголовок.
Быть может, вы подумаете: чтобы правильно попасть в пункт назначения, пакеты должны иметь читабельные заголовки. И вы правы. Кстати, именно поэтому и используется Encapsulating Security Protocol (ESP). Для транспортировки ESP добавляет в пакет новую информацию о заголовке и конечном управляющем поле (или трейлере; он похож на заголовок, но располагается в конце пакета), тогда как настоящий заголовок остается зашифрованным.
Точно также происходит и аутентификация каждого пакета. Хост IPSec подтверждает, что каждый пакет полученных данных отправлялся тем объектом, который, как считает хост, и был отправителем. В противном случае этот пакет данных отклоняется.
Для чего используется IPSec?
IPSec используется для создания безопасного метода взаимодействия между клиентом и хостом. Клиентом может быть, например, ноутбук. Или же частная сеть. Хостом, как правило, тоже служит частная сеть.
Теперь мы знаем, как работает IPsec, и пора разобраться, для чего он используется? Что же означает предыдущий абзац?
Чаще всего IPSec используется для VPN. VPN – это виртуальная частная сеть. VPN позволяет клиенту подключаться к частной коммерческой сети через общедоступную сеть интернет (например, ноутбук сотрудника). Как только ноутбук подключился к частной коммерческой сети через VPN, то он как бы сам попадает в эту частную сеть – для всех целей и задач.
Иначе говоря, подключившись к коммерческой сети ноутбук получает доступ ко внутренним ИТ-ресурсам. Весь трафик этого ноутбука (входящий и исходящий) циркулирует через частную коммерческую сеть в интернет.
Соединения двух удаленных частных сетей можно настраивать через IPsec-подключения и VPN. Например, вы ведете свою деятельность в двух разных локациях (в Пенсильвании и Калифорнии). Как настроить подключение? Провести кабель не получится – офисы находятся слишком далеко друг от друга. Раньше таким компаниям приходилось оплачивать дорогую выделенную линию (по типу Т1 подключения). Но сейчас они могут обмениваться данными через открытый интернет с помощью IPsec-подключения.
Отличия между IPsec и TLS (или SSL)
IPsec-подключения и TLS (SSL)-подключения во многом похожи. Оба способа служат для безопасного и зашифрованного обмена данными. Оба протокола могут использовать общедоступные сети для взаимодействия и т.д. и т.п.
Но в то же время, IPsec и TLS/SSL во многом отличаются.
Например, IPsec-подключения являются частью уровня Layer 3 в модели OSI, тогда как TLS и SSL-подключения относятся к уровню Layer 7. Получается, что IPsec-подключения выполняются на базовом уровне соединений в модели OSI, тогда как TLS и SSL начинаются выше в стеке. Кроме того, работа TLS и SSL-соединений зависит от прикладного уровня (HTTP) и уровня 4 (TCP). То есть на этих уровнях они также подвержены эксплойтам, чего не скажешь о IPsec.
Еще одно важное отличие между IPsec и SSL или TSL заключается в том, как согласуются подключения. Поскольку TLS и SSL-подключения используют TCP, их типы безопасного подключения необходимо вначале согласовать. После этого клиент и хост дополнительно согласовывают ключ шифрования.
С IPSec все иначе. Передача данных зашифровывается сразу. Кроме того, секретный ключ для шифрования передается клиенту и хосту по отдельности – еще до попытки взаимодействия. Также его можно передавать через DNS (хорошо бы при помощи DNSsec). Метод, который используется для обмена ключами в IPsec, называется IKEv1 или IKEv2. Чаще всего сейчас пользуется IKEv2.
Это подводит нас к еще одной интересной детали. Поскольку IPsec-соединения зашифровываются сразу, тоже самое можно сделать и со всем заголовком IP-пакета. Но IP-пакетам по-прежнему нужен читабельный заголовок, чтобы попасть в правильное место. Для этих целей в зашифрованные пакеты IPsec добавляются дополнительные заголовки и трейлеры. То есть размеры MSS (Maximum segment size) и MTU (Maximum transmission unit) для каждого пакета изменяются. Сетевым администраторам необходимо предусмотреть эту разницу в своих сетях.
Заключение
В этой статье мы рассмотрели множество вопросов. Давайте быстро подведем итог. IPSec – это метод безопасного и зашифрованного обмена данными между клиентом и хостом. Клиентом может быть устройство (например ноутбук) или частная сеть. Хостом чаще всего бывает частная сеть.
Сам IPsec не является протоколом; это набор протоколов, которые используются вместе. Протоколы, которыми пользуется IPsec, начинаются на уровне Layer 3 модели OSI, что, возможно, делает IPsec безопаснее, чем TLS или SSL.
IPsec обычно используется для VPN, то также подходит для подключения двух частных сетей.