Google ha pubblicato il codice sorgente del progetto HIBA (Host Identity Based Authorization), che propone l'implementazione di un meccanismo di autorizzazione aggiuntivo per la gestione dell'accesso degli utenti tramite SSH in relazione agli host (controllo se l'accesso a una risorsa specifica è consentito o meno durante l'autenticazione tramite chiavi pubbliche). L'integrazione con OpenSSH è garantita attraverso la specifica di un gestore HIBA nella direttiva AuthorizedPrincipalsCommand in /etc/ssh/sshd_config. Il codice del progetto è scritto in linguaggio C ed è distribuito sotto licenza BSD.
HIBA utilizza i meccanismi di autenticazione standard basati su certificati di OpenSSH per una gestione flessibile e centralizzata dell'autorizzazione degli utenti in relazione agli host, senza richiedere la modifica periodica dei file authorized_keys e authorized_users sui host a cui ci si connette. Invece di memorizzare un elenco di chiavi pubbliche ammissibili e condizioni di accesso nei file authorized_(keys|users), HIBA integra le informazioni riguardanti l'associazione degli utenti agli host direttamente nei certificati stessi. In particolare, sono state suggerite estensioni per i certificati degli host e dei certificati degli utenti, in cui vengono memorizzati i parametri degli host e le condizioni per l'accesso degli utenti.
Il controllo sul lato host è avviato tramite la chiamata al gestore hiba-chk, definito nella direttiva AuthorizedPrincipalsCommand. Questo gestore decodifica le estensioni incorporate nei certificati e, sulla base di esse, prende una decisione relativa al rilascio o al blocco dell'accesso. Le regole di accesso sono definite centralmente a livello dell'autorità di certificazione (CA) e integrate nei certificati durante la loro generazione.
Sul lato dell'autorità di certificazione è mantenuto un elenco comune delle autorizzazioni disponibili (degli host a cui è consentito il collegamento) e un elenco degli utenti ai quali è consentito avvalersi di tali autorizzazioni. Per la generazione di certificati convalidati contenenti informazioni incorporate sulle autorizzazioni è stata proposta l'utility hiba-gen, mentre la funzionalità necessaria per creare un'autorità di certificazione è stata estrapolata in uno script iba-ca.sh.
Durante la connessione dell'utente, i diritti indicati nel certificato vengono confermati dalla firma digitale dell'autorità di certificazione, il che consente di eseguire completamente tutte le verifiche sul lato dell'host di destinazione a cui si sta connettendo, senza dover ricorrere a servizi esterni. L'elenco delle chiavi pubbliche dell'autorità di certificazione che valida i certificati SSH viene specificato tramite la direttiva TrustedUserCAKeys.
Oltre al legame diretto degli utenti con gli host, HIBA consente di definire regole di accesso più flessibili. Ad esempio, è possibile collegare agli host informazioni come la posizione e il tipo di servizio, e nel definire le regole di accesso degli utenti, consentire la connessione a tutti gli host con un determinato tipo di servizio o agli host in una posizione specificata.


Fonte: opennet.ru
