quarta-feira, 27 de junho de 2012

Protocolos de Autenticação de Redes - LDAP - Kerberos

Sumario

1. Introdução                                                                                       

2. Autenticação de Redes                                                                     

3. LDAP                                                                                               

3.1. Origem                                                                                        

3.2. Mais Sobre                                                                                  

3.3. Definições                                                                                    

3.4. Modelo de Informações                                                              

3.5. Implantação                                                                               

3.6. Modelo de Serviços LDAP                                                         

3.7. Operações Aceitas pelo LDAP                                                   

4. Open LDAP                                                                                     

5. Kerberos                                                                                            

5.1. O que é                                                                                        

5.2. Como Surgiu                                                                              

5.3. Funcionalidade                                                                           

6. Integração                                                                                        

7. Vantagens e Desvantagens                                                              

8. Conclusão                                                                                        

9. Referencias                                                                                       

Introdução

Computadores são maquinas capazes de vários tipos de tratamentos automáticos de informações ou processamento de dados. Alguns de seus mais notáveis exemplos incluem o ábaco, a calculadora, o computador analógico e o computador digital. O computador possui inúmeros atributos, entre eles estão à possibilidade de comunicação entre as maquinas por meio de cabeamento ou sinais remotos, sendo mais conhecido como a rede.

Hoje em dia praticamente todas as empresas possuem uma rede interligando os computadores, por conta da necessidade do uso de aplicações distribuídas, que por sua vez podem vir a utilizar os mesmos dados para realizar suas funções, então é necessária uma forma de organizar seus dados. Pela diversificação de equipamentos de sistemas que compõe uma rede é necessário a implantação de diversos serviços que atendam e facilitam o acesso para os usuários, além de manter a segurança e a estabilidade da rede.  

Nesse trabalho abordaremos o tema, e explicando o uso e a necessidade da autenticação e criptografia nas redes, dando ênfase aos protocolos LDAP e Kerberos, explicando um pouco de sua história, sua funcionalidade, algumas curiosidades sobre os mesmos e suas vantagens e desvantagens.




Autenticação de Redes

A autenticação é importante quando uma corporação oferece acesso em sua rede privada, através de uma rede pública como a Internet a funcionários que estão em trânsito, e que, precisam acessar a rede para atualizar ou consultar informações vitais.

Segundo a ISO (International Standardization Organization - Organização Internacional para Padronização), no contexto da computação, “vulnerabilidade é qualquer fraqueza que pode ser explorada para se violar um sistema ou as informações que nele contém”.

A Segurança de Rede pode ser dividida, em três grandes áreas: a defesa contra catástrofes, a defesa contra falhas previsíveis e a defesa contra atividades não autorizadas.

A necessidade de autenticação de usuários em uma rede de computadores é o principal aspecto para a segurança da informação e está associada à possibilidade de acesso restrito a uma determinada área ou serviço da rede, se caso não for possível identificar uma pessoa que esteja tentando acessar um sistema, nenhum outro modo de segurança fará sentido.

  

LDAP

Origem

 O Protocolo LDAP, é um protocolo leve para acessar serviços de diretórios baseados no padrão X. 500. O protocolo X. 500 é um protocolo pesado, e custoso, pois opera sobre toda a pilha OSI (Open Systems Interface) e demanda de uma grande quantidade de recursos computacionais.  Já o LDAP foi criado para funcionar sobre o TCP/IP e fornece a maioria dos recursos do X. 500, porém de uma forma muito mais rápida.

 Mais sobre

O LDAP é considerado leve, pois não precisa rodar em toda a pilha de sete camadas OSI.  O LDAP é baseado no modelo cliente servidor e conta com requisições assíncronas, ou seja, elas acontecem em background, podendo assim, um cliente efetuar várias requisições em paralelo, desta forma, as respostas não acontecem na mesma ordem que foram efetuadas as requisições. Outro motivo que justifica o ganho (leveza) do LDAP sobre o X. 500 é que ele omite várias operações que são raramente utilizadas.


Definições

Serviço de diretório

Os Diretórios que de forma simples, podemos resumir, como um banco de dados, otimizado para consultas é um repositório de informações sobre objetos. Podemos fazer uma analogia de um diretório com um dicionário, onde as informações são armazenadas para consultas, tendo os verbetes organizados em ordem alfabética. Serviços de diretório e banco de dados como o Microsoft SQL Server compartilham várias características importantes, como uma busca rápida e um esquema que pode ser estendido. A diferença é que um serviço de diretório é tem como foco a consulta, já o MS SQL, se assume que a escrita ocorre com a mesma frequência. Portanto, para os serviços de diretórios, não são essenciais, algumas características, ainda sim, contamos com transações e travas de escritas.

Camada OSI

É um padrão para conectar computadores em rede, sua arquitetura tem um modelo baseado em sete camadas: Camada Física, Camada de Enlace/Ligação de dados, Camada de Rede, Camada de transporte, Camada de Sessão, Camada de Apresentação, Camada de aplicação.


