3.3 Abordagens Fim{a{Fim
3.3.4 Seguranca em Invocac~oes Remotas de Procedimentos
Originalmente apresentado por [BN84], o modelo de Invocac~ao Remota de Procedimentos (RPC)36permite a um programa que executa num determinado sistema invocar, de forma relativamente transparente, uma subrotina, cuja execuc~ao podera ocorrer noutro sistema. Ou seja, o mecanismo de RPCs permite a distribuic~ao da execuc~ao de um programa. Adi- cionalmente, facilita a programac~ao de aplicac~oes segundo o paradigma Cliente{Servidor. Actualmente, existem diversas implementac~oes do modelo RPC. A mais divulgada e, provavelmente, a da Sun [Sun88], dado que alguns dos seus servicos de rede mais popu- lares (como e o caso do Network File System (NFS) e do Network Information System (NIS)37), assentam na utilizac~ao do Sun RPC como mecanismo de comunicac~ao. Mais recentemente, a Sun introduziu o Transport Independent RPC (TI{RPC) [Sun91], que, como o nome indica, pretende ser mais versatil em relac~ao a gama de protocolos de Trans- porte que o suporta38. Na pratica, o TI{RPC encontra{se ainda connado ao sistema operativo Solaris, raz~ao pela qual n~ao sera objecto de analise nesta secc~ao. A Open Soft- ware Foundation (OSF) avancou tambem com uma proposta de um mecanismo de RPC no ^ambito do Distributed Computing Environment (DCE) e que passaremos a designar por DCE RPC. Existe ainda uma especicac~ao da ISO [ISO91] para um mecanismo de RPCs, n~ao sendo, porem, segundo [Bar93], conhecidas implementac~oes.
Nesta secc~ao sera feita uma breve analise a seguranca do mecanismo de RPCs original da Sun39 e do DCE RPC.
36Do ingl^esRemote Procedure Call.
37Previamente conhecido porYellow Pages(YP).
38Recorde{se que o Sun RPC original assenta no TCP [Pos80c] ou no UDP [Pos80a]. 39Em concreto, sera analisada uma variante conhecida por \Secure RPC".
Secure RPC
A introduc~ao de seguranca no mecanismo original de RPCs da Sun40foi feita, fundamen- talmente, ao nvel da Autenticac~ao entre clientes e servidores.
Tipo Tecnica de Autenticac~ao Comentarios
AUTHNONE Nenhuma. Acesso anonimo.
AUTHUNIX Cliente apresenta o UID e GIDs Inseguro. Servidor cona de /AUTHSYS de tipo UNIX ao servidor. forma implcita na identidade
do cliente.
AUTHDES Baseada em criptograa publica Seguranca razoavel. e de chave secreta. Propriedade da SUN. AUTHKERB Baseada no Kerberos. Bastante segura. Necessita
de um servico Kerberos. Pouco divulgada. Recente. Tabela 3.4: Tipos de autenticac~ao no mecanismo de RPCs.
As modalidades de Autenticac~ao actualmente previstas pelo mecanismo de RPCs s~ao apresentadas na tabela 3.4, extrada de [GS96]. Dessas modalidades, aAUTH DESe tambem conhecida por Secure RPC. A adopc~ao do Secure RPC, contudo, n~ao tem conhecido o sucesso que se vericou para a especicac~ao RPC inicial, encontrando{se praticamente restrito as plataformas SunOS e Solaris. Segundo [GS96], as raz~oes para tal assentam na necessidade de licenciar o produto directamente com a Sun (uma vez que n~ao foram produzidas vers~oes de domnio publico41) e de utilizar o NIS ou o NIS+ [Ram94] em conjunto com o Secure RPC.
No contexto do Secure RPC, a Autenticac~ao assenta, em primeira inst^ancia, numa Troca de Chaves de Die{Hellman. Cada entidade | seja ela um utilizador ou uma maquina42| tem associado um par de chaves | publica e privada | de Die{Hellman. A chave privada encontra{se cifrada, via DES, com a password do utilizador. O triplo <nome canonico
43, chave publica, chave privada cifrada
> resume a informac~ao relevan- te, no contexto do Secure RPC, para cada utilizador e consta de uma base de dados, distribuda atraves do NIS ou NIS+44.
Resumidamente, o processo de Autenticac~ao contempla as seguintes fases [BCK+94]: 1. login:
i. o utilizador fornece um username e uma password a m de aceder a uma maquina onde o servico Secure RPC e disponibilizado;
40Doravante, nesta secc~ao, o termo RPC sera assumido como uma refer^encia ao mecanismo original de
RPCs da Sun e n~ao ao TI{RPC.
41Em parte devido as restric~oes de exportac~ao de determinados algoritmos criptogracos empregues no
Secure RPC.
42Neste caso, o super{utilizador e a maquina confundem{se. 43Por exemplo,
fred.sun.com, ou seja, o utilizadorfredno domniosun.com.
ii. a password fornecida e usada para decifrar, via DES, a chave privada do triplo <nome canonico, chave publica, chave privada cifrada>, o qual e obtido via NIS com base no nome canonico;
iii. a chave privada e guardada, em memoria, pelo processo keyserv; 2. negociac~ao45 entre o cliente
c e o servidors:
i. com base no acordo de Die{Hellman, o cliente combina a sua chave privada com a chave publica do servidor (obtida via NIS), gerando uma chave de sess~ao comum,SK;
ii. o cliente gera uma chave de conversac~aoCK, aleatoria, e envia{a, cifrada com a chave de sess~ao, ao servidor, numa mensagem de formato fc;fCKg SK ;fwindowg CK ;ft 1 ;window+ 1g CK
g, em que window especica o tempo de vida deCK et
1 e uma marca temporal;
iii. o servidor obtem a chave publica do cliente (via NIS) e gera a chave de sess~ao comum,SK;
iv. o servidor decifra a chave de conversac~ao CK e com ela decifra o resto da mensagem, obtendo window,t
1 e
window+ 1;
v. se o valor (window+ 1) fornecido for efectivamente igual a soma de window com 1, ent~ao a mensagem so podera ter vindo de c;
vi. o servidor guarda < c;CK ;window;t 1
> na entrada ID de uma tabela de credenciais;
vii. o servidor responde ao cliente comfft 1
,1g CK
;IDg; viii. se o cliente conrmar que o valor (t
1
,1) fornecido e efectivamente igual a diferenca de t
1 com 1, ent~ao conclui que ambas as partes est~ao autenticadas, entregando IDe CK ao processokeyserv, para armazenamento;
3. trafego \normal" entre o cliente e o servidor:
i. na direcc~ao cliente!servidor: conjuntamente com a mensagem, o cliente envia (ID;ft
n g
CK). O servidor usa
IDpara aceder a tabela de credenciais e vericar set
n <t
1+
window, em cujo caso a mensagem e aceite;
ii. na direcc~ao servidor ! cliente: conjuntamente com a mensagem, o servidor envia (ft n ,1g CK ;ID). A comparac~ao do valor (t n ,1) recebido com ot nlocal permitira autenticar a origem como sendo o servidor;
4. logout: a informac~ao do cliente no keyserv (triplo < ::: > e pares (ID;CK)) e eliminada.
Pelo exposto, e evidente que o Secure RPC n~ao fornece servicos de Condencialidade nem de Integridade sobre as mensagens trocadas. Essa e, porventura, uma das suas maiores fraquezas. [GS96, BCK+94] chamam ainda a atenc~ao para outras limitac~oes, entre as quais:
as aplicac~oes programadas segundo o modelo RPC necessitam de ser individualmente modicadas a m de indicarem, explicitamente, o tipo de autenticac~ao (ver tabela 3.4) que pretendem;
ao depositar no DES uma parte signicativa da sua seguranca, o Secure RPC tem um tempo de vida provavelmente mais limitado que o previsto inicialmente, uma vez que e previsvel, a medio prazo, a viabilidade de ataques{de{forca{bruta ao DES [Wie93];
um ataque{de{dicionario sobre a password de um utilizador pode ser suciente para recuperar a sua chave privada;
se o acesso a zona de memoria do processo keyserv n~ao for devidamente protegido, as chaves privadas a mantidas cam expostas.
A Sun encontra{se, actualmente, a desenvolver o GSS RPC, o qual representa a inte- grac~ao no mecanismo de RPCs da generalidade de mecanismos de Autenticac~ao possveis de aceder atraves da GSS{API. O GSS RPC e, por assim dizer, o proximo passo na evoluc~ao do Sun RPC, apos a introduc~ao do TI{RPC.
DCE RPC
O Distributed Computing Environment (DCE), da Open Software Foundation (OSF), de- ne uma arquitectura de servicos que suportam o desenvolvimento, utilizac~ao e manutenc~ao de aplicac~oes distribudas. A arquitectura do DCE e independente do sistema operativo e da rede, colocando assim particular ^enfase na interoperabilidade entre tecnologias diferen- tes. A disponibilizac~ao de um conjunto uniforme de servicos, em qualquer parte da rede, devera abilitar as aplicac~oes a usar melhor os recursos da rede.
Os servicos oferecidos pelo DCE dividem{se, fundamentalmente, em Servicos Distri- budos Fundamentais e Servicos de Partilha de Dados [Fou92a]. Dos primeiros, constam servicos como a Invocac~ao Remota de Procedimentos, Servico de Directoria, Servico de Tempo, Servico de Seguranca e Servico de Fios de Execuc~ao46. Na segunda categoria enquadram{se o Sistema de Ficheiros Distribudo e o Suporte na Aus^encia de Disco47.
O Servico de Seguranca do DCE assenta, essencialmente, em tr^es subservicos: Auten- ticac~ao, Autorizac~ao e Controle de Acesso [Loc94].
A Autenticac~ao baseia{se no Kerberos (vers~ao 5) mas existem diferencas determinadas por requisitos proprios do servico de Autorizac~ao. Assim, o Ticket Granting Ticket (TGT) que um cliente recebe do Kerberos48durante o processo de login n~ao e usado directamente para contactar o Ticket Granting Service (TGS) a m de receber dele um ticket de acesso ao servidor pretendido. Em vez disso, o TGT e usado para aceder novamente ao Kerbe- ros, requisitando{lhe um Privilege Service Ticket (PST) de acesso ao Privilege Service49. O Privilege Service devolve, ent~ao, um Privilege{Ticket{Granting Ticket (PTGT). Um PTGT contem um Privilege Attribute Certicate (PAC) que dene a classe do cliente em
46Do ingl^es
Threads. 47Do ingl^es
DisklessSupport.
48Neste contexto, Kerberos refere{se ao servidor que gera TGTs e n~ao ao conjunto dos servicos de
Autenticac~ao designado, genericamente, de Kerberos.
termos de privilegios/autorizac~oes genericos . Finalmente, o cliente apresenta o PTGT ao TGS, pedindo{lhe um ticket de acesso ao servidor pretendido.
O Controle de Acesso baseia{se na utilizac~ao de Listas de Controlo de Acesso (ACLs)51. As ACLs associam recursos a uma entidade ou grupo de entidades, denindo o tipo de operac~oes que essas entidades est~ao autorizadas a realizar sobre esses recursos. O Controle de Acesso e levado a cabo nos servidores pela confrontac~ao dos privilegios contidos nos PACs e das acc~oes pretendidas pelos clientes, com as restric~oes impostas pelas ACLs no acesso aos recursos em causa.
O DCE RPC foi concebido, a partida, para usufruir de um bom nvel de seguranca, fazendo{o de uma forma plenamente integrada com o Servico de Seguranca do DCE [Fou92b]. Ao contrario do Secure RPC da Sun, que contempla apenas a Autenticac~ao mutua entre clientes e servidores, o DCE RPC pode assegurar, em simult^aneo, Auten- ticac~ao, Integridade e Condencialidade. O servico de Autenticac~ao do DCE baseia{se, como seria de esperar, no Kerberos. As chaves{de{sess~ao DES estabelecidas durante o processo de Autenticac~ao podem, se assim se entender, assegurar Condencialidade52. A vericac~ao da Integridade das mensagens baseia{se na utilizac~ao do algoritmo MD5 (rever secc~ao 2.5.1).
A partir da vers~ao 1.1, o DCE forneceu uma implementac~ao da GSS{API. Tal veio n~ao so permitir o acesso aos Servicos de Seguranca do DCE por parte de aplicac~oes que n~ao utilizam o DCE RPC como mecanismo de comunicac~ao nativo, como tambem possibilitou a utilizac~ao directa, pelos programadores, de funcionalidades que antes se limitavam a poder ser invocadas, directamente, pelos DCE RPCs.
Actualmente (vers~ao 1.2) a utilizac~ao do DES para assegurar Condencialidade e a unica opc~ao de criptograa simetrica fornecida de origem com o DCE53. Adicionalmente, a utilizac~ao do DES no DCE esta condicionada ao territorio dos Estados Unidos e do Canada.