Кажется, я не могу получить прямого ответа на этот вопрос. Википедия говорит: «IPsec является неотъемлемой частью набора базовых протоколов в IPv6», но означает ли это, что ВСЕ коммуникации всегда зашифрованы, или это означает, что шифрование не является обязательным, но устройства должны понимать его (если оно используется )?
Если шифрование не является обязательным, решает ли операционная система, использовать ли шифрование, или приложение? Поддерживают ли обычно шифрование популярные операционные системы и программное обеспечение?
Я бы сам исследовал это, но мне не хватает возможности подключения по IPv6.
Обновить: Хорошо, это необязательно. У меня следующий вопрос: обычно это приложение определяет, использовать ли шифрование, или это операционная система?
Конкретный пример: представьте, что у меня есть последняя версия Windows с собственной поддержкой ipv6, и я ищу что-то на ipv6.google.com с помощью Mozilla Firefox. Будет ли он зашифрован?
Нет.
IPv6 имеет встроенный IPsec как часть протокола, и он не является чем-то особенным, как с IPv4. Однако это не означает, что он включен по умолчанию, это просто означает (теоретически) меньшие накладные расходы на сетевой стек.
Как правило, использование IPsec определяется на IP-уровне сетевого стека и, следовательно, определяется самой системной политикой. например В системе A может быть политика, которая требует, чтобы и AH, и ESP имели какое-либо взаимодействие с подсетью 4.0.0.0/8.
Обновить: Чтобы быть ясным, приложению все равно - оно просто знает, что ему нужно где-то открывать сетевое соединение и отправлять / получать данные по нему. Затем система должна выяснить, согласовывать ли IPsec для данного запрошенного соединения. IPsec во многом спроектирован как механизм аутентификации / шифрования низкого уровня и специально построен так, чтобы протоколам и приложениям более высокого уровня не приходилось беспокоиться об этом.
Тем не менее, это просто еще один элемент управления безопасностью на уровне сети, и его не обязательно использовать изолированно или полагаться на него, чтобы гарантировать `` безопасность '' - если вы пытаетесь решить проблему аутентификации, вполне возможно, что вам понадобится приложение для принудительной проверки подлинности на уровне пользователя, оставляя проверку подлинности на уровне машины IPsec.
Короткий ответ: Нет.
Длинный ответ: IPsec учитывался при разработке IPv6 в том смысле, что, в отличие от IPv4, IPsec (когда он используется) является частью заголовка IPv6.
Дополнительные пояснения: в IPv4 IPsec работает на вершине Сам IP. На самом деле это протокол уровня 4, который «маскируется» под протокол уровня 3 (так что обычные протоколы L4 TCP и UDP по-прежнему могут работать). ESP (инкапсуляция данных безопасности) не может охватывать IP-пакеты. В результате, пакеты IPsec обычно будут иметь значительно уменьшенную полезную нагрузку, если фрагментация предотвращена. Кроме того, поскольку он находится поверх IP, заголовок IP не защищен.
В IPv6 IPsec это часть Сам IP. Он может охватывать пакеты, поскольку заголовок ESP теперь является частью заголовка IP. А поскольку он интегрирован с IP, можно защитить больше частей заголовка IP.
Я надеюсь, что мое объяснение «в двух словах» достаточно ясное.
К вам следующий вопрос:
Операционная система определяет, когда использовать шифрование. Эти параметры «политики» находятся в панелях управления / политиках конфигурации. Вы говорите что-то вроде «если вы хотите подключиться к любому адресу в подсети ab12 :: у вас должен быть секретный Blah1234». Есть варианты использования PKI.
На данный момент приложение не может добавлять эту политику или требовать ее настройки. В разделе linux socket ipv6 есть упоминание «Отсутствует поддержка IPSec для заголовков EH и AH», так что люди думали об этом, но в настоящее время нет известных рабочих реализаций.
На ваш ответ на вопрос да и нет.
Приложения могут указывать шифрование, но шифрование выполняется на уровне приложения. Существует множество пар незашифрованных / зашифрованных протоколов, использующих разные порты, такие как HTTP / HTTPS, LDAP / LDAPS, IMAP / IMAPS и SMTP / SSMTP. Все они используют шифрование SSL или TLS. Некоторые службы предлагают опцию startTLS, которая позволяет запускать зашифрованное соединение через обычно незашифрованный порт. SSH - это приложение, которое всегда использует зашифрованное соединение. В этих случаях применяется непрерывное шифрование. (Существует алгоритм шифрования NULL, который можно использовать, и зашифрованный контент будет транспортироваться незашифрованным.)
IPSEC настраивается администратором, и приложение не будет знать, зашифровано соединение или нет. В основном я видел, как IPSEC используется для передачи трафика между локальными сетями через незащищенные соединения (VPN-соединения). Я считаю, что IPSEC может применяться только к части маршрута, поэтому в некоторых сегментах сети данные передаются в открытом виде (в незашифрованном виде).
Если у меня есть выбор, я буду использовать шифрование приложений, поскольку сетевое шифрование используется нечасто.