18.01.2021

Выпуск механизма управления теневыми паролями tcb 1.2

После 10 лет разработки состоялся релиз механизма управления теневыми паролями tcb 1.2, выступающего в роли альтернативы традиционной для Linux схемы /etc/shadow. Из дистрибутивов tcb применяется для хранения базы паролей в Openwall GNU/*/Linux, ALT Linux и Mageia. Код проекта распространяется под лицензией BSD.

Ключевым отличием tcb от /etc/shadow является уход от использования общего файла со всеми хэшами паролей в пользу разнесения хэшей паролей по отдельным каталогам и файлам. При подобной организации хранения операции с паролями можно выполнять без повышения прав, а процесс, осуществляющий обработку учётных данных, ограничен учётной записью отдельного пользователя. Обработчик /etc/shadow всегда получает доступ сразу ко всем хэшам паролей, т.е. уязвимость в утилите passwd позволит изменить любой пароль.

В tcb каждый файл включает только хэш одного пользователя и размещается в каталоге, принадлежащем этому пользователю, что позволяет обойтись без повышения привилегий при запуске утилиты passwd. Для проверки паролей системным процессом доступ предоставляется через помещение процесса в группы «shadow» и «auth», при том, что доступ к иерархии /etc/tcb ограничен только членам группы shadow. Например, параметры сохраняются в файле /etc/tcb/user/shadow, где каталог /etc/tcb принадлежит root:shadow и имеет права «drwx—x—» , а /etc/tcb/user/ и /etc/tcb/user/shadow — user:auth и «-rw-r——«).

Пакет включает в себя PAM-модуль pam_tcb, NSS модуль libnss_tcb и общую для данных модулей библиотеку libtcb. Замены модулей PAM и NSS достаточно для работы со схемой tcb штатных утилит, таких как passwd. Применяемый в tcb механизм хэшировния паролей crypt_blowfish поддерживается в библиотеке libxcrypt, которая поставляется по умолчанию в Fedora Linux вместо libcrypt, что позволяет использовать вместе с tcb штатную системную библиотеку Glibc без применения дополнительных патчей.

Из улучшений в выпуске tcb 1.2 отмечается поддержка libxcrypt и новых версий Glibc, поддержка интернационализации в pam_tcb (i18n) и прекращение поддержки устаревшего механизма NIS/NIS+. Большая часть изменений подготовлена Дмитрием Левиным из команды ALT Linux.

Источник.