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 должен обеспечивать аутентификацию, целостность и защиту от replay-атак для управляющих пакетов. Дополнительно он должен иметь возможность обеспечивать конфиденциальность управляющих пакетов. Он также должен обеспечивать целостность и защиту от replay-атак для пакетов данных. Дополнительно должен иметь возможность обеспечивать конфиденциальность пакетов данных. Протокол безопасности L2TP должен также предоставлять масштабируемый подход к управлению ключом.
Сам протокол L2TP, а также аутентификация в РРР-протоколе не удовлетворяют перечисленным требованиям безопасности. При аутентификации на уровне L2TP-туннеля обеспечивается взаимная аутентификация LAC и LNS при создании туннеля. Но защиты управляющего трафика и трафика данных на уровне пакетов нет. Это делает L2TP-туннель уязви-мым. РРР аутентифицирует клиента для LNS, но аутентификация, целост-ность и защита от replay-атак на уровне пакетов также отсутствует. РРР-шифрование обеспечивает конфиденциальность РРР-трафика, но не обес-печивает аутентификацию, целостность, защиту от replay-атак и управле-ние ключом. Кроме того, нет переговоров об используемых алгоритмах.
Управление ключом в протоколе L2TP отсутствует. Если требуется аутентификация туннеля, то необходимо распределять пароли для этого туннеля каким-то внешним по отношению к протоколу способом.
Для предотвращения этих атак следует использовать IPSec ESP для обеспечения безопасности как управляющих пакетов, так и пакетов данных L2TP. Обязательно должен поддерживаться транспортный режим, может также поддерживаться и туннельный режим. Если конфиденциальность не требуется (например, для трафика данных L2TP), то следует использовать NULL-шифрование в ESP.
Для аутентификации, ведения переговоров об алгоритмах и управления ключом используется протокол IKE.
Механизмы РРР и 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Так как 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.
В IKE при использовании аутентификации по предварительно распределенному секрету этот секрет должен быть указан на каждой стороне. При использовании Main Mode (который обеспечивает защиту идентификации) этот секрет должен быть связан с IP-адресом противоположной стороны. При использовании Aggresive Mode (который не обеспечивает защиту идентификации) предварительно распределенный секрет должен быть связан с одним из допустимых типов идентификаций, определенных в IPSec DOI.
(рис 10.2) Идентификация участников по DNS-имени
Если инициатор получает STOPCCN с AVP результата и кодом ошибки, установленным в Try Another, и в сообщении присутствует действительный IP-адрес, он может связать исходный предварительно распределенный секрет с новым IP-адресом, содержащимся в сообщении об ошибке.
Использование заранее распределенных ключей в качестве аутентификаторов плохо влияет на масштабируемость. Так как число конечных точек LAC и LNS возрастает, то и трудность управления заранее распределенными ключами также возрастает. Поэтому аутентификация с использованием сертификатов является более предпочтительной.
В течение 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-IPAddr | to R-IPAddr1 | UDP | src I-Port | dst 1701 |
| Для входящего трафика | from R-IPAddr1 | to 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 1 | src 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-IPAddr | to I-IPAddr | UDP | src 1701 | dst 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-IPAddr | to I-IPAddr | UDP | src1701 | dstI-Port | |
| Для входящего трафика | fromI-IPAddr | to R-IPAddr | UDP | srcI-Port | dstR-Port |
fromI-IPAddr | to R-IPAddr | UDP | srcI-Port | dst 1701 | |
fromAny-Addr | to R-IPAddr1 | UDP | srcAny-Port | dst 1701 | |
После того, как переговоры завершены, посылается SCCRP, и установление L2TP-туннеля может быть завершено. После того, как L2TP-туннель установлен, любые оставшиеся SA и связанные с ними записи могут быть удалены.
Обсуждение топологий шлюз-шлюз и исходящего канала L2TP
В топологии шлюз-шлюз и исходящего канала L2TP каждая сторона может инициировать создание L2TP-канала. Эти сценарии отличаются от предыдущих единственным дополнением. Начальный набор правил на каждой стороне должен включать следующее правило:
| Для входящего трафика | from Any-Addr | to R-IPAddr1 | UDP | srcAny-Port | dst 1701 |
Когда любая из сторон решит установить туннель, L2TP должен вставить необходимые входящий и исходящий правила для защиты SCCRQ. После этого установка туннеля полностью соответствует предыдущим сценариям.
Во время переговоров IPSec IKE должен быть выбран метод аутентификации. В дополнение к IKE-аутентификации L2TP-протокол использует методы РРР-аутентификации. Обсудим проблемы, связанные с аутентификацией.
Хотя РРР-протокол и выполняет начальную аутентификацию, он не обеспечивает аутентификацию, целостность и защиту от replay-атак на уровне пакетов. Это означает, что идентификация, выполняемая при начальной РРР-аутентификации, в дальнейшем не проверяется при получении каждого пакета.
В IPSec после того, как в IKE выполнена аутентификация и вычислены общие ключи, эти ключи используются для обеспечения аутентификации на уровне пакетов, целостности и защиты от replay-атак. И как результат идентификация проверяется при получении каждого пакета.
Другое различие состоит в том, что идентификация, предоставляемая РРР, является идентификацией на уровне пользователя, а идентификация, предоставляемая IKE, является идентификацией на уровне компьютера.
Так как только идентификация компьютера проверяется на уровне пакетов, то не существует способа проверить, что только аутентифицированный РРР-пользователь использует туннель. ПО IPSec, обеспечивающее аутентификацию на уровне компьютера, обычно не имеет возможности сегрегации трафика на уровне различных пользователей данного компьютера. Как следствие, если используется аутентификация на уровне компьютера, то после открытия L2TP/IPSec туннеля любой пользователь в многопользовательской среде обычно имеет возможность посылать трафик по туннелю.
Если ПО IPSec поддерживает аутентификацию на уровне пользователя, то эту проблему можно решить. В этом случае идентификация пользователя, вставленная в IKE, будет проверяться для каждого пакета. Для того, чтобы обеспечить сегрегацию трафика между пользователями, если используется аутентификация на уровне пользователя, клиент должен гарантировать, что по L2TP-туннелю посылается только трафик определенного пользователя.
Если в IKE выбрана аутентификация с помощью сертификатов Х.509, то считается, что в LNS для запроса сертификата клиента в IKE будет использоваться специальное содержимое CERP. В LNS может присутствовать несколько CERP, если несколько сертификационных центров являются доверенными, т.е. сконфигурированы в политике аутентификации IPSec IKE.
LNS должен иметь возможность доверять нескольким сертификационным центрам, чтобы позволять клиентам создавать туннель с использованием сертификатов, выпущенных различными СА.
LNS может динамически назначать порты источника и получателя только в том случае, если об этом договорились в 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.
Когда 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 должен обеспечивать аутентификацию, целостность и защиту от replay-атак для управляющих пакетов. Дополнительно он должен иметь возможность обеспечивать конфиденциальность управляющих пакетов. Он также должен обеспечивать целостность и защиту от replay-атак для пакетов данных. Дополнительно должен иметь возможность обеспечивать конфиденциальность пакетов данных. Протокол безопасности L2TP должен также предоставлять масштабируемый подход к управлению ключом.
Сам протокол L2TP, а также аутентификация в РРР-протоколе не удовлетворяют перечисленным требованиям безопасности. При аутентификации на уровне L2TP-туннеля обеспечивается взаимная аутентификация LAC и LNS при создании туннеля. Но защиты управляющего трафика и трафика данных на уровне пакетов нет. Это делает L2TP-туннель уязви-мым. РРР аутентифицирует клиента для LNS, но аутентификация, целост-ность и защита от replay-атак на уровне пакетов также отсутствует. РРР-шифрование обеспечивает конфиденциальность РРР-трафика, но не обес-печивает аутентификацию, целостность, защиту от replay-атак и управле-ние ключом. Кроме того, нет переговоров об используемых алгоритмах.
Управление ключом в протоколе L2TP отсутствует. Если требуется аутентификация туннеля, то необходимо распределять пароли для этого туннеля каким-то внешним по отношению к протоколу способом.
Для предотвращения этих атак следует использовать IPSec ESP для обеспечения безопасности как управляющих пакетов, так и пакетов данных L2TP. Обязательно должен поддерживаться транспортный режим, может также поддерживаться и туннельный режим. Если конфиденциальность не требуется (например, для трафика данных L2TP), то следует использовать NULL-шифрование в ESP.
Для аутентификации, ведения переговоров об алгоритмах и управления ключом используется протокол IKE.
Механизмы РРР и 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Так как 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.
В IKE при использовании аутентификации по предварительно распределенному секрету этот секрет должен быть указан на каждой стороне. При использовании Main Mode (который обеспечивает защиту идентификации) этот секрет должен быть связан с IP-адресом противоположной стороны. При использовании Aggresive Mode (который не обеспечивает защиту идентификации) предварительно распределенный секрет должен быть связан с одним из допустимых типов идентификаций, определенных в IPSec DOI.
(рис 10.2) Идентификация участников по DNS-имени
Если инициатор получает STOPCCN с AVP результата и кодом ошибки, установленным в Try Another, и в сообщении присутствует действительный IP-адрес, он может связать исходный предварительно распределенный секрет с новым IP-адресом, содержащимся в сообщении об ошибке.
Использование заранее распределенных ключей в качестве аутентификаторов плохо влияет на масштабируемость. Так как число конечных точек LAC и LNS возрастает, то и трудность управления заранее распределенными ключами также возрастает. Поэтому аутентификация с использованием сертификатов является более предпочтительной.
В течение 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-IPAddr | to R-IPAddr1 | UDP | src I-Port | dst 1701 |
| Для входящего трафика | from R-IPAddr1 | to 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 1 | src 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-IPAddr | to I-IPAddr | UDP | src 1701 | dst 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-IPAddr | to I-IPAddr | UDP | src1701 | dstI-Port | |
| Для входящего трафика | fromI-IPAddr | to R-IPAddr | UDP | srcI-Port | dstR-Port |
fromI-IPAddr | to R-IPAddr | UDP | srcI-Port | dst 1701 | |
fromAny-Addr | to R-IPAddr1 | UDP | srcAny-Port | dst 1701 | |
После того, как переговоры завершены, посылается SCCRP, и установление L2TP-туннеля может быть завершено. После того, как L2TP-туннель установлен, любые оставшиеся SA и связанные с ними записи могут быть удалены.
Обсуждение топологий шлюз-шлюз и исходящего канала L2TP
В топологии шлюз-шлюз и исходящего канала L2TP каждая сторона может инициировать создание L2TP-канала. Эти сценарии отличаются от предыдущих единственным дополнением. Начальный набор правил на каждой стороне должен включать следующее правило:
| Для входящего трафика | from Any-Addr | to R-IPAddr1 | UDP | srcAny-Port | dst 1701 |
Когда любая из сторон решит установить туннель, L2TP должен вставить необходимые входящий и исходящий правила для защиты SCCRQ. После этого установка туннеля полностью соответствует предыдущим сценариям.
Во время переговоров IPSec IKE должен быть выбран метод аутентификации. В дополнение к IKE-аутентификации L2TP-протокол использует методы РРР-аутентификации. Обсудим проблемы, связанные с аутентификацией.
Хотя РРР-протокол и выполняет начальную аутентификацию, он не обеспечивает аутентификацию, целостность и защиту от replay-атак на уровне пакетов. Это означает, что идентификация, выполняемая при начальной РРР-аутентификации, в дальнейшем не проверяется при получении каждого пакета.
В IPSec после того, как в IKE выполнена аутентификация и вычислены общие ключи, эти ключи используются для обеспечения аутентификации на уровне пакетов, целостности и защиты от replay-атак. И как результат идентификация проверяется при получении каждого пакета.
Другое различие состоит в том, что идентификация, предоставляемая РРР, является идентификацией на уровне пользователя, а идентификация, предоставляемая IKE, является идентификацией на уровне компьютера.
Так как только идентификация компьютера проверяется на уровне пакетов, то не существует способа проверить, что только аутентифицированный РРР-пользователь использует туннель. ПО IPSec, обеспечивающее аутентификацию на уровне компьютера, обычно не имеет возможности сегрегации трафика на уровне различных пользователей данного компьютера. Как следствие, если используется аутентификация на уровне компьютера, то после открытия L2TP/IPSec туннеля любой пользователь в многопользовательской среде обычно имеет возможность посылать трафик по туннелю.
Если ПО IPSec поддерживает аутентификацию на уровне пользователя, то эту проблему можно решить. В этом случае идентификация пользователя, вставленная в IKE, будет проверяться для каждого пакета. Для того, чтобы обеспечить сегрегацию трафика между пользователями, если используется аутентификация на уровне пользователя, клиент должен гарантировать, что по L2TP-туннелю посылается только трафик определенного пользователя.
Если в IKE выбрана аутентификация с помощью сертификатов Х.509, то считается, что в LNS для запроса сертификата клиента в IKE будет использоваться специальное содержимое CERP. В LNS может присутствовать несколько CERP, если несколько сертификационных центров являются доверенными, т.е. сконфигурированы в политике аутентификации IPSec IKE.
LNS должен иметь возможность доверять нескольким сертификационным центрам, чтобы позволять клиентам создавать туннель с использованием сертификатов, выпущенных различными СА.
LNS может динамически назначать порты источника и получателя только в том случае, если об этом договорились в 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.
Когда 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 не требует, чтобы РРР-шифрование и сжатие были выключены, предоставляя решение об этом принимать клиенту.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.