Společnost Google zveřejnila zdrojové kódy projektu HIBA (Host Identity Based Authorization), který nabízí implementaci dalšího mechanismu autorizace pro řízení přístupu uživatelů přes SSH v závislosti na hostitelích (kontrola, zda je povolen přístup k konkrétnímu zdroji při autentizaci pomocí veřejných klíčů). Integrace s OpenSSH je zajištěna prostřednictvím určení HIBA handleru v direktivě AuthorizedPrincipalsCommand v /etc/ssh/sshd_config. Kód projektu je napsán v jazyce C a je distribuován pod licencí BSD.
HIBA využívá standardní mechanismy autentizace na základě certifikátů OpenSSH pro flexibilní a centralizované řízení autorizace uživatelů ve vazbě na hostitele, ale nevyžaduje pravidelnou změnu souborů authorized_keys a authorized_users na straně hostitelů, ke kterým se připojují. Namísto uchovávání seznamu povolených veřejných klíčů a podmínek přístupu v souborech authorized_(keys|users) integruje HIBA informace o vazbě uživatelů na hostitele přímo do samotných certifikátů. Konkrétně jsou navrženy rozšíření pro certifikáty hostitelů a certifikáty uživatelů, ve kterých jsou uchovávány parametry hostitelů a podmínky pro poskytování přístupu uživatelům.
Kontrola na straně hostitele je iniciována voláním handleru hiba-chk, uvedeného v direktivě AuthorizedPrincipalsCommand. Tento handler dekóduje rozšíření integrována do certifikátů a na jejich základě přijímá rozhodnutí o poskytnutí nebo zablokování přístupu. Pravidla přístupu jsou určena centrálně na úrovni certifikační autority (CA) a integrují se do certifikátů během jejich generování.
Na straně certifikační autority se vede společný seznam dostupných oprávnění (hostitelů, ke kterým je povolen přístup) a seznam uživatelů, kterým je povoleno využívat tato oprávnění. Pro generaci ověřených certifikátů s integrovanými informacemi o oprávněních byla navržena utilita hiba-gen, a funkčnost potřebná k vytvoření certifikační autority byla přesunuta do skriptu iba-ca.sh.
Při připojení uživatele se oprávnění uvedená v certifikátu potvrzují digitálním podpisem certifikační autority, což umožňuje provádět všechny kontroly zcela na straně cílového hostitele, ke kterému se připojujeme, bez nutnosti kontaktovat externí služby. Seznam otevřených klíčů certifikační autority, která podepisuje SSH certifikáty, se uvádí prostřednictvím direktivy TrustedUserCAKeys.
Kromě přímého propojení uživatelů s hostiteli, HIBA umožňuje definovat flexibilnější pravidla přístupu. Například k hostitelům je možné přiřadit informace jako umístění a typ služby, a při definování pravidel přístupu uživatelů povolit připojení ke všem hostitelům se zadaným typem služby nebo k hostitelům na specifikovaném místě.


Zdroj: opennet.ru
