Google heeft de broncode van het HIBA-project (Host Identity Based Authorization) gepubliceerd, dat een extra autorisatiemechanisme aanbiedt voor het regelen van de toegang van gebruikers via SSH met betrekking tot hosts (controle of toegang tot een specifieke bron is toegestaan of niet bij authenticatie met openbare sleutels). Integratie met OpenSSH wordt mogelijk gemaakt door de HIBA-handler op te geven in de AuthorizedPrincipalsCommand-directive in /etc/ssh/sshd_config. De code van het project is geschreven in de programmeertaal C en wordt verspreid onder de BSD-licentie.
HIBA maakt gebruik van de standaardmechanismen voor authenticatie op basis van certificaten van OpenSSH voor flexibele en gecentraliseerde gebruikersautorisatie met betrekking tot hosts, maar vereist niet dat de bestanden authorized_keys en authorized_users aan de hostzijde periodiek worden gewijzigd. In plaats van de lijst met toegestane openbare sleutels en toegangsvoorwaarden in de bestanden authorized_(keys|users) op te slaan, integreert HIBA informatie over de binding van gebruikers aan hosts direct in de certificaten zelf. In het bijzonder worden er uitbreidingen voorgesteld voor hosts- en gebruikerscertificaten, waarin de parameters van de hosts en de voorwaarden voor toegang voor gebruikers worden opgeslagen.
De controle aan de hostzijde wordt geĆÆnitieerd via de aanroep van de hiba-chk-handler, die is vastgelegd in de AuthorizedPrincipalsCommand-directive. Deze handler decodeert de geĆÆntegreerde uitbreidingen in de certificaten en neemt op basis daarvan een beslissing over het al dan niet verlenen of blokkeren van toegang. Toegangsregels worden gecentraliseerd bepaald op het niveau van de certificeringsautoriteit (CA) en worden geĆÆntegreerd in de certificaten tijdens hun generatie.
Aan de zijde van de certificeringsautoriteit wordt een algemene lijst van beschikbare bevoegdheden (hosts waartoe verbinding is toegestaan) en een lijst van gebruikers die gebruik mogen maken van deze bevoegdheden bijgehouden. Voor het genereren van gecertificeerde certificaten met geïntegreerde informatie over bevoegdheden is een hulpprogramma hiba-gen voorgesteld, en de functionaliteit die nodig is voor het creëren van een certificeringsautoriteit is ondergebracht in het script iba-ca.sh.
Bij de verbinding van de gebruiker worden de in het certificaat vermelde bevoegdheden bevestigd door de digitale handtekening van de certificeringsinstantie, waardoor alle controles volledig aan de zijde van de doelhost kunnen worden uitgevoerd, zonder dat er externe diensten geraadpleegd hoeven te worden. De lijst met openbare sleutels van de certificeringsinstantie, die SSH-certificaten ondertekent, wordt opgegeven via de TrustedUserCAKeys-directive.
Naast de directe toewijzing van gebruikers aan hosts, stelt HIBA flexibeler toegangsregels vast. Bijvoorbeeld, aan hosts kan informatie zoals locatie en type service worden gekoppeld, en bij het bepalen van de toegangsregels voor gebruikers kan verbinding met alle hosts met een bepaald type service of met hosts in een aangegeven locatie worden toegestaan.


Bron: opennet.ru
