Password Authentication Protocol

Протокол PAP (англ. Password Authentication Protocol - автентифікація по паролю) забезпечує вузлам одного рівня простий спосіб ідентифікації один одного шляхом двосторонньої згоди (handshake). Даний протокол — найбільш простий з протоколів підтвердження віддаленим суб'єктом свого ідентифікатора для об'єкта, що надає ресурси для використання. Автентифікація проходить за дві ітерації (англ. two-way handshake).
Протокол PAP вкрай ненадійний, оскільки паролі, що пересилаються, можна легко читати в пакетах PPP (англ. Point-to-Point Protocol), якими обмінюються сторони в ході перевірки автентичності. Зазвичай PAP використовується тільки при підключенні до старих серверів віддаленого доступу на базі UNIX, які не підтримують жодні інші протоколи перевірки автентичності.

Механізм PAP

При використанні PAP (описано в стандарті RFC-1334) в поле протоколу (два байти протоколу) кадру PPP вказується відповідне PAP-значення Охсоаз, поле даних перетворюється в чотири додаткових поля:

Код Ідентифікатор Довжина Дані
1 байт 1 байт 2 байта перемінний розмір

При цьому поле Код вказує на такі можливі типи PAP-пакету:

  • Код=1: Запит автентифікації.
  • Код=2: Підтвердження автентифікації.
  • Код=3: Відмова у автентифікації.

Поле ідентифікатор забезпечує відповідність пари запит/відповідь (повинен змінюватись при кожному новому запиті).

Поле довжина вказує на сумарну довжину всіх чотирьох полів.

Поле дані містить дані пакету — для запиту автентифікації буде мати такий вигляд:

Довжина ідентифікатора Ідентифікатор Довжина паролю Пароль

Пакет запиту автентифікації буде відправлятись суб'єктом, що бажає отримати доступ неодноразово до настання однієї з таких подій:

  • Отримання підтвердження чи відмови.
  • Перевищення допустимого значення в лічильнику спроб.

При отриманні запиту об'єктом проводиться розпізнання отриманих результатів (порівняння з наявними у об'єкта значеннями). За результатами розпізнавання суб'єкту висилається пакет з полем Дані такого формату:

Довжина повідомлення Повідомлення

При цьому в полях Код вказується 2 або 3 (в залежності від того, підтверджена автентифікація чи відхилена), в поле Ідентифікатор — ідентифікатор відповідного запиту. В полях відповіді вказується: Довжина повідомлення — розмір наступного поля, Повідомлення — покладається на певну реалізацію, воно повинне не впливати на роботу протоколу та рекомендовано формувати його зручним для прочитання.

Додатково вказано, що, оскільки пакет з підтвердженням автентифікації може бути втрачений, реалізація повинна передбачати можливість обробки повторного запиту на аутентифікацію.

Отже, схема роботи протоколу така:

  1. Встановлюється PPP з'єднання.
  2. Суб'єкт посилає запит автентифікації з вказанням свого ідентифікатора і пароля.
  3. Об'єкт перевіряє отримані дані і підтверджує автентифікацію або відмовляється від неї.

Варто звернути особливу увагу на те, що весь обмін даними (в тому числі і пересилка паролю) проходять у відкритому вигляді, без використання криптографічних засобів. При цьому частоту та час відправляння пакетів контролює сам суб'єкт.

Посилання