Структура заголовка pptp
Если рассмотреть структуру пакетов, станет очевидно, что PPTP (как и L2TP) основываются на протоколе Point-to-Point Protocol (PPP). Данные верхних уровней модели OSI сначала инкапсулируются в PPP, а затем протоколы PPTP и L2TP выполняют шифрование данных и собственную инкапсуляцию.
Кадр PPP (IP-, IPX- или Appletalk-датаграмма) заключается в оболочку с заголовком GRE (Generic Routing Encapsulation) и заголовком IP. В заголовке IP-адреса источника и приемника соответствуют VPN-клиенту и VPN-серверу.
Клиенты PPTP используют порт назначения 1723 для создания управляющего туннелем соединения. В дополнение к управляющему соединению PPTP, обеспечивающему работоспособность канала, создается соединение для пересылки по туннелю данных.
В заключение pptp добавляет заголовок канального уровня и окончание. Этап 2 – шифрование данных
Кадр PPP зашифровывается по протоколу MPPE (Microsoft Point-to-Point Encryption) с использованием ключей шифрования, созданных в процессе проверки подлинности по протоколу MS-CHAP, MS-CHAP v2 или EAP-TLS. Это единственные протоколы проверки подлинности, генерирующие собственные начальные ключи шифрования. MPPE требует использования общих ключей клиента и сервера, создаваемых указанными алгоритмами проверки подлинности.
Для собственно шифрования используется поточный шифр RC4 c 40- или 128-битным симметричным ключом.
Протокол l2tp
L2TP появился в результате объединения протоколов PPTP и Layer 2 Forwarding (L2F) от фирмы Cisco.
Как правило, в сетях VPN используют комбинацию L2TP и IPSec, она называется L2TP/IPSec.
Протокол L2TP и метод IPSec должны поддерживаться как на VPN-клиенте, так и на VPN-сервере. Клиентская поддержка L2TP встроена в клиент удаленного доступа Windows XP, а поддержка L2TP VPN-серверами — в операционные системы семейства Windows Server 2003 (появилась в Windows 2000).
Применение IPSec гарантирует:
целостность, т. е. что данные при передаче не были искажены, потеряны или продублированы;
аутентичность, т. е. что данные были переданы тем отправителем, который доказал, что он тот, за кого себя выдает;
конфиденциальность, т. е. что данные передаются в форме, предотвращающей их несанкционированный просмотр.
L2TP поверх IPSec обеспечивает аутентификацию на уровнях «пользователь» и «компьютер», а также выполняет аутентификацию и шифрование данных.
1) На первом этапе аутентификации клиентов и серверов VPN, L2TP поверх IPSec использует локальные сертификаты, полученные от службы сертификации. Клиент и сервер обмениваются сертификатами и создают защищенное соединение ESP SA (security association). В процессе проверки подлинности по протоколу IPSec генерируются симметричные ключи шифрования, которые будут применяться в дальнейшем для шифрования данных.
Также можно проводить проверку подлинности с помощью предварительных ключей, что не рекомендуется.
2) После того как L2TP (поверх IPSec) завершает процесс аутентификации компьютера, выполняется аутентификация на уровне пользователя. Протокол L2TP использует стандартные методы проверки подлинности на базе PPP, такие как EAP, MS-CHAP, MS-CHAP v2, CHAP, SPAP и PAP.
Для аутентификации можно задействовать любой протокол, даже PAP, передающий имя пользователя и пароль в открытом виде. Это вполне безопасно, так как L2TP поверх IPSec шифрует всю сессию. Однако проведение аутентификации пользователя при помощи MSCHAP, применяющего различные ключи шифрования для аутентификации компьютера и пользователя, может усилить защиту.
3) В отличие от PPTP, L2TP на серверах под управлением Windows Server 2003 не использует метода MPPE (Microsoft Point-to-Point Encryption) для шифрования датаграмм PPP. L2TP использует средства шифрования, предоставляемые методом IPSec.
L2TP поверх IPSec обеспечивает более высокую степень защиты данных, чем PPTP, так как использует алгоритм шифрования Triple Data Encryption Standard (3DES). 3DES был разработан для защиты особо секретных данных, и его применение разрешено только в Северной Америке. Если столь высокий уровень защиты не нужен, можно использовать алгоритм DES с одним 56-разрядным ключом, что позволяет снизить расходы на шифрование (3DES использует три 56-разрядных ключа).
В основе обеспечения целостности и аутентификации данных также лежит один из приемов шифрования — шифрование с помощью односторонней функции, называемой также хэш-функцией или дайджест-функцией.
Эта функция, примененная к шифруемым данным, дает в результате значение-дайджест, состоящее из фиксированного небольшого числа байт. Дайджест передается в IP-пакете вместе с исходным сообщением. Получатель, зная, какая односторонняя функция шифрования была применена для составления дайджеста, заново вычисляет его, используя исходное сообщение. Если значения полученного и вычисленного дайджестов совпадают, это значит, что содержимое пакета во время передачи не было подвергнуто никаким изменениям.
L2TP обеспечивает аутентификацию данных при помощи алгоритма Hash Message Authentication Code (HMAC) Message Digest 5 (MD5). Для аутентификации данных этот алгоритм создает хеш длиной 128 разрядов.