Modelo de informações

 O modelo de informações do LDAP é baseado em entradas, que são uma coleção de atributos contando sempre com um Nome Distinto (Distinguished Name DN) globalmente único. O DN é usado para se referir a uma entrada sem o problema de ambiguidade. Cada entrada sempre tem um tipo, e uma ou mais valores. Os tipos geralmente são textos (strings) mnemônicos, como por exemplo, mail, para e-mail. Já a sintaxe dos valores depende do tipo do atributo, Por exemplo, um atributo mail pode conter o valor “castelanzinho@esamc.edu.br”, já um atributo jpeg Photo poderia conter uma fotografia no formato JPEG (binário). No LDAP as entradas de serviço de diretório são organizadas em uma estrutura de árvore hierárquica. Essa arvore é denominada como DIT (Directory Information Tree).


Implantação

É cada vez mais comum armazenar as informações de rede em um diretório, utilizando de um serviço de diretório LDAP. Isso facilita e padroniza o acesso, contando sempre com segurança e agilidade. Sendo assim, todos os serviços de rede, como autenticação, e-mail, impressão, compartilhamento, entre outros, buscaram as informações neste diretório. Outra vantagem neste modelo é que podemos ter uma rede heterogênea. Como exemplo, podemos montar um servidor Open LDAP como base, integrarmos a máquinas Linux autenticadas com o PAM (Pluggable Authentication Modules), e Windows com o Samba, e toda a comunicação entre os serviços protegidas com TLS.

 Modelos de Serviços LDAP

 O serviço de diretório LDAP é baseado no modelo cliente servidor, Onde um ou mais servidores LDAP contêm os dados, montando assim a árvore de informação do diretório (DIT). O cliente se conecta no servidor LDAP, o mesmo envia a resposta com a informação requisitada, ou aponta para outro servidor LDAP. Os modelos são: Cliente Servidor simples; Cliente Servidor com Referência, Cliente Servidor Com Replicação.


            Operações aceitas pelo LDAP:


  • start_tls - utiliza o protocolo TLS(Transport Layer Security) para garantir uma conexão segura.
  • bind - estabelece a conexão, autentica o cliente e especifica a versão do LDAP.
  • search - realiza uma busca por entradas no diretório.
  • compare - testa se uma entrada possui determinado atributo.
  • add - adiciona uma nova entrada.
  • delete - remove uma entrada.
  • modify - altera uma entrada.
  • modify_DN - renomeia ou move uma entrada.
  • abandon - aborta uma operação, mas não envia resposta.
  • unbind - abandona qualquer operação pendente e fecha a conexão.
  • extended operations - é uma operação genérica que permite criar novas operações. Podemos citar como exemplo Password Modify para alteração de senha e Cancel que funciona de maneira semelhante à Abandon, mas retorna mensagem de erro ou sucesso.


OPEN LDAP

O Open LDAP é um pacote de aplicativos LDAP Open-Source, que disponibiliza todas as ferramentas necessárias para um serviço de diretórios LDAP como (Servidores, clientes, ferramentas de desenvolvimento, etc.), ela esta disponível, para várias plataformas (Linux, Solaris, MacOs) e por ser madura, é uma excelente alternativa a implementações comerciais existentes, como o Microsoft Acitve Directory, Sun Java System Directory Server, etc. O Open LDAP trabalha com threads, para melhor desempenho e com TLS, SSL, SASL para maior segurança.


Kerberos
 O que é?

Trata-se de um protocolo de autenticação de rede utilizado para autenticar cliente servidor de uma rede de uma maneira baseada em chaves mestras e criptografia, com isso elimina senhas trafegando pela rede, e assim obtendo mais segurança em sistemas de informações.

Ele é o principal protocolo de segurança e autenticação do Active Directory, além de ser um protocolo de segurança distribuído, permitindo com que os usuários acessem os recursos em qualquer lugar da rede com apenas um logon.



Como surgiu

Foi criado nos anos 80 em Massachussets no MIT (Massachusetts Institute of Technology), idealizado principalmente por Clifford Neuman e Steve Miller. Foi criado com base no protocolo Needham-Schroeder, desenvolvido durante o projeto Athena, dai vem seu nome baseado no Cérbero (cão mitológico que guardava os portões de Hades), sendo relacionado a sua função com a função no próprio cão.



“Eu não sei o quanto a você, mas não gosto da ideia de associar minha rede aos portões de Hades!”

(Gilson Banin)


Funcionalidade

