SASL
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 визначає наступні стандартні[1] механізми:
Механізм | Стан | Документ / Автор | Опис |
---|---|---|---|
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 | Простий механізм передачі паролю відкритим текстом Plaintext, замінив собою застарілий механізм 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.
Примітки
- SASL Mechanisms [Механізми SASL]. IANA (англійською).
Посилання
- SASL Mechanisms [Механізми SASL]. IANA (англійською).
- 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