Технологии туннелирования

Совместное использование протоколов L2TP и IPSec

Разбить на страницы
Показывать лекцию целиком

Обзор

L2TP является протоколом, который туннелирует РРР-трафик по раз-личным сетям (IP, ATM и т.п.). Так как протокол инкапсулирует РРР, L2TP использует РРР-аутентификацию, а также протоколы РРР управления шифрованием и сжатием. L2TP обеспечивает взаимную аутентификацию конечных точек туннеля.

IPSec является набором протоколов сетевого уровня, которые используются для обеспечения безопасного взаимодействия двух участников.

Рассмотрим возможность использования набора протоколов IPSec для обеспечения защиты L2TP-трафика по IP-сетям. Также рассмотрим совместное использование IPSec и L2TP.

Хотя L2TP в качестве транспорта не обязательно использует IP/UDP, в данном случае будем рассматривать только L2TP в IP-сетях.

Для описания совместного использования L2TP и IPSec будем использовать следующую терминологию.

Добровольное туннелирование. При добровольном туннелировании туннель создается пользователем, обычно посредством использования клиента туннелирования. В результате этого клиент будет посылать L2TP-пакеты к NAS, который затем будет пересылать их LNS. При добровольном туннелировании NAS не должен поддерживать L2TP, и LAC расположен на той же самой машине, что и клиент.

Обязательное туннелирование. При обязательном туннелировании туннель создается без какого-либо участия клиента, и клиенту не предоставляется никакого выбора. В результате этого клиент будет посылать РРР-пакеты к NAS/LAC, который затем будет инкапсулировать их в L2TP и туннелировать к LNS. При обязательном туннелировании NAS/LAC должен поддерживать L2TP.

Инициатор. Инициатором может быть LAC или LNS, это то устройство, которое посылает SCCRQ и получает SCCRP.

Получатель. Получателем может быть LAC или LNS, это то устройство, которое получает SCCRQ и отвечает SCCRP.

Примеры атак на протокол L2TP

