É comum empresas utilizarem várias plataformas operacionais para suportar seus sistemas de informação. Esse fato decorre da natural evolução dos sistemas informação que, para atender as crescentes necessidade de negócio ou incorporar novas tecnologias, acabam gerando essa heterogeneidade.

 

Essa heterogeneidade possui um impacto direto sobre a segurança dos sistemas, pois os processos de autenticação2 e autorização3 variam entre as diversas plataformas.

 

Um dos vários desafios contemporâneos dos profissionais de TI é de buscar uma centralização do gerenciamento de identidades e uniformizar os protocolos de autenticação e autorização, promovendo assim o logon único dos agentes1. As motivações para isso são:

 

  • Uma única credencial para autenticação e autorização de usuários do sistema de informação.
  • Simplicidade no monitoramento e auditoria do acesso a dados sensíveis.
  • Conformidade com legislações que visam privacidade e confidencialidade das informações.
  • Uma complexa infra-estrutura para gerenciamento de identidade é difícil de expandir para novos processos de negócio e resulta em custos operacionais elevados.

Antes de descrevermos como integrar a autenticação e autorização entre UNIX/Linux e Windows, vamos apresentar alguns conceitos importantes: 

  • Agente1 é um participante individualmente identificado numa interação. Nos sistemas de informação os agentes mais comuns são: usuário, máquina ou serviço.
  • Autenticação2 é o processo de provar que um agente é realmente a entidade que alega ser. Os mecanismos típicos são:
    • Usuário e senha
    • Dispositivos físicos (Smartcards, Tokens)
    • Biométricos
    • Fator n - combinação de 2 ou mais mecanismos descritos acima
  • Autorização3 é o processo pelo qual se verifica quais as possíveis ações que podem ser realizadas por um agente num determinado contexto.
  • Repositório de Autorização é o componente necessário para armazenar os dados requeridos para autorização de agentes.

As autenticações nativas disponíveis no Windows Server 2000/2003 são:

 

Já o repositório de autorização e as informações de autorização no Windows Server 2000/2003 são:

 

Repositório de autorização: Active Directory, que oferece suporte a protocolo Lightweight Directory Access Protocol v3 e suas APIs, além das APIs ADSI.

 

Informações de autorização:

 

  • Baseados em Security Identifiers (SIDs), que são números grandes (~192 bits) e considerados únicos globalmente.
  • Os SIDs do usuário (ou máquina), dos grupos de segurança ao qual pertence representam os dados necessários para calcular as ações permitidas pelo Security Reference Module (SRM). O SRM está disponível em cada copia do Windows.
  • Os dados de autorização são transmitidos através do Windows Privilege Attribute Certificate (PAC) que são inseridos em tickets Kerberos (TGT) pelo Kerberos Key Distribution Center (KDC). Cada controlador do domínio de serviços de diretórios baseado em Active Directory é um KDC.

A exemplo do que aconteceu com o protocolo de rede TCP/IP, os processos de autenticação e autorização estão convergindo para o uso de protocolos padrões que favorecem uma melhor interoperabilidade entre sistemas.

 

Neste sentido, os protocolos para autenticação e autorização recomendados para integração UNIX/Linux e Windows são respectivamente Kerberos e Lightweight Directory Access Protocol (LDAP).

 

Nota: Embora o LDAP ofereça um processo de autenticação, o mesmo manterá um agente autenticado somente se a conexão ao diretório for mantida. A desvantagem deste modelo em ambientes distribuídos é o fato de que a “prova” de autenticação é a conexão e não um ticket como no caso do Kerberos.

 

Para fornecer o logon único usando o serviço de diretórios Active Directory em ambiente baseados em UNIX/Linux e Windows, recomendamos as seguintes práticas:

 

Interoperabilidade do Kerberos:

 

No Windows -

  1. Crie contas de usuários UNIX/Linux no Active Directory
  2. Crie contas de máquinas UNIX/Linux no Active Directory
  3. Crie arquivo Keytab para máquinas UNIX/Linux

No UNIX/Linux -

  1. Transfira e instale o arquivo keytable nas máquinas UNIX/Linux
  2. Instale componente Kerberos
  3. Configure o arquivo pam.conf
  4. Configure o arquivo krb5.conf

Interoperabilidade do LDAP:

 

No Windows -

  1. Faça a expansão do schema do Active Directory para incroporar as informações de autorização do UNIX/Linux (RFC 2307)
  2. Faça o provimento (UID, GID e etc) de usuários e grupos UNIX/Linux no Active Directory

No UNIX/Linux -

  1. Instale o componente LDAP
  2. Configure um cliente LDAP nas máquinas com UNIX/Linux para conectar-se ao Active Directory
  3. Configure nss_ldap de forma que ele use os atributos apropriados no Active Directory

Neste modelo de integração descrito acima, o resultado obtido é:

 

  • Único repositório (Active Directory) para armazenamento das informações de autorização tanto do Windows como do UNIX/Linux.
  • Gerenciamento centralizado de identidades.
  • Políticas unificadas e rígidas de senhas (ex.: histórico, freqüência, tamanho máximo/mínimo, n° de tentativas e complexidade de senhas).
  • O uso do Kerberos permite uma autenticação mútua (ex.: do usuário e com quem ele está se conectando) aumentando assim a segurança.