Компания Google опубликовала исходные тексты проекта HIBA (Host Identity Based Authorization), предлагающего реализацию дополнительного механизма авторизации для организации доступа пользователей по SSH в привязке к хостам (проверки, разрешён или нет доступ к конкретному ресурсу при аутентификации по открытым ключам). Интеграция с OpenSSH обеспечивается через указание обработчика HIBA в директиве AuthorizedPrincipalsCommand в /etc/ssh/sshd_config. Код проекта написан на языке Си и распространяется под лицензией BSD.
HIBA использует штатные механизмы аутентификации на основе сертификатов OpenSSH для гибкого и централизованного управления авторизацией пользователей в привязке к хостам, но не требует при этом периодического изменения файлов authorized_keys и authorized_users на стороне хостов, к которым осуществляется подключение. Вместо хранения списка допустимых публичных ключей и условий доступа в файлах authorized_(keys|users), HIBA интегрирует сведения о привязке пользователей к хостам непосредственно в сами сертификаты. В частности, предложены расширения для сертификатов хостов и сертификатов пользователей, в которых хранятся параметры хостов и условия предоставления доступа пользователей.
Проверка на стороне хоста инициируется через вызов обработчика hiba-chk, прописанного в директиве AuthorizedPrincipalsCommand. Данный обработчик декодирует интегрированные в сертификаты расширения и на их основе принимает решение о предоставлении или блокировании доступа. Правила доступа определяются централизованно на уровне удостоверяющего центра (CA) и интегрируются в сертификаты на этапе их генерации.
На стороне удостоверяющего центра ведётся общий список доступных полномочий (хостов к которым разрешено подключение) и список пользователей, которым разрешено воспользоваться данными полномочиями. Для генерации заверенных сертификатов с интегрированной информацией о полномочиях предложена утилита hiba-gen, а функциональность необходимая для создания удостоверяющего центра вынесена в скрипт hiba-ca.sh.
Во время подключения пользователя указанные в сертификате полномочия подтверждаются цифровой подписью удостоверяющего центра, что позволяет выполнить все проверки целиком на стороне целевого хоста, к которому осуществляется подключение, без обращения к внешним службам. Список открытых ключей удостоверяющего центра, заверяющего SSH-сертификаты, указывается через директиву TrustedUserCAKeys.
Помимо прямой привязки пользователей к хостам, HIBA позволяет определить более гибкие правила доступа. Например, к хостам можно привязать такую информацию как местоположение и тип сервиса, а при определении правил доступа пользователей разрешить подключение ко всем хостам с заданным типом сервиса или к хостам в указанном месте.