Github

Аутентификация по паролю

Андрей Аксенов

Этот раздел описывает методы аутентификации по паролю. Данные методы используются для проверки пароля пользователя при подключении к базе данных.

Чтобы использовать аутентификацию по паролю, у пользователя должен быть установлен пароль. В противном случае аутентификация по паролю для этого пользователя завершится ошибкой.

Методы аутентификации по паролю

Доступные методы аутентификации по паролю описаны ниже.

password

Метод аутентификации password использует незашифрованный пароль для аутентификации пользователя. Этот метод уязвим для атак с перехватом пароля. Учитывая, что пароль передается в виде обычного текста, рекомендуется использовать клиентские подключения, защищенные SSL-шифрованием.

md5

Метод аутентификации md5 использует MD5 или SCRAM-SHA-256-аутентификацию для проверки пароля пользователя. Этот метод позволяет использовать менее безопасный резервный механизм проверки подлинности "вызов-ответ" для тех пользователей, у которых пароль захеширован с использованием MD5. Резервный механизм также предотвращает перехват пароля, но не обеспечивает защиту в случае хищения хешей паролей с сервера.

Метод аутентификации md5 не поддерживает db_user_namespace.

scram-sha-256

Метод аутентификации scram-sha-256 использует SCRAM-SHA-256-аутентификацию в соответствии с RFC 5802 для проверки пароля пользователя. Аутентификация производится по схеме "вызов-ответ", которая предотвращает перехват паролей при ненадежных соединениях. SCRAM-SHA-256 надежнее чем MD5, но устаревшие клиентские библиотеки могут ее не поддерживать.

Методы аутентификации и хеширование паролей

Доступность различных методов аутентификации по паролю зависит от того, как пользовательский пароль хешируется на сервере. Для этого используется параметр конфигурации сервера password_hash_algorithm.

Эта таблица показывает, как Greengage DB выбирает метод аутентификации в зависимости от используемого алгоритма хеширования паролей.

Метод аутентификации Алгоритмы хеширования паролей

password

Метод аутентификации password может использоваться с любым алгоритмом хеширования, поддерживаемым Greengage DB:

  • sha-256

  • md5

  • scram-sha-256

Во всех случаях пароль передается как обычный текст

md5

Метод аутентификации md5 может использоваться со следующими алгоритмами хеширования:

  • md5 — в этом случае для проверки пароля пользователя используется MD5-аутентификация.

  • scram-sha-256 — в этом случае для проверки пароля пользователя используется SCRAM-SHA-256-аутентификация.

scram-sha-256

Метод аутентификации scram-sha-256 может использоваться только с алгоритмом хеширования scram-sha-256. В данном случае для проверки пароля пользователя используется SCRAM-SHA-256-аутентификация

Пример

Конфигурация ниже, определенная в файле pg_hba.conf, разрешает удаленные подключения для следующих пользователей:

  • Пользователь dba — в зависимости от используемого алгоритма хеширования паролей, для проверки пароля используется MD5 или SCRAM-SHA-256-аутентификация.

  • Пользователи из группы sales_team — для проверки паролей используется SCRAM-SHA-256-аутентификация.

# connection-type  database  user         address          auth-method
host               all       dba          192.168.1.0/24   md5
host               sales     +sales_team  192.168.10.0/24  scram-sha-256