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