Simple Authentication and Security Layer, SASL (укр. Прошарок Простої Автентифікації та Безпеки) — фреймворк для надання послуг автентифікації та безпеки даних в орієнтованих на з'єднання протоколах за допомогою змінних механізмів. SASL надає структурований інтерфейс між протоколами та механізмами, а також протокол для убезпечення вкладеного протоколу в межах прошарку безпеки. Прошарок безпеки даних може забезпечувати цілісність даних, конфіденційність даних, проксі-авторизацію та інші послуги.

Побудова SASL дозволяє:

  • новим протоколам — повторно використовувати механізми, що вже існують, без потреби переробки цих механізмів;
  • протоколам, що вже існують — використовувати нові механізми без переробки протоколів.

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

Абстрактний прошарок SASL
Абстрактний прошарок SASL

Вважається, що інтерфейси, які надаються цим абстрактним прошарком, дозволяють будь-якому протоколу використовувати будь-який механізм. Хоча цей прошарок й приховує деталі протоколів від механізмів і деталі механізмів від протоколів, проте, реалізації протоколів, в основному, знають про деталі використовуваних механізмів. Це пов'язано з тим, що різні механізми вимагають різної вихідної інформації для виконання своїх функцій: одні з них використовують автентифікацію, основану на паролях, інші використовують квитки Kerberos, сертифікати тощо. Також, для потреб авторизації, реалізації на боці сервера мають реалізувати зв'язок між автентифікаційними сутностями, які, в свою чергу, залежать від протоколу застосунку.

Для використання SASL кожен протокол, крім іншого, надає:

  • метод для визначення механізму, який слід застосовувати;
  • метод для обміну специфічними для механізму запитами від сервера і відповідями від клієнта;
  • метод для перевірки результатів перевірки справжності.

Історія ред.

В 1997 році Джон Гардинер Майєрс під час роботи в університеті Карнегі-Мелон створив документ RFC 2222, в якому описав специфікації SASL. У 2004 році специфікації RFC 2222 були замінені новими специфікаціями RFC 4422.

Роботи над протоколом SASL відстежуються організацією IETF і, станом на 2010 рік, SASL є запропонованим стандартом.

Механізми SASL ред.

Назви механізмів SASL представлені у вигляді рядків символів довжиною від 1 до 20 символів, що містять латинські букви в верхньому регістрі, цифри, дефіси і/або знак підкреслення.

SASL визначає наступні стандартні[1] механізми:

Стандартні механізми SASL
Механізм Стан Документ / Автор Опис
KERBEROS_V4 Застарілий RFC 2222 Kerberos
GSSAPI Загальний RFC 4752 Механізм автентифікації для Kerberos V5 через GSS-API, який надає прошарок безпеки даних.
SKEY Застарілий RFC 2444 S/KEY
EXTERNAL Загальний RFC 4422 Для випадків, коли автентифікація забезпечується неявно контекстом, наприклад, для протоколів, що вже використовують IPsec або TLS.
CRAM-MD5 Обмежений RFC 2195 Проста схема запит-відповідь (Challenge-Response Authentication Mechanism), що ґрунтується на HMAC-MD5.
ANONYMOUS Загальний RFC 4505 Для доступу неавтентифікованих відвідувачів.
OTP Загальний RFC 2444 Механізм одноразового паролю One-Time Password, замінив собою застарілий механізм SKEY.
GSS-SPNEGO Обмежений Paul Leach
PLAIN Загальний RFC 4616 Простий механізм передачі паролю відкритим текстом, замінив собою застарілий механізм LOGIN.
SECURID Загальний RFC 2808
NTLM Обмежений Paul Leach Механізм автентифікації NT LAN Manager.
NMAS_LOGIN Обмежений Mark G. Gayman
NMAS_AUTHEN Обмежений Mark G. Gayman
DIGEST-MD5 Застарілий RFC 6331 Схема запит-відповідь, сумісна з дайджестом HTTP, що ґрунтується на MD5 і надає прошарок безпеки даних.
9798-U-RSA-SHA1-ENC Загальний RFC 3163
9798-M-RSA-SHA1-ENC Загальний RFC 3163
9798-U-DSA-SHA1 Загальний RFC 3163
9798-M-DSA-SHA1 Загальний RFC 3163
9798-U-ECDSA-SHA1 Загальний RFC 3163
9798-M-ECDSA-SHA1 Загальний RFC 3163
KERBEROS_V5 Загальний Simon Josefsson Kerberos
NMAS-SAMBA-AUTH Обмежений Vince Brimhall
SCRAM-* Загальний RFC 5802
SCRAM-SHA-1 Загальний RFC 5802
SCRAM-SHA-1-PLUS Загальний RFC 5802
GS2-* Загальний RFC 5801 Родина механізмів GS2 підтримують довільні механізми GSS-API в SASL.
GS2-KRB5 Загальний RFC 5801
GS2-KRB5-PLUS Загальний RFC 5801
SPNEGO Не можна використовувати RFC 5801
SPNEGO-PLUS Не можна використовувати RFC 5801
SAML20 Загальний RFC 6595
OPENID20 Загальний RFC 6616

IANA вимагає обов'язкову реєстрацію механізмів SASL[1].

GateKeeper (також GateKeeperPassword) — механізм запит-відповідь, розроблений Microsoft для MSN Chat, проте не зареєстрований[1] в IANA.

Див. також ред.

Примітки ред.

  1. а б в SASL Mechanisms [Механізми SASL]. IANA (англійською) . Архів оригіналу за 30 липня 2012. Процитовано 8 липня 2012.

Посилання ред.

  • SASL Mechanisms [Механізми SASL]. IANA (англійською) . Архів оригіналу за 30 липня 2012. Процитовано 8 липня 2012.
  • RFC 4422 — Simple Authentication and Security Layer (SASL) — замість RFC 2222
  • RFC 4505 — Anonymous Simple Authentication and Security Layer (SASL) Mechanism — замість RFC 2245
  • RFC 5801 — Using Generic Security Service Application Program Interface (GSS-API) Mechanisms in Simple Authentication and Security Layer (SASL): The GS2 Mechanism Family