A autenticac¸˜ao ´e o processo de identificac¸˜ao de um principal perante um sistema (Bishop, 2003). Por meio desse processo ´e necess´ario que o usu´ario ou a entidade fornec¸a uma prova de identificac¸˜ao, que pode ser manifestada atrav´es da posse de alguma informac¸˜ao, do co- nhecimento de um segredo ou ainda, de uma caracter´ıstica ´unica (´ıris, impress˜ao digital, etc).
Em sistemas distribu´ıdos, onde podem ocorrer interac¸˜oes entre diversas m´aquinas, um poss´ıvel cen´ario ´e imaginar que um usu´ario U, autenticado na maquina A, deseja ter acesso a uma m´aquina B, ou ainda, que a m´aquina A precisa trocar mensagens com a m´aquina B em nome do usu´ario U. Nesse caso, identifica-se duas situac¸˜oes:
• o usu´ario U se autentica novamente atrav´es da rede no sistema B ou;
• o sistema A envia informac¸˜oes de identificac¸˜ao do usu´ario pela rede ao sistema B.
Segundo (Stallings, 2000), em ambos os casos h´a a necessidade de controles criptogr´afi- cos, como visto na Sec¸˜ao 2.4.1, para proteger a informac¸˜ao em trˆansito na rede. Al´em disso, no primeiro caso, podemos imaginar a dificuldade do usu´ario em ter que se autenticar em diversas m´aquinas, sendo que em cada autenticac¸˜ao ele estaria enviando a sua senha pela rede. O segundo caso ´e mais simples, mas, os sistemas A e B deveriam compartilhar algum tipo de “segredo”.
O caso 2 tamb´em pode ser resolvido com a utilizac¸˜ao de uma terceira entidade (trust third party), ou seja, o servic¸o de autenticac¸˜ao promovendo uma relac¸˜ao de confianc¸a. Partindo deste ponto, o servidor de autenticac¸˜ao ´e o fornecedor de informac¸˜oes necess´arias na auten- ticac¸˜ao de dados sobre o principal como, por exemplo, atrav´es de certificados.
O uso de certificados evita normalmente a necessidade de mecanismos espec´ıficos para proteger informac¸˜oes de autenticac¸˜ao em trˆansito pela rede, porque os mesmo envolvem assinatura digital ou outro mecanismo gerado pelo certificador, garantindo a integridade e a autenticidade do certificado. As mensagens trocadas tamb´em devem ser autenticadas para evitar que mensagens indevidas influenciem no sistema.
A autorizac¸˜ao, ou controle de acesso, ´e um processo que decide se as requisic¸˜oes de acesso a objetos feitos por sujeitos devem ser ou n˜ao permitidas. Ou seja, ´e um processo
onde o objetivo ´e garantir que s´o tenham acesso aos recursos os sujeitos que tenham a legi- timidade de fazˆe-lo. Tal procedimento ´e executado pelo monitor de referˆencia (Figura 2.3) - introduzido por Anderson (Anderson, 1972) - que permite ou nega a tentativa de acesso a um destes objetos. Os monitores de referˆencia atuam em v´arios n´ıveis do sistema. As referˆencias a segmentos de mem´orias s˜ao validadas nas camadas inferiores do sistema, por meio de hardware e do sistema operacional; por sua vez o servic¸o de diret´orio valida os acessos a arquivos.
Figura 2.3: Monitor de Referˆencia
O monitor de referˆencia ´e implementado por mecanismos de controle que podem ser dis- cricion´arios (DAC - Discretionary Access Control), obrigat´orios (MAC - Mandatory Access Control) ou baseados em pap´eis (RBAC - Role-Basead Access Control), que s˜ao baseados nos modelos vistos na Sec¸˜ao 2.3.2.
A implementac¸˜ao dos mecanismos de autenticac¸˜ao e de autorizac¸˜ao em sistemas dis- tribu´ıdos ´e uma tarefa complexa, que envolve v´arios dom´ınios administrativos e tecnolo- gias distintas. Al´em disso, servic¸os como autenticac¸˜ao, autorizac¸˜ao, servic¸os de nomes, comunicac¸˜ao, entre outros, s˜ao totalmente afetados pela escalabilidade.
Segundo (Neuman, 1994) um sistema ´e dito escal´avel se tem a habilidade de tratar a adic¸˜ao de novos usu´arios e recursos sem sofrer uma perda not´avel de desempenho ou um aumento na complexidade de administrac¸˜ao. Na literatura, encontra-se diferentes abordagens para a implementac¸˜ao dos mecanismos de autenticac¸˜ao e autorizac¸˜ao: abordagem centrali- zada, autenticac¸˜ao centralizada e autorizac¸˜ao descentralizada e abordagem descentralizada.
2.5.1 Abordagem Centralizada
Na abordagem centralizada, a autorizac¸˜ao e a autenticac¸˜ao s˜ao implementadas de forma centralizada por uma ´unica m´aquina no sistema distribu´ıdo. Costuma-se dizer que h´a uma
´unica Base Computacional Confi´avel7(TCB - Trusted Computing Base) (Department of De-
fense, 1985), respons´avel pela autenticac¸˜ao e autorizac¸˜ao em todo o sistema.
Embora apresente a vantagem de permitir uma pol´ıtica de autorizac¸˜ao coerente e f´acil de se implantar, tal abordagem traz a desvantagem de acarretar a perda de desempenho,
7O conjunto de mecanismos de seguranc¸a (softwares, hardwares, mecanismos criptogr´aficos, etc, que implementam as
2. Seguranc¸a Computacional 17 haja vista uma ´unica m´aquina ser a respons´avel por autorizar e autenticar todos os pedidos originados no sistema. Al´em disso, a concentrac¸˜ao de func¸˜oes em uma ´unica m´aquina cria um ponto de vulnerabilidade capaz de comprometer toda a seguranc¸a do sistema, tornando essa abordagem pouco atrativa para sistemas distribu´ıdos.
2.5.2 Autenticac¸˜ao Centralizada e Autorizac¸˜ao Descentralizada
Nesta abordagem, largamente utilizada atualmente, a autenticac¸˜ao ´e centralizada, devido a sua ligac¸˜ao com o espac¸o de nomes. J´a a autorizac¸˜ao ´e controlada independentemente por cada s´ıtio, ou dom´ınio administrativo do sistema. No entanto, uma ´unica m´aquina au- tenticando todos os seus membros ainda gera um ponto ´unico de vulnerabilidades. Al´em disso, h´a a necessidade das m´aquinas envolvidas na autorizac¸˜ao confiarem no servidor de autenticac¸˜ao. A pr´opria autorizac¸˜ao descentralizada tamb´em apresenta dificuldades na ma- nutenc¸˜ao da sua coerˆencia, j´a que neste caso a matriz de acesso apresenta-se dividida entre os dom´ınios (de Mello, 2003).
A escalabilidade nesta abordagem ´e conseguida usando o conceito de dom´ınio. O dom´ınio ´e caracterizado por um servidor de autenticac¸˜ao impondo suas pol´ıticas de autenticac¸˜ao e autorizac¸˜ao a seus membros.
O modelo X.509 (Adams and Farrell, 1999) e o projeto Athena desenvolvido no MIT (Neuman and Ts’o, 1994), que faz uso do Kerberos como servic¸o de autenticac¸˜ao, s˜ao basea- dos nesta abordagem.
2.5.3 Abordagem Descentralizada
Nesta abordagem cada m´aquina do dom´ınio ´e respons´avel pela autenticac¸˜ao e autorizac¸˜ao dos principais. A forma mais comum de se implementar esta abordagem ´e atrav´es das redes de confianc¸a. Estas consistem em v´arias entidades confi´aveis distribu´ıdas no sistema, que se encarregam de implementar as pol´ıticas de autorizac¸˜ao e autenticac¸˜ao. Embora essa abor- dagem retire o inconveniente da centralizac¸˜ao de algumas atividades, o problema de gest˜ao descentralizada continua comprometendo a coerˆencia da pol´ıtica de autorizac¸˜ao. O SPKI/- SDSI (Simple Public Key Infrastructure/Simple Distributed Security Infrastructure) (Ellison, 1998) e o TCSEC (Trusted Computer System Evaluation Criteria) (Department of Defense, 1985) s˜ao exemplos desta abordagem.