Основное отличие протоколов SLIP и PPP от рассмотренных выше протоколов – это то, что они поддерживают связь "точка-точка", когда сетевой кабель используется для передачи информации только между двумя компьютерами (или другим сетевым оборудованием), соединенным этим кабелем. Такое соединение характерно при подключении к Internet по телефонной линии, при соединении локальных сетей между собой по выделенным или коммутируемым линиям, а также в сетях X.25, Frame Relay и ATM (см. далее в лекциях). Существует большое количество протоколов канального уровня для соединения "точка-точка", однако здесь мы ограничимся рассмотрением только SLIP и PPP.
SLIP (Serial Line IP) – протокол канального уровня, который позволяет использовать последовательную линию передачи данных (телефонную линию) для связи с другими компьютерами по протоколу IP (протокол сетевого уровня). SLIP появился достаточно давно, для связи между Unix – компьютерами по телефонным линиям и, в настоящее время, является устаревшим, т.к. не позволяет использовать протоколы сетевого уровня, отличные от IP, не позволяет согласовывать IP – адреса сторон и имеет слабую схему аутентификации (подтверждения личности) пользователя, заключающуюся в пересылке по сети имени и пароля пользователя. Таким образом, имя и пароль (даже зашифрованный) могут быть перехвачены и повторно использованы злоумышленником, или он может просто дождаться, пока пользователь пройдет аутентификацию, а затем отключить его и самому подключится от имени пользователя. Поэтому, большинство провайдеров Internet для подключения к своим машинам используют протокол PPP.
Протокол канального уровня PPP (Point to Point Protocol – протокол точка-точка) позволяет использовать не только протокол IP, но также и другие протоколы сетевого уровня (IPX, AppleTalk и др.). Достигается это за счет того, что в каждом кадре сообщения хранится не только 16-битная контрольная сумма, но и поле, задающее тип сетевого протокола. Протокол PPP также поддерживает сжатие заголовков IP-пакетов по методу Ван Джакобсона (VJ-сжатие), а также позволяет согласовать максимальный размер передаваемых дейтаграмм, IP-адреса сторон и др. Аутентификация в протоколе PPP является двусторонней, т.е. каждая из сторон может потребовать аутентификации другой. Процедура аутентификации проходит по одной из двух схем:
а) PAP (Password Authentication Protocol) – в начале соединения на сервер посылается имя пользователя и
(возможно зашифрованный) пароль.
б) CHAP (Challenge Handshake Authentication Protocol) – в начале соединения сервер посылает клиенту случайный запрос (challenge). Клиент шифрует свой пароль, используя однонаправленную хэш-функцию (функция у которой по значению Y невозможно определить X) и запрос, в качестве ключа шифрования. Зашифрованный отклик (response) передается серверу, который, имея в своей базе данных пароль клиента, выполняет те же операции и, если полученный от клиента отклик совпадает с вычисленным сервером, то аутентификация считается успешной. Таким образом, пароль по линиям связи не передается. Даже если отклик клиента и будет перехвачен, то в следующий раз использовать его не удастся, т.к. запрос сервера будет другим. Определить же пароль на основании отклика – невозможно, т.к. хэш-функция шифрует данные только "в одну сторону". Для предотвращения вмешательства в соединение уже после прохождения клиентом аутентификации, в схеме CHAP сервер регулярно посылает испытательные запросы через равные промежутки времени. При отсутствии отклика или неверном отклике соединение прерывается.