A empresa Google publicou os textos fonte do projeto HIBA (Host Identity Based Authorization), que propõe a implementação de um mecanismo adicional de autorização para gerenciar o acesso de usuários via SSH vinculado a hosts (verificação se o acesso a um recurso específico é permitido ou não durante a autenticação por chaves públicas). A integração com o OpenSSH é garantida através da especificação do manipulador HIBA na diretiva AuthorizedPrincipalsCommand em /etc/ssh/sshd_config. O código do projeto está escrito em linguagem C e é distribuído sob a licença BSD.
O HIBA utiliza os mecanismos de autenticação baseados em certificados do OpenSSH para gerenciar de forma flexível e centralizada a autorização de usuários vinculados a hosts, mas não requer a alteração periódica dos arquivos authorized_keys e authorized_users nos hosts aos quais se conecta. Em vez de armazenar a lista de chaves públicas permitidas e condições de acesso nos arquivos authorized_(keys|users), o HIBA integra as informações sobre a vinculação de usuários a hosts diretamente nos próprios certificados. Em particular, são propostas extensões para certificados de hosts e de usuários, que armazenam parâmetros dos hosts e condições para a concessão de acesso aos usuários.
A verificação do lado do host é iniciada através da chamada ao manipulador hiba-chk, definido na diretiva AuthorizedPrincipalsCommand. Este manipulador decodifica as extensões integradas nos certificados e, com base nisso, decide sobre a concessão ou bloqueio do acesso. As regras de acesso são definidas de maneira centralizada no nível da autoridade certificadora (CA) e integradas nos certificados durante a sua geração.
No lado da autoridade certificadora, é mantida uma lista comum de poderes disponíveis (hosts aos quais a conexão é permitida) e uma lista de usuários que têm permissão para usar esses poderes. Para a geração de certificados assinados com informações integradas sobre os poderes, foi proposta a ferramenta hiba-gen, e a funcionalidade necessária para criar a autoridade certificadora foi transferida para o script iba-ca.sh.
Durante a conexão do usuário, as credenciais especificadas no certificado são confirmadas pela assinatura digital da autoridade certificadora, permitindo que todas as verificações sejam realizadas inteiramente no lado do host de destino, sem a necessidade de recorrer a serviços externos. A lista de chaves públicas da autoridade certificadora que emite certificados SSH é especificada através da diretiva TrustedUserCAKeys.
Além do vínculo direto de usuários a hosts, o HIBA permite definir regras de acesso mais flexíveis. Por exemplo, informações como localização e tipo de serviço podem ser vinculadas aos hosts, e ao estabelecer regras de acesso dos usuários, é possível permitir a conexão a todos os hosts com um tipo de serviço especificado ou a hosts em um local determinado.


Fonte: opennet.ru
