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


Източник: opennet.ru
