Интерфейс прикладного программирования
Интерфейс прикладных программ служб безопасности Generic Security Service ( GSSAPI , также GSS-API ) — это интерфейс прикладного программирования для программ, обеспечивающих доступ к службам безопасности .
GSSAPI — это стандарт IETF , который решает проблему множества похожих, но несовместимых служб безопасности, используемых с 2005 года [обновлять].
Операция
Сам по себе GSSAPI не обеспечивает никакой безопасности. Вместо этого поставщики услуг безопасности предоставляют реализации GSSAPI — обычно в виде библиотек, устанавливаемых вместе с их программным обеспечением безопасности. Эти библиотеки предоставляют совместимый с GSSAPI интерфейс разработчикам приложений, которые могут написать свое приложение, использующее только независимый от поставщика GSSAPI. Если реализация безопасности когда-либо потребует замены, приложение не нужно будет переписывать.
Определяющей особенностью приложений GSSAPI является обмен непрозрачными сообщениями ( токенами ), которые скрывают детали реализации от приложения более высокого уровня. Клиентская и серверная стороны приложения написаны для передачи токенов, предоставленных им их соответствующими реализациями GSSAPI. Токены GSSAPI обычно могут перемещаться по незащищенной сети, поскольку механизмы обеспечивают внутреннюю безопасность сообщений. После обмена некоторым количеством токенов реализации GSSAPI на обоих концах информируют свое локальное приложение о том, что установлен контекст безопасности .
После установки контекста безопасности конфиденциальные сообщения приложений могут быть упакованы (зашифрованы) GSSAPI для безопасной связи между клиентом и сервером. Типичные гарантии защиты, гарантируемые упаковкой GSSAPI, включают конфиденциальность (секретность) и целостность (подлинность). GSSAPI также может предоставлять локальные гарантии относительно личности удаленного пользователя или удаленного хоста.
GSSAPI описывает около 45 вызовов процедур. Наиболее значимые из них:
- GSS_Acquire_cred
- Получает подтверждение личности пользователя, часто секретный криптографический ключ.
- Имя_импорта_GSS
- Преобразует имя пользователя или имя хоста в форму, идентифицирующую объект безопасности.
- GSS_Init_sec_context
- Генерирует клиентский токен для отправки на сервер, обычно это вызов
- GSS_Accept_sec_context
- Обрабатывает токен из GSS_Init_sec_context и может генерировать ответный токен для возврата
- GSS_Wrap
- Преобразует данные приложения в защищенный токен сообщения (обычно зашифрованный)
- GSS_Unwrap
- Преобразует защищенный токен сообщения обратно в данные приложения.
GSSAPI стандартизирован для языка C (RFC 2744). Java реализует GSSAPI [1]
как JGSS, [2]
Java Generic Security Services Application Program Interface. [3]
Некоторые ограничения GSSAPI:
- стандартизация только аутентификации , а не авторизации ;
- предполагая архитектуру клиент-сервер .
Предвосхищая появление новых механизмов безопасности, GSSAPI включает в себя псевдомеханизм согласования SPNEGO , который может обнаруживать и использовать новые механизмы, отсутствовавшие при создании исходного приложения.
Связь с Kerberos
Доминирующей используемой реализацией механизма GSSAPI является Kerberos . В отличие от GSSAPI, API Kerberos не стандартизирован, и различные существующие реализации используют несовместимые API. GSSAPI позволяет реализациям Kerberos быть совместимыми с API.
Связанные технологии
Ключевые понятия
- Имя
- Двоичная строка, которая маркирует субъект безопасности (т. е. пользователя или программу службы) - см. управление доступом и идентификация . Например, Kerberos использует имена, такие как user@REALM для пользователей и service/hostname@REALM для программ.
- Реквизиты для входа
- Информация, подтверждающая личность; используется субъектом для действия в качестве указанного принципала. Учетные данные обычно включают секретный криптографический ключ.
- Контекст
- Состояние одного конца протокола аутентификации/аутентификации . Может предоставлять услуги защиты сообщений, которые могут использоваться для создания безопасного канала .
- Жетоны
- Непрозрачные сообщения передаются либо как часть протокола начальной аутентификации (токены контекстного уровня), либо как часть защищенной коммуникации (токены для каждого сообщения)
- Механизм
- Базовая реализация GSSAPI, которая предоставляет реальные имена, токены и учетные данные. Известные механизмы включают Kerberos , NTLM , Distributed Computing Environment (DCE), SESAME, SPKM, LIPKEY.
- Инициатор/акцептор
- Пир, который отправляет первый токен, является инициатором; другой — акцептором. Обычно клиентская программа является инициатором, а сервер — акцептором.
История
- Июль 1991 г.: Рабочая группа IETF по общей технологии аутентификации (CAT) встречается в Атланте под руководством Джона Линна.
- Сентябрь 1993 г.: версия 1 GSSAPI (RFC 1508, RFC 1509).
- Май 1995 г.: выпуск Windows NT 3.51, включающей SSPI
- Июнь 1996 г.: Механизм Kerberos для GSSAPI (RFC 1964)
- Январь 1997 г.: GSSAPI версия 2 (RFC 2078).
- Октябрь 1997 г.: опубликован SASL, включающий механизм GSSAPI (RFC 2222)
- Январь 2000 г.: обновление 1 GSSAPI версии 2 (RFC 2743, RFC 2744).
- Август 2004 г.: рабочая группа KITTEN встречается для продолжения деятельности CAT
- Май 2006 г.: стандартизировано использование GSSAPI в Secure Shell (RFC 4462)
Смотрите также
Ссылки
- ^ "JSR-000072 Спецификация API общих служб безопасности 0.1". 2001-06-15 . Получено 2015-10-07 .
- ^ Шенефельд, Марк (2010). Рефакторинг антипаттернов безопасности в распределенных компонентах Java. Schriften aus der Fakultät Wirtschaftsinformatik und Angewandte Informatik der Otto-Friedrich-Universität Bamberg. Том. 5. Университет Бамберга Пресс. п. 179. ИСБН 9783923507689. Получено 2015-10-07 .
JGSS — это реализация GSSAPI на языке JAVA.
- ^ Фишер, Марина; Шарма, Сону; Лай, Рэй; Морони, Лоренс (2006). Взаимодействие Java EE и .NET: стратегии интеграции, шаблоны и передовой опыт. Prentice Hall Professional. ISBN 9780132715706. Получено 2015-10-07 .
API Java Generic Security Services Application Program Interface (JGSS) для единообразного доступа к службам безопасности поверх различных базовых механизмов безопасности, включая Kerberos, которые являются строительными блоками для единого входа и шифрования данных.
Внешние ссылки
- RFC 2743 API универсальной службы безопасности, версия 2, обновление 1
- RFC 2744 API универсальной службы безопасности версии 2: C-привязки
- RFC 1964 Механизм Kerberos 5 GSS-API
- RFC 4121 Механизм Kerberos 5 GSS-API: Версия 2
- RFC 4178 Простой и защищенный механизм согласования GSS-API (SPNEGO)
- RFC 2025 Простой механизм GSS-API с открытым ключом (SPKM)
- RFC 2847 LIPKEY — Механизм открытого ключа с низкой инфраструктурой, использующий SPKM
- «Common Authentication Technology Next Generation (kitten)». Internet Engineering Task Force . Сентябрь 2013 г.
- Sun Microsystems (2002). «Руководство по программированию GSS-API — Sun Solaris 9». Корпорация Oracle .
- Корпорация Oracle (2020). «Написание приложений, использующих GSS-API — Oracle Solaris 11.4, Руководство разработчика по безопасности».