Как управляющие пакеты, так и пакеты данных L2TP-протокола уязвимы для разного рода атак:

  • Противник может узнать идентификаторы пользователей, просматривая пакеты данных.
  • Противник может попытаться модифицировать пакеты (как управляющие, так и данных).
  • Противник может попытаться встроиться в L2TP-туннель или РРР-соединение внутри туннеля, представившись одной из сторон.
  • Противник может выполнить DoS-атаку, прерывая РРР-соединения или L2TP-туннели.
  • Противник может попытаться внедриться в РРР-переговоры о параметрах шифрования, чтобы ослабить или удалить конфиденциальность. Противник может также попытаться внедриться в РРР LCP-переговоры об аутентификации, ослабив аутентификацию и получив после этого доступ к паролям пользователей.
  • Для защиты от этих атак протокол L2TP должен обеспечивать аутентификацию, целостность и защиту от replay-атак для управляющих пакетов. Дополнительно он должен иметь возможность обеспечивать конфиденциальность управляющих пакетов. Он также должен обеспечивать целостность и защиту от replay-атак для пакетов данных. Дополнительно должен иметь возможность обеспечивать конфиденциальность пакетов данных. Протокол безопасности L2TP должен также предоставлять масштабируемый подход к управлению ключом.

    Сам протокол L2TP, а также аутентификация в РРР-протоколе не удовлетворяют перечисленным требованиям безопасности. При аутентификации на уровне L2TP-туннеля обеспечивается взаимная аутентификация LAC и LNS при создании туннеля. Но защиты управляющего трафика и трафика данных на уровне пакетов нет. Это делает L2TP-туннель уязви-мым. РРР аутентифицирует клиента для LNS, но аутентификация, целост-ность и защита от replay-атак на уровне пакетов также отсутствует. РРР-шифрование обеспечивает конфиденциальность РРР-трафика, но не обес-печивает аутентификацию, целостность, защиту от replay-атак и управле-ние ключом. Кроме того, нет переговоров об используемых алгоритмах.

    Управление ключом в протоколе L2TP отсутствует. Если требуется аутентификация туннеля, то необходимо распределять пароли для этого туннеля каким-то внешним по отношению к протоколу способом.

    Для предотвращения этих атак следует использовать IPSec ESP для обеспечения безопасности как управляющих пакетов, так и пакетов данных L2TP. Обязательно должен поддерживаться транспортный режим, может также поддерживаться и туннельный режим. Если конфиденциальность не требуется (например, для трафика данных L2TP), то следует использовать NULL-шифрование в ESP.

    Для аутентификации, ведения переговоров об алгоритмах и управления ключом используется протокол IKE.

    Основные принципы совместного использования L2TP и IPSec

  • Требуется обеспечить синхронное завершение L2TP-туннеля и SA, созданной в фазах I или II.

    Механизмы РРР и L2TP дают возможность завершения соединения как с уведомлением об этом противоположной стороны, так и без уведомления. В протоколе РРР LCP TermReq и TermAck обеспечивают завершение с уведомлением. Сообщения LCP keep-alive и hello L2TP-туннеля дают возможность определить, что произошло завершение без уведомления. Когда происходит завершение, приводящее к закрытию туннеля, используются механизмы управляющего соединения протокола L2TP. При удалении L2TP-туннеля любой из сторон SA, созданные в фазах I или II, которые используются L2TP-туннелем, также должны быть удалены.

  • Проблемы, связанные с фрагментацией.

    Так как MTU по умолчанию для РРР-соединений равно 1500 байтам, возможна фрагментация при добавлении L2TP- и IPSec-заголовков в РРР-кадр. Одним из механизмов, который может использоваться для решения этой проблемы, может быть использование в РРР значения MTU для входящего / исходящего трафика, равного L2TP/IPSec туннелю минус накладные расходы, связанные с внешними заголовками. Это должно быть сдела-но после того, как L2TP-туннель был установлен, но перед тем, как нача-лись LCP-переговоры. Если значение MTU для входящего / исходящего трафика для туннеля меньше, чем значение MTU для РРР, то указывается новое значение. Это значение может также использоваться в качестве начального значения, предлагаемого для MTU в LCP ConfigReq.

    Если ICMP MTU получено в IPSec, то это значение должно храниться в SA. IPSec должен также уведомить об этом L2TP, чтобы новое значение MTU было указано в РРР-интерфейсе. Любое новое значение MTU, задава-емое для РРР-интерфейса, должно проверяться на соответствие этим ограничениям.

    (рис 10.1) Параметр MTU для протокола L2TP
  • Детали IPSec-фильтрования для L2TP-защиты

    Так как IKE/IPSec не знает о деталях приложения, которое он защищает, обычно не требуется никакой интеграции между приложением и IPSec-протоколом. Однако в протоколах, в которых возможно изменение номера порта при переговорах, выполняемых этим протоколом (как в случае L2TP), могут возникнуть проблемы при выполнении IKE. В спецификации протокола L2TP говорится, что производитель может динамически назначать UDP-порт источника. Новое значение порта посылается в SCCRP от Получателя к Инициатору.

    Хотя текущая спецификация L2TP позволяет Получателю указывать новый IP-адрес в SCCRP, если требуется защита L2TP с использованием IPSec, обычно этого не делают. Для обеспечения возможности указывать новый IP-адрес при совместном использовании L2TP и IPSec, необходимо, чтобы при выборе Получателем нового IP-адреса, он посылал STOPCCN Инициатору с AVP Result Code, Error Code. Result Code должен быть установлен в 2 (General error), и Error Code должен быть установлен в 7 (Try Another).

    Если Error Code установлен в 7, то должно посылаться дополнительное сообщение об ошибке, в котором содержится IP-адрес, который Получатель будет использовать в последующих обменах. Инициатор после обработки этих сообщений должен послать новый SCCRQ на новый IP-адрес. Данный подход уменьшает сложность, так как Инициатор всегда знает корректный IP-адрес противоположной стороны. Это также позволяет управляющему механизму L2TP привязать записи в базе данных поли-тик IPSec к одной и той же противоположной стороне.

    Далее обсудим детали записей в базе данных политик, требуемые для реализации данного поведения, а также другие механизмы, необходимые для защиты L2TP с использованием IPSec.

  • I фаза IKE-переговоров.

    В IKE при использовании аутентификации по предварительно распределенному секрету этот секрет должен быть указан на каждой стороне. При использовании Main Mode (который обеспечивает защиту идентификации) этот секрет должен быть связан с IP-адресом противоположной стороны. При использовании Aggresive Mode (который не обеспечивает защиту идентификации) предварительно распределенный секрет должен быть связан с одним из допустимых типов идентификаций, определенных в IPSec DOI.

    (рис 10.2) Идентификация участников по DNS-имени

    Если инициатор получает STOPCCN с AVP результата и кодом ошибки, установленным в Try Another, и в сообщении присутствует действительный IP-адрес, он может связать исходный предварительно распределенный секрет с новым IP-адресом, содержащимся в сообщении об ошибке.

    Использование заранее распределенных ключей в качестве аутентификаторов плохо влияет на масштабируемость. Так как число конечных точек LAC и LNS возрастает, то и трудность управления заранее распределенными ключами также возрастает. Поэтому аутентификация с использованием сертификатов является более предпочтительной.

  • Переговоры II фазы IKE.

    В течение II фазы участники согласовывают, как будет защищен трафик IPSec-протоколов. Идентификации в Quick Mode являются комбинацией адресного пространства, протокола и номера порта.

    При обеспечении безопасности L2TP с использованием IPSec возможны следующие изменения портов и адресов Инициатора и Получателя:

    Порт Инициатора Адрес Получателя Порт Получателя
    1701 Фиксированный 1701
    1701 Фиксированный Динамический
    1701 Динамический 1701
    1701 Динамический Динамический
    Динамический Фиксированный 1701
    Динамический Фиксированный Динамический
    Динамический Динамический 1701
    Динамический Динамический Динамический

    Наиболее общим случаем является последний в списке. В этом случае Инициатор выбирает новый номер порта, и Получатель выбирает новый адрес и новый номер порта. Поток L2TP-сообщений, который возникает в этом случае, следующий:

    →IKE фаза I и фаза II для защиты Initial SCCRQ
    SCCRQ 	→ (Фиксированный IP-адрес, Динамический порт Инициатора)
    ← STOPCCN (Получатель выбирает новый IP-адрес)
    → Новые переговоры IKE фаза I и фаза II для защиты нового SCCRQ
    SCCRQ 	→ (SCCRQ на новый IP-адрес Получателя)
    ← Новые переговоры IKE фаза II для изменения номера порта Получателя
    ← SCCRP (Получатель выбирает новый номер порта)
    SCCCN 	→ (Завершение установления L2TP-туннеля)
    

    Хотя обычно Инициатор и Получатель динамически не изменяют пор-ты, безопасность L2TP должна также обеспечиваться при использовании таких приложений, как балансировка нагрузки и гарантирование качества (QoS). Это может потребовать изменения порта и IP-адреса при установлении L2TP-туннеля.

    Для поддержки наиболее общего случая в L2TP и IPSec должны быть разработаны механизмы, которые позволяют L2TP вставлять свои записи в БД IPSec. Данная технология может быть использована любым приложением, которое изменяет порты и которому требуется безопасность с использованием IPSec.

    Не требуется, чтобы Получатель поддерживал возможность изменять свой IP-адрес и порт. Тем не менее Инициатор должен позволять Получателю изменить свой порт и IP-адрес.

    Терминология, используемая для задания параметров фильтрования:

    I-PortНомер UDP-порта, который Инициатор выбирает для инициализации и получения L2TP-трафика. Это может быть статический порт, такой как 1701, или временный порт, связанный с сокетом.
    R-Port Номер UDP-порта, который Получатель выбирает для инициализации и получения L2TP-трафика. Это может быть порт 1701 или временный порт, связанный с сокетом. Это номер порта, который Получатель будет использовать после получения начального SCCRQ.
    R-IPAddr1 IP-адрес, который Получатель слушает при получении начального SCCRQ. Если Получатель не изменил IP-адрес на новый, данный адрес будет использоваться всем последующим L2TP-трафиком.
    R-IPAddr2 IP-адрес, который Получатель выбрал после получения SCCRQ. Этот адрес используется для того, чтобы послать SCCRQ, и весь последующий трафик L2TP-туннеля будет посылаться с данного адреса и получаться на него.
    R-IPAddr IP-адрес, который Получатель использует для посылки и получения L2TP-пакетов. Это либо исходное значение R-IPAddr1, либо новое значение R-IPAddr2.
    I-IPAddr IP-адрес, который Инициатор использует для взаимодействия по L2TP-туннелю.
    Any-Addr Наличие Any-Addr говорит о том, что IKE должен допускать любой одиночный адрес, предложенный в качестве ID в фазе II переговоров. Данный одиночный адрес может рассматриваться как единственный IP-адрес или IP-адрес с маской, установленной в 255.255.255.255.
    Any-Port Наличие Any-Port говорит о том, что IKE должен допускать любое значение номера порта.

    Записи в политике IPSec, которые будут определены далее, перечислены от наибольшего приоритета к наименьшему.

  • Начальные записи в политике, необходимые для защиты SCCRQ

    Добавление начальных записей на стороне Инициатора и Получателя необходимо для защиты SCCRQ, посылаемого Инициатором для открытия L2TP-туннеля. Как Инициатор, так и Получатель должны либо быть заранее сконфигурированы с этими дополнительными записями, либо в L2TP должен быть определен метод добавления этой информации в БД политик IPSec. В любом случае данные записи должны быть определены до того, как будет послано первое сообщение об установке L2TP-туннеля.

    Записи на стороне Получателя:

    Записи на стороне Получателя:
    Для исходящего трафикаНет. Они должны быть динамически созданы IKE при успешном завершении фазы II.
    Записи на стороне Инициатора:
    Для исходящего трафикаfrom I-IPAddrto R-IPAddr1UDPsrc I-Portdst 1701
    Для входящего трафикаfrom R-IPAddr1to I-IPAddr UDP src 1701 dst I-Port
    from R-IPAddr1 to I-IPAddr UDP src Any-Port dstI-Port

    Если Инициатор использует динамические порты, то L2TP должен вставить записи в БД политик IPSec после того, как стал известен номер порта источника. Если Инициатор использует фиксированный порт 1701, эти записи могут быть определены статически.

    Определение Any-Port во второй записи для входящего трафика Инициатора необходимо для обработки потенциального изменения порта, которое может произойти в результате изменения номера порта Получателем.

    Если на фазе II все еще нет SA для защиты SCCRQ, посылка SCCRQ Инициатором должна привести к тому, что IKE установит необходимые SA для защиты данного пакета. В качестве альтернативы L2TP может запросить IKE установить SA. Если по какой-то причине SA не может быть установлена, пакет должен быть отброшен.

    Номера портов в ID Quick Mode, посылаемые Инициатором, должны содержать номера портов, используемые для идентификации UDP-сокета. Номера портов будут либо I-Port/1701, либо 1701/1701 для начального SCCRQ. ID Quick Mode, посылаемые Инициатором, являются подмножеством первой записи для входящего трафика на стороне Получателя. В результате этого после завершения обмена Quick Mode IKE должен вставить определенный набор записей в БД политик IPSec и связать этот набор записей с SA фазы II, установленной между участниками. Эти записи должны существовать до тех пор, пока существует L2TP-туннель. Новый набор записей на стороне Получателя будет:

    Записи на стороне Получателя:
    Для исходящего трафикаfrom R-IPAddr1 to I-IPAddr UDP src 1701 dst I-Port
    Для входящего трафикаfrom I-IPAddr1 to R-IPAddr11 UDP 1src I-Port1 dst 17011
    from Any-Addr to R-IPAddr1 UDP src Any-Port dst 1701

    Между L2TP и IPSec должны существовать такие механизмы, чтобы L2TP мог не передавать повторно SCCRQ, если SA уже установлена.

    Механизмы повторной передачи в управляющем канале L2TP должны запускаться только после того, как SA уже установлена.

    SCCRQ должно посылаться от Инициатора к Получателю только после того, как SA фазы II между участниками установлена.

    Если Получатель не использует новый IP-адрес или порт, то установление L2TP-туннеля может быть продолжено.

    Получатель выбрал новый IP-адрес

    Опишем процесс, который выполняется, если Получатель решает ис-пользовать новый IP-адрес. После получения SCCRQ и перед отправлением SCCRP у Получателя существует единственная возможность изменить свой IP-адрес.

    Новый адрес, который выбирает Получатель, должен быть указан в AVP Result и Error Code в STOPCCN сообщении. Сообщение STOPCCN посылается на тот же самый адрес и UDP-порт, которые Инициатор ис-пользовал для посылки SCCRQ. Данное сообщение будет защищено начальными SA, установленными для защиты SCCRQ.

    При получении STOPCCN Инициатор должен извлечь IP-адрес и вста-вить новый набор записей в БД политик IPSec. Если используется аутентификация по предварительно распределенному секрету, L2TP может запросить IKE связать новый IP-адрес с этим секретом, который использовался для исходного IP-адреса.

    Так как IP-адрес Получателя был изменен, то между участниками должны быть установлены новые SA фазы I и II до того, как будет послано новое SCCRQ.

    В предположении, что начальный туннель был удален, а также удалены записи, необходимые для создания туннеля, новые записи Инициатора и Получателя будут следующие:

    Записи на стороне Инициатора:
    Для исходящего трафикаfrom I-IPAddr to R-IPAddr2 UDP src I-Port dst 1701
    Для входящего трафикаfrom R-IPAddr2 to I-IPAddr UDP src 1701 dst I-Port
    from R-IPAddr2 to I-IPAddr UDP srcAny-Port dstI-Port

    После того, как II фаза IKE завершится, новый набор записей у Полу-чателя будет следующим:

    Записи на стороне Получателя:
    Для исходящего трафикаfrom R-IPAddr2 to I-IPAddr UDP src 1701 dst I-Port
    from Any-Addr to R-IPAddr1 UDP src Any-Port dst 1701

    Если Получатель не изменил номер порта, то установка L2TP-туннеля может быть завершена.

    Получатель выбрал новый номер порта

    Получатель может решить использовать новый UDP-порт источника для трафика L2TP-туннеля. Это решение должно быть принято до посылки SCCRP. Если выбран новый номер порта, то L2TP должен вставить новые записи в БД политик IPSec. Получатель должен начать с Инициатором новую II фазу переговоров IKE.

    Заключительный набор записей у Инициатора и Получателя следующий:

    Записи на стороне Инициатора:
    Для исходящего трафикаfrom I-IPAddr to R-IPAddr UDP src I-Port dst R-Port
    from I-IPAddr to R-IPAddr UDP src I-Port dst 1701
    Для входящего трафикаfrom R-IPAddr to I-IPAddr UDP src R-Port dst I-Port
    from R-IPAddrto I-IPAddrUDP src 1701dst I-Port
    from R-IPAddr to I-IPAddr UDP srcAny-Port dstI-Port

    Первая запись для входящего трафика на стороне Инициатора будет добавлена IKE при успешном завершении II фазы переговоров, инициированных участником.

    Записи на стороне Получателя:
    Для исходящего трафикаfromR-IPAddr to I-IPAddr UDP srcR-Port dstI-Port
    fromR-IPAddrto I-IPAddrUDPsrc1701dstI-Port
    Для входящего трафикаfromI-IPAddrto R-IPAddr UDP srcI-Port dstR-Port
    fromI-IPAddrto R-IPAddrUDPsrcI-Port dst 1701
    fromAny-Addrto R-IPAddr1UDP srcAny-Port dst 1701

    После того, как переговоры завершены, посылается SCCRP, и установление L2TP-туннеля может быть завершено. После того, как L2TP-туннель установлен, любые оставшиеся SA и связанные с ними записи могут быть удалены.

    Обсуждение топологий шлюз-шлюз и исходящего канала L2TP

    В топологии шлюз-шлюз и исходящего канала L2TP каждая сторона может инициировать создание L2TP-канала. Эти сценарии отличаются от предыдущих единственным дополнением. Начальный набор правил на каждой стороне должен включать следующее правило:

    Для входящего трафика from Any-Addr to R-IPAddr1 UDP srcAny-Port dst 1701

    Когда любая из сторон решит установить туннель, L2TP должен вставить необходимые входящий и исходящий правила для защиты SCCRQ. После этого установка туннеля полностью соответствует предыдущим сценариям.

    Обсуждение безопасности

  • Различия между IKE- и РРР-аутентификацией

    Во время переговоров IPSec IKE должен быть выбран метод аутентификации. В дополнение к IKE-аутентификации L2TP-протокол использует методы РРР-аутентификации. Обсудим проблемы, связанные с аутентификацией.

    Хотя РРР-протокол и выполняет начальную аутентификацию, он не обеспечивает аутентификацию, целостность и защиту от replay-атак на уровне пакетов. Это означает, что идентификация, выполняемая при начальной РРР-аутентификации, в дальнейшем не проверяется при получении каждого пакета.

    В IPSec после того, как в IKE выполнена аутентификация и вычислены общие ключи, эти ключи используются для обеспечения аутентификации на уровне пакетов, целостности и защиты от replay-атак. И как результат идентификация проверяется при получении каждого пакета.

    Другое различие состоит в том, что идентификация, предоставляемая РРР, является идентификацией на уровне пользователя, а идентификация, предоставляемая IKE, является идентификацией на уровне компьютера.

    Так как только идентификация компьютера проверяется на уровне пакетов, то не существует способа проверить, что только аутентифицированный РРР-пользователь использует туннель. ПО IPSec, обеспечивающее аутентификацию на уровне компьютера, обычно не имеет возможности сегрегации трафика на уровне различных пользователей данного компьютера. Как следствие, если используется аутентификация на уровне компьютера, то после открытия L2TP/IPSec туннеля любой пользователь в многопользовательской среде обычно имеет возможность посылать трафик по туннелю.

    Если ПО IPSec поддерживает аутентификацию на уровне пользователя, то эту проблему можно решить. В этом случае идентификация пользователя, вставленная в IKE, будет проверяться для каждого пакета. Для того, чтобы обеспечить сегрегацию трафика между пользователями, если используется аутентификация на уровне пользователя, клиент должен гарантировать, что по L2TP-туннелю посылается только трафик определенного пользователя.

  • Аутентификация по сертификатам в IKE

    Если в IKE выбрана аутентификация с помощью сертификатов Х.509, то считается, что в LNS для запроса сертификата клиента в IKE будет использоваться специальное содержимое CERP. В LNS может присутствовать несколько CERP, если несколько сертификационных центров являются доверенными, т.е. сконфигурированы в политике аутентификации IPSec IKE.

    LNS должен иметь возможность доверять нескольким сертификационным центрам, чтобы позволять клиентам создавать туннель с использованием сертификатов, выпущенных различными СА.

    LNS может динамически назначать порты источника и получателя только в том случае, если об этом договорились в IKE.

  • Сравнение аутентификации в IKE по сертификатам пользователя и компьютера

    Сертификаты, предоставляемые L2TP-клиентом для переговоров IKE, могут быть выпущены кака для компьютера, так и для пользователя. Когда используется аутентификация на уровне компьютера, сертификат компьютера обычно хранится в LAC или LNS. Когда используется сертификат пользователя, он может храниться как в компьютере, так и на смарт-карте.

    Обычно атакующему бывает легче получить доступ к закрытому ключу компьютера, чем к закрытому ключу пользователя.

    Аутентификация пользователя может быть выполнена и в протоколе РРР, но следует помнить о слабых местах этой аутентификации. Аутентификация в IPSec возможна как на уровне компьютера, так и на уровне пользователя с помощью технологии XAuth.

  • Использование аутентификации по общему секрету

    Использование аутентификации по общему секрету в Main Mode IKE уязвимо для атак "man-in-the-middle", когда этот секрет используется для получения удаленного доступа. В Main Mode использование SKEYID_e необходимо до получения идентификации. Следовательно, выбор разделяемого ключа может быть сделан только на основании информации, содержащейся в IP-заголовке. Однако в случае удаленного доступа обычно IP-адрес назначается динамически, поэтому часто бывает невозможно определить требуемый разделяемый ключ, основываясь только на IP-адресе.

    Таким образом, когда в сценариях удаленного доступа используется аутентификация по общему секрету, один и тот же секрет используется группой пользователей. В такой ситуации невозможна ни идентификация сервера, ни идентификация клиента в I фазе IKE; возможно только доказать, что оба участника являются членами группы, которые знают разделя-емый секрет. Это допускает ситуацию, когда кто-либо может получить доступ к разделяемому секрету группы и выполнить атаку "man-in-the-middle".

    Данной уязвимости не существует в Aggressive Mode, так как идентификация посылает раньше, следовательно, разделяемый секрет может быть выбран на основе идентификации. Однако в Aggressive Mode идентификация пользователя не скрыта, что часто бывает нежелательно.

    В результате этого, если используется Main Mode с разделяемыми секретами и если РРР не выполняет взаимную аутентификацию, то сервер не аутентифицирован. Это дает возможность поддельному серверу получить доступ к групповому разделяемому секрету для успешной подделки под LNS и провести словарную атаку на такие наследуемые методы аутентификации как СНАР. Такая атака может потенциально компрометировать достаточно большое количество паролей. Подобная уязвимость существует в некоторых реализациях туннельного режима IPSec.

    Чтобы избежать подобной проблемы, производители L2TP/IPSec не должны использовать групповой разделяемый секрет для IKE-аутентификации в LNS. Разделяемый ключ IKE должен быть защищен аналогично тому, как защищены пароли пользователей, используемые в L2TP.

  • Безопасное взаимодействии IPSec и РРР

    Когда L2TP защищен с помощью IPSec, доступны сервисы безопасности как РРР, так и IPSec. Какие сервисы будут использоваться, зависит от того, является ли туннель обязательным или добровольным. Проанализируем сценарии обязательного и добровольного туннелирования.

    Будем предполагать, что как клиенты, так и сервера L2TP могут устанавливать и получать свойства IPSec SA, а также влиять на сервисы безопасности IPSec, о которых ведутся переговоры. Более того, будем предполагать, что клиенты и серверы L2TP могут влиять на процесс переговоров относительно РРР-шифрования и сжатия.

    Обязательное туннелирование

    В случае обязательного туннеля клиент посылает РРР-кадры к LAC и обычно не знает, что кадры туннелируются или что какие-либо сервисы безопасности имеют место между LAC и LNS. LNS получает пакет данных, который содержит РРР-кадр, инкапсулированный в L2TP, который сам в свою очередь инкапсулирован в IP-пакет. Получая свойства SA, установ-ленной между LNS и LAC, LNS может иметь информацию о сервисах без-опасности, которые установлены между ним самим и LAC. Таким образом, в случае обязательного туннелирования клиент и LNS имеют не одинаковые знания о сервисах безопасности, установленных между ними.

    Так как LNS может узнать, имеется ли конфиденциальность, целостность, аутентификация и защита от replay-атак между ним и LAC, он может использовать эти знания для модификации своего поведения при переговорах РРР ЕСР и ССР. Предположим, что политика конфиденциальности LNS может быть описана одним из следующих терминов: "Требуется шифрование", "Допустимо шифрование" и "Запрещено шифрование". Если сервисы конфиденциальности IPSec имеют место, то LNS устанавливает политику "Запрещено шифрование". Это не тоже самое, что просто отключить РРР-шифрование и сжатие, так как в этом случае окончательное решение зависит от политики клиента.

    Так как клиент не знает о сервисах безопасности, используемых между LAC и LNS, и так как для соединения между клиентом и LAC также могут требоваться сервисы безопасности, клиент обычно использует РРР-шифрование между ним и LNS.

    Клиент, который хочет гарантировать сервисы безопасности на протяжении всего пути между ним и LNS, не должен отказываться от РРР-шифрования, даже если он знает о сервисах безопасности, которые установлены между LAC и LNS. Клиент ведет переговоры о сервисах конфиденциальности между ним самим и LNS, чтобы обеспечить защиту между ним и LAC.

    В результате этого LAC может вести переговоры с LNS для ESP с нулевым шифрованием, а LNS может обеспечивать защиту от replay-атак. Это гарантирует, что сервисы конфиденциальности и сжатия не будут дублироваться между LAC и LNS.

    Добровольное туннелирование

    В случае добровольного туннелирования клиент посылает L2TP-пакеты к NАS, который затем их маршрутизирует к LNS. В случае dial-up эти L2TP-пакеты будет инкапсулированы в IP и РРР. В этом случае клиент знает сервисы безопасности между ним и LNS. Он также знает о сервисах РРР-шифрования и сжатия, о которых были переговоры между ним и NAS.

    Так как LNS имеет возможность узнать, используется ли конфиденциальность, аутентификация, проверка целостности и защита от replay-атак между ним и клиентом, он может использовать эту информацию для модификации переговоров РРР ЕСР и ССР. Если установлена IPSec-конфиденциальность, то LNS может считать, что директива "Требуется шифрование" установлена, и не обязательно использовать РРР-шифрование и сжатие. Обычно LNS не требует, чтобы РРР-шифрование и сжатие были выключены, предоставляя решение об этом принимать клиенту.

  • Страницы:

    Обзор

    L2TP является протоколом, который туннелирует РРР-трафик по раз-личным сетям (IP, ATM и т.п.). Так как протокол инкапсулирует РРР, L2TP использует РРР-аутентификацию, а также протоколы РРР управления шифрованием и сжатием. L2TP обеспечивает взаимную аутентификацию конечных точек туннеля.

    IPSec является набором протоколов сетевого уровня, которые используются для обеспечения безопасного взаимодействия двух участников.

    Рассмотрим возможность использования набора протоколов IPSec для обеспечения защиты L2TP-трафика по IP-сетям. Также рассмотрим совместное использование IPSec и L2TP.

    Хотя L2TP в качестве транспорта не обязательно использует IP/UDP, в данном случае будем рассматривать только L2TP в IP-сетях.

    Для описания совместного использования L2TP и IPSec будем использовать следующую терминологию.

    Добровольное туннелирование. При добровольном туннелировании туннель создается пользователем, обычно посредством использования клиента туннелирования. В результате этого клиент будет посылать L2TP-пакеты к NAS, который затем будет пересылать их LNS. При добровольном туннелировании NAS не должен поддерживать L2TP, и LAC расположен на той же самой машине, что и клиент.

    Обязательное туннелирование. При обязательном туннелировании туннель создается без какого-либо участия клиента, и клиенту не предоставляется никакого выбора. В результате этого клиент будет посылать РРР-пакеты к NAS/LAC, который затем будет инкапсулировать их в L2TP и туннелировать к LNS. При обязательном туннелировании NAS/LAC должен поддерживать L2TP.

    Инициатор. Инициатором может быть LAC или LNS, это то устройство, которое посылает SCCRQ и получает SCCRP.

    Получатель. Получателем может быть LAC или LNS, это то устройство, которое получает SCCRQ и отвечает SCCRP.

    Примеры атак на протокол L2TP

    Как управляющие пакеты, так и пакеты данных L2TP-протокола уязвимы для разного рода атак:

  • Противник может узнать идентификаторы пользователей, просматривая пакеты данных.
  • Противник может попытаться модифицировать пакеты (как управляющие, так и данных).
  • Противник может попытаться встроиться в L2TP-туннель или РРР-соединение внутри туннеля, представившись одной из сторон.
  • Противник может выполнить DoS-атаку, прерывая РРР-соединения или L2TP-туннели.
  • Противник может попытаться внедриться в РРР-переговоры о параметрах шифрования, чтобы ослабить или удалить конфиденциальность. Противник может также попытаться внедриться в РРР LCP-переговоры об аутентификации, ослабив аутентификацию и получив после этого доступ к паролям пользователей.
  • Для защиты от этих атак протокол L2TP должен обеспечивать аутентификацию, целостность и защиту от replay-атак для управляющих пакетов. Дополнительно он должен иметь возможность обеспечивать конфиденциальность управляющих пакетов. Он также должен обеспечивать целостность и защиту от replay-атак для пакетов данных. Дополнительно должен иметь возможность обеспечивать конфиденциальность пакетов данных. Протокол безопасности L2TP должен также предоставлять масштабируемый подход к управлению ключом.

    Сам протокол L2TP, а также аутентификация в РРР-протоколе не удовлетворяют перечисленным требованиям безопасности. При аутентификации на уровне L2TP-туннеля обеспечивается взаимная аутентификация LAC и LNS при создании туннеля. Но защиты управляющего трафика и трафика данных на уровне пакетов нет. Это делает L2TP-туннель уязви-мым. РРР аутентифицирует клиента для LNS, но аутентификация, целост-ность и защита от replay-атак на уровне пакетов также отсутствует. РРР-шифрование обеспечивает конфиденциальность РРР-трафика, но не обес-печивает аутентификацию, целостность, защиту от replay-атак и управле-ние ключом. Кроме того, нет переговоров об используемых алгоритмах.

    Управление ключом в протоколе L2TP отсутствует. Если требуется аутентификация туннеля, то необходимо распределять пароли для этого туннеля каким-то внешним по отношению к протоколу способом.

    Для предотвращения этих атак следует использовать IPSec ESP для обеспечения безопасности как управляющих пакетов, так и пакетов данных L2TP. Обязательно должен поддерживаться транспортный режим, может также поддерживаться и туннельный режим. Если конфиденциальность не требуется (например, для трафика данных L2TP), то следует использовать NULL-шифрование в ESP.

    Для аутентификации, ведения переговоров об алгоритмах и управления ключом используется протокол IKE.

    Основные принципы совместного использования L2TP и IPSec

  • Требуется обеспечить синхронное завершение L2TP-туннеля и SA, созданной в фазах I или II.

    Механизмы РРР и L2TP дают возможность завершения соединения как с уведомлением об этом противоположной стороны, так и без уведомления. В протоколе РРР LCP TermReq и TermAck обеспечивают завершение с уведомлением. Сообщения LCP keep-alive и hello L2TP-туннеля дают возможность определить, что произошло завершение без уведомления. Когда происходит завершение, приводящее к закрытию туннеля, используются механизмы управляющего соединения протокола L2TP. При удалении L2TP-туннеля любой из сторон SA, созданные в фазах I или II, которые используются L2TP-туннелем, также должны быть удалены.

  • Проблемы, связанные с фрагментацией.

    Так как MTU по умолчанию для РРР-соединений равно 1500 байтам, возможна фрагментация при добавлении L2TP- и IPSec-заголовков в РРР-кадр. Одним из механизмов, который может использоваться для решения этой проблемы, может быть использование в РРР значения MTU для входящего / исходящего трафика, равного L2TP/IPSec туннелю минус накладные расходы, связанные с внешними заголовками. Это должно быть сдела-но после того, как L2TP-туннель был установлен, но перед тем, как нача-лись LCP-переговоры. Если значение MTU для входящего / исходящего трафика для туннеля меньше, чем значение MTU для РРР, то указывается новое значение. Это значение может также использоваться в качестве начального значения, предлагаемого для MTU в LCP ConfigReq.

    Если ICMP MTU получено в IPSec, то это значение должно храниться в SA. IPSec должен также уведомить об этом L2TP, чтобы новое значение MTU было указано в РРР-интерфейсе. Любое новое значение MTU, задава-емое для РРР-интерфейса, должно проверяться на соответствие этим ограничениям.

    (рис 10.1) Параметр MTU для протокола L2TP
  • Детали IPSec-фильтрования для L2TP-защиты

    Так как IKE/IPSec не знает о деталях приложения, которое он защищает, обычно не требуется никакой интеграции между приложением и IPSec-протоколом. Однако в протоколах, в которых возможно изменение номера порта при переговорах, выполняемых этим протоколом (как в случае L2TP), могут возникнуть проблемы при выполнении IKE. В спецификации протокола L2TP говорится, что производитель может динамически назначать UDP-порт источника. Новое значение порта посылается в SCCRP от Получателя к Инициатору.

    Хотя текущая спецификация L2TP позволяет Получателю указывать новый IP-адрес в SCCRP, если требуется защита L2TP с использованием IPSec, обычно этого не делают. Для обеспечения возможности указывать новый IP-адрес при совместном использовании L2TP и IPSec, необходимо, чтобы при выборе Получателем нового IP-адреса, он посылал STOPCCN Инициатору с AVP Result Code, Error Code. Result Code должен быть установлен в 2 (General error), и Error Code должен быть установлен в 7 (Try Another).

    Если Error Code установлен в 7, то должно посылаться дополнительное сообщение об ошибке, в котором содержится IP-адрес, который Получатель будет использовать в последующих обменах. Инициатор после обработки этих сообщений должен послать новый SCCRQ на новый IP-адрес. Данный подход уменьшает сложность, так как Инициатор всегда знает корректный IP-адрес противоположной стороны. Это также позволяет управляющему механизму L2TP привязать записи в базе данных поли-тик IPSec к одной и той же противоположной стороне.

    Далее обсудим детали записей в базе данных политик, требуемые для реализации данного поведения, а также другие механизмы, необходимые для защиты L2TP с использованием IPSec.

  • I фаза IKE-переговоров.

    В IKE при использовании аутентификации по предварительно распределенному секрету этот секрет должен быть указан на каждой стороне. При использовании Main Mode (который обеспечивает защиту идентификации) этот секрет должен быть связан с IP-адресом противоположной стороны. При использовании Aggresive Mode (который не обеспечивает защиту идентификации) предварительно распределенный секрет должен быть связан с одним из допустимых типов идентификаций, определенных в IPSec DOI.

    (рис 10.2) Идентификация участников по DNS-имени

    Если инициатор получает STOPCCN с AVP результата и кодом ошибки, установленным в Try Another, и в сообщении присутствует действительный IP-адрес, он может связать исходный предварительно распределенный секрет с новым IP-адресом, содержащимся в сообщении об ошибке.

    Использование заранее распределенных ключей в качестве аутентификаторов плохо влияет на масштабируемость. Так как число конечных точек LAC и LNS возрастает, то и трудность управления заранее распределенными ключами также возрастает. Поэтому аутентификация с использованием сертификатов является более предпочтительной.

  • Переговоры II фазы IKE.

    В течение II фазы участники согласовывают, как будет защищен трафик IPSec-протоколов. Идентификации в Quick Mode являются комбинацией адресного пространства, протокола и номера порта.

    При обеспечении безопасности L2TP с использованием IPSec возможны следующие изменения портов и адресов Инициатора и Получателя:

    Порт Инициатора Адрес Получателя Порт Получателя
    1701 Фиксированный 1701
    1701 Фиксированный Динамический
    1701 Динамический 1701
    1701 Динамический Динамический
    Динамический Фиксированный 1701
    Динамический Фиксированный Динамический
    Динамический Динамический 1701
    Динамический Динамический Динамический

    Наиболее общим случаем является последний в списке. В этом случае Инициатор выбирает новый номер порта, и Получатель выбирает новый адрес и новый номер порта. Поток L2TP-сообщений, который возникает в этом случае, следующий:

    →IKE фаза I и фаза II для защиты Initial SCCRQ
    SCCRQ 	→ (Фиксированный IP-адрес, Динамический порт Инициатора)
    ← STOPCCN (Получатель выбирает новый IP-адрес)
    → Новые переговоры IKE фаза I и фаза II для защиты нового SCCRQ
    SCCRQ 	→ (SCCRQ на новый IP-адрес Получателя)
    ← Новые переговоры IKE фаза II для изменения номера порта Получателя
    ← SCCRP (Получатель выбирает новый номер порта)
    SCCCN 	→ (Завершение установления L2TP-туннеля)
    

    Хотя обычно Инициатор и Получатель динамически не изменяют пор-ты, безопасность L2TP должна также обеспечиваться при использовании таких приложений, как балансировка нагрузки и гарантирование качества (QoS). Это может потребовать изменения порта и IP-адреса при установлении L2TP-туннеля.

    Для поддержки наиболее общего случая в L2TP и IPSec должны быть разработаны механизмы, которые позволяют L2TP вставлять свои записи в БД IPSec. Данная технология может быть использована любым приложением, которое изменяет порты и которому требуется безопасность с использованием IPSec.

    Не требуется, чтобы Получатель поддерживал возможность изменять свой IP-адрес и порт. Тем не менее Инициатор должен позволять Получателю изменить свой порт и IP-адрес.

    Терминология, используемая для задания параметров фильтрования:

    I-PortНомер UDP-порта, который Инициатор выбирает для инициализации и получения L2TP-трафика. Это может быть статический порт, такой как 1701, или временный порт, связанный с сокетом.
    R-Port Номер UDP-порта, который Получатель выбирает для инициализации и получения L2TP-трафика. Это может быть порт 1701 или временный порт, связанный с сокетом. Это номер порта, который Получатель будет использовать после получения начального SCCRQ.
    R-IPAddr1 IP-адрес, который Получатель слушает при получении начального SCCRQ. Если Получатель не изменил IP-адрес на новый, данный адрес будет использоваться всем последующим L2TP-трафиком.
    R-IPAddr2 IP-адрес, который Получатель выбрал после получения SCCRQ. Этот адрес используется для того, чтобы послать SCCRQ, и весь последующий трафик L2TP-туннеля будет посылаться с данного адреса и получаться на него.
    R-IPAddr IP-адрес, который Получатель использует для посылки и получения L2TP-пакетов. Это либо исходное значение R-IPAddr1, либо новое значение R-IPAddr2.
    I-IPAddr IP-адрес, который Инициатор использует для взаимодействия по L2TP-туннелю.
    Any-Addr Наличие Any-Addr говорит о том, что IKE должен допускать любой одиночный адрес, предложенный в качестве ID в фазе II переговоров. Данный одиночный адрес может рассматриваться как единственный IP-адрес или IP-адрес с маской, установленной в 255.255.255.255.
    Any-Port Наличие Any-Port говорит о том, что IKE должен допускать любое значение номера порта.

    Записи в политике IPSec, которые будут определены далее, перечислены от наибольшего приоритета к наименьшему.

  • Начальные записи в политике, необходимые для защиты SCCRQ

    Добавление начальных записей на стороне Инициатора и Получателя необходимо для защиты SCCRQ, посылаемого Инициатором для открытия L2TP-туннеля. Как Инициатор, так и Получатель должны либо быть заранее сконфигурированы с этими дополнительными записями, либо в L2TP должен быть определен метод добавления этой информации в БД политик IPSec. В любом случае данные записи должны быть определены до того, как будет послано первое сообщение об установке L2TP-туннеля.

    Записи на стороне Получателя:

    Записи на стороне Получателя:
    Для исходящего трафикаНет. Они должны быть динамически созданы IKE при успешном завершении фазы II.
    Записи на стороне Инициатора:
    Для исходящего трафикаfrom I-IPAddrto R-IPAddr1UDPsrc I-Portdst 1701
    Для входящего трафикаfrom R-IPAddr1to I-IPAddr UDP src 1701 dst I-Port
    from R-IPAddr1 to I-IPAddr UDP src Any-Port dstI-Port

    Если Инициатор использует динамические порты, то L2TP должен вставить записи в БД политик IPSec после того, как стал известен номер порта источника. Если Инициатор использует фиксированный порт 1701, эти записи могут быть определены статически.

    Определение Any-Port во второй записи для входящего трафика Инициатора необходимо для обработки потенциального изменения порта, которое может произойти в результате изменения номера порта Получателем.

    Если на фазе II все еще нет SA для защиты SCCRQ, посылка SCCRQ Инициатором должна привести к тому, что IKE установит необходимые SA для защиты данного пакета. В качестве альтернативы L2TP может запросить IKE установить SA. Если по какой-то причине SA не может быть установлена, пакет должен быть отброшен.

    Номера портов в ID Quick Mode, посылаемые Инициатором, должны содержать номера портов, используемые для идентификации UDP-сокета. Номера портов будут либо I-Port/1701, либо 1701/1701 для начального SCCRQ. ID Quick Mode, посылаемые Инициатором, являются подмножеством первой записи для входящего трафика на стороне Получателя. В результате этого после завершения обмена Quick Mode IKE должен вставить определенный набор записей в БД политик IPSec и связать этот набор записей с SA фазы II, установленной между участниками. Эти записи должны существовать до тех пор, пока существует L2TP-туннель. Новый набор записей на стороне Получателя будет:

    Записи на стороне Получателя:
    Для исходящего трафикаfrom R-IPAddr1 to I-IPAddr UDP src 1701 dst I-Port
    Для входящего трафикаfrom I-IPAddr1 to R-IPAddr11 UDP 1src I-Port1 dst 17011
    from Any-Addr to R-IPAddr1 UDP src Any-Port dst 1701

    Между L2TP и IPSec должны существовать такие механизмы, чтобы L2TP мог не передавать повторно SCCRQ, если SA уже установлена.

    Механизмы повторной передачи в управляющем канале L2TP должны запускаться только после того, как SA уже установлена.

    SCCRQ должно посылаться от Инициатора к Получателю только после того, как SA фазы II между участниками установлена.

    Если Получатель не использует новый IP-адрес или порт, то установление L2TP-туннеля может быть продолжено.

    Получатель выбрал новый IP-адрес

    Опишем процесс, который выполняется, если Получатель решает ис-пользовать новый IP-адрес. После получения SCCRQ и перед отправлением SCCRP у Получателя существует единственная возможность изменить свой IP-адрес.

    Новый адрес, который выбирает Получатель, должен быть указан в AVP Result и Error Code в STOPCCN сообщении. Сообщение STOPCCN посылается на тот же самый адрес и UDP-порт, которые Инициатор ис-пользовал для посылки SCCRQ. Данное сообщение будет защищено начальными SA, установленными для защиты SCCRQ.

    При получении STOPCCN Инициатор должен извлечь IP-адрес и вста-вить новый набор записей в БД политик IPSec. Если используется аутентификация по предварительно распределенному секрету, L2TP может запросить IKE связать новый IP-адрес с этим секретом, который использовался для исходного IP-адреса.

    Так как IP-адрес Получателя был изменен, то между участниками должны быть установлены новые SA фазы I и II до того, как будет послано новое SCCRQ.

    В предположении, что начальный туннель был удален, а также удалены записи, необходимые для создания туннеля, новые записи Инициатора и Получателя будут следующие:

    Записи на стороне Инициатора:
    Для исходящего трафикаfrom I-IPAddr to R-IPAddr2 UDP src I-Port dst 1701
    Для входящего трафикаfrom R-IPAddr2 to I-IPAddr UDP src 1701 dst I-Port
    from R-IPAddr2 to I-IPAddr UDP srcAny-Port dstI-Port

    После того, как II фаза IKE завершится, новый набор записей у Полу-чателя будет следующим:

    Записи на стороне Получателя:
    Для исходящего трафикаfrom R-IPAddr2 to I-IPAddr UDP src 1701 dst I-Port
    from Any-Addr to R-IPAddr1 UDP src Any-Port dst 1701

    Если Получатель не изменил номер порта, то установка L2TP-туннеля может быть завершена.

    Получатель выбрал новый номер порта

    Получатель может решить использовать новый UDP-порт источника для трафика L2TP-туннеля. Это решение должно быть принято до посылки SCCRP. Если выбран новый номер порта, то L2TP должен вставить новые записи в БД политик IPSec. Получатель должен начать с Инициатором новую II фазу переговоров IKE.

    Заключительный набор записей у Инициатора и Получателя следующий:

    Записи на стороне Инициатора:
    Для исходящего трафикаfrom I-IPAddr to R-IPAddr UDP src I-Port dst R-Port
    from I-IPAddr to R-IPAddr UDP src I-Port dst 1701
    Для входящего трафикаfrom R-IPAddr to I-IPAddr UDP src R-Port dst I-Port
    from R-IPAddrto I-IPAddrUDP src 1701dst I-Port
    from R-IPAddr to I-IPAddr UDP srcAny-Port dstI-Port

    Первая запись для входящего трафика на стороне Инициатора будет добавлена IKE при успешном завершении II фазы переговоров, инициированных участником.

    Записи на стороне Получателя:
    Для исходящего трафикаfromR-IPAddr to I-IPAddr UDP srcR-Port dstI-Port
    fromR-IPAddrto I-IPAddrUDPsrc1701dstI-Port
    Для входящего трафикаfromI-IPAddrto R-IPAddr UDP srcI-Port dstR-Port
    fromI-IPAddrto R-IPAddrUDPsrcI-Port dst 1701
    fromAny-Addrto R-IPAddr1UDP srcAny-Port dst 1701

    После того, как переговоры завершены, посылается SCCRP, и установление L2TP-туннеля может быть завершено. После того, как L2TP-туннель установлен, любые оставшиеся SA и связанные с ними записи могут быть удалены.

    Обсуждение топологий шлюз-шлюз и исходящего канала L2TP

    В топологии шлюз-шлюз и исходящего канала L2TP каждая сторона может инициировать создание L2TP-канала. Эти сценарии отличаются от предыдущих единственным дополнением. Начальный набор правил на каждой стороне должен включать следующее правило:

    Для входящего трафика from Any-Addr to R-IPAddr1 UDP srcAny-Port dst 1701

    Когда любая из сторон решит установить туннель, L2TP должен вставить необходимые входящий и исходящий правила для защиты SCCRQ. После этого установка туннеля полностью соответствует предыдущим сценариям.

    Обсуждение безопасности

  • Различия между IKE- и РРР-аутентификацией

    Во время переговоров IPSec IKE должен быть выбран метод аутентификации. В дополнение к IKE-аутентификации L2TP-протокол использует методы РРР-аутентификации. Обсудим проблемы, связанные с аутентификацией.

    Хотя РРР-протокол и выполняет начальную аутентификацию, он не обеспечивает аутентификацию, целостность и защиту от replay-атак на уровне пакетов. Это означает, что идентификация, выполняемая при начальной РРР-аутентификации, в дальнейшем не проверяется при получении каждого пакета.

    В IPSec после того, как в IKE выполнена аутентификация и вычислены общие ключи, эти ключи используются для обеспечения аутентификации на уровне пакетов, целостности и защиты от replay-атак. И как результат идентификация проверяется при получении каждого пакета.

    Другое различие состоит в том, что идентификация, предоставляемая РРР, является идентификацией на уровне пользователя, а идентификация, предоставляемая IKE, является идентификацией на уровне компьютера.

    Так как только идентификация компьютера проверяется на уровне пакетов, то не существует способа проверить, что только аутентифицированный РРР-пользователь использует туннель. ПО IPSec, обеспечивающее аутентификацию на уровне компьютера, обычно не имеет возможности сегрегации трафика на уровне различных пользователей данного компьютера. Как следствие, если используется аутентификация на уровне компьютера, то после открытия L2TP/IPSec туннеля любой пользователь в многопользовательской среде обычно имеет возможность посылать трафик по туннелю.

    Если ПО IPSec поддерживает аутентификацию на уровне пользователя, то эту проблему можно решить. В этом случае идентификация пользователя, вставленная в IKE, будет проверяться для каждого пакета. Для того, чтобы обеспечить сегрегацию трафика между пользователями, если используется аутентификация на уровне пользователя, клиент должен гарантировать, что по L2TP-туннелю посылается только трафик определенного пользователя.

  • Аутентификация по сертификатам в IKE

    Если в IKE выбрана аутентификация с помощью сертификатов Х.509, то считается, что в LNS для запроса сертификата клиента в IKE будет использоваться специальное содержимое CERP. В LNS может присутствовать несколько CERP, если несколько сертификационных центров являются доверенными, т.е. сконфигурированы в политике аутентификации IPSec IKE.

    LNS должен иметь возможность доверять нескольким сертификационным центрам, чтобы позволять клиентам создавать туннель с использованием сертификатов, выпущенных различными СА.

    LNS может динамически назначать порты источника и получателя только в том случае, если об этом договорились в IKE.

  • Сравнение аутентификации в IKE по сертификатам пользователя и компьютера

    Сертификаты, предоставляемые L2TP-клиентом для переговоров IKE, могут быть выпущены кака для компьютера, так и для пользователя. Когда используется аутентификация на уровне компьютера, сертификат компьютера обычно хранится в LAC или LNS. Когда используется сертификат пользователя, он может храниться как в компьютере, так и на смарт-карте.

    Обычно атакующему бывает легче получить доступ к закрытому ключу компьютера, чем к закрытому ключу пользователя.

    Аутентификация пользователя может быть выполнена и в протоколе РРР, но следует помнить о слабых местах этой аутентификации. Аутентификация в IPSec возможна как на уровне компьютера, так и на уровне пользователя с помощью технологии XAuth.

  • Использование аутентификации по общему секрету

    Использование аутентификации по общему секрету в Main Mode IKE уязвимо для атак "man-in-the-middle", когда этот секрет используется для получения удаленного доступа. В Main Mode использование SKEYID_e необходимо до получения идентификации. Следовательно, выбор разделяемого ключа может быть сделан только на основании информации, содержащейся в IP-заголовке. Однако в случае удаленного доступа обычно IP-адрес назначается динамически, поэтому часто бывает невозможно определить требуемый разделяемый ключ, основываясь только на IP-адресе.

    Таким образом, когда в сценариях удаленного доступа используется аутентификация по общему секрету, один и тот же секрет используется группой пользователей. В такой ситуации невозможна ни идентификация сервера, ни идентификация клиента в I фазе IKE; возможно только доказать, что оба участника являются членами группы, которые знают разделя-емый секрет. Это допускает ситуацию, когда кто-либо может получить доступ к разделяемому секрету группы и выполнить атаку "man-in-the-middle".

    Данной уязвимости не существует в Aggressive Mode, так как идентификация посылает раньше, следовательно, разделяемый секрет может быть выбран на основе идентификации. Однако в Aggressive Mode идентификация пользователя не скрыта, что часто бывает нежелательно.

    В результате этого, если используется Main Mode с разделяемыми секретами и если РРР не выполняет взаимную аутентификацию, то сервер не аутентифицирован. Это дает возможность поддельному серверу получить доступ к групповому разделяемому секрету для успешной подделки под LNS и провести словарную атаку на такие наследуемые методы аутентификации как СНАР. Такая атака может потенциально компрометировать достаточно большое количество паролей. Подобная уязвимость существует в некоторых реализациях туннельного режима IPSec.

    Чтобы избежать подобной проблемы, производители L2TP/IPSec не должны использовать групповой разделяемый секрет для IKE-аутентификации в LNS. Разделяемый ключ IKE должен быть защищен аналогично тому, как защищены пароли пользователей, используемые в L2TP.

  • Безопасное взаимодействии IPSec и РРР

    Когда L2TP защищен с помощью IPSec, доступны сервисы безопасности как РРР, так и IPSec. Какие сервисы будут использоваться, зависит от того, является ли туннель обязательным или добровольным. Проанализируем сценарии обязательного и добровольного туннелирования.

    Будем предполагать, что как клиенты, так и сервера L2TP могут устанавливать и получать свойства IPSec SA, а также влиять на сервисы безопасности IPSec, о которых ведутся переговоры. Более того, будем предполагать, что клиенты и серверы L2TP могут влиять на процесс переговоров относительно РРР-шифрования и сжатия.

    Обязательное туннелирование

    В случае обязательного туннеля клиент посылает РРР-кадры к LAC и обычно не знает, что кадры туннелируются или что какие-либо сервисы безопасности имеют место между LAC и LNS. LNS получает пакет данных, который содержит РРР-кадр, инкапсулированный в L2TP, который сам в свою очередь инкапсулирован в IP-пакет. Получая свойства SA, установ-ленной между LNS и LAC, LNS может иметь информацию о сервисах без-опасности, которые установлены между ним самим и LAC. Таким образом, в случае обязательного туннелирования клиент и LNS имеют не одинаковые знания о сервисах безопасности, установленных между ними.

    Так как LNS может узнать, имеется ли конфиденциальность, целостность, аутентификация и защита от replay-атак между ним и LAC, он может использовать эти знания для модификации своего поведения при переговорах РРР ЕСР и ССР. Предположим, что политика конфиденциальности LNS может быть описана одним из следующих терминов: "Требуется шифрование", "Допустимо шифрование" и "Запрещено шифрование". Если сервисы конфиденциальности IPSec имеют место, то LNS устанавливает политику "Запрещено шифрование". Это не тоже самое, что просто отключить РРР-шифрование и сжатие, так как в этом случае окончательное решение зависит от политики клиента.

    Так как клиент не знает о сервисах безопасности, используемых между LAC и LNS, и так как для соединения между клиентом и LAC также могут требоваться сервисы безопасности, клиент обычно использует РРР-шифрование между ним и LNS.

    Клиент, который хочет гарантировать сервисы безопасности на протяжении всего пути между ним и LNS, не должен отказываться от РРР-шифрования, даже если он знает о сервисах безопасности, которые установлены между LAC и LNS. Клиент ведет переговоры о сервисах конфиденциальности между ним самим и LNS, чтобы обеспечить защиту между ним и LAC.

    В результате этого LAC может вести переговоры с LNS для ESP с нулевым шифрованием, а LNS может обеспечивать защиту от replay-атак. Это гарантирует, что сервисы конфиденциальности и сжатия не будут дублироваться между LAC и LNS.

    Добровольное туннелирование

    В случае добровольного туннелирования клиент посылает L2TP-пакеты к NАS, который затем их маршрутизирует к LNS. В случае dial-up эти L2TP-пакеты будет инкапсулированы в IP и РРР. В этом случае клиент знает сервисы безопасности между ним и LNS. Он также знает о сервисах РРР-шифрования и сжатия, о которых были переговоры между ним и NAS.

    Так как LNS имеет возможность узнать, используется ли конфиденциальность, аутентификация, проверка целостности и защита от replay-атак между ним и клиентом, он может использовать эту информацию для модификации переговоров РРР ЕСР и ССР. Если установлена IPSec-конфиденциальность, то LNS может считать, что директива "Требуется шифрование" установлена, и не обязательно использовать РРР-шифрование и сжатие. Обычно LNS не требует, чтобы РРР-шифрование и сжатие были выключены, предоставляя решение об этом принимать клиенту.

  • Вернуться к учебному плану