IPsec — протокол за сигурност на IP: криптиране, удостоверяване и VPN
Защитата на интернет протоколите (IPsec) е набор от стандартизирани механизми, които осигуряват сигурност и поверителност на интернет и комуникациите на ниво мрежов слой (IP). IPsec защитава отделни IP пакети от потока данни чрез удостоверяване и — по избор — криптиране, като същевременно предоставя механизми за установяване на криптографски ключове и взаимна автентикация между участниците в началото на сесията.
Какво представлява IPsec и къде се използва
IPsec е съвкупност от протоколи за защита на комуникациите по интернет протокол (IP). Той може да защитава потоци данни между:
- двойка хостове (например компютърни потребители или сървъри),
- двойка шлюзове за сигурност (например маршрутизатори или защитни стени),
- или между шлюз за сигурност и хост.
IPsec е решение за сигурност "от край до край" и работи на слоя на интернет протокола (сравним със слой 3 в модела OSI). Това го прави по-гъвкав за защита на всички приложения, тъй като не е необходимо приложенията да бъдат специално проектирани за използване на IPsec — той защитава трафика прозрачно за по-горните слоеве. За разлика от това, протоколи като SSL/TLS и SSH работят в по-горни слоеве и изискват поддръжка или интеграция в самото приложение.
Основни компоненти и протоколи
- ESP (Encapsulating Security Payload) — предоставя конфиденциалност чрез криптиране и по избор автентикация и защита на целостта на данните; широко използван за VPN тунели.
- AH (Authentication Header) — осигурява автентикация и целостност на пакета, но не криптира полезния товар (payload); AH обаче не работи добре през NAT устройства, защото удостоверява IP заглавията.
- Security Association (SA) — едностранен договор между две страни, описващ криптографските параметри (алгоритми, ключове, период на валидност). За защитена комуникация обикновено са необходими две SA (в двете посоки).
- Internet Key Exchange (IKE) — протокол за установяване на SA и безопасен обмен/договаряне на ключове. Съществуват IKEv1 и подобреният IKEv2 (по-опростен и по-сигурен).
- Security Policy Database (SPD) и Security Association Database (SAD) — бази данни в IPsec имплементациите, които описват какъв трафик да бъде защитен и какви SA са активни.
Режими на работа
- Transport mode — защитава полезния товар на IP пакета и (частично) заглавието; подходящ за host-to-host връзки.
- Tunnel mode — целият IP пакет се опакова в нов IP пакет и се криптира/автентикира; използва се за gateway-to-gateway VPN и за remote-access VPN, когато искаме да защитим целия оригинален IP пакет и маршрутирането му.
Криптографски алгоритми и защити
IPsec поддържа разнообразие от криптографски алгоритми за конфиденциалност (например AES — предпочитан, 3DES — остаряващ) и за доказване на целостта/автентичността (HMAC-SHA1, HMAC-SHA256 и др.). Освен това IPsec включва механизми за защита срещу повторно възпроизвеждане на пакети (anti-replay) чрез номерация на пакети и проверка на прозорец.
Удостоверяване и управление на ключове
IPsec поддържа различни методи за удостоверяване:
- предварително споделени ключове (pre-shared keys) — лесни за малки внедрявания;
- сертификати (X.509) — по-подходящи за мащабни среди и когато е нужна PKI инфраструктура;
- допълнителни методи, предлагани от IKE (например EAP за отдалечен достъп).
IKE (и особено IKEv2) автоматизира договарянето на криптографските параметри, осигурява повторно възползване на взаимно установените ключове и поддържа механизми за повторно подновяване и отнемане на SA.
Практически въпроси и съвместимост
- NAT и NAT-Traversal (NAT-T) — AH често не може да работи през NAT, защото подписва IP заглавието; ESP с криптиране може да се използва с NAT-T (транспорт през UDP), но това изисква допълнителна обработка.
- MTU и фрагментация — IPsec добавя заглавия и подписи, което увеличава размера на пакета; трябва да се внимава за MTU и да се използва Path MTU Discovery или подходящо фрагментиране.
- Производителност — криптографските операции са ресурсоемки; хардуерно ускорение (криптоакселератори) често се използва в корпоративни рутери и шлюзове.
- Интероперабилност — различните реализации и профили (настройки за алгоритми, срокове на валидност и т.н.) могат да доведат до несъвместимости; стандартните профили и модерни реализации улесняват съвместната работа.
Често използвани приложения
- VPN — дистанционно свързване на потребители към корпоративна мрежа и свързване на отделни офиси чрез сигурни тунели.
- защита на междусървърни връзки и сигурно предаване на чувствителни данни по интернет;
- защита на комуникация между мрежови устройства (напр. маршрутизатори, защитни стени).
Терминът "IPsec" е официално дефиниран от Internet Engineering Task Force (IETF). Тази дефиниция включва формата на главна буква; често той се изписва неправилно като IPSec.
IPsec е описан в редица стандарти и RFC документи (например RFC 2406 за ESP и множество по-нови RFC за архитектура, IKEv2 и NAT-Traversal), и продължава да бъде широко използван механизъм за осигуряване на сигурни IP комуникации в корпоративни и публични мрежи.
Въпроси и отговори
В: Какво представлява сигурността на интернет протокола (IPsec)?
О: IPsec е начин за повишаване на сигурността и поверителността на интернет комуникациите чрез удостоверяване на автентичността и по желание криптиране на всеки IP пакет от потока данни.
В: Как работи IPsec?
О: IPsec включва протоколи за установяване на взаимна автентификация между агентите в началото на сесията, договаряне на криптографски ключове, които да се използват по време на сесията, и защита на потоците от данни между два хоста или шлюза за сигурност. Той работи на интернет нивото на пакета интернет протоколи, сравнимо с ниво 3 в модела OSI.
Въпрос: Кои са някои други популярни протоколи за сигурност в интернет?
О: Други популярни протоколи за сигурност в интернет включват SSL, TLS и SSH, които работят в горните слоеве на тези модели.
В: Как това прави IPsec по-гъвкав?
О: Това прави IPsec по-гъвкав, тъй като може да се използва за защита на всички протоколи от по-високо ниво, тъй като не е необходимо приложенията да бъдат проектирани специално, за да го използват, за разлика от TLS/SSL или други протоколи от по-високо ниво, които трябва да бъдат вградени в дадено приложение.
Въпрос: Кой определя какво означава "IPsec"?
О: Терминът "IPsec" е официално дефиниран от Internet Engineering Task Force (IETF).
В: Има ли неправилно изписване на "IPsec"? О: Да, често се изписва неправилно като IPSec.