12
Kerberos и GSSAPI
Kerberos — протокол аутентификации
надежный обмен ключами и взаимная аутентификация
между клиентом и сервисом
симметричные ключи, доверенная третья сторона
разграничение доступа по областям (realm)
GSSAPI — универсальный интерфейс безопасности
поддерживает разные протоколы, в том числе Kerberos
Kerberos — протокол аутентификации, позволяющий клиентам
и сервисам (в нашем случае PostgreSQL) выполнить взаимную
аутентификацию с помощью доверенной третьей стороны — службы
Kerberos. Kerberos позволяет клиенту и сервису надежно обменяться
ключами для передачи данных по незащищенному каналу связи,
используя криптографию симметричных ключей.
Клиент один раз аутентифицируется службой Kerberos, а затем
получает билеты-разрешения, с которыми обращается к сервисам.
Билет гарантирует клиенту, что он подключится именно к запрошенному
сервису, а сервису — что клиент имеет право на подключение.
Kerberos рассчитан на большое количество пользователей и сервисов,
и не каждому пользователю нужно разрешать подключаться к любому
сервису. Для разграничения доступа существуют области (realm):
пользователь может получать билет для сервиса, только если они
входят в одну область. В нашем примере это область COURSE.LOCAL.
PostgreSQL работает с протоколом Kerberos не напрямую, а через
универсальный прикладной интерфейс GSSAPI (Generic Security
Services API), который, помимо Kerberos, поддерживает NTLM и другие
протоколы.