Trata-se de um sistema de autenticação integrada, sendo necessário informar a senha apenas uma vez, depois disso o Kerberos faz a autenticação e criptografia de forma transparente entre usuários e serviços, pois a permissão do cliente não expira. Tem por definição autenticar os usuários e criptografar as informações, criando uma rede na qual não seja possível clonar ou “furtar” senhas, ou então que uma maquina não conhecida, não possa invadir a rede durante a comunicação. Possui a autenticação mutua que consiste no cliente validar a identidade da identidade de servidor e com isso o servidor validar o cliente, o Kerberos utiliza apenas permissões criptografadas e as senhas não acompanham as permissões, com isso o aumento da segurança.

O Kerberos trabalha através de um ou mais servidores chamados de KDCs (Key Distribuition Centers). Cada KDC possui um banco de dados com os usuários e senhas da rede, pois ele é o responsável por armazenar e autenticar os principals.  Para tornar a rede segura o Kerberos não envia as senhas pela rede, ao invés disso, ele utiliza tickets encriptados para comprovar a identidade dos usúarios.

O ticket é composto por informações que servem para confirmar a identidade de um usuário (podendo ser uma  máquina, ou serviço) , tem como função, identificar os participantes de uma transação, e estabelecer uma chave de sessão de curta duração que será usada pelas partes para estabelecer uma comunicação segura., com isso o tráfego de senhas é dispensado. Um ticket possui o nome do principal solicitante, o nome do principal do serviço solicitado, a partir de quando o ticket é válido e quando ele expira (normalmente entre 8 e 24 horas), uma lista de endereços IP dos quais o ticket pode ser usado, uma chave de sessão encriptada que é usada na comunicação entre o usuário e o serviço. 


Integração

Por que integrar Kerberos e LDAP?

Autenticação e Autorização.

A autenticação é a identificação de algo, como um usuário por exemplo. O termo “autenticar em um sistema”, quer dizer que estamos dizendo a ele, quem somos, passando nossas credenciais, normalmente, usuário e senha.

A autorização por sua vez esta relacionada com as permissões que cada usuário tem, por exemplo, leitura e escrita. Talvez mais importante que sabermos quem é o usuário, e saber o que ele pode ou não fazer.


Vantagens e Desvantagens

Como todos os tipos de transferência de dados, a comunicação pela rede possui alguns  pontos fracos que podem ser usados para obter senhas e dados em geral. Por esse motivo foram criados os protocolos de segurança de redes, para tornar essa comunicação mais segura. Aqui serão apresentadas algumas vantagens e desvantagens dos protocolos LDAP e Kerberos.

Vantagens

·         Maior resolução, brilho e contraste com um preto mais intenso

·         Economia de energia comparado aos monitores de plasma e LCD

·         Telas ultrafinas

·         Ecologicamente corretos (não possuem mercúrio na fabricação nem )

Desvantagens

·         Preço (ainda alto comparado com a LCD convencional)


Conclusão

O protocolo Kerberos é uma ferramenta que se preocupa com a autenticação dos usuários e serviços em rede, porém somente isso às vezes é pouco, pois é sempre importante levarmos em conta a autorização do mesmo, afinal não devemos dar permissão de administradores para todos os usuários, ou mesmo de leitura de arquivos confidenciais a pessoas não autorizadas, neste ponto podemos contar com toda a agilidade e organização de outra ferramenta, que agrega muito valor a este cenário, o LDAP.

Problemas - Apesar do Kerberos e o LDAP adicionarem mais segurança a rede, ela não estará totalmente livres de problemas, pois ainda sim continuamos a mercê de problemas de Hardware e Software. Uma vez que os servidores (Kerberos e LDAP) possam apresentar um mal funcionamento, ou mesmo parar, é extremamente importante que tenhamos redundância tanto do servidor com a base de dados quanto do servidor KDC. Além do Hardware podemos também eleger os problemas de software, uma vez que o servidor esteja em rede ele pode sofrer ataques, portanto um bom Firewall, um sistema operacional bem configurado (com as portas fechadas) é extremamente importante. Outro problema, mas não menos importante, são os usuários, que devem possuir senhas fortes e não informa-las a ninguém.


Referencias

 The Internet Engineering Task Force (IETF)

http://www.ietf.org/rfc/rfc1510.txt

http://www.ietf.org/rfc/rfc4120.txt

Rede USP

http://www.linux.ime.usp.br/~cef/mac499-06/monografias/erich/html/index.html

Viva o Linux – Entendendo o LDAP

http://www.vivaolinux.com.br/artigo/Entendendo-o-LDAP?pagina=1 

Uso do protocolo de autenticação Kerberos em redes Linux

http://www.ginux.ufla.br/node/96

Livraria Microsoft

http://msdn.microsoft.com/pt-br/library/cc280744%28v=sql.105%29.aspx

2 comentários:

Anônimo disse...

Obrigada por compartilhar, seu texto está muito bem escrito e tornou o assunto fácil de ser entendido. Abraços!

Anônimo disse...

Cesar acredito que no artigo a parte de vantagens e desvantagens esta incorreta.

Descubra quanto de Mata Atlântica existe em você!

Contador visitas