Simple Authentication and Security Layer, SASL () — фреймворк для надання послуг автентифікації та безпеки даних в орієнтованих на з'єднання протоколах за допомогою змінних механізмів. SASL надає структурований інтерфейс між протоколами та механізмами, а також протокол для убезпечення вкладеного протоколу в межах прошарку безпеки. Прошарок безпеки даних може забезпечувати цілісність даних, конфіденційність даних, проксі-авторизацію та інші послуги.
Побудова SASL дозволяє: новим протоколам — повторно використовувати механізми, що вже існують, без потреби переробки цих механізмів; протоколам, що вже існують — використовувати нові механізми без переробки протоколів.
Концептуально SASL є фреймворком, що надає абстрактний прошарок між протоколами і механізмами:
Вважається, що інтерфейси, які надаються цим абстрактним прошарком, дозволяють будь-якому протоколу використовувати будь-який механізм. Хоча цей прошарок й приховує деталі протоколів від механізмів і деталі механізмів від протоколів, проте, реалізації протоколів, в основному, знають про деталі використовуваних механізмів. Це пов'язано з тим, що різні механізми вимагають різної вихідної інформації для виконання своїх функцій: одні з них використовують автентифікацію, основану на паролях, інші використовують квитки Kerberos, сертифікати тощо. Також, для потреб авторизації, реалізації на боці сервера мають реалізувати зв'язок між автентифікаційними сутностями, які, в свою чергу, залежать від протоколу застосунку.
Для використання SASL кожен протокол, крім іншого, надає: метод для визначення механізму, який слід застосовувати; метод для обміну специфічними для механізму запитами від сервера і відповідями від клієнта; метод для перевірки результатів перевірки справжності.
Історія В 1997 році Джон Гардинер Майєрс під час роботи в університеті Карнегі-Мелон створив документ RFC 2222, в якому описав специфікації SASL. У 2004 році специфікації RFC 2222 були замінені новими специфікаціями RFC 4422.
Роботи над протоколом SASL відстежуються організацією IETF і, станом на 2010 рік, SASL є запропонованим стандартом.
Механізми SASL Назви механізмів SASL представлені у вигляді рядків символів довжиною від 1 до 20 символів, що містять латинські букви в верхньому регістрі, цифри, дефіси і/або знак підкреслення.
SASL визначає наступні стандартні механізми:
+ Стандартні механізми 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.
GateKeeper (також GateKeeperPassword) — механізм запит-відповідь, розроблений Microsoft для MSN Chat, проте не зареєстрований в IANA.
Див. також Secure Sockets Layer (SSL) Transport Layer Security (TLS)
Примітки
Посилання
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