Те, кто пытался сделать свое интернет-соединение и веб-браузер более безопасным и более приватным, наверняка слышали, что хороший способ безопасного серфинга – это использование «виртуальной частной сети», то есть Virtual Private Network (часто сокращается до VPN). Преимущества VPN, на самом деле, многообразны: от безопасности передачи данных, благодаря шифрованию, до гарантии онлайн анонимности, благодаря маскировке нашего IP-адрес.
Что многие не знают, так это то, что внутренняя безопасность VPN по сравнению с традиционным соединением проистекает главным образом из использования протокола (на самом деле: серии взаимодействующих протоколов), называемого IPSec. Это открытый стандарт, теперь включенный в набор протоколов IPv4, но у него очень специфическая история: фактически, мы обязаны за его появление благодарить DARPA, Агентство перспективных исследовательских проектов в области обороны и АНБ, Агентство национальной безопасности США.
Ещё более интересно то, что, по словам известного Эдварда Сноудена, в какой-то момент АНБ даже попыталось вставить уязвимости в IPSec, чтобы шпионить за VPN-соединениями.
Как появился протокол IPSec
В эпоху до Интернета существовал Arpanet, проект, родившийся в 1969 году по поручению «обычной» DARPA, агентства Министерства обороны США, которое занимается разработкой новых военных технологий. Это была компьютерная сеть, созданная для соединения нескольких военных структур, которая затем превратилась в систему, способную связывать университеты и правительственные учреждения. Однако, даже тогда DARPA почувствовало необходимость защиты соединений и стало спонсировать разработку серии устройств для шифрования соединений между военными структурами.
Впоследствии, во второй половине 1980-х годов, АНБ способствовало разработке серии протоколов для шифрования данных в недавно сформированном Интернете: это программа Secure Data Network Systems (SDNS). Исследование продолжалось, переходя от Протокола уровня безопасности 3 (SP3) к Протоколу безопасности сетевого уровня (NLSP), и в начале 1990-х годов было доступно первое ядро протоколов в наборе IPSec.
Как работает IPSec
В основе IPSec лежит несколько протоколов для шифрования данных и IP-адресов. Фактически, когда два компьютера хотят установить частное VPN-соединение, они должны сначала «договориться» о том, какое шифрование использовать, и обменяться соответствующими ключами безопасности для дешифрования зашифрованных данных.
IPSec заботится об управлении всем этим процессом.
Во-первых, он приступает к аутентификации данных, чтобы гарантировать, что передаваемая информация является подлинной и не была подделана кем-то, кому удалось взломать связь между компьютером A и компьютером B (то есть соединение было атаковано человеком посередине). Затем он продолжает шифровать весь трафик данных, чтобы его нельзя было просмотреть «в открытом виде» без использования правильного ключа.
Он также защищает соединение от, так называемых, «атак повтором», то есть атак, при которых удалось завладеть хотя бы одним из наборов учетных данных аутентификации. IPSec также защищает ключ шифрования, используемый между двумя компьютерами.
Выделяют два метода работы IPSec: «туннельный» и «транспортный». В туннельном режиме весь пакет данных, включая IP-адрес, шифруется, тогда как в транспортном режиме шифруются только передаваемые данные.
Основные протоколы IPSec
Чтобы сделать всё это эффективным и безопасным, IPSec использует различные протоколы. Вот почему IPSec называется набором протоколов безопасности.
IPSec использует два основных протокола: заголовок аутентификации IPSec (AH) и инкапсулированная полезная нагрузка безопасности (ESP). Протокол заголовка аутентификации IPSec используется для защиты IP-адресов компьютеров, на которые распространяется защищенная передача, и для гарантии того, что биты информации не будут потеряны, изменены или повреждены во время передачи. Протокол AH также проверяет, что лицо, отправившее данные, действительно отправило их, защищая передачу от проникновения мошеннических или неавторизованных пользователей.
Encapsulation Security Payload (ESP) – это протокол, который управляет фактическим шифрованием IPSec, обеспечивая конфиденциальность трафика данных между устройствами. Этот протокол также служит для маскировки интернет-трафика, так что любой, кто «заглянет в туннель», не сможет найти подтверждений фактического обмена данными.