- 1 Discussão
-
nessa wiki
Página principal
AUTENTICAÇÃO
Editar
Introdução
Em todo sistema um dos principais requisitos que se é exigido é a segurança. Um sistema seguro é aquele que permite que as informações possuam integridade, e que os acessos às informações sejam feitos por pessoas autorizadas, permitindo protegê-las contra acessos indesejáveis. Se não for possível identificar uma pessoa que esteja tentando acessar um sistema, um recurso ou uma área da rede, nenhuma outra forma de segurança fará sentido.
Tipos de autenticação
A necessidade de autenticação ou identificação está associada à possibilidade de acesso restrito a um determinado bem ou serviço. A autenticação pode ser realizada de várias formas: por aquilo que se possui , ex: crachá, cartão magnético, por aquilo que se sabe, ex: senha, ou por aquilo que se é, através das características biométricas, tais como: íris, voz, impressão digital e outras. O aumento de serviços em rede, por exemplo, e-mail, ERP, Internet, entre outros e a necessidade de segurança em áreas estratégicas é a motivação para implantar um sistema de autenticação e identificação confiável e pouco intrusivo.
Conceito
Autenticação utiliza o modelo cliente-servidor. Um cliente faz a requisição para o servidor, que verifica se o cliente tem a permissão para acessar o servidor. Este também verifica quais são estas permissões, ou seja, quais as informações que o cliente poderá acessar. Após isso, retorna a requisição para o cliente. Autorização é o meio através do qual se estabelecem a quais informações uma determinada pessoa pode ter acesso. Pode dividir-se em várias ações: ler, escrever (acrescentar), alterar ou executar. Finalmente, a não repudiação consiste na impossibilidade de um indivíduo negar-se a assumir a autoria de alguma atividade. Havendo alto nível de segurança, a autenticação impede contestações posteriores. Neste contexto está incluído o conceito de autenticar. Autenticação é o processo de reconhecimento dos dados que são recebidos, comparando-os com os dados que foram enviados, e verificando se o transmissor que fez a requisição é, na verdade, o transmissor real.
Ferramentas de autenticação
Neste Artigo serão apresentadas ferramentas que implementam a autenticação em sistemas linux: O LDAP (Lightweight Directory Access Protocol), que trabalha com serviço de diretório, O NIS (Network Information Service ou Serviço de Informação de Rede), que trabalha com serviços e compartilhamento de informações de usuários na rede, o Kerberos, que trabalha com a manipulação de senhas para serviços e o PAM (Plugglable Authentication Modules) que é uma biblioteca onde permite autenticar usuários em ambientes como o linux ou unix (Solaris, por exemplo). Ressaltamos que nosso objetivo aqui não é mostrar a instalação e configuração dessas ferramentas e sim como cada uma pode ser usada.
NIS
O NIS (Network Information Service) é um serviço desenvolvido pela SUN com a finalidade de disseminar informações de uma rede. Informações estas como os grupos de usuários, usuários, hosts e etc. O uso do NIS é muito importante em redes com a qual tem se um ambiente com várias máquinas. Isso é importante para assegurar aos usuários acessos a estas maquinas de uma forma uniforme, ou seja, garantir os mesmos níveis de acesso em todas as máquinas.
Existem dois tipos de servidores NIS:
- Servidor master - O servidor master mantém os dados atualizados na rede e repassa aos clientes através de mapeamento slave e requisições dos clientes.
- Servidor slave - O servidor slave mantém uma base de dados transferidos de um servidor master, este serviço é geralmente usado com redes mistas ou segmentado com vários hosts, pois mantém um tráfego menor de rede.
Vantagens e desvantagens
- Fácil compreensão.
- Não provê meios de unir domínios. Cada domínio é administrado separadamente.
- Se um slave estiver down quando um mapa é atualizado, sua cópia ficará desatualizada.
- Não é seguro.
Se a segurança é um importante aspecto no seu ambiente ou se você está conectado a Internet, não deve usar o NIS.
O LDAP
LDAP é um protocolo que define o acesso aos serviços de diretórios, onde define-se diretório como sendo uma estrutura de armazenamento organizada de forma hierárquica, que facilita o armazenamento e busca de informações.
O OpenLDAP é um pacote do LDAP adicionado de recursos e softwares necessários para torná-lo funcional, que oferece um serviço de diretório prático e seguro. Este serviço é usado para armazenar todos os dados da rede,como senhas, IDs de usuários, nomes, endereços, além de outros, centralizando as pesquisas e consultas em si, esta centralização é a chave para abrir um caminho que leva a praticidade na administração de uma rede de qualquer tamanho. Dentre todas as funcionalidades do OpenLDAP, a que consideramos como a de principal destaque é a capacidade de oferecer a autenticação de usuários usando sua base de dados. Com ela pode-se acessar as referências de todas as informações dos usuários da rede em um único lugar permitindo também que todos os protocolos e serviços de diretórios vinculados a ele possam utilizar seus dados para a autenticação de seus clientes, isso gera o que se denomina de centralização, pois a autenticação de todos os serviços de rede se concentrarão em uma única árvore de informações, como consequência facilitando o trabalho do gerente de redes.
Vantagens e Desvantagem
- É um padrão aberto;
- Está otimizado para fazer pesquisas de informação;
- Centraliza toda a informação trazendo assim enormes benefícios, tais como: um único ponto de administração; menos dados duplicados;
- Tem um mecanismo de replicação incluído (slurpd);
- Tem mecanismos de segurança tanto para a autenticação (SASL) como para o troca de dados (SSL/TLS);
- Atualmente várias aplicações tem suporte para LDAP;
- O LDAP em alguns casos não substitui as Bases de Dados Relacionais;
- Raramente são efetuadas atualizações;
- Apenas convêm ser guardados dados estáticos;
- Obviamente não é possível relacionar dois atributos, visto que não se trata de uma Base de Dados Relacional mas sim de uma base de dados estruturada hierarquicamente . Exemplo: Não é possível relacionar o código de uma disciplina com o nome da disciplina;
- Instalação torna-se difícil, pois cada vez tem mais pré-requisitos: OpenSSL, Kerberos, SASL (Cyrus), BerkeleyDB;
Kerberos
Kerberos é o nome de um Protocolo de transporte de rede, que permite comunicações individuais seguras e identificadas, em uma rede insegura. Para isso o Massachusetts Institute of Technology (MIT) disponibiliza um pacote de aplicativos que implementam esse protocolo. O protocolo Kerberos previne Eavesdropping e Replay attack, e ainda garante a integridade dos dados. Seus projetores inicialmente o modelaram na arquitetura cliente-servidor, e é possível a autenticação mutua entre o cliente e o servidor, permitindo assim que ambos se autentiquem. Kerberos utiliza Criptografia simétrica e necessita de um sistema de confiança tripla.
Vantagem e desvantagem
- O Kerberos é bastante adequado para aplicações usuário/servidor e não ponto a ponto.
- Como o cachemento das chaves, ticket e principals são feitos no diretório /tmp, é necessário que as estações de trabalho sejam seguras.
- Apresenta problemas com multi-homed hosts, que utilizam mais de um endereço IP.
- Os relógios devem estar sincronizados (em geral a diferença não pode ultrapassar cinco minutos) devido ao timestamp.
- É vulnerável contra senhas fracas, possibilitando que um invasor intercepte uma mensagem e utilize um ataque dicionário para descobrir a senha do usuário.
- Existe a possibilidade de modificação, por um atacante, das aplicações kerberizadas.
PAM
PAM é a parte principal da autenticação em um sistema Linux. PAM significa Pluggable Authentication Modules ou Módulos de Autenticação Plugáveis/Modulares.
Originalmente a autenticação no Linux era apenas via senhas criptografadas armazenadas em um arquivo local chamado /etc/passwd. Um programa como o login pedia o nome do usuário e a senha, criptografava a senha e comparava o resultado com o armazenado naquele arquivo. Se fossem iguais, garantia o acesso à máquina. Caso contrário, retornava erro de autenticação. Isto até funciona muito bem para o programa login, mas, suponha que agora deseja-se usar isso também para autenticação remota, ou seja, a base de usuários não está mais na mesma máquina, mas sim em alguma outra máquina da rede, o chamado servidor de autenticação. Será preciso mudar o programa login para que ele também suporte esse tipo de autenticação remota.
Suponha também que surgiu um novo algoritmo de criptografia, muito mais avançado, mais rápido, criptografa melhor, etc., sendo que o desejo é usar esse novo algoritmo. Deve-se, então, mudar novamente o programa login para que ele suporte este novo algoritmo também. No Linux, muitos programas utilizam algum tipo de autenticação de usuários. Imagine se todos eles tivessem que ser reescritos cada vez que se mudasse algum dos critérios de autenticação.
Para resolver este tipo de problema, a Sun® criou o PAM há alguns anos e liberou as especificações em forma de RFC. O Linux derivou sua implementação do PAM a partir deste documento. Com PAM, o aplicativo login deste exemplo teria que ser reescrito apenas uma vez, justamente para suportar PAM. A partir de então, o aplicativo delega a responsabilidade da autenticação para o PAM e não se envolve mais com isso.
Na verdade, PAM vai um pouco além da autenticação. Os módulos podem ser divididos em quatro classes:
auth:
É a parte que verifica que o usuário é realmente quem ele diz que é. Pode ser bem simples, pedindo apenas por um nome e uma senha, ou utilizando autenticação biométrica, por exemplo (como uma impressão de voz, uma imagem da retina ou impressão digital).
account:
Esta parte verifica se o usuário em questão está autorizado a utilizar este serviço ao qual ele está se autenticando. Os módulos aqui podem verificar por horário, dia da semana, origem do login, login simultâneo, etc.
passwd:
Este serviço é usado quando se deseja mudar a senha. Por exemplo, aqui podem ser colocados módulos que verificam se a senha é forte ou fraca.
session:
Por fim, a parte session fica encarregada de fazer o que for necessário para criar o ambiente do usuário. Por exemplo, fornecer o acesso a alguns dispositivos locais como o de áudio ou CD-ROM, montar sistemas de arquivos ou simplesmente fazer o registro do evento nos arquivos de log do sistema.
A principal vantagem do PAM, além de centralizador das funções de autenticação do login e senha, é que ele é capaz de selecionar, se configurado para tal, os programas aos quais o usuário que fez o login pode ou não acessar. Desta forma, um usuário que quisesse usufruir de aplicativos de áudio e vídeo, por exemplo, remotamente, poderia ser bloqueado o que não aconteceria caso ele estivesse utilizando estes aplicativos localmente.
Conclusão
Cada administrador tem que ter em mente o nível de segurança que os acessos em sua rede deve ter e qual vai ser o nível de complexibilidade que a autenticação de seus usuários deve ter. Os princípios citados são os mais comuns para aplicações na infra-estrutura de redes de computadores, mas ainda há outros que estão em desenvolvimento ou em fase de pesquisas de viabilidade para uso em aplicações mais complexas do que a simples autenticação e acesso de usuários, resta ao administrador escolher a ferramenta ou as ferramentas que o atenderão nesse cenário.
Este Artigo refere-se ao curso de redes de computadores da Faculdade Evolução disciplina Servidores de redes com sistemas abertos