Sunteți pe pagina 1din 158

Anlise de segurana em aplicaes que utilizam plataformas UNIX e MS-Windows no modelo Cliente/Servidor Joo Carlos Curti Dissertao de Mestrado

Instituto de Computao Universidade Estadual de Campinas

Anlise de segurana em aplicaes que utilizam plataformas UNIX e MS-Windows como Clientes e Servidores

Joo Carlos Curti


agosto de 2004

Banca Examinadora: Prof. Dr. Paulo Lcio de Geus (Orientador) Instituto de Computao, UNICAMP Profa. Dra. Maria de Ftima Ridolfi Pires O. da Silva Coordenadoria Geral de Informtica, UNICAMP Prof. Dr. Ricardo de Oliveira Anido Instituto de Computao, UNICAMP Prof. Dr. Ricardo Dahab (Suplente)
Instituto de Computao, UNICAMP

ii

FICHA CATALOGRFICA ELABORADA PELA BIBLIOTECA DO IMECC DA UNICAMP

Curti, Joo Carlos C94a Anlise de segurana em aplicaes que utilizam plataformas UNIX e MS-Windows como Clientes e Servidores / Joo Carlos Curti -- Campinas, [S.P. :s.n.], 2004. Orientador : Paulo Lcio de Geus Dissertao (mestrado) - Universidade Estadual de Campinas, Instituto de Computao. 1. Redes de computao Medidas de segurana. 2. Cliente/Servidor (Computao). 3. TCP/IP (Protocolo de rede de computao). I. Geus, Paulo Lcio. II. Universidade Estadual de Campinas. Instituto de Computao . III. Ttulo.

iii

Anlise de segurana em aplicaes que utilizam plataformas UNIX e MS-Windows como Clientes e Servidores

Este exemplar corresponde redao final do Trabalho Final devidamente corrigida e defendida por Joo Carlos Curti e aprovada pela Banca Examinadora.

Campinas, 28 de setembro de 2004.

Prof. Dr. Paulo Lcio de Geus Instituto de Computao, UNICAMP (Orientador)

Trabalho

Final

apresentado

no

Instituto

de

Computao, UNICAMP, como requisito parcial para a obteno do ttulo de Mestre em Computao na rea de Redes de Computadores.

iv

Joo Carlos Curti, 2004 Todos os direitos reservados

vi

Agradecimentos
Aos meus pais, primeiramente, por terem me agraciado com o dom da vida, por sua pacincia para transmitir seus ensinamentos, por sua luta diria e constante com extrema dedicao, pilares fundamentais desta conquista. minha namorada Luciana por sua compreenso, pelos dias distantes dedicados a este trabalho e o apoio nos momentos difceis. Ao meu Orientador, prof. Paulo, por sua ateno e aceitar este desafio, tambm por suas horas dedicadas a este trabalho. Aos membros da banca examinadora por terem aceitado prontamente ao convite, pessoas as quais tenho muito respeito e admirao. A todos amigos que auxiliaram direta ou indiretamente para a elaborao deste documento, oferecendo informaes, amizades e experincias enriquecedoras. A Universidade Estadual de Campinas que me acolheu e propiciou o crescimento pessoal de profissional.

vii

Resumo
Nos ltimos anos temos acompanhado e assistido as profundas mudanas na rea de tecnologia, tanto em software quanto em hardware, permitindo que os computadores se popularizassem e que aplicaes pudessem ser criadas para atender a crescente demanda deste novo mercado. Infelizmente a adio dos mecanismos para prover segurana a estas aplicaes no acompanhou o ritmo deste crescimento. Solues foram adotadas para minimizar a exposio dos dados, uma vez que, com a utilizao de computadores em rede, existe a necessidade do trfego de informaes por estes canais novos e de certo modo pouco explorados --- para no dizer pouco conhecidos --- para a maioria dos programadores. Da diversidade de ambientes operacionais, o mercado e o marketing das empresas selecionaram duas plataformas distintas; uma proprietria e fechada, representada basicamente pela Microsoft e outra representada pelas variaes de UNIX, sejam elas de cdigo aberto (FreeBSD, Linux, OpenBSD e outros), ou proprietrias (HP Tru64Unix, SunOs e outros). Sendo assim as informaes tratadas pelas aplicaes esto sujeitas, alm de s suas prprias falhas, tambm s vulnerabilidades do Sistema Operacional onde so desenvolvidas e executadas. Em vista destes fatos, o foco desta dissertao apresentar como possvel a implantao de produtos de software comerciais do tipo ERP1, independentemente da plataforma adotada pela empresa/instituio para execuo de suas aplicaes, provendo segurana nos canais de comunicao. Utiliza-se para isso ferramentas proprietrias ou nativas do prprio Sistema Operacional, bem como buscando de software livre para aplicaes do tipo Cliente/Servidor e WEB.

ERP Enterprise Resource Planning

viii

Abstract

In the last years we have followed and watched deep changes in technology, as much in software as in hardware, allowing for computers to get popular and for applications to be created to serve the growing demand of this new market. Unfortunately the addition of mechanisms to supply security to applications not follow the pace of this growth; solutions were adopted to minimize data exposure, since, with the use of computer networks, there is a need for information flow through these new, somehow unexplored and even unknown channels for the majority of programmers. From the diversity of operating environments, the market and the companies' marketing departments selected two distinct platforms: a proprietary and closed one, represented basically by Microsoft and another, represented by the variations of UNIX, be they of open code nature (FreeBSD, Linux, OpenBSD etc), or of proprietary nature (HP Tru64Unix, SunOS etc). As such, the information dealt with by applications are subject not only to their own vulnerabilities, but also to those of the operating system for which they were developed. In view of these facts, the focus of this dissertation is to show how it is possible, mainly for commercial implementation of ERP software and independently from the platform or operating system used, to supply security to the communication channels by using either free or native proprietary tools of the operating system itself, both to WEB as well as to other client/server applications.

ix

Sumrio
Agradecimentos Resumo Abstract Lista de Figuras Lista de Tabelas vi viii ix xiv xvii

1. Introduo................................................................................................................................1 1.1 Apresentao do problema .........................................................................................3 1.2 Organizao do trabalho.............................................................................................6 2. O modelo Cliente/Servidor .....................................................................................................8 2.1 Elementos do modelo Cliente/Servidor......................................................................8 2.1.1 Cliente.........................................................................................................9 2.1.2 Servidor ....................................................................................................10 2.2 Modelos da arquitetura Cliente/Servidor..................................................................11 2.2.1 Arquitetura C/S em dois nveis.................................................................11 2.2.2 Arquitetura C/S Multinvel.......................................................................13 2.2.3 Arquitetura C/S par-a-par .........................................................................14 2.3 O processo distribudo da arquitetura Cliente/Servidor ...........................................15 2.3.1 Processamento Distribudo ou Concorrente .............................................16 2.4 Camadas da Arquitetura Cliente/Servidor................................................................19 2.5 Sistema de trs camadas para a aplicao ................................................................23 2.5.1 Apresentao distribuda ..........................................................................24 2.5.1.1 Revamping Simples ..................................................................25 2.5.1.2 Revamping Evoludo.................................................................25 2.5.1.3 Revamping Modificado.............................................................25 2.5.2 Apresentao Remota ...............................................................................25 2.5.3 Lgica Distribuda ....................................................................................26 2.5.4 Gerenciamento de dados centralizado ......................................................27

2.5.5 Gerenciamento de dados distribudos.......................................................28 Concluso .......................................................................................................................30 3. O cenrio atual de execuo das aplicaes ........................................................................31 3.1 Caractersticas dos protocolos de comunicao .......................................................32 3.1.1 Aplicativos prontos ou sob medida ..........................................................32 3.1.2 Aplicativos avanados e tendncias .........................................................33 3.1.2.1 Business Intelligence ................................................................34 3.1.2.2 Sistemas de Gesto Empresarial ...............................................34 3.1.2.3 EIS Executive Information System........................................35 3.1.2.4 Softwares integrados de gesto (ERP)......................................36 3.2 O cenrio de comunicao das aplicaes................................................................37 3.2.1 Redes de computadores e protocolos........................................................37 3.2.1.1 O modelo de referncia OSI/ISO..............................................38 3.2.1.2 O protocolo TCP/IP ..................................................................40 3.2.1.3 O protocolo SMB......................................................................41 3.2.1.4 O protocolo NetBIOS e NetBEUI ............................................42 3.2.2 Aspectos de conexo ................................................................................44 3.2.3 Aspectos de sincronismo e passagem de mensagem ................................47 3.2.3.1 Caractersticas da conexo TCP ...............................................48 3.2.3.2 NetBEUI, SPX/IPX e Appletalk...............................................51 3.2.3.3 Sockets ......................................................................................52 3.2.4 Princpios da comunicao .......................................................................57 3.2.4.1 Princpio da Disponibilidade ....................................................57 3.2.4.2 Princpio da Integridade............................................................57 3.2.4.3 Princpio da Confidencialidade.................................................58 3.2.4.4 Princpio da Autenticidade .......................................................58 3.2.4.5 No repdio ..............................................................................59 3.2.4.6 Controle de acesso ....................................................................59 Concluso .......................................................................................................................59

xi

4. Provendo segurana nos protocolos de comunicao ........................................................60 4.1 Protocolos seguros para aplicaes ..........................................................................61 4.1.1 PPP ...........................................................................................................61 4.1.2 PPTP .........................................................................................................62 4.1.2.1 Controle de Conexo PPTP ......................................................63 4.1.2.2 Transmisso de dados no protocolo PPTP................................64 4.1.3 SSL ...........................................................................................................65 4.1.4 TLS ...........................................................................................................69 4.1.5 L2TP .........................................................................................................70 4.1.6 IPSecurity .................................................................................................72 4.1.6.1 Cabealho de Autenticao (AH) .............................................74 4.1.6.2 Cabealho de Encapsulamento de Dados de Segurana (ESP) 74 4.1.6.3 Mecanismos de Gesto de Chaves............................................76 4.2 Protocolos de autenticao .......................................................................................77 4.2.1 Protocolo RADIUS...................................................................................78 4.2.2 Protocolo KERBEROS.............................................................................79 Concluso .......................................................................................................................82 5. Solues de segurana para aplicaes Cliente/Servidor...................................................83 5.1 Um estudo de caso....................................................................................................84 5.1.1 Anlise de problemas encontrados no cenrio..........................................89 5.1.1.1 Vulnerabilidades do cenrio autenticidade do usurio ..........89 5.1.1.2 Vulnerabilidades do cenrio segurana na comunicao cliente/servidor .........................................................................90 5.1.1.3 Vulnerabilidades do cenrio segurana nas estaes de trabalho .....................................................................................91 5.1.2 Anlise da aplicao verso WEB............................................................92 5.2 Tecnologias viveis para soluo do estudo de caso................................................93 5.2.1 VPN (Virtual Private Network) ................................................................94 5.2.1.1 Tipos de VPNs.........................................................................95 5.2.1.2 Componentes de uma VPN baseada em Internet......................97 5.2.2 Relaes de Confiana (Trust Relationship) ............................................98

xii

5.2.3 Certificao de Clientes e Servidores .....................................................101 5.2.3.1 Certificados e Autoridades de Certificao ............................102 Concluso .....................................................................................................................105 6. Propostas de solues para o estudo de caso.....................................................................107 6.1 Anlise das solues viveis ..................................................................................107 6.1.1 Provendo autenticidade na plataforma MS-Windows .............................108 6.1.2 Utilizao de protocolos seguros na plataforma MS-Windows...............110 6.2 Anlise da soluo com a utilizao do servio de VPN Microsoft .......................110 6.3 Anlise da soluo com IPSec nativo da plataforma MS-Windows .......................112 6.4 Anlise da soluo com Certificao Digital .........................................................118 6.5 Proposta de soluo com Proxy Reverso................................................................121 6.6 Comparao entre as solues................................................................................123 6.7 Anlise da soluo adotada para o estudo de caso .................................................125 6.7.1 Fatores para eliminao da proposta de VPN com IPSec nativo............126 6.7.2 Fatores para eliminao da proposta com VPN Microsoft .....................128 6.7.3 Fatores para eliminao da proposta com Certificao Digital ..............129 Concluso .....................................................................................................................130 7. Concluso .............................................................................................................................131 7.1 Trabalhos futuros....................................................................................................133 Glossrio de siglas Referncias 135 138

xiii

Lista de Figuras
Pgina 1.1 1.2 1.3 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 Arquitetura TCP/IP......................................................................................................... 04 Encapsulamento TCP/IP de pacotes do Cliente para um Servidor................................. 05 Integrao de Redes via Internet .................................................................................... 05 Arquitetura C/S simples ................................................................................................. 11 Arquitetura C/S em dois nveis Centrada no Servidor ................................................ 12 Arquitetura C/S em dois nveis Centrada no Cliente................................................... 12 Arquitetura C/S em dois nveis Comunicao Mista................................................... 13 Arquitetura C/S multinvel ............................................................................................. 14 Arquitetura C/S Par a Par ............................................................................................ 15 Sistema Cliente/Servidor ................................................................................................ 16 Modelo de Distribuio de Processos............................................................................. 17 Processamento Distribudo............................................................................................. 17

2.10 Processo de Filtro ........................................................................................................... 18 2.11 Processo Peer-to-Peer..................................................................................................... 18 2.12 Processo Cliente/Servidor .............................................................................................. 19 2.13 Camadas da arquitetura C/S ........................................................................................... 19 2.14 Arquitetura C/S como Servidor de Arquivos ................................................................. 21 2.15 Arquitetura C/S como Servidor de Banco de Dados ...................................................... 22 2.16 Integrao entre os Processos Cliente/Servidor.............................................................. 22 2.17 Apresentao Distribuda ............................................................................................... 24 2.18 Apresentao Remota..................................................................................................... 26 2.19 Lgica Distribuda.......................................................................................................... 27 2.20 Gerenciamento de Dados Centralizado .......................................................................... 28 2.21 Gerenciamento de Dados Distribudos........................................................................... 29 3.1 3.2 3.3 3.4 3.5 Camadas do Modelo de Referncia OSI ........................................................................ 38 Arquitetura de protocolos em camadas .......................................................................... 39 Comparao entre o modelo OSI/ISO e outros protocolos ............................................ 39 Classes do Protocolo TCP/IP.......................................................................................... 40 Conexo por datagramas : sem conexo ........................................................................ 45

xiv

3.6 3.7 3.8 3.9

Comunicao baseada em conexo ................................................................................ 46 Troca de mensagens entre processos origem e destino sem bloqueio ............................ 48 Estabelecimento e encerramento de uma conexo TCP atravs da linha do tempo ....... 49 Protocolo TCP/IP ........................................................................................................... 50

3.10 Protocolos idnticos para que haja a comunicao ........................................................ 51 3.11 Relacionamento da biblioteca sockets em ambiente Windows ....................................... 54 3.12 Conexo Bitstream ......................................................................................................... 55 3.13 Conexo datagrama ........................................................................................................ 56 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5.1 5.2 5.3 5.4 5.5 6.1 6.2 6.3 6.4 6.5 6.6 6.7 Etapas da conexo do protocolo PPP ............................................................................. 62 PPTP Datagrama TCP com mensagens de controle....................................................... 64 PPTP troca de mensagens entre Cliente e Servidor........................................................ 64 Datagrama IP contendo pacote PPP gerado pelo protocolo PPTP ................................. 65 Camadas Implementadas pelos protocolos SSL e TLS .................................................. 67 Encapsulamento de um pacote IP feito pelo L2TP sob a proteo do cabealho ESP do IPSec.......................................................................................................................... 71 Cabealho de autenticao (AH) .................................................................................... 74 Formato do cabealho de encapsulamento de dados de segurana (ESP)...................... 75 Componentes dos pacotes em modo IP original, transporte e tnel em ESP ................. 76 Cenrio mnimo do Produto verso Cliente/Servidor..................................................... 86 Cenrio do Produto verso Cliente/Servidor numa rede Windows................................. 88 Cenrio do Produto verso WEB ................................................................................... 92 Diagrama esquemtico de uma possvel configurao VPN.......................................... 95 Esquema de Relao de Confiana em ambientes Windows e Unix .............................. 100 Interao para autenticao de usurios em domnios Windows .................................... 109 Cenrio da soluo utilizando VPN Microsoft ............................................................... 111 Autenticao do usurio em um domnio local Windows............................................... 113 Relacionamento de confiana para acesso ao diretrio compartilhado por usurio da aplicao .................................................................................................................... 114 Definindo os usurios e permisses de acesso ao diretrio compartilhado.................... 115 Definindo parmetros na BDE para Banco de Dados Oracle9i...................................... 116 Cenrio da soluo com Relacionamento de Confiana e IPSec ................................... 117

4.10 Passos no processo da autenticao do protocolo Kerberos........................................... 80

xv

6.8 6.9

Cenrio da soluo com Certificao Digital ................................................................. 119 Utilizao do algoritmo RSA para assinatura digital ..................................................... 120

6.10 Implementao do Servio de Certificados Digitais na plataforma MS-Windows ......... 121 6.11 Utilizando Proxy Reverso para proteger o servidor WEB interno ................................. 123 6.12 Janela de autenticao do usurio para acesso ao recurso remoto.................................. 126 6.13 Comando no prompt do MS-DOS para mapear um disco remoto.................................. 126

xvi

Lista de Tabelas
Pgina 2.1 3.1 3.2 3.3 4.1 4.2 5.1 5.2 5.3 5.4 6.1 6.2 6.3 Principais Tpicos de uma Arquitetura Cliente/Servidor............................................29 Classes e endereamento em redes TCP/IP.................................................................41 Tipos de Conexo ........................................................................................................46 Exemplos de Protocolos do Windows NT/2000...........................................................51 Mensagens do protocolo PPTP....................................................................................63 Descrio dos algoritmos disponveis utilizados pelo SSL .........................................69 Descrio do Produto utilizado no estudo de caso ......................................................85 Descrio das Etapas do Cenrio de interao do produto..........................................86 Descrio das atribuies do Cliente e do Servidor no produto..................................87 Descrio das atribuies do Cliente e do Servidor no produto para WEB ................93 Distribuio dos 28 bits do SID...................................................................................109 Portas utilizadas na comunicao cliente/servidor do cenrio da figura 6.7 ...............118 Quadro comparativo entre as propostas de soluo.....................................................124

xvii

Captulo 1
Introduo
Quando os primeiros computadores comerciais comearam a surgir, apenas grandes corporaes e algumas instituies governamentais, possuam ambiente e condies tcnicas para a construo de aplicaes, mesmo assim no era uma tarefa fcil, os equipamentos eram bastante limitados quanto ao uso de seus recursos e, as linguagens de programao existentes, permitiam que apenas os profissionais altamente capacitados fossem capazes de operar tais equipamentos. Com o surgimento dos computadores pessoais, no final da dcada de 70, abriu-se uma nova perspectiva. Aplicaes de pequeno porte poderiam ser geradas para executar nestes equipamentos, porm seria ainda necessrio aguardar mais de uma dcada para que estes microcomputadores se tornassem populares, tanto nas empresas quanto em residncias. At ento, no havia preocupaes significativas com relao ao trfego de dados, a maior preocupao estava no armazenamento seguro das informaes, uma vez que, nas poucas instituies dotadas de computadores ligados em rede, os clientes eram terminais conhecidos e a estrutura era montada por empresas que possuam protocolos e ambientes proprietrios. A partir do final da dcada de 80 e incio da dcada de 90 comeam a se formar no mercado condies para o surgimento de novas aplicaes, impulsionadas por trs fatores principais:

Captulo 1 - Introduo

1) A popularizao dos microcomputadores nas empresas, no primeiro instante e posteriormente nas residncias, atravs da reduo dos custos de fabricao dos computadores e a adio de Sistemas Operacionais mais amigveis. Fruto principalmente da parceria realizada entre a Microsoft, que fornecia o MS-DOS e posteriormente as verses do Windows e a Intel, que desenvolveu novas tecnologias de construo de chips e processadores, dando origem a famlia i386. 2) O surgimento de linguagens de programao mais amigveis e voltadas para esta plataforma, facilitando o desenvolvimento de aplicaes e permitindo que profissionais de informtica, mesmo sem o conhecimento do conjunto de instrues, pudessem utilizar uma linguagem de alto nvel. 3) O desenvolvimento das tecnologias de perifricos, armazenamento e rede que possibilitaram o surgimento de novas empresas para fornecimento de hardware para esta plataforma, sem a necessidade de tecnologia proprietria. No item de redes de computadores pode-se destacar a consolidao do protocolo TCP/IP como padro de facto para construo de aplicaes do tipo Cliente/Servidor e WEB. Uma das conseqncias foi a enorme expanso da Internet, que permitiu que computadores pudessem trocar dados utilizando qualquer tecnologia atravs de redes geograficamente distantes e heterogneas. Hoje temos um cenrio diferente para o desenvolvimento e execuo de aplicaes. A segurana das informaes que trafegam e ficam armazenadas nestes equipamentos fator decisivo. Se por um lado no temos mais como deixar os computadores fora de uma rede, por outro deve-se possuir mecanismos que minimizem a exposio de informaes, sigilosas ou mesmo valiosas, num ambiente vulnervel. At recentemente, a segurana era vista como mais uma das fases finais de elaborao de um produto de software, no entanto, os custos associados a falta de segurana so muito grandes: manutenes complexas e custosas, falhas de produtividade, fugas de informao, perda de contratos e gasto imprevisto de recursos de comunicao, entre outros. Alm disso, podemos mencionar outros fatores que agravam a situao como: Complexidade e integrao de programas as aplicaes no executam de forma solitria: agora fazem parte de um ambiente complexo com inmeras interaes entre aplicaes. Hoje o cdigo necessrio para produzir uma aplicao sofisticada e multifuncional gigantesco. Necessidade de produzir software rapidamente A necessidade de lanar novas verses de software, ditada por razes de marketing e financeiras, contribui tambm significativamente para este problema. Por essa razo, muitos produtos disponveis atualmente esto repletos de cdigos que apenas cumprem parcialmente a sua funo, mas no so solues conceitualmente elegantes, a prioridade

Captulo 1 Introduo

reside em colocar para funcionar rapidamente, no importando muito os meios usados. Alm disto, os prazos curtos no condizem com fases de teste e reviso do produto. Correes de cdigo de fonte fechada O cliente final de uma aplicao de cdigo de fonte fechada obrigado a aceitar as correes produzidas pelo fabricante e no dispe de alternativas. O cliente, em geral, no possui condies para confirmar se as correes divulgadas realmente resolvem o problema ou se geram novos problemas. Preparao inadequada dos programadores Muitos fabricantes no compreendem os riscos a que expem os seus clientes quando desenvolvem produtos deficientes. Na raiz deste subproblema parecem estar a preparao inadequada dos programadores, em parte devido ao uso excessivo de ciclos produo depurao reviso na codificao de software em contra partida a prticas orientadas ao design, estilo de programao, auditorias de cdigo entre outros. De fato, houve uma grande evoluo com a criao de mecanismos de modo a prover ao protocolo TCP/IP meios para adicionar segurana no canal por onde os dados trafegam, tambm observa-se o esforo das organizaes de software livre em oferecer alternativas viveis para suprir as deficincias ainda existentes para execuo segura de aplicaes em plataformas proprietrias. No decorrer deste trabalho sero apresentadas, atravs da anlise de segurana, quais so os problemas encontrados pelas aplicaes para se comunicar com segurana em uma rede de computadores, composta por elementos mantidos por solues proprietrias e de software livre.

1.1 Apresentao do problema


Para entender como as aplicaes so construdas e como trafegam os dados numa rede do tipo TCP/IP protocolo principal utilizado nas redes atuais, necessrio conhecer a sua estrutura, compreender como estas informaes chegam a camada de aplicao e so tratadas. Pode-se iniciar a exposio deste assunto utilizando como exemplo uma aplicao simples, que no requer nenhuma outra implementao adicional apenas para ilustrar o processo, em contraste com aplicaes mais complexas, que necessitam de pesquisas e conhecimentos mais amplos, no somente nesta arquitetura, mas tambm em tecnologias e protocolos proprietrias de redes. Na Figura 1.1 conforme [40] h um exemplo da estrutura em camadas da arquitetura TCP/IP e tambm das interfaces entre estas camadas. Utiliza-se neste exemplo como meio fsico a tecnologia

Captulo 1 - Introduo

Ethernet, principal tecnologia de rede local utilizada nas empresas/instituies, bastante conhecida e instalada e a aplicao FTP1, que funciona de modo Cliente/Servidor.
Camadas do Protocolo TCP/IP
Aplicao Cliente FTP

Protocolo FTP

Servidor FTP

Processos de usurio Processos de kernel

Transporte

TCP

Protocolo TCP

TCP

Rede

IP

Protocolo IP

IP

Enlace

Ethernet Driver

Protocolo Ethernet

Ethernet Driver

Fsica

Ethernet

Figura 1.1 Arquitetura TCP/IP

Basicamente, para se ter uma troca de informaes em rede necessrio no mnimo uma estrutura como a apresentada, ou seja, duas mquinas ligadas por uma tecnologia que utilizam o mesmo protocolo de comunicao. Em muitos casos, a Internet o meio utilizado para interligar os computadores de redes locais geograficamente distantes. A pilha de protocolos Internet constituda por camadas lgicas nas quais se definem protocolos de comunicao. A maneira utilizada para fazer chegar a informao entre a aplicao de origem atravs da rede at a aplicao destino, baseia-se no encapsulamento sucessivo dos dados em pacotes de informao, em funo dos protocolos utilizados na origem. Para tal, constri-se um novo pacote adicionando um cabealho adequado ao pacote do protocolo anterior. No destino, executa-se um processo inverso de desencapsulamento dos pacotes de informao (remoo de cabealhos) at se restituir aos dados a sua forma original, a qual ser tratada pela aplicao receptora. A Figura 1.2 [40] apresenta este processo numa rede baseada em tecnologia Ethernet. Durante a travessia na rede, os dados circulam em pacotes cujo formato depende dos meios fsicos usados, mas contm todo o encapsulamento executado na origem, os dispositivos de interligao de redes podem
1

FTP: File Transfer Protocol, RFC n 959

Captulo 1 Introduo

assim observar os pacotes em trnsito e tomar decises de encaminhamento baseando-se nos cabealhos desses pacotes.

Cliente
Dados da aplicao
Dados da aplicao

Servidor

Aplicao
Cab. aplicao
Dados da aplicao
Dados da aplicao

Cab. aplicao

Transporte
Cab. TCP

Dados da Aplicao

Dados da Aplicao

Cab. TCP

Rede
Cab. IP

Cab. TCP

Dados da Aplicao

Dados da Aplicao

Cab. TCP

Cab. IP

Enlace
Cab. Ethernet

Cab. IP

Cab. TCP

Dados da Aplicao

Ethernet trailer

Fsica

Ethernet trailer

Dados da Aplicao

Cab. TCP

Cab. IP

Cab. Ethernet

Figura 1.2 Encapsulamento TCP/IP de pacotes do Cliente para um Servidor

O processo para comunicao pode ser simples, uma mquina A abrindo uma conexo com uma mquina B, utilizando uma tecnologia para redes locais, porm na realidade existe uma
infinidade de tecnologias de redes e protocolos de comunicao. Deste modo necessrio ampliar esta estrutura de forma a expor a complexidade encontrada fora

dos domnios de uma rede local, onde existem outras redes, conhecidas e desconhecidas, com filtros
(firewalls), roteadores e outros elementos que estaro no caminho entre as mquinas A e B.

Rede A

Internet
Roteador Roteador

Rede C

Rede B

Rede D

Figura 1.3 Integrao de redes via Internet

Captulo 1 - Introduo

Internamente numa rede local, existem meios para se mensurar os riscos de exposio dos dados, pelo fato de termos o acesso ao controle e a administrao dos elementos que podem ser considerados como pontos vulnerveis. Mas quando estas informaes precisam sair deste domnio controlado e trafegar por redes desconhecidas, no h como garantir a confiabilidade no caminho que os dados percorrem da origem ao seu destino. A proposta desta dissertao mostrar que aplicaes cliente/servidor desenvolvidas, principalmente com finalidades comerciais, necessitam de cuidados especiais na rea de segurana. Alm disso, deve-se considerar que aplicaes complexas requerem, na maioria dos casos, solues complexas, obtidas atravs de um estudo amplo das opes de solues disponveis na plataforma desejada a fim de alcanar os melhores resultados. Sendo assim, este trabalho pretende apresentar um estudo considerando o ambiente de execuo das aplicaes e as vulnerabilidades as quais esto expostas, destacadas no Captulo 5. O foco principal est na exposio das solues viveis para implementao de uma aplicao no modelo cliente/servidor, com caractersticas semelhantes as encontradas em nosso estudo, de forma segura atravs da rede de computadores, fazendo-se cumprir tambm os princpios que regem a comunicao entre computadores, alm de possuir mecanismos que possibilitem que os elementos envolvidos na comunicao possam ser identificados atravs de uma autenticao segura e irrevogvel e, integrado por um sistema que se utiliza de mtodos criptogrficos para garantir a segurana durante a troca de informaes atravs da rede.

1.2 Organizao do trabalho


Durante a elaborao deste trabalho diversos aspectos da arquitetura cliente/servidor foram estudados e pesquisados. Por se tratar de um assunto abrangente iniciou-se j no Captulo 1 com a apresentao do problema da comunicao entre aplicaes que utilizam a arquitetura cliente/servidor no cenrio mais comum encontrado atualmente, a rede TCP/IP. No Captulo 2 ser abordado o modelo Cliente/Servidor, seus conceitos, arquiteturas, elementos e processos que descrevem esta tecnologia. No Captulo 3 apresentado o cenrio utilizado para comunicao entre as partes Cliente e Servidor das aplicaes, com uma anlise e descrio dos protocolos utilizados nas redes, aspectos envolvidos na conexo entre o cliente e o servidor, princpios que regem a comunicao. A questo da

Captulo 1 Introduo

implementao de segurana na comunicao analisada e tratada no Captulo 4. Neste Captulo sero apresentados os protocolos seguros existentes e tambm protocolos de autenticao. No Captulo 5 faz-se a apresentao de um estudo de caso de uma aplicao comercial desenvolvida com ferramentas e linguagem para plataforma MS-Windows. Neste Captulo so apresentadas tambm as tecnologias e solues disponveis de segurana para a arquitetura Cliente/Servidor, destacando-se as tcnicas para criao de VPN1s, Relacionamento de Confiana entre hosts ou domnios em redes com tecnologia MS-Windows e Certificao Digital, visando a soluo do problema citado em nosso estudo de caso. No Captulo 6 apresentada a anlise da implementao de cada tecnologia, utilizando os conceitos vistos nos Captulos 3, 4 e 5. O objetivo deste Captulo apresentar alternativas para solucionar os problemas relativos a segurana da informao, vulnerabilidade nos participantes da comunicao e autenticidade na aplicao Cliente/Servidor mostrada no estudo de caso, uma vez que a aplicao em estudo nativamente no possui mecanismos para prover segurana para execuo em um cenrio complexo, inclusive para a verso para a WEB desta mesma aplicao. Por fim, no Captulo 7 so apresentadas algumas consideraes e concluses gerais obtidas ao longo de todas as etapas abordadas em cada Captulo e tambm abre-se um novo cenrio para pesquisa utilizando a tecnologia de VPN para soluo do estudo de caso.

VPN : Virtual Private Network

Captulo 2
O Modelo Cliente/Servidor
Neste captulo sero expostos os conceitos e elementos de um modelo Cliente/Servidor, suas principais caractersticas e as arquiteturas de interao entre os participantes da comunicao. A escolha do modelo e o modo como so realizados os processamentos, influenciam diretamente no desempenho das aplicaes. Atualmente existe uma grande flexibilidade e diversidade destes modelos e muitos so utilizados nas aplicaes que executamos diariamente. A exposio destes modelos e arquiteturas nos faz compreender melhor o papel desempenhado em cada uma das extremidades da comunicao entre computadores.

2.1 Elementos do modelo Cliente/Servidor


A maior parte das aplicaes de rede desenvolvida assumindo-se que um dos agentes comunicantes o cliente e o outro o servidor, sendo o objetivo da aplicao fornecer um servio prdefinido atravs do servidor. Neste sentido a arquitetura Cliente/Servidor vem sendo desenvolvida h vrios anos, porm em pequenos passos.

Captulo 2 O modelo Cliente/Servidor

Primeiro, a realocao de aplicaes em Mainframe para as chamadas plataformas abertas rodando Sistema Operacional UNIX. Posteriormente, com relao a abordagem dos dados, saindo de Sistemas de Arquivos ou Banco de Dados Hierrquicos locados em Mainframes para Sistemas de Banco de Dados Relacional e posteriormente, a importncia da capacidade grfica dos pacotes de front-end existentes, facilitando a interao com o usurio [20]. Atravs dos estudos realizados do modelo Cliente/Servidor, pode-se destacar como mais comuns as seguintes definies: O termo Cliente/Servidor refere-se ao mtodo de distribuio de aplicaes computacionais atravs de muitas plataformas., tipicamente essas aplicaes esto divididas entre um provedor de acesso, uma central de dados e numerosos clientes contendo uma interface grfica para usurios para acessar e manipular dados. Cliente/Servidor geralmente refere-se a um modelo onde dois ou mais computadores interagem de modo que um oferece servios aos outros. Este modelo permite aos usurios acessarem informaes e servios de qualquer lugar. Cliente/Servidor uma arquitetura computacional que envolve requisies de servios de clientes para servidores. Uma rede Cliente/Servidor uma extenso lgica da programao modular. Uma definio para a arquitetura Cliente/Servidor seria a existncia de uma plataforma base para que as aplicaes, onde um ou mais Clientes e um ou mais Servidores, juntamente com o Sistema Operacional e o Sistema Operacional de Rede, executem um processamento distribudo. Em suma, um sistema Cliente/Servidor poderia ser, ento, entendido como a interao entre Software e Hardware em diferentes nveis, implicando na composio de diferentes computadores e aplicaes de forma distribuda. Para melhor se entender o paradigma Cliente/Servidor necessrio observar que o conceito chave est na ligao lgica e no fsica. O Cliente e o Servidor podem coexistir ou no na mesma mquina [28]. Um ponto importante para uma real abordagem Cliente/Servidor a necessidade de que a arquitetura definida represente uma computao distribuda [20]. Algumas das caractersticas do Cliente e do Servidor so descritas a seguir baseados em [31] e [12].

2.1.1 Cliente
Cliente, tambm denominado de front-end e Workstation, um processo que interage com o usurio atravs de uma interface grfica ou no, permitindo consultas ou comandos para recuperao de

10

Captulo 2 O modelo Cliente/Servidor

dados e anlise e representando o meio pela qual os resultados so apresentados. Alm disso, apresenta algumas caractersticas distintas: o processo ativo na relao Cliente/Servidor. Inicia e termina as conversaes com os Servidores, solicitando servios distribudos. No se comunica com outros Clientes. Torna a rede transparente ao usurio.

2.1.2 Servidor
Servidor, tambm denominado back-end, fornece um determinado servio que fica disponvel para todo Cliente que o necessita. A natureza e escopo do servio so definidos pelo objetivo da aplicao Cliente/Servidor. Alm disso, ele apresenta ainda algumas propriedades distintas: o processo reativo na relao Cliente/Servidor. Possui execuo contnua. Recebe e responde s solicitaes dos Clientes. No se comunica com outros Servidores enquanto estiver fazendo o papel de Servidor. Presta servios distribudos. Atende a diversos Clientes simultaneamente. Alguns tipos de servios que um Servidor pode proporcionar so: Servidor de Arquivos Servidor de Impresso Servidor de Banco de Dados Servidor de Redes Servidor de Fax Servidor X-Windows Servidor de Processamento e Imagens Servidor de Comunicao e outros. O estilo de interao entre o usurio e o Cliente no precisa, necessariamente, ser feita por poderosas interfaces grficas. Porm, j que o poder de processamento local do Cliente est disponvel,

Captulo 2 O modelo Cliente/Servidor

11

pode-se retirar todo seu proveito, atravs de interfaces grficas GUI (Graphical User Interface), para melhor rendimento do usurio no seu trabalho.

2.2 Modelos da arquitetura Cliente/Servidor


Existem cinco tipos de modelos para a implantao da arquitetura Cliente/Servidor em processamentos distribudos conforme [31]: A primeira abordagem para um sistema distribudo a arquitetura Cliente/Servidor Simples. Nesta arquitetura, o Servidor no pode iniciar nada, este somente executa as requisies do Cliente. Existe uma clara funo de diferenciao, pode-se estabelecer que o Cliente o mestre e o Servidor o escravo, como mostra a Figura 2.1.
Arquitetura Cliente/Servidor
Solicitao

Servidor

Resposta

Cliente

Figura 2.1 Arquitetura C/S simples

2.2.1 Arquitetura C/S em Dois Nveis


A configurao usual Cliente/Servidor encontrada na maioria das empresas. aquela em que existem vrios Clientes requisitando servios a um nico Servidor. Esta arquitetura se caracteriza como sendo centrada no Servidor (Figura 2.2), porm na viso do usurio, ele imagina que existem vrios servidores conectados a somente um cliente, ou seja, centrado no Cliente (Figura 2.3). Entretanto, com as vrias ligaes de comunicao possveis, existe na realidade uma mistura de Clientes e Servidores (Figura 2.4).

12

Captulo 2 O modelo Cliente/Servidor

Arquitetura Cliente/Servidor Centrada no Servidor

Servidor

Cliente 1

Cliente 2

Cliente N

Figura 2.2 Arquitetura C/S em dois nveis Centrada no Servidor

Arquitetura Cliente/Servidor Centrada no Cliente


Servidor 1 Servidor 2 Servidor N

Cliente

Figura 2.3 Arquitetura C/S em dois nveis Centrada no Cliente

Captulo 2 O modelo Cliente/Servidor

13

Arquitetura Cliente/Servidor Comunicao Mista


Servidor 1 Servidor 2 Servidor N

Cliente 1

Cliente 2

Cliente N

Figura 2.4 Arquitetura C/S em dois nveis Comunicao Mista

2.2.2 Arquitetura C/S Multinvel


Nesta arquitetura, ilustrada na Figura 2.5, permite-se que uma aplicao possa assumir tanto o perfil do Cliente como o do Servidor, em vrios graus, em outras palavras, uma aplicao em alguma plataforma ser um Servidor para alguns Clientes e, concorrentemente, um Cliente para alguns Servidores.

14

Captulo 2 O modelo Cliente/Servidor

Arquitetura Cliente/Servidor Multinvel


Servidor 1 Servidor 2 Servidor N

Estado Cliente

Estado Servidor

Cliente 1

Cliente 2

Cliente N

Figura 2.5 Arquitetura C/S multinvel

2.2.3 Arquitetura C/S Par a Par


Esta arquitetura pode ser vista como o caso mais geral da arquitetura Cliente/Servidor, ilustrado na Figura 2.6, cada um dos nodos desta arquitetura assume tanto o papel de Cliente quanto de Servidor. o caso onde o processo interage com outros processos em uma base pareada, no existindo nenhum Mestre ou Escravo, qualquer estao de trabalho pode iniciar um processamento, caso possua uma interface de comunicao entre o usurio e o processo Cliente.

Captulo 2 O modelo Cliente/Servidor

15

Arquitetura Cliente/Servidor par-a-par

Servidor 1

Cliente 1

Servidor 2

Cliente 2

Servidor N

Cliente N

Figura 2.6 Arquitetura C/S Par a Par

2.3 O Processo distribudo da Arquitetura Cliente / Servidor


A arquitetura Cliente/Servidor divide uma aplicao em processos que so executados em diferentes mquinas conectadas a uma Rede de Computadores, formando um nico sistema. O paradigma da tecnologia Cliente/Servidor serve como um modelo, entre outros, para interao entre processos de software em execuo concorrente [02]. Os processos ou tarefas, a serem executadas so divididos entre o Servidor e o Cliente, dependendo da aplicao envolvida e das restries impostas pelo Sistema Operacional de Rede (SOR), quanto mais avanado for o Sistema Operacional de Rede, menor ser a aplicao em si, uma vez que a implementao do cdigo para acessar a rede j se encontra definido no SOR. No contexto do presente trabalho pretende-se utilizar as caractersticas do processamento distribudo. Este tipo de processamento apresenta duas configuraes para uma arquitetura Cliente/Servidor. A primeira, que representada por trs camadas, responsvel pela visualizao da interao entre os aplicativos e o hardware, como pode ser visto na Figura 2.7, j a segunda

16

Captulo 2 O modelo Cliente/Servidor

representao, tambm fornecida em trs camadas, mostra como tratada a diviso da funcionalidade de uma aplicao, segundo as configuraes do Gartner Group1, como pode ser visto na Figura 2.8.

Camadas do Sistema Cliente/Servidor

Aplicao Servios do Sistema Hardware

Aplicao Servios do Sistema Hardware Servidor

Cliente

Figura 2.7 Sistema Cliente/Servidor

2.3.1 Processamento Distribudo ou Concorrente


A distribuio de aplicaes e tarefas se faz atravs de mltiplas plataformas de processamento. O processamento distribudo implica que essas aplicaes/tarefas iro ocorrer em mais de um processo, na ordem de uma transao a ser concluda, em outras palavras, o processamento distribudo atravs de duas ou mais mquinas e os processos, na maioria, no rodam ao mesmo tempo, por exemplo, cada processador realiza parte de uma aplicao em uma seqncia. Geralmente, o dado usado em um ambiente de processamento distribudo tambm distribudo atravs de plataformas. O processamento distribudo, tambm denominado de processamento concorrente utiliza-se do mecanismo de passagem de mensagens para a comunicao entre processos, que podem ser de trs tipos bsicos; Filtro, Peer (no hierrquico) e Cliente e Servidor [28], como mostrado na Figura 2.9.

Gartner Group: www.gartnergroup.com

Captulo 2 O modelo Cliente/Servidor


Modelos da Arquitetura Cliente/Servidor

17

Modelo

Parte Lgica

Apresentao

Apresentao

Apresentao

Apresentao

Apresentao

Lgica de Negcio

Lgica de Negcio

Lgica de Negcio

Gerncia de Dados

Rede de Comunicao

Parte de Gesto

Apresentao

Lgica de Negcio

Lgica de Negcio

Lgica de Negcio

Gerncia de Dados

Gerncia de Dados

Gerncia de Dados

Gerncia de Dados

Gerncia de Dados

Figura 2.8 Modelo de Distribuio de Processos

Processamento

Processamento Centralizado

Processamento Distribudo

Filtro

Par-a-Par

Cliente/Servidor

Figura 2.9 Processamento Distribudo

18

Captulo 2 O modelo Cliente/Servidor

Caractersticas do Processo de Filtro: Determina uma converso na mensagem de comunicao entre o usurio e o host. Exemplo: Ligao de um desktop com um mainframe atravs de um emulador de terminal.

Processo Filtro

Filtro

Figura 2.10 Processo de Filtro

Caractersticas do Processo Peer-to-Peer (no hierrquico): So processos clones rodando em todas as mquinas e prestando servios uns para os outros. No existem processos servidores, estabelecendo um Servidor Dedicado. Cada processo pode ser Cliente e Servidor para outros processos.

Processo Peer-to-Peer

Processo A

Processo A

Figura 2.11 Processo Peer-to-Peer

Durante a execuo das consultas, os processos Cliente e Servidor so confundidos com os processos Peer-to-Peer, porque este processo foi desenvolvido com base na LU6.2 (Logical Unit verso 6.2) do SNA (Systems Network Architecture) da IBM [28]. Caractersticas do Processo Cliente / Servidor: Existem processos distintos: o processo cliente diferente do processo servidor. Os processos servidores tornam a estao Servidora dedicada ao seu trabalho.

Captulo 2 O modelo Cliente/Servidor

19

Processos clientes so sempre clientes. Processos servidores podem se tornar processos clientes de outros Servidores.

Processo Cliente/Servidor

Processo A

Processo B

Figura 2.12 Processo Cliente/Servidor

O modelo que utiliza processos Cliente/Servidor depende do cliente para inicializar a comunicao. Caso o Servidor comece a comunicao, o processo instalado fica sendo o Peer-to-Peer. A caracterstica bsica da arquitetura Cliente/Servidor a que processos Clientes enviam pedidos a um processo Servidor, que retorna o resultado para o Cliente. O processo Cliente fica ento liberado da ao do processamento da transao podendo realizar outros trabalhos.

2.4 Camadas da Arquitetura Cliente/Servidor


A arquitetura Cliente/Servidor dividida em trs camadas bsicas, como ilustra a Figura 2.13. A camada de Aplicao consiste dos processos da aplicao, entre eles, os processos Cliente e Servidor, a camada de Servios de Sistemas compreende o Sistema Operacional (SO) e o Sistema Operacional de Rede (SOR), destinando-se ao controle do hardware, por ltimo a camada de hardware, onde esto localizados os perifricos ligados aos Clientes e Servidores.
Aplicao Servios do Sistema Cliente Hardware Servidor

Figura 2.13 Camadas da arquitetura C/S

20

Captulo 2 O modelo Cliente/Servidor

A arquitetura Cliente/Servidor pode existir tanto no nvel da camada de Aplicao, quanto no da camada de Servios do Sistema. A coexistncia do paradigma nestas camadas surge em funo da hierarquia das atuaes no sistema. Caso o usurio seja externo ao sistema, ento os processos Cliente e Servidor compem a camada da Aplicao, enquanto que, se o usurio for um programa de aplicao, o Cliente um processo redirecionador e o Servidor ser um processo respondedor da camada de Servios do Sistema. A utilizao de sistemas Cliente/Servidor pela camada de aplicao utiliza Servios do Sistema no Cliente/Servidor (Figura 2.13), entretanto, sistemas no Cliente/Servidor, ao nvel da aplicao utilizam Servios do Sistema Cliente/Servidor [28]. Para sistemas Cliente/Servidor na camada de aplicao, a camada Servios do Sistema oferece somente um mecanismo de IPC1 para troca de mensagens. Por outro lado, a camada Servios do Sistema configurada como Cliente/Servidor, responsvel por gerenciar o redirecionamento das solicitaes de gravao/leitura, por exemplo. importante notar que a diferena entre os sistemas Cliente/Servidor nas camadas de Aplicao e Servios do Sistema, o equilbrio entre a quantidade de processamento tanto no lado do Cliente quanto no lado Servidor. Existem vrios sistemas que podem ser baseados na estrutura Cliente/Servidor. O uso mais freqente so as aplicaes de Banco de Dados usando processos SQL (Structured Query Language) de front-end, para acessar remotamente, as bases de dados. A Figura 2.14 mostra uma estrutura baseada num Servidor de Arquivos. Esta estrutura ocasiona um maior fluxo de informaes na rede, uma vez que todo o arquivo ser transferido para o Cliente para ento ser trabalhado.

IPC: InterProcess Comunication

Captulo 2 O modelo Cliente/Servidor

21

Servidor de Arquivos
Camada Aplicao Servios do Sistema Servio Gerenciador de Banco de Dados Redirecionador do Sistema de Arquivos Aplicao Servios do Sistema Hardware

Cliente

Hardware

Servidor

Figura 2.14 Arquitetura C/S como Servidor de Arquivos

Neste tipo de estrutura, a camada de Aplicao passa a ser o Cliente do Sistema. Com isto, a camada de Servio do Sistema utilizada simplesmente como um redirecionador para acesso a base de dados [28]. Pode-se chamar este Sistema como falso Sistema Cliente/Servidor, por no haver um equilbrio de processamento entre os dois lados Cliente e Servidor. O lado Servidor somente ter o trabalho de executar as rotinas comuns de I/O1, no caracterizando assim, como um processamento intrnseco aplicao. A Figura 2.15 demonstra outra possibilidade de se estruturar um Sistema baseado na arquitetura Cliente/Servidor, que consiste na utilizao de um Servidor de Banco de Dados dedicado, podendo coexistir normalmente com o Servidor de arquivos. Neste momento, com um Servidor de Banco de Dados exclusivo, o fluxo de informaes trafegadas na rede diminui, j que, somente a resposta da consulta retornada ao Cliente, ao invs de transferir todo o arquivo como era feito anteriormente. O Cliente, neste tipo de estrutura o usurio, passando a ter uma viso da aplicao como se as partes, Cliente e Servidor, fossem algo nico. A Figura 2.16 exemplifica esta viso.

I/O: Input/Output

22

Captulo 2 O modelo Cliente/Servidor

Servidor de Banco de Dados


Servio API do Gerenciador de Banco de Dados Servio Gerenciador de Banco de Dados Sistema de Arquivos Camada Aplicao Servios do Sistema Hardware

Cliente

Hardware

Servidor
BD

Figura 2.15 Arquitetura C/S como Servidor de Banco de Dados

Servidor de Banco de Dados

Processo Cliente Servios do Sistema

Aplicao

Processo Servidor Servios do Sistema Hardware

Cliente

Hardware

Servidor

Figura 2.16 Integrao entre os Processos Cliente/Servidor

Este tipo de estrutura favorece o aumento da performance da rede de comunicao, possibilitando assim, um maior nmero de ligaes simultneas de diversos Clientes com diversos Servidores [28]. Embora a arquitetura Cliente/Servidor possa parecer, a princpio, uma nova verso do modelo de arquivos compartilhados atravs da Rede Local baseada em microcomputadores, suas vantagens so inmeras. Fundamentalmente, ambos os modelos provem capacidade de processamento distribudo e permitem o compartilhamento de informao, entretanto, no Modelo de Arquivos compartilhados

Captulo 2 O modelo Cliente/Servidor

23

baseado em Servidor de Arquivos, o Cliente alm de executar a aplicao, executa tambm o motor da Base de Dados, que por sua vez acessa essas Bases de Dados remotamente como se fossem locais. O Servidor de Arquivos envia arquivos inteiros atravs da rede para o Cliente processar localmente, ocasionando congestionamento na rede, enquanto que, no modelo Cliente/Servidor, o Cliente executa parte da aplicao, sendo deixado para o Servidor a tarefa da administrao da Base de Dados, comumente exercida por algum SGBD1, o Servidor envia para o Cliente, atravs da rede, apenas o bloco de dados apropriado, como resultado da consulta efetuada pela aplicao. Desta forma, na arquitetura Cliente/Servidor, cada Servidor pode suportar um nmero maior de usurios, uma vez que o Cliente que gerencia a aplicao e a interface com o usurio, alm do mais, com a crescente conectividade entre mquinas e sistemas operacionais, pode-se escolher para Cliente o ambiente de software e hardware que melhor se adeque as necessidades de cada aplicao do usurio, sem ter que se preocupar com o Servidor. A melhor diviso de tarefas entre o Cliente e o Servidor depende de cada aplicao em si. Se o Servidor for apenas um SGBD, deixando para o Cliente o resto do processamento ou, se algumas tarefas como controle de acesso, anlise dos dados e validao dos comandos executada pelo Servidor. Esta uma deciso do construtor do Sistema em funo das caractersticas do negcio do usurio. As diferenas sero mostradas no tpico a seguir.

2.5 Sistema de Trs Camadas para a Aplicao


Os Sistemas Cliente/Servidor tm sido utilizados basicamente nos Sistemas de Banco de Dados Distribudos, Processamento de Transaes e nos Sistemas de Suporte a Deciso, a maioria das aplicaes tidas como crticas tm permanecido num mainframe. Pode-se definir como crticas aquelas aplicaes cujos resultados so utilizados para decises estratgicas e que, portanto, variam de empresa para empresa, dependendo do seu negcio. Quase que universalmente, os sistemas de finanas so considerados crticos para todas as empresas. Por outro lado, os sistemas de processamento de transaes so crticos para as companhias de aviao. As aplicaes de processamento de transaes, apesar de serem tipicamente consideradas como crticas, tm sido freqentemente migradas para arquitetura Cliente/Servidor, atravs do processo de Downsizing, como por exemplo os sistemas de entrada de pedidos, pontos de vendas e sistemas de

SGBD: Sistema Gerenciador de Banco de Dados

24

Captulo 2 O modelo Cliente/Servidor

reservas. Deste modo as transaes ocorrem nos Clientes e so formatadas e enviadas ao Servidor para armazenamento. Seria razovel imaginar que as primeiras aplicaes a serem desenvolvidas em Sistemas Cliente/Servidor seriam relativamente simples, garantidas e no crticas, porm, as empresas que se decidiram pelo modelo Cliente/Servidor testaram-no com aplicaes de processamento de transaes e na maioria dos casos ficaram satisfeitas com os resultados. Como pde ser visto pela Figura 2.8, o Gartner Group apresenta cinco maneiras de se implementar a arquitetura Cliente/Servidor. Cada camada dividida entre a parte lgica e a parte de gesto. A primeira representao refere-se a distribuio da camada de Apresentao.

2.5.1 Apresentao Distribuda


Este modelo emula uma arquitetura Cliente/Servidor. Toda a gerncia da Apresentao efetuada no Servidor, enquanto que no Cliente, somente a lgica da impresso dos caracteres no monitor executada, como pode ser visto na Figura 2.17. O Cliente no possui qualquer tipo de inteligncia. Existe uma tcnica de tratamento cooperativo, denominada de Revamping, que utilizado pela Apresentao Distribuda. O Revamping uma tcnica de tratamento cooperativo que est dividida em trs tipos: simples, evoludo e o modificado [15].
Modelo 1

Parte Lgica

Apresentao

Rede de Comunicao

Parte de Gesto

Apresentao

Lgica do Negcio

Gerncia de Dados

Figura 2.17 Apresentao Distribuda

Captulo 2 O modelo Cliente/Servidor

25

2.5.1.1

Revamping Simples

Consiste em habilitar as telas de modo grfico das aplicaes centralizadas com dilogos em modo grfico. Cada mapa de tela, gerado corresponde a uma janela de interface grfica.

2.5.1.2

Revamping Evoludo

Este tipo no emite simplesmente uma rplica grfica da janela a ser criada de uma aplicao no grfica. Constri uma aplicao inteiramente nova, inteiramente diferente da aplicao original. Assim, um dilogo na nova aplicao pode representar um empilhamento de vrias janelas da aplicao centralizada.

2.5.1.3

Revamping Modificado

Este terceiro tipo se deriva do segundo, porm com o fato interessante de se poder manipular a aplicao centralizada instalando sistemas grficos, visando retirar o melhor de sua performance.

2.5.2 Apresentao Remota


O segundo modelo definido como Apresentao Remota e possui a implementao tanto do mdulo de gesto, quanto o de lgica na estao Cliente, conforme Figura 2.18, ficando este responsvel (entre outras tarefas), pela manipulao das telas e pelas crticas dos dados que esto sendo inseridos. Um ponto a ser observado, quando se utiliza um Servidor X-Windows : embora o usurio se localize no Terminal X-Windows, ele realmente est se utilizando do Servidor X-Windows. O terminal real Cliente onde o usurio est conectado. Esta caracterstica muito encontrada em ambientes UNIX. O Servidor X-Windows fica responsvel pela manipulao das telas e interao com o usurio.

26

Captulo 2 O modelo Cliente/Servidor

Modelo

Parte Lgica

Apresentao

Rede de Comunicao

Parte de Gesto

Lgica de Negcio

Gerncia de Dados

Figura 2.18 Apresentao Remota

2.5.3 Lgica Distribuda


Outra representao o modelo de Lgica Distribuda. Ele representa o melhor modelo de implementao para arquitetura Cliente/Servidor representado na Figura 2.19, nele, o balano entre os processamentos clientes e servidores so bem determinados. Neste modelo, a implantao de procedimentos armazenados (Stored Procedures) facilitam a performance na rede de comunicao, uma vez que somente o nome do procedimento armazenado no Servidor transmitido pela rede. Um ponto muito positivo para este tipo de estrutura se refere a pr-compilao necessria para os procedimentos armazenados aumentando consideravelmente o tempo de resposta. Quando os procedimentos armazenados no so utilizados, necessrio que sejam feitas compilaes das sentenas das consultas antes de execut-las, evidenciando uma perda desnecessria no tempo de processamento para enviar a resposta ao Cliente. Porm, um ponto negativo para este tipo de arquitetura, o fato de se ter que criar antecipadamente as consultas a serem utilizadas pelo sistema. Ao contrrio, se o sistema utilizar interaes com o usurio este tipo de arquitetura no o mais recomendado, pois no se podem prever todos os tipos de consultas que os usurios possam a vir a fazer.

Captulo 2 O modelo Cliente/Servidor

27

Modelo

Parte Lgica

Apresentao

Lgica de Negcio

Rede de Comunicao

Parte de Gesto

Lgica de Negcio

Gerncia de Dados

Figura 2.19 Lgica Distribuda

2.5.4 Gerenciamento de Dados Centralizado


Neste modelo, apresentado atravs da Figura 2.20, toda a parte de gesto e lgica da Aplicao fica destinada ao Cliente, enquanto que somente o responsvel por prover o armazenamento e a persistncia dos dados permanece no Servidor. Um exemplo tpico para este modelo o caso de um SGBD, responsvel direto pela gesto e lgica dos dados armazenados. Este tipo de arquitetura a mais difundida, no criando, teoricamente, qualquer tipo de empecilho na hora da migrao de plataformas mainframes para plataformas desktop do tipo PC (Personal Computer).

28

Captulo 2 O modelo Cliente/Servidor

Modelo

Parte Lgica

Apresentao

Lgica de Negcio

Rede de Comunicao

Parte de Gesto

Gerncia de Dados

Figura 2.20 Gerenciamento de dados Centralizado

2.5.5 Gerenciamento de Dados Distribudos


Ao contrrio do Gerenciamento de Dados Centralizados, o Gerenciamento de Dados Distribudos, mostrado atravs da Figura 2.2, permite a replicao e diviso dos dados por diversos stios (sites). Os sistemas distribudos no deixam de ser micro-sistemas centralizados, necessitando, porm de estruturas como metadados para determinar a localizao dos dados e suas replicaes. J existem no mercado sistemas que se instalam entre a parte lgica da aplicao e a gerncia de dados, com a funo de controlar a localizao real dos dados.

Captulo 2 O modelo Cliente/Servidor

29

Modelo

Parte Lgica

Apresentao

Lgica de Negcio

Gerncia de Dados

Rede de Comunicao

Parte de Gesto

Gerncia de Dados

Figura 2.21 Gerenciamento de Dados Distribudos

Outro ponto muito importante a ser verificado o gerenciamento da concorrncia entre processos, quase sempre a cargo dos Sistemas Operacionais das plataformas, tais como o Windows NT e o UNIX [09] [26] [35]. O trabalho de gerenciamento para o compartilhamento dos dados se deve exclusivamente aos SGBDs. Os tipos de arquiteturas apresentadas no so mutuamente exclusivas, mas sim complementares. possvel fazer vrios tipos de associaes entre Servidores e Clientes, dentro de uma rede de computadores. A Tabela 2.1 mostra um resumo das caractersticas de sistemas Cliente/Servidor. Atributo Modo Execuo Finalidade Principal Cliente Ativo Incio e final fixos 1. Manipulao de tela / janela 2. Interpretao de menu / comando 3. Entrada de mouse / teclado 4. Entrada de dados e validao 5. Processamento de ajuda 6. Recuperao de erro Servidor Reativo Roda o tempo todo 1. Oferecer servios funcionais 2. Compartilhamento de dados na aplicao 3. Compartilhamento de dispositivos

30

Captulo 2 O modelo Cliente/Servidor

Atributo Transparncia Inclui Exclui

Cliente Oculta rede e servidores Comunicao com diferentes servidores Comunicao Cliente Cliente

Servidor Oculta detalhes de implementao dos servios Comunicao com diferentes clientes Comunicao Servidor Servidor

Tabela 2.1 Principais Tpicos de uma Arquitetura Cliente/Servidor

Concluso
Os modelos da arquitetura cliente/servidor propem maneiras de organizar as partes integrantes na comunicao entre computadores, definindo as atribuies em cada elemento participante e o fluxo da informao da origem ao seu destino. O conhecimento dos processos e das camadas da arquitetura em cada um destes elementos fornecem informaes fundamentais para a elaborao de aplicaes mais robustas e eficientes.

Captulo 3
O cenrio atual de execuo das aplicaes
O objetivo neste captulo bem amplo e tcnico, porm essencial. As aplicaes tm sido desenvolvidas para suprir principalmente o mercado comercial, automatizando e informatizando processos de trabalho. Devido a grande diversidade de reas de aplicao, passou-se a utilizar uma srie de nomenclaturas e ttulos para diferenciar os aplicativos, incluindo novas siglas que merecem aqui serem estudadas, porm no poderamos esquecer o cenrio atual utilizado por estes aplicativos. A arquitetura cliente/servidor e o protocolo TCP/IP fornecem uma srie de mecanismos que podem comprometer a segurana e o sigilo da informao, entretanto existe uma srie de outros protocolos que podem ser utilizados nas redes locais em conjunto com o TCP/IP. Com ferramentas automatizadas e disponveis atravs da Internet, atacantes aproveitando-se das falhas existentes no cenrio da comunicao entre as partes cliente/servidor de uma aplicao, podem ter acesso as informaes trocadas atravs da rede ou mesmo ter acesso aos computadores e servidores envolvidos na comunicao. A exposio destes protocolos e os mecanismos utilizados para comunicao so essenciais para compreendermos quais os pontos vulnerveis que so utilizados para a realizao de ataques.

31

32

Captulo 3 O cenrio atual de execuo das aplicaes

3.1 Caracterstica dos protocolos de comunicao


No so apenas os erros de programadores que causam o problema de segurana que vemos nas aplicaes. Existe um conjunto de fatores que, caso no recebam a devida ateno, podem proporcionar a exposio da informao que trafega numa rede de computadores. Dentre os quais podemos destacar o Sistema Operacional utilizado, a aplicao de correes de segurana por parte dos administradores destes sistemas, o conhecimento da tecnologia de rede empregada, suas caractersticas, topologias e principalmente os protocolos de comunicao utilizados. Fatores de mercado tambm influenciaram na construo das aplicaes. O grande crescimento da Internet que permitiu a integrao a custos menores de redes geograficamente distantes, o barateamento e o surgimento de novos componentes para a construo de redes locais e, paralelamente o domnio da Microsoft com MS-Windows em estaes de trabalho nas empresas e computadores residenciais, tornou praticamente obrigatria a construo e adaptao dos softwares para esta nova realidade. Em virtude dos fatos apresentados, dois protocolos difundiram-se rapidamente, so eles o NetBIOS (que posteriormente seria substitudo pelo NetBEUI) protocolo padro das redes Microsoft e o TCP/IP utilizado como padro nas estaes UNIX e tambm como padro na Internet. As vulnerabilidades encontradas nestes protocolos, somadas ao conjunto de fatores descritos, proporcionam a atacantes realizarem suas investidas e terem acesso as informaes importantes que trafegam na rede. Sendo assim necessrio um estudo detalhado destes protocolos, bem como dos tipos de aplicaes existentes no mercado que utilizam esta tecnologia. Antes de iniciar sobre este assunto importante conhecer quais as caractersticas principais dos softwares comerciais existentes, suas denominaes e tendncias.

3.1.1 Aplicativos prontos ou sob medida


Os aplicativos podem ser separados em dois grandes grupos: os prontos e os feitos sob medida [17]. Os aplicativos comerciais prontos so vendidos na forma de pacotes, com vrios programas prontos para instalao e uso. Existem pacotes para todos os tipos de atividades. O usurio pode escolher o mais adequado para suas necessidades e instal-lo sem grandes dificuldades. A vantagem est no fato de que como o produto vendido em larga escala, os custos de desenvolvimento so rateados entre milhares de compradores e o preo final pode ser mais barato, por

Captulo 3 O cenrio atual de execuo das aplicaes

33

outro lado, como os pacotes so padronizados, podem no atender completamente s suas necessidades e talvez o usurio no ache um produto que funcione exatamente como deseja. Aplicativos feitos sob encomenda so usados, geralmente, por grandes organizaes, que podem manter equipes internas de programadores para resolver suas necessidades especficas. Organizaes que precisam de aplicativos especiais, mas no podem ou no desejam manter equipes internas de programadores, costumam recorrer a software-houses, empresas que desenvolvem aplicativos sob encomenda, deste modo aplicativos feitos sob encomenda podem ser ajustados exatamente as necessidades de uma organizao, porm tem como desvantagem manter o investimento e os altos custos de desenvolvimento, como a manuteno da equipe de programadores e a elaborao da documentao. Existem outras formas de distribuio de aplicativos: Shareware Um programador ou uma pequena empresa de programao cria um aplicativo e o disponibiliza gratuitamente, no todo ou em parte, via Internet ou na forma de disquetes. O usurio pode experimentar o programa e s ter de pagar se decidir adot-lo para seu uso regular. Geralmente o preo baixo, pois no inclui gastos com embalagem, distribuio e publicidade. Venda ou aluguel de mdulos Os usurios podem utilizar mdulos disponibilizados via Internet, pagando pelo tempo de uso. O custo bem baixo, j que a distribuio via Internet elimina muitos gastos. Os programas so divididos em componentes especficos para cada tarefa a ser realizada e o usurio sempre tem acesso a verso mais atualizada de cada programa, esse esquema ainda experimental, mas sua importncia tende a aumentar com o desenvolvimento de novas tecnologias.

3.1.2 Aplicativos avanados e tendncias


Alm dos aplicativos que estamos acostumados a ver em ao em computadores domsticos e na maioria das organizaes, existem outros que utilizam recursos mais sofisticados e avanados. O uso desses programas restrito, seja por seu elevado custo, seja pela necessidade de pessoal especializado ou, ainda, pelo poderoso hardware necessrio para execut-los [17]. Muitos dos produtos que utilizamos diariamente, como equipamentos eletrnicos, tm sua fabricao controlada por esses aplicativos. O mesmo acontece com servios essenciais, como fornecimento de luz eltrica e controle de trfego areo.

34

Captulo 3 O cenrio atual de execuo das aplicaes

3.1.2.1 Business Intelligence


Business Intelligence (BI) um conjunto de conceitos e mtodos que, fazendo uso de acontecimentos (fatos) e sistemas baseados em acontecimentos, apia a tomada de decises. H produtos de BI desde a dcada dos 70, cuja caracterstica era a grande programao que exigiam e os altos custos de implantao. Com o surgimento dos bancos de dados relacionais, dos microcomputadores pessoais e das interfaces grficas (como Windows, OS2 dentre outros), aliados ao aumento da complexidade dos negcios, comearam a surgir os primeiros produtos realmente direcionados aos analistas de negcios. Os sistemas de BI tm como caractersticas: extrair e integrar dados de mltiplas fontes; fazer uso da experincia; analisar dados contextualizados; trabalhar com hipteses; procurar relaes de causa e efeito; transformar os registros obtidos em informao til para o conhecimento empresarial. Existe no mercado uma srie de ferramentas para BI, as mais importantes esto relacionadas com a extrao e tratamento dos dados de bancos de dados relacionais. Em geral os dados so exportados para interfaces amigveis para anlise mais crtica da informao, desta maneira pode-se considerar como ferramentas de BI produtos que tenhas as seguintes caractersticas: Planilha eletrnica; Geradores de pesquisa e de relatrios; DSS Decision Support System (Sistema de Suporte Deciso); EIS Executive Information System (Sistema de Informao Executiva); Data Warehouse; Data Mart; OLAP Online Analytical Processing (Processamento Analtico On-Line); Data Mining.

3.1.2.2 Sistemas de Gesto Empresarial


Essas ferramentas so concebidas para integrar todas ou, quase todas, as principais funes na organizao (como contabilidade, produo, vendas, compras, distribuio) num nico sistema, usado

Captulo 3 O cenrio atual de execuo das aplicaes

35

para operar e gerenciar toda a organizao, em geral, so projetados para necessidades bem especficas e contam com poderosos bancos para o armazenamento e a manipulao dos dados. A implementao costuma ser muito cara e, para que tudo d certo, importante que os usurios sejam envolvidos no projeto. Alm disso, eles devem receber treinamento para usar bem o sistema [17].

3.1.2.3 EIS Executive Information System


Os EIS (Executive Information Systems) Sistemas de Informaes Executivas so sistemas desenvolvidos para atender as necessidades dos executivos de uma organizao. O objetivo principal obter informaes gerenciais de uma maneira simples e rpida. Ele concebido conforme o nvel de conhecimento, entendimento e compreenso de informtica dos diretores. Atravs do EIS, o executivo obtm de forma simples e rpida as informaes gerenciais para que possa tomar suas decises, sem depender exclusivamente do corpo tcnico ou da rea de informtica. O intuito desse sistema facilitar a vida desses profissionais. Geralmente, possuem interface grfica, so simples de operar, apresentam resultados de pesquisas no formato de grficos e no em tabelas como a maioria dos outros sistemas, de forma que a visualizao dos dados seja mais clara. Devido a falta de tempo desses usurios especiais, o EIS deve ser modelado para ser o mais amigvel possvel. As informaes devem ser acessadas, de preferncia, com poucos cliques. Outra caracterstica importante que as informaes devem ser trazidas num nvel bastante resumido e altamente agregadas, pois as decises tomadas nesse nvel administrativo no se atm aos detalhes e sim ao todo. Ao diretor de uma organizao de grande porte interessa mais conhecer o valor total das despesas de material de expediente, por exemplo, do que saber quantas canetas foram usadas durante um ano. Pode-se construir o EIS utilizando-se como base vrios sistemas transacionais existentes na organizao, mas isso pode tornar o trabalho invivel, devido ao grande volume de tarefas que se gerariam com a extrao de dados de diversas fontes, tratamento dado a eles e a manuteno necessria para garantir a integridade e o histrico dos dados. Atualmente a tendncia que estes EIS acessem um Data Warehouse, que uma combinao de diferentes bases de dados existentes na instituio e organizados de forma a possibilitar a tomada de deciso. A tarefa fica muito mais fcil, pois a busca dos dados pode ser feita num nico sistema, onde as informaes j se encontram formatadas de acordo com as necessidades dos executivos. Como a

36

Captulo 3 O cenrio atual de execuo das aplicaes

tarefa de extrao, transformao e carga dos dados fica por conta dos tcnicos do Data Warehouse, o executivo deve ocupar-se, apenas, da anlise dos dados. As principais caractersticas que os EIS devem apresentar so: Ter como propsito atender s necessidades de informaes dos executivos de alto nvel: acompanhamento e controle de informaes a nvel estratgico da organizao; Poder ser customizados de acordo com o estilo de cada executivo; Dispor de recursos grficos de alta qualidade para que as informaes possam ser apresentadas graficamente de vrias formas; Ser fceis de usar, para que o executivo possa oper-los com muito pouco treinamento; Proporcionar acesso rpido e fcil a informaes detalhadas; ou seja, as informaes so visualizadas em nveis que podem ser expandidos. O EIS alm de facilitar o trabalho num ambiente fcil e simples, tambm deve permitir que o usurio altere o nvel de detalhamento das informaes trabalhadas, permite que o usurio faa anlises de tendncias e comparaes entre diversas informaes de forma prtica e rpida, sem necessitar de um apoio da rea de informtica para conseguir atingir o seu objetivo [17]. Isso torna os executivos mais competitivos, organizados e independentes, que tudo o que eles querem.

3.1.2.4 Softwares integrados de gesto (ERP)


A sigla ERP vem de Enterprise Resource Planning (Planejamento dos Recursos Empresariais) e designa pacotes integrados de gesto. Esses pacotes integrados so sistemas de informao com mdulos integrados que do suporte a diversas reas operacionais da organizao, tais como vendas, produo, gesto de materiais, contabilidade e pessoal. Essa integrao reduz a quantidade de programas e fornecedores diferentes e permite a implantao de um banco de dados nico, compartilhado por todas as aplicaes. Um ERP permite que processos organizacionais sejam realizados de forma integrada, ultrapassando os limites departamentais e automatizando ao mximo as atividades [17], alm da promessa de reduzir custos de TI com pessoal, desenvolvimento de software, treinamento e manuteno, existem outros benefcios associados ao uso de pacotes integrados de gesto: A integridade dos dados corporativos fica protegida; A disponibilidade imediata de todos os dados para todos os usurios que necessitem e tenham autorizao de acesso;

Captulo 3 O cenrio atual de execuo das aplicaes

37

A maior flexibilidade na modificao dos fluxos de processos organizacionais, dentro da gama de solues oferecida pelo fornecedor do pacote; A viso sistmica dos eventos e objetos organizacionais. Os principais fabricantes de software integrado de gesto no mercado so, dentre outros, SAP, Oracle, PeopleSoft e BAAN. A opo por um pacote padro, composto por softwares integrados, que substitua os sistemas corporativos tradicionais, tem se tornando cada vez mais atrativa, principalmente em razo do custo elevado de desenvolvimento e manuteno de softwares produzidos internamente ou sob encomenda. Muitas organizaes implementaram ERP, pois desejavam substituir sistemas que estavam ficando obsoletos. J em outras organizaes, a integrao de sistemas era o ponto crtico fuses e aquisies deixaram-nas com uma coleo de sistemas ineficientes, no confiveis e incompatveis. A maioria das organizaes tem a expectativa de que a adoo de um ERP reduza os seus custos de operao. Elas tambm esperam que o sistema produza melhorias em processos especficos, tais como os de logstica, planejamento da produo e atendimento ao cliente, entretanto muitas organizaes esto descobrindo do modo mais difcil que a integrao macia de aplicaes algo mais complexo do que esperavam. O caminho da implantao passa por cinco estgios: projeto, implementao, estabilizao, melhoria contnua e transformao.

3.2 O cenrio de comunicao das aplicaes


Alguns anos atrs havia um cenrio de incerteza quanto a padronizao da comunicao. Muitas aplicaes eram desenvolvidas para serem executadas sobre redes proprietrias, com protocolos especficos. Com o passar do tempo, a arquitetura TCP/IP tornou-se um padro de mercado e qualquer aplicao que pretende ter sucesso no meio comercial e acadmico deve ter um suporte a este protocolo.

3.2.1 Redes de Computadores e protocolos


Normalmente vrias perguntas so feitas para se tentar entender como clientes e servidores se comunicam, que tipo de protocolo utilizado e como um cliente encontra o servidor desejado dentro de uma rede de computadores. Embora estas perguntas possam parecer muito difceis, na realidade elas so relativamente fceis. Existem vrios conceitos e aspectos comuns as comunicaes Cliente/Servidor necessrios ao entendimento do funcionamento da comunicao.

38

Captulo 3 O cenrio atual de execuo das aplicaes

Nesta seo ser dada uma viso geral sobre os conceitos bsicos de protocolos, passagem de mensagem, os aspectos de conexo e sincronismo de processo. H duas dcadas, diversos esforos vm sendo traados para se estabelecer um padro nico para redes de computadores. No entanto, foram definidos no apenas um, mas vrios modelos de referncia. Aqui sero expostos dois principais, o modelo de referncia OSI/ISO e o TCP/IP.

3.2.1.1 O Modelo de Referncia OSI/ISO


Em maro de 1977, foi constitudo pela ISO1 um grupo de trabalho para estudar a padronizao da interconexo de sistemas de computao. Foi definida, inicialmente, uma arquitetura geral, denominada MODELO DE REFERNCIA OSI2, para servir de base para a padronizao da conexo de sistemas abertos [37] [36]. O modelo OSI possui sete camadas, como apresentado na Figura 3.1. Cada camada representa um grupo especfico de tarefas de comunicao. A norma descreve o escopo funcional de cada camada e os requisitos para a interface com as camadas adjacentes (servios).
Camadas do Modelo OSI
Aplicao Apresentao

Camadas

Sesso Transporte Rede Enlace Fsica

Figura 3.1 Camadas do Modelo de Referncia OSI

A Figura 3.2 mostra que quando a mensagem passa da camada n+1 para a camada n so acrescidos outros dados relevantes a camada n. Estes dados so retirados quando a mensagem chega na camada de mesmo nvel na estao destino. Estes acrscimos podem ser informaes tais como: tipo da mensagem, endereos, tamanho da mensagem, cdigo de deteco de erro entre outros.

1 2

ISO: International Organization for Standardization OSI: Open System Interconnection

Captulo 3 O cenrio atual de execuo das aplicaes


Protocolos em Camadas

39

Acrscimo de Dados Camada n+1

Mensagem

Mensagem

Protocolo da Camada
Mensagem Mensagem

Retirada de Dados

Camada n

Camada n-1

Meio Fsico de Transmisso

Figura 3.2 Arquitetura de protocolos em camadas

O modelo OSI/ISO especifica todas as primitivas de comunicao para que haja troca de mensagens entre as camadas [01] [06] [11] [28][36]. Cada camada adiciona um cabealho para que haja uma identificao na mquina destino. A Figura 3.3 baseada em [44] [45], mostra os principais protocolos usados nas comunicaes Cliente / Servidor baseados na Microsoft, Internet e IBM.
O Modelo OSI/ISO e outros protocolos
Microsoft Aplicao Apresentao Sesso Transporte Rede Enlace Fsica Canais Nomeados (Named Pipes) e RPC NetBIOS e WinSock Drivers NetBEUI TCP / UDP IP e outros protocolos de roteamento IEEE LLC Token Ring Par-tranado Ethernet Coaxial PU 2.1 Internet HTTP, S/MINE, FTP, DNS, TFTP, DHCP, BOOTP, SMTP e outros IBM APPC LU 6.2

SDLC

Figura 3.3 Comparao entre o modelo OSI/ISO e outros protocolos

40

Captulo 3 O cenrio atual de execuo das aplicaes

Tendo em vista os objetivos do trabalho pretendido pela presente tese, somente o protocolo de comunicao TCP/IP e alguns outros que forem essenciais para o desenvolvimento deste trabalho sero descritos.

3.2.1.2 O Protocolo TCP/IP


O TCP/IP distingue-se dos demais protocolos pelo seu endereamento universal. Cada mquina em uma rede possui um endereo que a identifica. A camada TCP orientada conexo, enquanto a camada IP trabalha sem conexo [06] [10] [11]. Cabe a camada IP o trabalho de distribuir os datagramas entre as mquinas de uma rede. Para fazer este servio, ele possui um nico endereo de 32 bits que contm informaes suficientes para identificar univocamente uma rede e um determinado computador. Este endereo comumente escrito em decimal de quatro bytes separados por um ponto. Por exemplo: 10001111, 01101010, 00001010, 00000001, representam o endereo 143.106.10.1. Existem 5 classes onde estes endereos so divididos. A Figura 3.4 mostra estas classificaes.[27] [28]
Classes do protocolo TCP/IP
bit

Classes A B C D E

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

0 1 0

ID da Rede ID da Rede ID da Rede

ID do host ID do host ID do host Endereo de Multicast Reservado para uso futuro

1 1 0 1 1 1 0 1 1 1 1 0

Figura 3.4 Classes do Protocolo TCP/IP

O nmero de redes e hosts que podem ser endereados pelas Classes A, B, C, D e E, bem como o escopo de seus endereos IP so definidos na Tabela 3.1. Por exemplo, possvel enderear at 65.136 hosts para cada rede da classe B. Portanto, 65.136 x 16.382 = 1.067.057.952. Isto quer dizer que mais de 1 milho de hosts podem ser endereveis pela classe B, j que certos endereos IP no podem ser utilizados por serem destinados a trabalhos especficos, como o endereamento de Gateways e de Broadcasting.

Captulo 3 O cenrio atual de execuo das aplicaes

41

Classes A B C D E

N de Redes 128 16.384 2.097.152 Multicast Reservado

Endereos de Rede 0.0.0.0 127.255.255.255 128.0.0.0 191.255.255.255 192.0.0.0 223.255.255.255 224.0.0.0 239.255.255.255 240.0.0.0 247.255.255.255
Tabela 3.1 Classes e endereamento em redes TCP/IP

N de Mquinas 16.777.216 65.536 256

Com isto, quando se tem um endereo de rede na classe B e deseja-se aumentar o nmero de redes possveis, em detrimento da capacidade de mquinas que podem ser instaladas, ou vice-versa, utiliza-se a tcnica da mscara de rede (NetMask). Esta tcnica permite a criao de sub-redes atravs da modificao local da linha divisria que separa os bits de identificao das redes e dos hosts. Cada sub-rede tambm representada pela notao de ponto decimal. Os bits da NetMask definidos como um identificam a poro da rede, enquanto os definidos por zero, representam os hosts. Por exemplo, caso uma empresa possua o endereo IP 166.78.4.139 da classe B, isto indica que o computador reside na rede 166.78 e que tem uma identificao de host 4.139. Porm, caso os administradores da rede decidam utilizar a NetMask 255.255.255.0 para aumentar o nmero de redes internas a empresa, necessrio que se faa uma combinao AND, do endereo IP original com a NetMask, alterando a identificao de rede para 166.78.4 e a identificao de host para 139. Pode-se dizer com isso, que o computador o host 139 na sub-rede 166.78.4.0 (endereo de gateway).

3.2.1.3 O Protocolo SMB


SMB (Server Message Block Protocol) um protocolo de nvel de aplicao utilizado por Sistemas Operacionais como Windows for Workgroups, Windows 95/98/2000/2003, LAN Manager and Windows NT and by IBMs OS/2 e LAN Server [13]. Este protocolo utilizado para implementar o controle de sesso de rede, alm de prover um mecanismo para o compartilhamento de arquivos, impressoras, portas seriais entre outros recursos dos computadores que esto atuando como servidores destes recursos. Possui funcionalidade anloga aos AppleTalk Session Protocol, AppleTalk Filing Protocol, Printer Access Protocol no conjunto de protocolos da Apple [13].

42

Captulo 3 O cenrio atual de execuo das aplicaes

O protocolo SMB funciona baseado em uma arquitetura cliente/servidor, onde os clientes enviam requisies para a utilizao dos recursos disponveis nos servidores e estes por sua vez respondem ou, permitindo o acesso aos recursos ou impedindo este acesso, dependendo do nvel de segurana atribudo aos recursos requisitados. A segurana no protocolo SMB provido em dois nveis [13]: Nvel de compartilhamento Neste nvel uma senha atribuda a cada recurso a ser compartilhado e o cliente s pode acessar este recurso se tiver posse desta senha, entretanto uma vez que o cliente ganha acesso ao recurso ele pode acessar todos os arquivos presentes neste recurso compartilhado. Nvel de usurio No nvel de usurio possvel atribuir senhas para arquivos individuais e cada usurio poder ter um privilgio diferente de acesso ao arquivo. Aqui o usurio deve primeiro se autenticar no servidor e ser autenticado por este servidor, ao fazer isto para este usurio, associado um Identificador nico (UID), utilizado para o gerenciamento de acesso aos recursos compartilhados. Para efetuar a conexo com os servidores, o SMB necessita de protocolos de transporte e mais comumente utiliza uma das seguintes combinaes: TCP/IP mais especificamente NetBIOS sobre TCP/IP como especificado nos RFCs 1001 e 1002 -, NetBEUI ou IPX. Depois que a conexo foi estabelecida entre os clientes e servidores, os clientes esto aptos a enviarem comandos SMB para os servidores e podem ganhar acesso ao sistema de arquivos de outras mquinas, podendo abrir, ler escrever e fazer qualquer outra operao sobre o sistema de arquivos remotamente atravs de comandos SMB [13]. Para anunciar a sua presena na rede os servidores enviam mensagens de broadcast de tempos em tempos. Os clientes escutam por estas mensagens e constroem uma lista de servidores disponveis. Quando o SMB est utilizando o NetBEUI como camada de transporte, este mecanismo funciona satisfatoriamente bem, uma vez que as mensagens ficam confinadas em um mesmo segmento de rede, entretanto quando a camada de transporte o TCP/IP, problemas podem surgir, uma vez que os roteadores no costumam propagar mensagens de broadcast para fora da sub-rede, embora isto possa ser configurado, este tipo de artifcio no combina muito bem com a arquitetura e o modelo oferecido pelo TCP/IP [13].

3.2.1.4

O Protocolo NetBIOS e NetBEUI

NetBIOS (Network Basic Input / Output System) foi desenvolvido pela Sytec Inc. (hoje Hughes LAN Systems) para a IBM em 1983. geralmente descrito como um protocolo de nvel de sesso,

Captulo 3 O cenrio atual de execuo das aplicaes

43

entretanto o NetBIOS no um protocolo e sim uma interface que foi projetada para ser uma extenso da BIOS para oferecer servios de rede, tais como traduo de nomes de hosts para endereos e transferncia de dados. Resumidamente uma maneira que as aplicaes tm de se comunicar com a rede [13]. Foi implementado como uma API1, embora com o passar do tempo passou a ser chamado de protocolo NetBIOS. Geralmente, o termo protocolo NetBIOS utilizado para referenciar o conjunto de protocolos que utilizam a API NetBIOS e o nome oficial utilizado pela IBM NetBIOS Frame Protocol (NBF) [13]. O NetBIOS criou uma interface entre os programas de aplicao e os protocolos de rede, assim aplicaes podem ser escritas para acessar apenas a camada mais alta do modelo OSI, permitindo que sejam transportadas por vrias tecnologias diferentes. Neste modelo qualquer aplicao pode usar a rede fazendo chamadas usuais ao Sistema Operacional e o NetBIOS habilita que o usurio acesse aplicaes em outras mquinas atravs da rede. Este protocolo foi desenvolvido para a utilizao em redes pequenas que compartilham o mesmo meio fsico e oferece dois tipos de servio: orientado conexo e no orientado conexo, de forma broadcast e multicast. Quando utilizado em redes maiores com diversos segmentos ele implementado utilizando outros protocolos que possuam capacidade de roteamento para prover o transporte, entre eles o TCP/IP. As RFCs relevantes, que descrevem como o NetBIOS encapsulado e carregado em TCP e UDP so os seguintes [13]: RFC 1001 RFC 1002 - PROTOCOL STANDARD FOR A NetBIOS SERVICE ON A TCP/UDP - PROTOCOL STANDARD FOR A NetBIOS SERVICE ON A TCP/UDP TRANSPORT: CONCEPTS AND METHODS TRANSPORT: DETAILED SPECIFICATIONS Quando utilizam o transporte baseado em TCP/UDP existem trs tipos de servios que podem ser implementados com este protocolo: O NetBIOS Name Server (NBNS) e o NetBIOS Datagram Distribution Server (NBDD) e um servio de sesso. O NBNS pode ser configurado para trabalhar de vrias maneiras. As duas mais comuns so como um quadro de avisos, onde os sistemas podem registrar os seus nomes e a segunda maneira onde ele pode gerenciar completamente nomes e endereos. O NBDD serve para prover funcionalidade de broadcast e multicast em Intranets. Desta forma datagramas podem ser enviados para ns individuais ou para todos (difuso).

API: Application Program Interface

44

Captulo 3 O cenrio atual de execuo das aplicaes

Neste servio as mensagens possuem comprimento de 512 bytes e a entrega no garantida, isto , o servio no seguro, mas permite a comunicao com vrias mquinas ao mesmo tempo. O servio de Sesso oferece uma maneira orientada conexo para a comunicao entre duas estaes. Nesta modalidade de servio deve existir obrigatoriamente um cliente e um servidor, as mensagens so de 64 Kbytes e o servio seguro, manipulando deteco e correo de erros, mas s permitem conexes unicast entre duas mquinas. O NetBIOS tambm pode ser carregado pelo conjunto IPX/SPX da Novell e por frames PPP (Point-to-Point). NetBEUI (NetBios Extented User Interface) O NetBEUI uma verso melhorada do NetBIOS. Ele formaliza o frame de transporte que no foi padronizado no NetBIOS. O NetBEUI implementa o OSI LLC2 1[13]. Este protocolo foi o protocolo de redes original do PC2, utilizado pela IBM em seu servidor LanManager. Depois foi adotado pela Microsoft para os produtos de rede da empresa. Ele define a maneira como as aplicaes enviam e recebem mensagens sobre o NetBIOS Frame Protocol. Sua especificao est em um documento da IBM chamado de IBM Local Area Network Technical Reference Manual que executa sobre a camada de enlace padro 802.2. Ele tambm um protocolo no rotevel, que se tornou a maior limitao deste protocolo assim como para o NetBIOS, que deve rodar sobre um protocolo de rede e transporte para poder ser utilizado em um ambiente WAN [13].

3.2.2 Aspectos de Conexo


Existem dois tipos de conexes usados para a comunicao. O primeiro chamado sem conexo, onde cada mensagem encontra seu prprio caminho at o seu destino [06] [11] [27]. Cada mensagem independente de todas as outras mensagens, podendo atingir rotas diferentes at o seu destino. A Internet utiliza este tipo de conexo. Devido a esta caracterstica, cada mensagem deve conter toda a informao de endereamento necessria para a sua entrega. Dependendo do servio de entrega usado, as mensagens podem chegar fora de ordem ou serem mal encaminhadas no trnsito. As mensagens numa comunicao sem conexo so chamadas de datagramas. Essa forma de comunicao tambm conhecida como comutao de pacotes. Pode-se fazer uma analogia deste tipo de comunicao com o servio de entrega dos correios. No existe uma rota preestabelecida quando se utiliza o envio de mensagem por meio de datagrama. A Figura 3.5 mostra os diversos caminhos que as mensagens podem percorrer.
1 2

OSI: Logical Link Control, type 2. PC: Personal Computer

Captulo 3 O cenrio atual de execuo das aplicaes

45

Aspectos da Mensagem: Sem Conexo


Origem

Destino

Figura 3.5 Conexo por datagramas: sem conexo

A mensagem, que dividida em vrios pacotes, pode seguir caminhos distintos, tanto do host 1 (origem) para o host 2 (destino), quanto no sentido inverso, podendo, inclusive, chegar ao seu destino em tempos diferentes, havendo assim, a necessidade de reordenao da mensagem na parte responsvel da comunicao pela aplicao do host de destino. O outro tipo de comunicao o baseado em conexo, onde um circuito prvio estabelecido antes que a troca de dados se efetue. Quando um circuito estiver conectado, cada mensagem segue uma seqncia e sempre direcionada ao longo do mesmo circuito [06] [11] [27]. Logo, cada mensagem s precisa de um identificador de circuito para ser direcionada para o seu destino. O recebimento de cada mensagem normalmente confirmado e, se for o preciso, o controle de fluxo usado para regular a velocidade com que as mensagens so enviadas. A comunicao baseada em conexo, conforme apresentado na Figura 3.6, garante a transmisso das mensagens, estas so tambm divididas em pacotes, sem perda para o seqenciamento dos pacotes nos hosts destinos, diminuindo assim o trabalho de implementao na parte de comunicao do aplicativo.

46

Captulo 3 O cenrio atual de execuo das aplicaes

Aspectos da Mensagem: Com Conexo


Origem

Destino

Figura 3.6 Comunicao baseada em conexo

Quando a comunicao finalizada, torna-se necessrio desfazer a conexo para poder liberar os recursos de rede utilizados. Deve-se notar que as mensagens sempre chegam ordenadas neste tipo de conexo. Um exemplo de comunicao baseado em conexo o sistema telefnico, na Tabela 3.2 compara os dois tipos de comunicao. Caracterstica Tipo de mensagem Rota Endereamento Mensagem Com Conexo Fluxo de Dados Esttica estabelecer do circuito Confiabilidade Seqenciado, controle de erro e fluxo, Sem garantias, as mensagens entrega garantida Opes Podem ser negociadas durante podem se perder ou chegar ao destino fora de ordem a No disponveis circuito, Sem Conexo Datagrama Dinmica aps todas as mensagens

da Endereo de destino completo para Endereo destino completo em estabelecimento necessita apenas do ID

Captulo 3 O cenrio atual de execuo das aplicaes

47

preparao Sincronismo Overhead Explcito Preparao e liberao do circuito


Tabela 3.2 Tipos de Conexo

Implcito Rota da mensagem

3.2.3 Aspectos de Sincronismo e Passagem de Mensagem


A comunicao entre Cliente e Servidor procede de forma implcita. Quando o Cliente espera a resposta da mensagem enviada para continuar o seu processamento, diz-se que o protocolo utilizado um protocolo com bloqueio, onde o sincronismo entre Cliente e Servidor est implcito no mecanismo de passagem de mensagem. Caso o Cliente possa continuar suas tarefas, enquanto espera a resposta da mensagem, o protocolo de comunicao um protocolo sem bloqueio [35]. Isto ocorre quando o sistema operacional do Cliente do tipo multitarefa, possibilitando ao Cliente executar outras tarefas enquanto aguarda a resposta do Servidor. A teoria de programao concorrente baseada na noo de processos de comunicao sendo executados em paralelo a outros processos. Esses processos se comunicam compartilhando memria ou passando mensagens por meio de um canal de comunicao compartilhado [01] [38]. O termo IPC se refere s tcnicas utilizadas na passagem de mensagem. No compartilhamento de memria, os processos concorrentes compartilham uma ou mais variveis e utilizam a mudana de estados dessas variveis para se comunicarem. Essa tcnica inclui espera ocupada, semforos, regies crticas condicionais e monitores. Como esta tcnica exige que os processos estejam na mesma mquina, no so considerados base para a programao Cliente/Servidor [35]. Em tcnicas baseadas na passagem de mensagem, os processos enviam e recebem mensagens explicitamente, em vez de examinar o estado de uma varivel compartilhada [01] [06]. O benefcio principal da passagem de mensagem que existe pouca diferena entre o envio de mensagens a processos remotos ou locais. Portanto, a passagem de mensagem poderosa para criao de aplicaes em rede. Outra vantagem que mais informaes podem ser trocadas numa mensagem do que por mudana no estado de uma varivel compartilhada. A Figura 3.7 mostra a troca de mensagem entre cliente e servidor sem o bloqueio por parte do cliente.

48

Captulo 3 O cenrio atual de execuo das aplicaes

Fluxo da mensagem
Processo Solicitante Processo Destino

Send(Mensag1, Destino)

Receive(Mensag1, Solicitante)

Send(Resp1, Solicitante)

Receive(Resp1, Destino)

Figura 3.7 Troca de mensagens entre processos origem e destino sem bloqueio

3.2.3.1 Caractersticas da conexo TCP


A tcnica de estabelecimento de conexo do protocolo de transporte TCP conhecida por Three Way Handshake ou aperto de mo triplo. Durante o estabelecimento de conexo so trocados trs datagramas antes que se inicie, efetivamente, a troca de dados. O primeiro datagrama enviado com o bit SYN ativado e com o nmero de seqncia gerado atravs de um mecanismo baseado no uso de um relgio, com pulsos a cada 4 s. A resposta deve vir com o bit SYN ativado, com um nmero de seqncia e com o bit ACK confirmando a recepo do primeiro datagrama. Por fim, o host que iniciou a conexo envia um ltimo datagrama confirmando o recebimento da resposta. As conexes TCP operam no modo Full-Duplex, ou seja, suportam transmisses de dados nos dois sentidos. Desta forma, independente de qual host tenha estabelecido a conexo, todos os dois podem enviar dados. Da mesma forma, a conexo poder ser encerrada por qualquer um dos hosts.

Captulo 3 O cenrio atual de execuo das aplicaes

49

Por se tratar de um protocolo mais complexo necessita de mais recursos para implementao deste tipo de conexo, deste modo so consumidos mais recursos para garantir o funcionamento de todas as etapas, entretanto com o avano na tecnologia, que proporcionou o aumento na velocidade de processamento, este overhead diminuiu significativamente. Outro detalhe importante que devido a estas caractersticas e ao aumento do nmero de pacotes transmitidos, existe a necessidade de um controle do fluxo e tambm o controle de conexo. Na Figura 3.8 conforme [40], apresentado um esquema atravs da linha do tempo para estabelecimento de uma conexo TCP.
A
CLOSED SYN_SENT SYN SYN_RCVD
N) CK(SY SYN, A

B
LISTEN TEMPO

ESTAB

ACK(S YN) Requis io FIN

FIN_WAIT_1

ESTAB

+FIN) ACK(rq

CLOSE_WAIT

FIN_WAIT_2
st Respo FIN a

TIME_WAIT
ACK(F IN)

LAST_ACK

CLOSED CLOSED

Figura 3.8 Estabelecimento e encerramento de uma conexo TCP atravs da linha do tempo

Em conjunto com o protocolo IP, TCP/IP transformou-se no protocolo padro utilizado pela Internet, que possibilita a interligao de diversas plataformas. Atualmente existem vrios servios que utilizam o protocolo TCP/IP, entre eles pode-se destacar alguns bem conhecidos como o FTP, Telnet, E-mail, Ping, Finger entre outros ilustrados atravs da Figura 3.9, que tambm apresenta a respectiva referncia na camada do modelo OSI/ISO.

50

Captulo 3 O cenrio atual de execuo das aplicaes

Na camada de Transporte pode-se notar a existncia de dois padres, o TCP, que a comunicao com conexo e o UDP, que a comunicao sem conexo. O padro TCP permite a abertura de uma conexo virtual entre a mquina fonte e a destino em todas as camadas do modelo OSI/ISO.

Modelo OSI/ISO e Servios TCP/IP


Modelo OSI/ISO
Aplicao Apresentao Camadas Superiores Camadas Inferiores Sesso

Protocolo TCP/IP
Aplicao FTP, SMTP, DNS Telnet

Transporte Rede Link de Dados Fsica

TCP e UDP IP, ARP e ICMP Link de Dados Fsica

Figura 3.9 Protocolo TCP/IP

A Internet utiliza o padro UDP, uma vez que as comunicaes baseadas no protocolo TCP/IP se utilizam de portas de comunicao que, associadas aos sockets, permitem a troca de mensagens. O protocolo TCP/IP disponibiliza 999999 portas (comprovao emprica), sendo que as portas de nmero 0 at a porta de nmero 1023 so reservadas para servios pr-determinados, como por exemplo a porta 23, para o servio Telnet, a porta 21 para o FTP e assim por diante. Devido a este limite, caso a Internet utilizasse o padro TCP, as mquinas que respondessem a um nmero muito grande de acessos, acabariam limitando a sua utilizao. No padro UDP, por sua vez, quando existe uma solicitao de comunicao, o endereo IP do remetente da mensagem segue junto com a mensagem para o destinatrio, de forma que o disponibilizador do servio possa posteriormente enviar a resposta do servio solicitado. importante salientar que, para que as comunicaes transcorram normalmente, as APIs no necessariamente precisam ser as mesmas, muito embora os protocolos devam ser os mesmos, como pode ser visto na Figura 3.10.

Captulo 3 O cenrio atual de execuo das aplicaes

51

Uso de mesmo protocolo para comunicao


Funciona
Cliente Aplicao da Rede API (TLI)
TCP / IP

No Funciona
Servidor Cliente Aplicao da Rede Winsock API
TCP / IP

Servidor Aplicao da Rede Winsock API


SPX / IPX

Aplicao da Rede Winsock API


TCP / IP

Figura 3.10 Protocolos idnticos para que haja a comunicao

Os demais protocolos suportados pelo Windows NT permitem a conexo com outros tipos de plataformas, como pode ser visto na Tabela 3.3. Protocolo NetBEUI SPX/IPX Apple Talk Plataforma Microsoft Novell Macintosh

Tabela 3.3 Exemplos de Protocolos do Windows NT/2000

3.2.3.2 NETBEUI, SPX/IPX e Appletalk


O protocolo NetBEUI de propriedade da Microsoft e permite a conexo com mquinas que estejam com os ambientes Windows 3.x, Windows NT 3.x / 4.0 e Windows 95 e posteriores [10]. Ele o responsvel pela camada de Transporte e Rede, acrescentando uma extenso para a camada de Link de Dados. Conecta-se diretamente com o NetBIOS na camada de sesso [28], que oferece as funcionalidades de transporte e rede do NetBEUI. Possui dois tipos de frames, um para fornecer um fluxo de dados confivel e o outro para frames de informao no numerados usados em datagramas. Os protocolos SPX/IPX so uma implementao dos protocolos XNS da Xerox. O protocolo SPX, igual ao SPP da Xerox, oferece um servio de fluxo de dados confivel, enquanto que o IPX, igual ao IDP, oferece um servio de datagrama, permitindo a conexo entre mquinas do tipo PC que estejam rodando o Sistema Operacional de Rede da Novell [28].

52

Captulo 3 O cenrio atual de execuo das aplicaes

Por sua vez, o protocolo Apple Talk permite a conexo com mquinas da plataforma Macintosh e um protocolo totalmente particular. Os principais protocolos usados por mquinas Macintosh so os DDP - Datagram Delivery Protocol, ATP AppleTalk Transaction Protocol e ADSP - AppleTalk Data Stream Protocol [28].

3.2.3.3 Sockets
O Socket teve origem na Universidade de Berkeley, como sendo a API de desenvolvimento do protocolo TCP/IP para o ambiente UNIX [06]. Ele um dos mecanismos que o IPC possui para a troca de mensagens entre processos. Um Socket similar a um descritor de arquivo. Ele identifica o ponto final (endpoint) para a comunicao e implementado como um inteiro positivo [30]. Existe uma diferena sutil, porm importante, entre descritores de arquivos e socket. Um descritor de arquivo ligado a um arquivo ou dispositivo especfico quando criado pelo comando open. Um descritor de socket no ligado a local algum quando criado pelo comando socket. Uma aplicao pode decidir ligar-se a um endereo explicitamente usando um comando bind ou pode fornecer endereos dinamicamente quando envia datagramas usando o comando send. Portanto, sockets podem ser usados como uma interface para transportes de rede baseados em conexo e sem conexo [06] [11]. O socket, que um manipulador (handle), est associado a um largo conjunto de dados armazenados na implementao do protocolo de rede. O termo socket usado no UNIX para fornecer uma interface tipo arquivo s redes. Quando uma operao para criar um socket chamada, o sistema retorna um manipulador, como descritor de socket. Esse descritor usado em todos os outros comandos relacionados ao socket e intercambivel com o descritor de arquivo usado em funes read e write. Os dados associados ao socket incluem vrias informaes, como o endereo IP das mquinas que esto se conectando, as portas dos dois lados da conexo TCP e o estado da conexo corrente. A camada de sockets dentro do contexto da comunicao corresponde a camada de Sesso do Modelo OSI/ISO, que tem como funo o gerenciamento das sesses de comunicao processo a processo entre os hosts. Ela tambm responsvel por estabelecer e encerrar as conexes entre os aplicativos cooperantes [11].

Captulo 3 O cenrio atual de execuo das aplicaes

53

Dentro do protocolo TCP/IP, a camada TCP abrange a camada de Sesso e Transporte do Modelo OSI/ISO, favorecendo diretamente a programao dos sockets sobre o protocolo TCP/IP. Para o ambiente Windows foi desenvolvido o Windows Sockets - Winsock, visando facilitar a interconexo entre as estaes Windows, atravs do protocolo TCP/IP, que base para o acesso a Internet. Windows Sockets uma interface aberta para programao em rede sob o Microsoft Windows [27]. A especificao da interface do Windows sockets define claramente a diviso entre a aplicao de rede e o protocolo da rede, sua verso mais recente o winsock32 5.0 (reviso 2.6) para Windows 2000/XP e para winsock a verso 3.10. A partir verso 2.0 da especificao do Windows sockets se associa a arquitetura que o Windows NT utiliza para suportar mltiplos protocolos de fornecedores variados [27]. O Winsock API aumenta a funcionalidade dos sockets de Berkeley, ao acrescentar extenses especficas do Windows para suportar a natureza orientada a mensagens do S.O. baseado no Windows. Todas as aplicaes que hoje em dia acessam a Internet diretamente da residncia do usurio, usando FTP, E-mail, Finger, Telnet, SMTP, entre outros, utilizam os sockets como base de comunicao, atravs do protocolo TCP/IP [30]. Os Sistemas Operacionais Windows NT/2000 e Windows 95 em diante j possuem dentro de suas bibliotecas, as rotinas para suportar a programao para o protocolo TCP/IP via sockets [10]. Para o ambiente Windows, o relacionamento entre as aplicaes e o ambiente de rede, pode ser demonstrado na Figura 3.11.

54

Captulo 3 O cenrio atual de execuo das aplicaes


Uso de sockets na arquitetura Windows
Aplicao
FTP Server TCP portas 20, 21 SMTP TCP porta 25 TFTP Server UDP porta 69 Web Server TCP porta 80

Windows sockets Interface (winsock.dll) 0...65536 TCP UDP 0...65536

Transporte

Internet
IP

Interface de Rede

Fsica

Figura 3.11 Relacionamento da biblioteca sockets em ambiente Windows

Na API do sockets possvel determinar se a comunicao que se vai estabelecer com conexo - STREAM, ou sem conexo - DATAGRAM. Para se trabalhar numa comunicao baseada em conexo, na camada de transporte do TCP/IP, o protocolo utilizado o TCP, determinando que somente aps o estabelecimento de uma comunicao possvel efetuar troca de mensagens. Para a abertura de uma conexo com sockets, necessrio que vrias funes da biblioteca Winsock sejam chamadas. A Figura 3.12 demonstra a seqncia de operaes tanto no lado Servidor quanto no lado Cliente. No caso de se estabelecer uma conexo Stream, o Servidor primeiramente inicializado. A funo Socket() define o descritor no qual a aplicao se associar quando desejar transmitir uma mensagem. Posteriormente a funo Bind() interliga o descritor ao endereo IP da mquina servidora e a porta TCP/IP na qual as transmisses iro ocorrer. A funo Listen() permite ao Servidor ficar escutando qualquer solicitao de conexo.

Captulo 3 O cenrio atual de execuo das aplicaes

55

Conexo Stream

Servidor
Socket( )

Cliente
Socket( )

Bind( )

Listen( )

Accepct( )

Connect( )

Send( ) / Receive( )

Send( ) / Receive( )

CloseSocket( )

CloseSocket( )

Figura 3.12 Conexo Bitstream

Quando uma solicitao chega de um Cliente aps ativar a funo Connect(), o Servidor cria um processo filho mediante a funo Accept(), numa nova porta TCP/IP. O pedido do Cliente associado a esta porta, permitindo assim a transferncia de dados pelas funes Send()/Recv(), deixando, desta forma, a porta original de conexo do Servidor livre para efetuar novas conexes. Ao trmino da comunicao, o Cliente utiliza a funo CloseSocket() para fechar a conexo, liberando a porta do processo filho do Servidor para ser ligada a outro processo de comunicao. O Servidor s ir utilizar esta funo quando for desligado.

56

Captulo 3 O cenrio atual de execuo das aplicaes

Comunicao sem conexo

Servidor
Socket( )

Cliente
Socket( )

Bind( )

Send( ) / Receive( )

Send( ) / Receive( )

CloseSocket( )

CloseSocket( )

Figura 3.13 Conexo datagrama

Por sua vez, para uma comunicao sem conexo, conforme a Figura 3.13, a utilizao das funes de sockets tornam-se mais fceis de se implementar, porm, necessrio lembrar que a utilizao de comunicao baseada em Datagramas determina que as rotinas de recuperao das seqncias dos pacotes entregues a rede devem ser programadas, aumentando assim a possibilidade de falhas na implantao do sistema. A seqncia e as funes definidas para uma conexo Datagrama so as mesmas da conexo Stream, excluindo apenas as funes Listen(), Accept() e Connect(). Isto ocorre pelo fato do protocolo baseado em Datagrama no utilizar uma conexo real entre as mquinas origem e destino, implementando, automaticamente dentro das funes de troca de mensagens, Send()/Recv(), um cabealho com o endereo IP da mquina no qual ser feita a comunicao. Um ponto a ser observado, que, para a transmisso, tanto na funo Send() ou Recv(), os sockets somente operam com dados do tipo Char. Para a transmisso de dados puramente do tipo caracter, o sistema desenvolvido baseado em sockets no impe nenhuma restrio, entretanto, para sistemas

Captulo 3 O cenrio atual de execuo das aplicaes

57

desenvolvidos sob o paradigma da Orientao a Objeto, que manipula tanto objetos simples, como complexos ou longos, necessrio que, ao se transmitir, se faa uma converso da classe do objeto para o tipo Char. No momento em que a informao chega ao seu destino, necessrio que o receptor faa a reconverso, isto , do tipo Char para o tipo original do objeto. Esta peculiaridade para a transmisso de dados de tipos diferentes de Char, faz com que o destinatrio da mensagem possua o conhecimento prvio de todos os tipos possveis de objetos que podem ser transmitidos.

3.2.4 Princpios da comunicao


Quando h a comunicao entre duas entidades distintas, importante levar em considerao alguns aspectos da comunicao que precisam ser aplicados e que sero mostrados mais adiante. No caso da computao existem ferramentas suficientes para prover estes princpios e um ramo de pesquisa em plena evoluo, a criptografia computacional. No objetivo deste trabalho aprofundar-se em temas como sistemas criptogrficos, pois trata-se de um assunto complexo que necessitaria muito mais que um captulo para apresent-lo. Mesmo assim de fundamental importncia citar os princpios que regem uma comunicao, pois considerando que o meio de comunicao vulnervel, as entidades envolvidas na troca de informaes devem garantir a segurana e o sigilo, bem como estarem preparadas contra atacantes que conhecem e exploraram tais vulnerabilidades.

3.2.4.1 Princpio da Disponibilidade


Uma grande variedade de ataques pode resultar na perda ou reduo da disponibilidade da informao. Alguns desses ataques so compensados atravs de medidas automatizadas, como a autenticao e a criptografia, ao passo que j outros requerem algum tipo de ao fsica para a preveno ou recuperao das perdas de disponibilidade de elementos de um sistema distribudo [18] [39].

3.2.4.2 Princpio da Integridade


O servio de integridade pode ser aplicado a todo um fluxo de mensagens de uma conexo, a uma nica mensagem ou a determinados campos desta mensagem. Uma conexo que tenha este princpio implantado garante que as mensagens sero recebidas como foram enviadas, sem duplicao, insero indevida, modificaes, sem reordenao ou repeties. A destruio de dados tambm tratada neste

58

Captulo 3 O cenrio atual de execuo das aplicaes

servio. Sob outro foco, este servio trata tanto da modificao da mensagem como da negao de servios. possvel fazer uma distino entre o servio com e sem recuperao. Pois o servio de integridade trata de ataques ativos, a ateno se concentra na deteco ao invs da preveno [18] [39]. Caso uma violao de integridade seja detectada, ento o servio pode simplesmente informar esta violao, de forma que uma outra parte do software ou algum tipo de interveno humana seja necessrio para a recuperao de tal violao. De forma alternativa, existem mecanismos disponveis para a recuperao de perda de integridade de dados. Esta ltima alternativa a mais atraente.

3.2.4.3 Princpio da Confidencialidade


A confidencialidade a proteo das informaes contra ataques passivos e anlise de mensagens, quando em trnsito nas redes ou contra a divulgao indevida da informao, quando sob guarda [18] [39]. Com respeito a utilizao indevida de contedos de mensagens, pode-se identificar diversos nveis de proteo para cada tipo de informao identificado. Podem ser definidos diversas formas para este servios, incluindo a proteo de mensagens individuais ou at mesmo de campos dentro desta mensagem. Este processo de identificao e refinamento daquilo que realmente deve ser protegido bastante complexo e se reflete em toda a estrutura de segurana adotada. Como servios derivados dos princpios de segurana anteriormente citados, podemos identificar:

3.2.4.4 Princpio da Autenticidade


O servio de autenticao se relaciona com a garantia de que a comunicao autentica. No caso de uma simples mensagem, como o caso de um sinal de alarme, a funo da autenticao garantir ao receptor que a mensagem realmente originria da fonte informada [18] [39]. No caso de uma interao em tempo real, como a conexo de um computador com outro, pode-se considerar dois aspectos, o primeiro no momento da inicializao da conexo, este servio deve garantir que as duas entidades so autenticas, ou seja que so quem alegam ser. Em segundo lugar, o servio deve garantir que a comunicao deve ocorrer de forma que no seja possvel a uma terceira parte se disfarar e se passar por uma das partes j autenticadas na inicializao da conexo para conseguir transmitir e receber mensagens de forma autorizada.

Captulo 3 O cenrio atual de execuo das aplicaes

59

3.2.4.5 No Repdio
Este servio previne tanto o emissor contra o receptor, quanto previne contra a negao de uma mensagem transmitida [18] [39]. Desta forma, quando uma mensagem enviada, o receptor pode provar que de fato a mensagem foi enviada pelo emissor em questo. De forma similar, quando uma mensagem recebida, o emissor pode provar que a mensagem foi realmente recebida pelo receptor em questo.

3.2.4.6 Controle de Acesso


No contexto de segurana de rede, o controle de acesso a habilidade de limitar ou controlar o acesso aos computadores hospedeiros ou aplicaes atravs dos enlaces de comunicao e do controle de acesso fsico [18] [39]. Para tal, cada entidade que precisa obter acesso ao recurso, deve primeiramente ser identificada, ou autenticada e de forma a que os direitos e permisses de acesso sejam atribudos ao usurio.

Concluso
As aplicaes esto evoluindo e criando novas tendncias para atender a demanda de mercado, porm o conhecimento do ambiente de comunicao e suas particularidades so fatores fundamentais para o sucesso e sobrevivncia destas aplicaes. Com o crescimento da Internet interligando computadores atravs da rede e o estabelecimento do protocolo TCP/IP como padro de facto, h uma tendncia para que os protocolos proprietrios caiam em desuso.Algumas empresas resolveram este problema utilizando seus protocolos proprietrios encapsulados dentro de pacotes TCP/IP, garantindo assim que aplicaes pudessem ser migradas para esta nova realidade.

Captulo 4
Provendo segurana nos protocolos de comunicao
O propsito deste Captulo mostrar que apesar das fraquezas existentes nos protocolos de comunicao utilizados nas aplicaes cliente/servidor, existem mecanismos que aliados a outras tcnicas, como por exemplo, a distribuio fsica da rede (estaes, servidores locais, servidores pblicos) e firewalls possibilitam agregar segurana ao meio. Protocolos para estabelecimento de canais seguros e mtodos para garantir a autenticao vinda de uma rede externa ou pblica, podem prover a soluo para o problema da segurana das informaes e dos usurios que acessam os dados. No decorrer deste Captulo haver uma breve exposio dos principais protocolos seguros e tambm dos mtodos de autenticao. No aprofundaremos no funcionamento detalhado destes para que no desviemos do foco principal deste trabalho e incorrermos no erro de estender o documento apresentando uma srie de caractersticas que esto mais ligadas a aspectos criptogrficos, apenas este tpico pode gerar uma nova dissertao.

60

Captulo 4 Provendo segurana nos protocolos de comunicao

61

4.1 Protocolos seguros para Aplicaes


4.1.1 PPP
Point-to-Point um protocolo de acesso remoto utilizado pelo PPTP para enviar dados multiprotocolos atravs de uma rede baseada em TCP/IP. Pode encapsular pacotes IP, IPX e NetBEUI entre quadros PPP e enviar os pacotes encapsulados gerando um enlace ponto-a-ponto entre os computadores que enviam e recebem a informao. O protocolo PPP utilizado para criar uma conexo do tipo discada entre o cliente e o servidor de acesso e para tal executa as seguintes tarefas: Estabelece e finaliza a conexo fsica. O protocolo PPP utiliza uma seqncia definida na RFC 1661 para estabelecer e manter conexes entre computadores remotos. Autentica usurios. Clientes PPTP so autenticados utilizando-se o protocolo PPP. Texto claro, criptografado ou no caso da Microsoft (estaes windows) Microsoft encrypted authentication podem ser usados pelo protocolo PPP. Gerar datagramas PPP que contem pacotes IPX, NetBEUI ou TCP/IP criptografados. PPP gera datagramas que contm um ou mais dados criptografados dos pacotes IPX, NetBEUI ou TCP/IP. Devido ao fato dos pacotes da rede serem criptografados, o trfego entre o cliente PPP e o servidor de acesso um canal seguro. A Figura 4.1 ilustra todo o processo.

62

Captulo 4 Provendo segurana nos protocolos de comunicao

Conexo PPP em rede discada


Servidor de Acesso a Rede

Cliente

Estabelecendo a conexo Conectividade PPP

Usurios Autenticados Conectividade PPP Usurio e senha Autenticao

Transmisso de dados Dados PPP Cabealho do Protocolo Dados PPP

Cabealho do Protocolo

Figura 4.1 Etapas da conexo do protocolo PPP

Uma observao importante a fazer sobre este protocolo o fato de em muitas situaes, clientes remotos possuem um acesso direto a uma rede TCP/IP, no necessariamente o acesso provm de uma rede discada.

4.1.2 O protocolo PPTP


Point-to-Point Tunneling Protocol um protocolo de rede que possibilita a transferncia de dados de forma segura, partindo de um cliente remoto para um servidor que se encontra numa rede local privada criando um virtual private network (VPN) atravs de redes de dados baseadas em TCP/IP. PPTP oferece suporte para multi-protocolos e VPNs atravs de redes pblicas como a Internet. A tecnologia de rede do PPTP uma extenso de acesso remoto do protocolo Point-to-Point (PPP) definido em um documento da Internet Engineering Task Force (IETF) intitulado "The Point-toPoint Protocol for the Transmission of Multi-Protocol Datagrams over Point-to-Point Links" originando a RFC 1171 [21].

Captulo 4 Provendo segurana nos protocolos de comunicao

63

PPTP o protocolo de rede que encapsula pacotes PPP dentro de datagramas IP para transmisso sobre a Internet ou outras redes pblicas baseadas em TCP/IP. Pode apenas ser utilizado para interligao em redes privadas locais, ou seja LAN-to-LAN. Foi desenvolvido para prover um mtodo seguro para interligar redes privadas sobre a Internet e, examinando sua construo, observa-se que a comunicao segura se faz atravs de trs processos, cada qual necessita da execuo com sucesso do anterior. So eles: PPP Comunicao e Conexo. Um cliente PPTP utiliza o protocolo PPP para se conectar a um ISP , geralmente atravs de uma linha telefnica ou ISDN2. Esta conexo utiliza o protocolo PPP para estabelecer a conexo e criptografar os dados no pacote. PPP Controle de Conexo. Usando uma conexo Internet estabelecida pelo protocolo PPP, o protocolo PPTP gera um controle de conexo do cliente PPTP para um servidor PPTP na Internet. Esta conexo utiliza o transporte TCP para estabelecer a conexo que denominada de tnel PPTP. PPTP Tunelamento de dados. Na ltima etapa o protocolo PPTP gera datagramas contendo pacotes criptografados PPP que so ento enviados atravs do tnel PPTP ao servidor PPTP. Ao receber os datagramas, estes so desmontados e decriptografados novamente tornando-se pacotes PPP que finalmente so encaminhados para a rede local.
1

4.1.2.1 Controle de Conexo PPTP


O protocolo PPTP especifica uma srie de mensagens de controle enviadas entre o cliente e o servidor PPTP. Este controle estabelece, mantm e encerra o tnel PPTP. A lista de mensagens utilizadas relativamente simples. Na Tabela 4.1 so apresentadas as mensagens para estabelecer e manter um tnel PPTP. Mensagem PPTP_START_SESSION_REQUEST PPTP_START_SESSION_REPLY PPTP_ECHO_REQUEST PPTP_ECHO_REPLY PPTP_WAN_ERROR_NOTIFY PPTP_SET_LINK_INFO Finalidade Inicia uma sesso Replica a requisio para iniciar sesso Mantm a sesso Replica o pedido de manuteno da sesso Notifica um erro que ocorre na conexo PPP Configura a conexo entre o cliente e o servidor PPTP

1 2

ISP: Internet Service Provider ISDN: Integrated Services Digital Network

64

Captulo 4 Provendo segurana nos protocolos de comunicao

Mensagem PPTP_STOP_SESSION_REQUEST PPTP_STOP_SESSION_REPLY

Finalidade Finaliza a sesso Replica o pedido de finalizao da sesso


Tabela 4.1 Mensagens do protocolo PPTP

Mensagens de controle so transmitidas em pacotes de controle em um datagrama TCP. Uma conexo TCP criada entre o cliente PPTP e o servidor PPTP. Esta conexo utilizada para troca de mensagens de controle. Um datagrama contm um cabealho PPP, um cabealho TCP, um controle de mensagens PPTP e os traillers apropriados, como pode ser visto na Figura 4.2 [21]. Cabealho de entrega PPP Cabealho IP Controle de Mensagens PPTP Traillers
Figura 4.2 PPTP Datagrama TCP com mensagens de controle

A troca de mensagens entre o cliente PPTP e o servidor sobre conexes TCP so utilizadas para criar e manter um tnel PPTP. Este processo ilustrado na Figura 4.3.
PPTP - Troca de mensagens entre Cliente e Servidor
Servidor de Acesso a Rede

Cliente

Servidor PPTP

Internet

Conexo PPP TCP/IP Controle de conexo PPTP

Figura 4.3 PPTP troca de mensagens entre Cliente e Servidor

4.1.2.2 Transmisso de dados no protocolo PPTP


Aps o estabelecimento do tnel PPTP, os dados do usurio so transmitidos entre o cliente e o servidor PPTP. Os dados so transmitidos em um datagrama IP contendo pacotes PPP. O datagrama IP

Captulo 4 Provendo segurana nos protocolos de comunicao

65

gerado utilizando-se uma verso modificada do protocolo Generic Routing Encapsulation (GRE), definido na RFC 1701 e 1702. O datagrama IP criado pelo protocolo PPTP simular ao apresentado na Figura 4.4. Cabealho de entrega PPP Cabealho IP Cabealho GRE Cabealho PPP Cabealho IP Cabealho TCP Dados
Figura 4.4 Datagrama IP contendo pacote PPP gerado pelo protocolo PPTP

O cabealho de entrega PPP prov a informao necessria para que o datagrama seja trafegado pela Internet, o cabealho GRE utilizado para encapsular o pacote PPP com o datagrama IP. O pacote PPP foi gerado pelo Servidor de Acesso a Rede (ISP). Nos servidores Microsoft como Windows NT/2000/2003 Server este servio denominado de RAS . importante salientar que o pacote PPP um bloco ilegvel devido a criptografia aplicada, caso a conexo seja capturada os dados esto seguros.
1

4.1.3 SSL
O Secure Socket Layer (SSL, atualmente na verso 3) um protocolo de comunicao que implementa um duto seguro para comunicao de aplicaes na Internet, de forma transparente e independente da plataforma. Foi desenvolvido pela Netscape Communications em sua verso inicial em julho de 1994. Em abril de 1995 foi lanada a referncia para implementao da verso 2 (sendo distribudo junto os Browsers Netscape e Internet Explorer e os servidores web mais comuns - Apache, NCSA httpd, IIS2, Netscape Server dentre outros), apoiado pela Verisign e Sun, transformando-se em um padro em e-commerce, tendo a sua especificao submetida ao grupo de trabalho W3C3 (especificao disponvel em um draft do IETF com o nome de TLS - Transaction Layer Security) [14].
1 2

RAS: Remote Access Service IIS: Internet Information Service 3 W3C: World Wide Web Consortium

66

Captulo 4 Provendo segurana nos protocolos de comunicao

Em novembro de 1995 foi lanada a verso 3 do SSL, tendo como melhorias a diminuio no nmero de rodadas de negociao, a escolha das cifras e compresso por parte do servidor, um suporte mais completo para a troca de chaves de algoritmos de cifragem, a possibilidade de renegociao das cifras em uso e a separao das chaves de autenticao e criptografia. Embora as diferenas entre o TLSv1 e o SSLv3 no sejam grandes, so suficientes para que eles no possam interoperar diretamente. Caso seja necessrio, o TLSv1 pode emular o SSLv3 [14]. A proposta do SSL permitir a autenticao de servidores, criptografia de dados, integridade de mensagens e, como opo, a autenticao do cliente, operando nas comunicaes entre aplicativos de forma interopervel. Visa garantir os seguintes objetivos: Segurana criptogrfica para o estabelecimento de uma ligao segura entre duas mquinas/aplicativos, assegurando a privacidade na conexo, com a utilizao de algoritmos simtricos (como o DES ou RC4) que negociam uma chave secreta na primeira fase do handshaking (usando chaves pblicas assimtricas); Autenticao do Servidor (opcionalmente tambm do Cliente) por meio de algoritmos assimtricos como o RSA ou o DSS1; Confiabilidade na conexo, conseguida com o uso de Cdigos de Autenticao de Mensagens (MAC). O SSL tambm permite a montagem de um framework onde outras chaves pblicas e mtodos de criptografia podem ser utilizados, evitando a necessidade de implementao de toda uma pilha de protocolos (com os riscos da introduo de fraquezas). Como uma vantagem adicional, a questo do desempenho foi levada em considerao no projeto para reduzir o nmero de conexes e minimizar o trfego na rede, opcionalmente pode ser usado um esquema de cache em memria durante o estabelecimento da sesso, com a finalidade de reduzir o nmero de conexes e reduzir a atividade no acesso a rede. O SSL atua entre as camadas transporte (TCP) e aplicao, sendo independente do protocolo de alto nvel podendo ser executado sob HTTP, Telnet, FTP, SMTP e outros, de forma transparente [14]. Ele implementa duas novas camadas, sobre o TCP/IP, conforme apresentado na Figura 4.5.

DSS: Digital Signature Standard

Captulo 4 Provendo segurana nos protocolos de comunicao

67

Camadas dos Protocolos TLS e SSL

Aplicao

HTTP

FTP

Telnet

Outro

Handshake Layer SSL/ TLS Record Layer

Handshake

Change Cipher Spec

Alert

Record

Transporte

TCP/IP

Figura 4.5 Camadas Implementadas pelos protocolos SSL e TLS

SSL Handshake Protocol: Faz a autenticao entre cliente e servidor, cuidando da inicializao da comunicao, permitindo a negociao do algoritmo de criptografia e as chaves criptogrficas iniciais. Utiliza as chaves assimtricas para fazer a negociao inicial, abrindo um canal seguro para o envio da chave simtrica de sesso, criada de forma aleatria. Opera sobre o Record Layer. Todas as mensagens da negociao utilizam o MAC e funes de hash (como SHA, MD5 e outras) para aumentar a segurana do processo inicial. A ordem das mensagens absoluta e seus contedos so manuseados pela Record Layer. Ao estabelecer a conexo, o Handshake Protocol estabeleceu o identificador de sesso, o conjunto criptogrfico (cypher suite) a ser adotado e o mtodo de compresso a ser utilizado. O conjunto criptogrfico negociado define trs algoritmos: Um algoritmo para troca de chaves; Um algoritmo para cifragem de dados, e Um algoritmo para insero de redundncia nas mensagens.

68

Captulo 4 Provendo segurana nos protocolos de comunicao

SSL Change Cipher SPEC Protocol: Sinaliza as transies nas estratgias de cifragem. Constitui-se de uma nica mensagem que pode ser transmitida tanto pelo cliente como pelo servidor para notificar que os prximos blocos utilizaro chaves criptogrficas recm negociadas. SSL Alert Protocol: Acompanham os erros na Record Layer, fazendo troca de mensagens para sinalizar problemas com a seqncia de mensagens, erros de certificao ou criptografia. SSL Record Layer Protocol: Encapsula as camadas de nvel mais alto (quando conjugado com o HTTP, implementa o HTTPS), provendo os seguintes servios: Fragmentao (transforma blocos de dados em registros SSLPlaintext de, pelo menos, 224 bytes) Compresso, (transforma os registros SSLPlaintext em registros SSLCompressed, utilizando os algoritmos negociados no handshake). Autenticao de mensagem, acrscimo do MAC e nmero seqencial (antes da criptografia). Criptografia (as funes definidas no handshake so definidas na mensagem SSLCipherSpec e so utilizadas para transformar o SSLCompressed em SSLCiphertext). A comunicao iniciada pelo estabelecimento de uma sesso, caracterizada pelo Estado da Sesso e o Estado da Conexo. O Estado de Sesso constitudo pelos seguintes elementos: Session Identifier: Uma seqncia arbitrria de bytes escolhida pelo servidor para identificar a sesso. Peer certificate: Certificado do peer (opcionalmente pode ser nulo). Compressiom Metod: Algoritmo utilizado na compresso. Cipher Spec: Especifica o algoritmo usado na criptografia (null, DES entre outros) e um algoritmo MAC (MD5 ou SHA). Master Secret: Uma chave secreta de 48 bytes trocada entre cliente e servidor. Is Resumable: Flag que indica se a sesso pode ser utilizada em outras conexes. O Estado de Conexo constitudo pelos seguintes elementos: Server and Client Random: Seqncia de bytes aleatrios escolhidos pelo servidor e cliente a cada conexo. MAC Secret: Segredo usado nas operaes MAC na escrita de dados. Write Key: Chave de criptografia usada pelo cliente e servidor para criptografar e descriptografar.

Captulo 4 Provendo segurana nos protocolos de comunicao

69

Inicialization Vetors: Utilizados no algoritmo de criptografia. Sequence Numbers: Utilizados no algoritmo de criptografia. Na Tabela 4.2 temos um resumo dos algoritmos disponveis utilizados no SSL verso 3. Algoritmos DSS, DHE_DSS, DHE_RSA, DH_anonymous, Fortezza/DMS NULL, RC2, RC4, IDEA, DES, 3DES, Fortezza NULL , SHA , MD5 X.509 v1, X.509 v2, X.509 v3 Definio de chave de criptografia Implementao da funo de Hash para definio do MAC Certificados Utilizao

NULL, RSA, Diffie-Hellman RSA, Diffie-Hellman Troca de chaves de sesso, durante o handshake

Tabela 4.2 Descrio dos algoritmos disponveis utilizados pelo SSL

O sucesso do SSL se deve ao fato de ser um dos protocolos mais convenientes e utilizados para implementao de transaes seguras. Sua implementao relativamente simples, colocando-se o SSL no topo da pilha TCP/IP e substituindo as chamadas TCP pelas chamadas SSL [14]. Trabalha independente das aplicaes utilizadas e, aps o handshake inicial, comporta-se como um canal seguro que permite que se execute todas as funes que normalmente esto disponveis no TCP/IP. Outro fator importante a disponibilidade de primitivas necessrias para conexes seguras, a saber: autenticao, troca de chaves de sesso com o uso de criptografia assimtrica prvia, criptografia com mtodos simtricos, MAC e certificao. O IETF1 est trabalhando na sua padronizao formal, denominada TLS, que ser apresentada na seo 4.1.4.

4.1.4 TLS
O protocolo TLS (Transport Layer Security), descrito na RFC 2246, tem por objetivo prover privacidade e integridade de dados entre duas aplicaes que utilizam redes pblicas/abertas como meio para comunicao. o padro do IETF e o sucessor do Netscape SSL, sua construo foi baseada no SSL v3, no fundo o TLS no difere muito do SSL v3, eles no so compatveis, mas em termos de
1

IETF: Internet Engineering Task Force

70

Captulo 4 Provendo segurana nos protocolos de comunicao

segurana, no h nenhuma diferena. O TLS nada mais do que uma padronizao do SSL v3. Hoje o TLS suportado pela maioria dos navegadores, por exemplo, o Internet Explorer 5.0 [25]. um protocolo independente da aplicao, ou seja, outros nveis de protocolo podem estar acima do TLS de forma transparente. As decises sobre como iniciar o TLS e como interpretar os certificados de autenticao trocados entre as partes da comunicao, ficam a cargo da aplicao que executa acima do TLS. Permite que aplicaes cliente-servidor comuniquem-se prevenindo: escuta de conversas privadas, modificao das mensagens sem permisso e cpia ilegal de mensagens [08]. O protocolo est composto por duas camadas: a camada de gravao (TLS Record Protocol) e a camada de Handshake (TLS Handshake Protocol) que podem ser vistas na Figura 4.5. Existem poucas diferenas entre os protocolos SSL v3 e TLS v1. A principal delas que o TLS utiliza o algoritmo Keyed-Hashing for Message Authentication Code (HMAC), enquanto que o SSL v3 utiliza o algoritmo Message Authentication Code (MAC). O HMAC gera um valor para a verificao da integridade assim como o MAC gera, mas com a construo utilizando a funo de hash torna-se muito mais difcil de ser quebrada e violada.

4.1.5 L2TP
Projetado pela Cisco Systems e, posteriormente, homologado pelo IETF como protocolo padro, o L2TP baseia-se no Layer Two Forwarding (L2F) para solucionar os problemas do PPTP, sendo considerado o seu herdeiro [33]. Algumas caractersticas, como a utilizao do PPP para fornecer o acesso remoto e a operao em ambientes como o NetBEUI e o IPX, so mantidas do PPTP. Da mesma forma que o PPTP, o L2TP um protocolo baseado no PPP. Uma das diferenas entre o L2TP e o PPTP est no protocolo utilizado na camada inferior. Enquanto o PPTP deve ser sempre utilizado acima do IP, o L2TP pode utilizar um conjunto de outros protocolos inferiores, como o PPP, o IP e o Frame Relay. Sob o ponto de vista da segurana da comunicao, o L2TP, diferentemente do PPTP, no possui servios de cifragem e integridade de dados, porm as informaes iniciais, relativas ao processo de autenticao dos dois extremos do tnel so protegidas, enquanto que no PPTP os parmetros podem ser livremente obtidos.

Captulo 4 Provendo segurana nos protocolos de comunicao

71

Outra diferena visvel em relao a seu predecessor quanto a forma de autenticao, pois ela feita em dois nveis, no primeiro, o usurio autenticado pelo provedor de acesso antes do tnel ser instalado e, no segundo, quando a conexo estabelecida entre os roteadores [23]. Sendo um protocolo padro, qualquer fabricante pode criar produtos que utilizem o L2TP, de forma que provedores de acesso e consumidores em geral no dependam de produtos fornecidos por uma nica empresa. Apesar de ser atual, o L2TP apresenta como desvantagem no possuir um mecanismo eficiente de encapsulamento, ou seja, para executar esta tarefa, ele necessita do protocolo IPSec, que ser explicado posteriormente, para que juntos possam garantir a segurana da VPN [23] [34].
Encapsulamento de pacote IP feito pelo L2TP agregando segurana

Cabealho IP

Cabealho ESP

Cabealho IP

Cabealho UDP

Cabealho L2TP

Cabealho IP

Cabealho TCP

Dados

Cifragem ESP

Figura 4.6 Encapsulamento de um pacote IP feito pelo L2TP sob a proteo do cabealho ESP do IPSec.

Dado que o L2TP no foi projetado para a configurao de ambientes seguros, seu uso em cenrios onde existe uma rede no confivel, como a Internet, entre os extremos de um tnel, deve sempre ser combinado com outros protocolos capazes de suprir a sua ausncia de servios de segurana. Um conjunto de propostas tem sido desenvolvido para conciliar o uso do L2TP com o IPSec. Quando executado sobre o IP, o L2TP transportado atravs do UDP, desta forma, a aplicao da proteo do IPSec sobre o L2TP pode basear-se simplesmente no uso de seletores que filtram o trfego L2TP. importante notar que a combinao do tunelamento do IPSec com o L2TP resulta na criao de dois tneis, um para cada protocolo. A Figura 4.6 baseada em [23] exibe o encapsulamento de um pacote TCP feito pelo L2TP sendo utilizado sobre o IP protegido pelo ESP1. Um problema na integrao do L2TP com o IPSec a impossibilidade do segundo levar em considerao os valores dos campos de pacotes IP encapsulados pelo primeiro [33]. Outros
1

ESP: Encapsulated Security Payload

72

Captulo 4 Provendo segurana nos protocolos de comunicao

procedimentos de interao entre os dois protocolos tm sido sugeridos no intuito de prover o desenvolvimento de solues para aspectos ainda no padronizados do IPSec. Uma das propostas sugere, por exemplo, o L2TP como protocolo para a troca de informaes relativas s polticas de segurana entre um host e um roteador IPSec. Apesar destas solues serem prticas e de baixo custo, pelo fato do protocolo L2TP j ser um padro definido, existem crticas severas quanto ao uso de um protocolo que no foi projetado para ambientes seguros na execuo de procedimentos vitais para um protocolo de segurana como o IPSec.

4.1.6 IPSecurity (IPSec)


O projeto IPSec representa um esforo desenvolvido pelo Working Group IPSec do IETF para desenvolver uma arquitetura de segurana para o protocolo IP e tem como objetivos [07] [05]: Criar uma infra-estrutura de rede segura providenciando proteo nos cabealhos de dados e de chaves; Reduzir a preocupao de implementar mecanismos de segurana nas aplicaes; Compatibilizar o seu funcionamento com mecanismos de segurana j existentes e utilizados por aplicaes; Evitar problemas de exportao de criptografia; Ser parte integrante do protocolo IPv6 e poder ser aplicvel ao IPv4. Atravs dos seus componentes, o IPSec usa este conceito para permitir a implementao de redes virtuais privadas (VPNs) e seguras atravs de redes pblicas tais como a Internet [07] [05], representa uma arquitetura para o protocolo IP, integrando mecanismos de autenticao, gesto e distribuio de chaves que podem ser usados com qualquer das verses do protocolo IP. So utilizados como mecanismos de autenticao dois cabealhos de extenso especficos do protocolo IPv6: o cabealho de Autenticao (Authentication Header) e o cabealho de encapsulamento de dados de segurana (Encapsulating Security Payload Header). Alm destes dois cabealhos, o IPSec define tambm o conceito de associao de segurana que um conjunto de diretivas que permite negociar algoritmos de criptografia que ir utilizar. Uma associao de segurana representa uma relao entre duas ou mais entidades que se comunicam e descrevem quais os mecanismos de segurana dever utilizar para estabelecer uma comunicao segura. A associao de segurana permite negociar protocolos, algoritmos de criptografia e chaves a usar e contm informao sobre:

Captulo 4 Provendo segurana nos protocolos de comunicao

73

Algoritmo e modo de autenticao que aplicado ao cabealho de autenticao; Chaves usadas no algoritmo de autenticao; Algoritmo, modo e criptografia utilizados no cabealho de encapsulamento de dados de segurana, ESP; Chaves usadas no algoritmo de criptografia do cabealho de encapsulamento de dados; Chaves de autenticao usadas com o algoritmo que faz parte da transformada ESP; Tempo de vida da chave; Tempo de vida da associao de segurana; Endereo(s) fonte da associao de segurana; Nvel de sensibilidade dos dados protegidos. Na prtica, uma associao de segurana representada por um ndice de parmetros de segurana - Security Parameter Index (SPI) - com um endereo IP destino. O SPI um campo que surge nos cabealhos de segurana IPv6 (AH e ESP), que no criptografado na transmisso, j que a sua informao essencial para decifrar a informao transmitida. Quando uma entidade quiser estabelecer uma associao de segurana, utiliza um SPI e um endereo destino (pertencente a entidade com que deseja estabelecer comunicao segura) e envia essa informao entidade com que quer estabelecer o canal seguro, assim, para cada sesso de comunicao autenticada entre dois ns, so necessrios dois SPI - um para cada sentido, dado que cada associao de segurana unidirecional. O IPSec apresenta uma estrutura bastante flexvel, que no obriga a utilizao de algoritmos de autenticao ou criptografia especficos, deste modo o IPSec pode interagir com as normas mais recentes. No entanto, dada a necessidade de segurana, o IETF definiu alguns algoritmos para serem utilizados: HMAC-MD5 e HMAC-SHA-1 para autenticao (quer no cabealho AH, quer no ESP); DES-CBC1, para a criptografia usada no cabealho ESP. O IPSec integra gesto manual de chaves. A gesto da responsabilidade de protocolos criados para este fim, tais como o SKIP, da Sun Microsystems, ou o Photuris, (acrnimo em latim para o desenvolvido por Phil Karn, ou ainda o protocolo Internet Key Exchange, IKE) [07]. Na medida em que estes cabealhos so cabealhos de extenso que iro ser adicionados a um cabealho IP, os encaminhadores podem interpret-los como fazendo parte integrante dos dados, o que
1

DES-CBC: Data Encryption Standard-Cipher Block Chaining

74

Captulo 4 Provendo segurana nos protocolos de comunicao

permite a compatibilidade destes mecanismos com equipamento que compreende o protocolo IP mas no o IPSec. Os componentes da IPSec so: Cabealho de Autenticao (AH) Cabealho de Encapsulamento de Dados de Segurana (ESP) Mecanismos de Gesto de Chaves

4.1.6.1 Cabealho de Autenticao (AH)


O cabealho de autenticao, apresentado na Figura 4.7, representa um cabealho de extenso do protocolo IPv6 e foi criado para validar a identidade de entidades que esto se comunicando, ou seja, identifica o emissor e destino corretos. Deste modo pode ser utilizado para verificar se o emissor que afirma ter enviado os dados exatamente quem afirma ser [07]. Este cabealho foi desenvolvido de modo a providenciar mecanismos de autenticao aos datagramas IP. Porm este cabealho por si s no fornece proteo contra ataques de anlise de trfego ou confidencialidade, sendo para tal usado normalmente em conjunto com o cabealho de encapsulamento de dados. Prximo Cabealho ndice de Parmetros de Segurana (SPI) Nmero de seqncia Dados de Autenticao
Figura 4.7 Cabealho de autenticao (AH)

Tamanho do Mdulo

Reservado

4.1.6.2 Cabealho de Encapsulamento de Dados de Segurana (ESP)


O cabealho de encapsulamento de dados de segurana (ESP), mostrado na Figura 4.8, um cabealho de extenso pertencente ao protocolo IPv6 que fornece integridade e confidencialidade aos datagramas IP atravs da cifra dos dados contidos no datagrama. responsvel pela criptografia dos dados e inserido entre o cabealho IP e o restante do datagrama. Desta forma, os campos de dados so alterados aps serem criptografados. Juntamente com o ESP, segue o SPI para informar ao recipiente do pacote como proceder para abertura apropriada do contedo do mesmo.

Captulo 4 Provendo segurana nos protocolos de comunicao

75

Um contador no ESP informa quantas vezes o mesmo SPI foi utilizado para o mesmo endereo IP de destino. Esse mecanismo previne um tipo de ataque no qual os pacotes so copiados e enviados fora de ordem, confundindo assim os ns de comunicao. Todo o restante do pacote, com exceo a parte de autenticao, criptografado antes de ser transmitido. Os algoritmos de criptografia mais utilizados so o DES (Data Encryption Standard) e o 3DES (Triple Data Encryption Standard) e protocolos proprietrios de fabricantes. O ESP tambm pode ser utilizado para autenticao, com o campo opcional destinado para esse fim. O somatrio de verificao (checksum) computado sobre todo o ESP, com exceo do campo de autenticao e o seu comprimento varia de acordo com o algoritmo utilizado. A autenticao do ESP diferente da fornecida pelo AH, porque no protege o cabealho IP que precede o ESP, embora proteja um cabealho IP encapsulado no modo Tnel. O AH, por sua vez, protege este cabealho externo, juntamente com todo o contedo do pacote ESP. As duas autenticaes no so utilizadas simultaneamente por questo de economia de processamento. A utilizao do ESP pode ser efetuada de dois modos: Modo de Transporte (transport-mode). Prov proteo principalmente no que tange aos protocolos da camada superior. utilizado na maioria dos casos em comunicaes ponto-a-ponto entre dois ns, por exemplo, um cliente e um servidor. Este modo criptografa a informao do protocolo da camada de transporte, adicionando-lhe em seguida um novo cabealho IP no-criptografado, deste modo torna-se vantajoso em redes relativamente pequenas, nas quais o(s) servidor(es) e n implementam o IPSec ; Modo de Tnel (tunnel-mode). Prov proteo ao pacote IP. Para tal, aps a adio dos campos ESP ao pacote IP, todo o pacote tratado como o mdulo de dados de um novo pacote IP. Assim, pode ser usado para enviar dados criptografados atravs de um tnel, o que permite enviar dados independentemente da infra-estrutura utilizada. Um exemplo o envio de pacotes IP atravs de canais virtuais criados numa rede IP pblica, como a Internet. Atravs deste modo, pode ser fornecida segurana a um grupo de ns que no implementem o IPSec. ndice do parmetro de segurana (SPI) Vetor de inicializao Dados de payload padding Medida do pad Payload type
Figura 4.8 Formato do cabealho de encapsulamento de dados de segurana (ESP)

76

Captulo 4 Provendo segurana nos protocolos de comunicao

A Figura 4.9 demonstra os componentes de um pacote original IP e os modos de transporte e tnel.

Encapsulamento de dados de segurana (ESP)

IPv4

Cabealho IP Original

TCP ( a ) Pacote IP Original autenticado criptografado

Dados

IPv4

Cabealho IP Original

Cabealho ESP

TCP

Dados

Trailler
ESP

ESP Auth

( b ) Modo de transporte autenticado criptografado Novo IPv4 Cabealho IP Cabealho ESP Cabealho IP Original TCP Dados ( c ) Modo tnel

Trailler
ESP

ESP Auth

Figura 4.9 Componentes dos pacotes em modo IP original, transporte e tnel em ESP

4.1.6.3 Mecanismos de Gesto de Chaves


Alm dos mecanismos de autenticao e validao da informao o IPSec necessita de um mecanismo eficiente de gesto de chaves. A gesto de chaves diz respeito a criao, eliminao e alterao das chaves. Embora o IPSec no integre um mecanismo de gesto de chaves, o IETF definiu como norma de gesto o protocolo hbrido ISAKMP/Oakley tambm denominado IKE, Internet Key Exchange, que se encontra baseado nos documentos [07]: ISAKMP - Internet Security Association and Key Management Protocol. Protocolo que descreve uma infra-estrutura para a gesto de associaes de segurana; Oakley - protocolo que define o conjunto de chaves para cifra, hashing e autenticao e compatvel com a gesto de associaes de segurana ISAKMP; Internet Domain of Interpretation - define parmetros ISAKMP para as associaes de segurana IPSec no domnio Internet;

Captulo 4 Provendo segurana nos protocolos de comunicao

77

Resoluo ISAKMP/Oakley - define o perfil do protocolo hbrido ISAKMP/Oakley, escolhido como norma de gesto de chaves criptogrficas pela Internet Engineering Task Force; IKE - Internet Key Exchange. O IKE utiliza a porta 500 UDP para interagir com os demais mecanismos de segurana IPSec atravs de associaes de segurana para diversos protocolos e associaes de segurana. Desta forma permite uma utilizao transparente para associar diferentes mecanismos de segurana sem envolver as entidades participantes na comunicao. O IKE agrupa funcionalidades dos protocolos ISAKMP (mensagens) e Oakley (modos). Quando uma entidade pretende estabelecer comunicao segura, passa pelas fases IKE que so: Fase 1: esta fase ocorre num meio inseguro. Tem o objetivo de estabelecer um canal seguro que ir proteger as trocas da Fase 2. executada uma vez para vrias fases 2; Fase 2: esta fase ocorre no canal seguro criado na fase 1. As suas negociaes tm o objetivo de estabelecer as associaes de segurana que iro proteger a comunicao. Aps estas duas fases, encontra-se estabelecido um canal seguro atravs do qual se pode efetuar comunicao segura. Existem ainda outros protocolos de gesto de chaves com os quais o IPSec pode interagir, por exemplo o SKIP e o Photuris [07].

4.2 Protocolos de autenticao


A autenticao importante quando uma corporao oferece acesso em sua rede privada, atravs de uma rede pblica como a Internet a funcionrios que esto em trnsito, e que, precisam acessar a rede para atualizar ou consultar informaes vitais [32]. O usurio distante, com o cliente de autenticao instalado em seu computador, tenta uma conexo com um endereo dentro da rede protegida pelo mecanismo servidor de autenticao, esse por sua vez, verifica que o computador remoto tem o cliente de autenticao e que possu uma regra vlida na estratgia de segurana, subseqentemente, o servidor fornece o acesso, entretanto, o acesso vlido para um perodo limitado de tempo, depois do qual o processo de autenticao ser requerido novamente. Neste trabalho comenta-se sobre dois deles, o RADIUS e o KERBEROS, pois tratam-se dos principais mtodos utilizados atualmente em produtos comerciais, principalmente quando estamos trabalhando com plataformas UNIX ou Windows.

78

Captulo 4 Provendo segurana nos protocolos de comunicao

4.2.1 Protocolo RADIUS


Baseado em um modelo de segurana distribuda previamente definido pelo IETF, o RADIUS prov um sistema de segurana Cliente/Servidor aberto e escalvel. O servidor RADIUS pode ser adaptado facilmente para trabalhar com produtos de segurana de terceiros ou em sistemas de segurana proprietrios. Qualquer mecanismo de comunicao, seja um software ou um hardware que utilize o protocolo cliente RADIUS pode se comunicar com um servidor RADIUS [32]. O RADIUS autentica atravs de uma srie de comunicaes entre o cliente e o servidor. Uma vez que o usurio autenticado, o cliente proporciona a ele, o acesso aos servios apropriados. Os passos envolvidos no processo do RADIUS podem ser descritos da seguinte forma: O PortMaster1 cria um pacote de dados com as informaes e o chama de pedido de autenticao. Este pacote inclui a informao que identifica o PortMaster especfico que envia o pedido de autenticao, a porta que est sendo usada para a conexo de modem, identificao do usurio e a senha. Para proteger os dados de hackers que possam estar escutando a conexo, o PortMaster age como um cliente RADIUS e codifica a senha antes que seja enviada em sua jornada ao servidor RADIUS . Quando um pedido de autenticao recebido, o servidor de autenticao valida o pedido e ento decifra o pacote de dados para ter acesso a identificao do usurio e senha. Esta informao passada para o sistema de segurana apropriado. Se o usurio e senha estiverem corretos, o servidor envia um reconhecimento de autenticao que inclui informao sobre o usurio e as exigncias dos servios. Por exemplo, o servidor RADIUS contar para o PortMaster que um usurio precisa do Protocolo PPP (ponto-a-ponto) para se conectar a rede. O reconhecimento pode tambm, conter filtros, com informaes sobre os limites de acesso do usurio para os recursos especficos na rede. Se o usurio e a senha no estiverem corretos, o servidor RADIUS envia um sinal ao PortMaster e o usurio ter o acesso negado a rede. Uma vez que a informao recebida pelo PortMaster, o servidor RADIUS envia uma chave de autenticao, ou assinatura, se identificando para o cliente RADIUS e permitindo ento, a configurao necessria para que os servios de envios e recepes personalizados, funcionem para o usurio autenticado.

Portmaster: usualmente utilizado para autenticao RADIUS, pode ser um hardware especfico (como Livingston RADIUS Server) ou software atravs de uma mquina rodando UNIX.

Captulo 4 Provendo segurana nos protocolos de comunicao

79

4.2.2 Protocolo KERBEROS


KERBEROS um servio de autenticao distribudo que permite que um cliente, atravs de um usurio, fornea sua identidade a um servidor de autenticao, passando em seguida por um verificador de sesso, para que ento, estabelea a transferncia das informaes com o host destino, evitando assim, a violao da conexo estabelecida. Esse protocolo foi desenvolvido em meados dos anos 80 como parte do Projeto do MIT Athena. Hoje em dia, uma das solues para os problemas de segurana em rede, pois fornece ferramentas de autenticao e criptografia para trabalhos em redes pblicas como a Internet [32]. Muitos dos protocolos usados na Internet no provem segurana. Ferramentas que varrem senhas fora da rede so usadas em brechas de sistemas. Assim, aplicaes que enviam senha sem criptografia pela rede Internet so extremamente vulnerveis. Contudo, em muitas aplicaes Cliente/Servidor que so desenvolvidas e implementadas, no dada a devida ateno sobre os aspectos de segurana e autenticao. Alguns administradores tentam usar Firewalls para resolver os problemas de segurana de rede. Infelizmente, os Firewalls assumem que os acessos ruins esto todos do lado de fora da rede, o que freqentemente uma suposio muito ruim. Existem muitos usurios e colaboradores em trnsito, que em geral, possuem restries para usar a rede interna, pois os mecanismos de segurana vo descartar suas tentativas de acesso no autorizadas. O sistema KERBEROS usa ingressos eletrnicos para autenticar um usurio para um servidor. Um ingresso s bom para um nico servidor e um nico usurio durante um certo perodo de tempo e para uma mensagem codificada que contm o nome do usurio, o seu servidor, o endereo da rede do servidor do usurio, um selo de tempo e uma chave de sesso, uma vez que o usurio adquire este ingresso, ele pode usar isto para ter acesso ao servidor quantas vezes forem necessrias at que o ingresso se expire, o usurio no pode decifrar o ingresso, mas pode apresent-lo ao servidor. Com isso, escutas clandestinas no podem violar o ingresso quando este estiver em curso na rede Internet [32]. O protocolo KERBEROS envolve dois servidores, um de autenticao e o outro TGS1 que concede os ingressos. Os passos envolvidos no processo do protocolo KERBEROS esto descritos a seguir.

TGS: Ticket-Granting Service

80

Captulo 4 Provendo segurana nos protocolos de comunicao

Autenticao do protocolo Kerberos


TGS

Kerberos

Servio

4 5

Cliente
Figura 4.10 Passos no processo da autenticao do protocolo Kerberos

1 ) Obter um ingresso para um servidor designado. O usurio primeiro pede ao servidor de autenticao KERBEROS um ingresso para o KERBEROS TGS. Este pedido leva a forma de uma mensagem que contm o nome do usurio e o nome do TGS (pode haver vrios); 2 ) O servidor de autenticao verifica o usurio em seu banco de dados e ento gera uma chave de sesso para ser usada entre o usurio e o TGS. KERBEROS codifica esta chave de sesso que usa a chave de segredo do usurio (processo de uma s direo com senha do usurio). Ento cria um TGT1 para o usurio apresentar ao TGS e codifica o TGT usando a chave de segredo do TGS (que s conhecido pelo servidor de autenticao e o servidor TGS). O Servidor de Autenticao envia de volta as mensagens codificadas ao usurio; 3 ) O usurio decifra a primeira mensagem e recupera a chave de sesso. Logo, o usurio cria um autenticador que consiste em seu nome, seu endereo de rede e um selo de tempo, tudo codificado com a chave de sesso gerada pelo servidor de autenticao KERBEROS. O usurio ento envia o pedido ao TGS para fazer ingresso a um servidor designado. Este pedido contm o nome do servidor, o TGT KERBEROS (que foi codificado com o a chave de segredo do TGS) e o autenticador codificado;

TGT: Ticket-Granting Ticket

Captulo 4 Provendo segurana nos protocolos de comunicao

81

4 ) O TGS decifra o TGT com sua chave secreta e ento usa a chave de sesso includa no TGT para decifrar o autenticador. Compara a informao do autenticador com a informao do ingresso, o endereo da rede do usurio com o endereo foi enviado no pedido e o tempo estampado com o tempo atual. Se tudo se emparelhar, permite a continuao do pedido. O TGS cria uma chave de sesso nova para o usurio e o servidor final com esta chave em um ingresso vlido para o usurio apresentar ao servidor. Este ingresso tambm contm o nome do usurio, endereo da rede, um selo de tempo e um tempo de vencimento para o ingresso, que foi codificado com a chave de segredo do servidor designado e o seu nome. O TGS tambm codifica a nova chave de sesso designada que vai ser compartilhada entre o usurio e o TGS. Envia ambas as mensagens de volta ao usurio; 5 ) O usurio decifra a mensagem e a chave de sesso para uso com o servidor designado. O usurio est agora pronto para se autenticar com o servidor. Ele cria um autenticador novo codificado com a chave de sesso de usurio e servidor final que o TGS gerou. Para pedir acesso ao servidor final, o usurio envia junto ao ingresso recebido de KERBEROS (que j codificado com a chave de segredo do servidor designado) o autenticador codificado. O autenticador contm o texto plano codificado com a chave de sesso, prova que o remetente sabe a chave. Da mesma maneira importante codificar o tempo, para prevenir que terceiros que tentem registrar o ingresso e o autenticador possam usar as informaes em futuras conexes; 6 ) O servidor designado decifra e confere o ingresso e o autenticador, tambm confere o endereo do usurio e o selo de tempo. Se tudo confirmar, o servidor sabe agora que o usurio que esta reivindicando o acesso realmente ele. A partir deste instante podem usar a chave de criptografia para comunicao segura. (Como s o usurio e o servidor compartilham esta chave, eles podem assumir que uma recente mensagem codificou aquela chave originada com a outra chave anterior); Para aplicaes que requerem autenticao mtua, o servidor envia para o usurio uma mensagem que consiste no selo de tempo mais 1 (t+1), codificada com a chave de sesso. Isto serve como prova ao usurio que o servidor soube da sua chave secreta de fato e pde decifrar o ingresso e o autenticador [32]1.

Nota: O protocolo RADIUS adequado em sistemas de servios remotos discados, enquanto o KERBEROS, pode ser utilizado

atravs de qualquer tipo de conexo. A autenticao um dos pontos forte na segurana de qualquer sistema, pois tem a finalidade de atravessar os mecanismos de segurana para autenticar o usurio, autorizando ou no a sua conexo [32].

82

Captulo 4 Provendo segurana nos protocolos de comunicao

Concluso
Os protocolos seguros apresentados neste Captulo representam o resultado de um grande esforo realizado pelas diversas instituies de pesquisas, empresas e em muitos casos pessoais, com objetivo de proporcionar a realizao de uma comunicao segura atravs de um canal vulnervel. Neste sentido pode-se afirmar que j existem ferramentas suficientes para ficarmos mais tranqilos quando acessamos a rede local do trabalho utilizando um computador remoto para navegarmos na Internet, utilizar o correio eletrnico ou mesmo aplicaes que acessam a base de dados. A segurana da informao depender de um conjunto de iniciativas que tanto o administrador quanto o cliente dos sistemas tenham condies e possam aplicar e conhecer estes mecanismos.

Captulo 5
Solues de segurana para aplicaes Cliente/Servidor
No captulo anterior vimos que os protocolos se modernizaram para agregar segurana ao meio. Deste modo pde-se criar mecanismos de baixo custo para integrar redes geograficamente distantes, atendendo aos anseios de boa parte das empresas e instituies. Entretanto apenas os protocolos seguros no fornecem todos os subsdios para que as aplicaes do tipo Cliente/Servidor tenham sucesso. necessrio atender tambm as limitaes impostas pelos Sistemas Operacionais, sejam eles livres ou proprietrios, utilizados nas estaes de trabalho ou em servidores da rede. Para exemplificar questes relacionadas a segurana da informao e autenticidade do usurio, ser apresentado neste Captulo um estudo de caso real, utilizando uma aplicao comercial do tipo ERP gerado para administrar informaes relacionadas a rea Administrativa que manipula dados principalmente de Recursos Humanos. Este software foi desenvolvido por uma empresa brasileira com mais de 500 clientes espalhados pelo Pas. O produto est baseado na arquitetura Cliente/Servidor e faz acesso ao banco de dados relacional. Em seguida mostraremos algumas das tcnicas utilizadas para interligar a parte cliente de uma aplicao aos seus respectivos servidores. Finalmente so expostas quais as solues encontradas para que estas aplicaes possam executar suas tarefas, independente da tecnologia de enlace fsico utilizado, tendo garantido os requisitos de compatibilidade entre os Sistemas Operacionais dos envolvidos na comunicao, a segurana da informao e tambm da identidade atravs da autenticao do usurio.

83

84

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

5.1 Um estudo de caso


Nos Captulos anteriores foram definidos e apresentados os elementos que so envolvidos numa comunicao do tipo Cliente/Servidor, partiremos para uma anlise prtica tendo como base softwares desenvolvidos por empresas para fins comerciais e utilizados principalmente nas reas administrativas de empresas privadas ou pblicas. O Produto utilizado em nosso estudo de caso um pacote de aplicativos, desenvolvido no Brasil e de propriedade de uma empresa nacional. composto por arquivos do tipo binrios executveis, arquivos de ajuda, arquivos de parametrizao entre outros e, cada mdulo possui funcionalidades especficas. Para facilitar o entendimento da composio do Produto, pode-se comparar sua estrutura com o Produto Office da Microsoft, pois ele bastante conhecido. O Microsoft Office um conjunto de aplicaes modulares e com funes definidas como Editor de Texto, Planilhas de Clculo Eletrnico, Software para Apresentaes e outros menos conhecidos que se inter-relacionam. O Produto de nosso estudo de caso, estruturalmente possui o mesmo conceito do MS-Office. As funcionalidades esto divididas em mdulos, mas seus aplicativos possuem tarefas muito mais complexas. So aplicaes que manipulam informaes de carter gerencial e na maioria dos casos sigilosas, como por exemplo: Administrar os dados do funcionrio da empresa/instituio, calcular a folha de pagamento com base na legislao do pas e processos relacionados a Administrao de Pessoal. Tambm possui funcionalidades como gerar arquivos com dados da empresa e funcionrios para envio rgos federal e estaduais, fazer o controle de treinamentos da empresa, administrar os recursos financeiros, emitir relatrios gerenciais entre outras tarefas. Portanto trata-se de um produto de administrao de Recursos Humanos. importante citar o fato que a empresa mantm duas verses de seus aplicativos. Alm da verso Cliente/Servidor, existe a verso para WEB, porm esta no possui todas as funcionalidades e facilidades que a primeira oferece. A verso WEB utilizada principalmente para consultas aos dados pessoais e disponibiliza poucas rotinas destinadas a manuteno administrativa dos dados, como entrada de dados de freqncia de funcionrios, relatrios administrativos simples entre outros. Por uma questo profissional no sero divulgados os nomes das empresas fornecedoras dos softwares, pois o objetivo deste trabalho acadmico, dando nfase aos conceitos que envolvem a segurana e apresentao de solues para este problema na plataforma de execuo da aplicao.

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

85

A Tabela 5.1 apresenta as principais caractersticas do produto. Tipo de Arquitetura Cliente/Servidor Linguagem de programao do produto Gerenciadores Suportados Comunicao com Banco de Dados Parametrizao do produto Protocolo de comunicao em Rede Plataforma utilizada para Clientes Plataforma utilizada para Servidores Utiliza-se da BDE1 instalada no cliente Realizada atravs de arquivos armazenados no servidor TCP/IP e NETBEUI (sobre TCP/IP) Windows Windows 2000/2003 Server (arquivos do produto) e/ou UNIX com Apache WebServer para arquivos WEB Observao: Existe tambm a verso WEB para este produto, porm esta no possui todas as funcionalidades da verso C/S e to pouco funciona em qualquer plataforma, mesmo que trabalhe com o protocolo TCP/IP (Internet). Isso se explica pelo fato das pginas conterem cdigos utilizando tecnologia CSS2 e tambm controles ActiveX3.
Tabela 5.1 Descrio do Produto utilizado no estudo de caso

Centrada

no

Cliente

(Figura

2.3)

para

verso

Cliente/Servidor Borland Delphi 5.0 de Banco de Dados Oracle, IBM DB2 ou Informix

Na Figura 5.1 demonstrado o cenrio real mnimo de comunicao da verso Cliente/Servidor do produto.

1 2

BDE: Borland Database Engine CSS: (Cascading Style Sheets), so modelos desenvolvidos para que possibilitam controlar e melhorar a apresentao e o layout de elementos HTML nas pginas WEB 3 ActiveX: So componentes de software definidos para interagir entre com outros componentes com tecnologia Java ou Microsoft Component Object Model (COM) em um ambiente de rede

86

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

Cenrio de interao Cliente/Servidor do Produto


2 3
Cliente com o mdulo CLIENT do Produto, mais Oracle Client

Servidor com o mdulo SERVER do Produto

Servidor com Oracle Database Server

Figura 5.1 Cenrio mnimo do Produto verso Cliente/Servidor

A descrio completa da seqncia de atividades necessrias pela aplicao, apresentadas na Figura 5.1, esto expostas na Tabela 5.2. Etapa Atividade 1 Ao ser iniciado, o mdulo SERVER inicia alguns servios personalizados instalados no Windows 2000/2003 Server, dentre eles esto o servio que verifica a conexo com o Banco de Dados e o gerenciador de conexes dos clientes, que fica aguardando requisies dos clientes do Sistema, pois somente se estes servios estiverem ativos que os clientes conseguiro se comunicar e ter acesso aos arquivos e a base de dados pelo mdulo Cliente 2 Com o mdulo SERVER j iniciado, o Cliente, atravs da verso CLIENT do produto instalado no desktop, envia os dados criptografados para autenticao no sistema (usurio/senha) atravs da rede 3 O mdulo SERVER recebe as informaes e verifica se o usurio/senha esto corretos com os dados armazenados na base de dados, bem como os privilgios que este usurio ter sobre o Produto. Nesta etapa podem ser desabilitadas algumas funcionalidades para restringir o uso 4 O banco de dados Oracle Client instalado no cliente abre uma sesso com o servidor de banco de dados atravs dos parmetros definidos na BDE. Por este canal sero transmitidas todas as informaes que so requisitadas atravs de comandos SQL do Produto ao servidor de banco de dados

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

87

Etapa Atividade 5 O servidor do banco de dados atende s solicitaes do mdulo Client atravs do canal estabelecido
Tabela 5.2 Descrio das Etapas do Cenrio de interao do produto

Uma observao importante: utilizado como exemplo neste estudo de caso o banco de dados Oracle 9i, lembrando que este pode ser substitudo por qualquer um outro mostrado na Tabela 5.1. A Tabela 5.3 mostra quais as funcionalidades exercidas em cada um dos mdulos do produto. Cliente Servidor

Armazena uma cpia dos arquivos Binrios Armazena os arquivos fundamentais para execuo Executveis dos mdulos e demais associados do Sistema nos Clientes. Estes so divididos em (*.ini, *.hlp etc). Servidor, no momento da primeira execuo eles so novamente copiados para os clientes. Todo o processamento (clculo de folha de pagamento, fechamento de freqncia dos funcionrios, execuo de relatrios e outros) ocorre NO CLIENTE, portanto um produto com arquitetura centrada no cliente (Figura 2.3). As informaes processadas pelo Servidor de Banco de Dados so transferidas diretamente ao Cliente. diretrios com funcionalidades especficas, como Modelos de Relatrios (da Empresa e Quando h atualizaes destes arquivos no por exemplo: Personalizados) Regras para clculos em geral (folha de pagamento, freqncia de funcionrios, entre outros) Modelos de Telas do Sistema (da Empresa ou Personalizados) Arquivos Binrios Executveis do Sistema (*.exe) e demais arquivos associados aos mdulos (*.ini, *.hlp e outros)

O Cliente precisa acessar os arquivos do Produto responsvel por manter os servios de conexo e atravs de uma conexo de rede que possua o abertura e fechamento das sesses com os Clientes protocolo NETBEUI (nativo ou sobre TCP/IP) do Produto. Deve permitir que os clientes tenham acesso a estes arquivos atravs da rede, esta tarefa realizada utilizando-se o protocolo NETBEUI (nativo ou sobre TCP/IP)
Tabela 5.3 Descrio das atribuies do Cliente e do Servidor no produto

88

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

Por se tratar de um produto voltado para instalao em plataformas Windows 2000/2003 Server, os arquivos do Sistema (parte Servidor) geralmente so instalados no mesmo servidor onde os Servios do Produto esto. Opcionalmente pode-se ter uma configurao onde os usurios acessam os arquivos atravs de um outro Servidor UNIX que possua a funcionalidade de compartilhar arquivos para estaes Windows, neste caso o software de domnio pblico SAMBA1. Na Figura 5.2 demonstrado o cenrio de interao adequado para implantao do produto com integrao entre redes distintas. importante observar que todas as interaes da Figura 5.1, que tambm faz parte da soluo, esto ocultas, mostradas apenas pelas setas verde e vermelha.

Cenrio de interao Cliente/Servidor do Produto atravs de redes distintas


Rede A Rede B

Clientes do Produto

Roteador/ Firewall

Roteador/ Firewall

Servidor de Domnio e WINS

Clientes do Produto

Servidor de Arquivos do Produto

Servidor com Oracle Database Server

Figura 5.2 Cenrio do Produto verso Cliente/Servidor numa rede Windows

O problema estaria totalmente resolvido se no fosse a questo do trfego de dados pela rede, dependendo da configurao do cenrio (verso do banco de dados e sistema operacional no servidor, por exemplo) pode-se ter srios problemas com os dados, que muitas vezes, estaro passando abertamente pela rede, sem nenhum tipo de criptografia. As solues para este e outros problemas, sero discutidas mais adiante, no Captulo 6, bem como as opes para soluo completa do problema.

SAMBA: Aplicao desenvolvida para possibilitar a utilizao de servidores UNIX o uso de protocolo SMB, como conseqncia a integrao com redes MS-Windows. http://www.samba.org

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

89

5.1.1 Anlise de problemas encontrados no Cenrio


Embora o cenrio parea simples, existem problemas relacionados a segurana da informao que necessitam serem analisados cuidadosamente, antes que o processo de implantao deste tipo de produto se inicie nas empresas ou em instituies pblicas. Obviamente no sero abordadas as questes dos valores referentes aos custos de manuteno de uma estrutura como a apresentada. O importante expor o Produto do ponto de vista tcnico, onde existem problemas no que tange ao uso do protocolo de comunicao padro para acesso aos arquivos, sua utilizao em uma rede de computadores e tambm a questo da segurana dos dados que iro trafegar durante esta comunicao. Numa situao real, so raros os casos em que todos os elementos apresentados no cenrio da Figura 5.1 faam parte da mesma rede local. Mesmo em tal situao, todos os usurios precisam estar autenticados sob um domnio Windows ou SAMBA, deste modo garante-se a identificao dos usurios do sistema atravs de seu SID1 ou conta no servidor UNIX/SAMBA. Caso contrrio, todos os clientes que precisaro acessar os arquivos compartilhados no servidor da aplicao, necessitaro ser autenticados novamente (pois j o so quando fazem o logon na estao de trabalho) atravs de uma nova conta, gerada pelo administrador do servidor. Esta opo torna-se invivel em todos os aspectos. Do ponto de vista da segurana tem-se uma quantidade de contas no servidor indesejvel, pois a medida em que novos usurios so cadastrados, maiores so as possibilidades para um atacante realizar suas investidas, aproveitando-se da vulnerabilidade do protocolo de comunicao principal. A questo da administrao torna-se mais complexa, pois alm das tarefas usuais para manter a aplicao em funcionamento, ter como atribuio adicional a administrao das contas de usurios e os servios relacionados como criao de polticas de acesso, privilgios, rotinas para substituio de senhas perdidas entre outras, amplamente conhecidas pelos administradores de sistemas.

5.1.1.1 Vulnerabilidades do cenrio autenticidade do usurio


Para que a aplicao funcione de forma transparente, ou seja, sem que o usurio necessite se autenticar toda vez que precisa acessar os arquivos da aplicao que esto no servidor remoto, todos os usurios, que possuam a verso Cliente do Produto, devem ter condies de mapear uma unidade de

SID: Security Identifier, vide item 6.1.1

90

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

disco remoto (como o NFS1 no UNIX) no servidor de arquivos. Isso geralmente implica em uma reestruturao da rede, juntamente com o modo como os usurios so autenticados. Por se tratar de uma aplicao executada apenas em estaes de trabalho MS-Windows. necessrio que estes usurios sejam cadastrados e autenticados por um servidor de domnio Windows NT 4.0 ou SAMBA. Para algumas empresas/instituies que estejam mais adiantadas e com conhecimentos definidos pode-se utilizar tambm a estrutura de Diretrio Ativo presente na verso do Windows 2000/2003 Server. Sem esta estrutura, um atacante pode simplesmente monitorar o canal de comunicao e capturar os pacotes que trafegam na rede com as informaes para autenticao no servidor. Existe para isso uma srie de ferramentas shareware e freeware disponveis na Internet. Estes pacotes, caso no utilizem protocolos seguros, trazem informaes valiosas como nome do usurio, nome do diretrio compartilhado pelo servidor e em alguns casos a senha de acesso com a criptografia padro das redes Microsoft. Um bom atacante possui ferramentas capazes de realizar ataques com a utilizao de dicionrios de senhas ou mesmo de fora bruta, que menos eficiente, pois faz uma anlise combinatria de uma srie de caracteres. No inteno deste documento apresentar como estas ferramentas funcionam, mas em testes realizados, podem afirmar que so muito eficientes, principalmente quando utilizadas em redes mal estruturadas ou compartilhadas. Se em uma destas contas ele conseguir o acesso, o que provvel se no houver uma poltica de senha que garanta parmetros mnimos para tamanho de senha, por exemplo, ele pode ter acessos as informaes da aplicao e ainda tornar-se um administrador do servidor, o que seria um desastre. A soluo para este problema simples, com a utilizao de tcnicas que permitam a integrao dos domnios MS-Windows e o uso de protocolos seguros. Estas tcnicas e as solues viveis sero abordadas no Captulo 6.

5.1.1.2 Vulnerabilidades do cenrio segurana na comunicao cliente/servidor


O segundo ponto a ser abordado na verdade uma conseqncia do primeiro. Como observado anteriormente, dificilmente teremos todos estes elementos numa mesma rede local. Ocorre que a maioria das instalaes prev os servidores em redes distintas, protegida da melhor maneira possvel, isso inclui mudanas nas regras dos firewalls nas entradas destas redes, pois agora eles precisam
1

NFS: Network File System

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

91

permitir que as portas utilizadas pelo produto (incluindo NETBEUI e Banco de Dados), estejam liberadas para todos os clientes. Mais uma vez o administrador se depara com problemas de segurana, pois as portas necessrias so conhecidamente fontes para ataques automatizados. Sniffers, como so conhecidos os programas que vasculham e escutam a rede, podem varrer todas as portas de um computador a procura de falhas ou brechas que permitam a instalao e execuo de programas maliciosos. No se pode esquecer que a aplicao utiliza bancos de dados relacionais para efetuar suas transaes, deste modo necessrio tambm configurar estes softwares para trabalharem com algoritmos de autenticao e criptografia, desta forma, independente do protocolo utilizado no meio de transmisso, os dados relativos a base de dados esto protegidos contra acessos indevidos e, informaes utilizadas para conexo e execuo de rotinas no banco de dados trafegam de forma ilegvel. As medidas utilizadas para evitar o trfego em claro so apresentadas no Captulo 6 deste trabalho.

5.1.1.3 Vulnerabilidades do cenrio segurana nas estaes de trabalho


O terceiro problema encontrado est no Cliente. Em nada adiantar possuir toda a segurana necessria no Servidor, se as estaes no oferecem o mnimo de segurana. Por uma questo de carter obrigatrio, todas as estaes precisam de Sistemas Operacionais da plataforma MS-Windows que por default trabalham com o protocolo NETBEUI. Neste sentido importante lembrar que a maioria dos ataques que ocorrem nos Sistemas Operacionais Windows 95/98 tem por objetivo capturar os arquivos *.pwl. A razo muito simples, quando um usurio conectado a um domnio ou no se identifica no desktop o Sistema Operacional gera automaticamente um arquivo (usurio).pwl e o grava no diretrio padro do Sistema Operacional, em geral C:\WINDOWS. O problema que a criptografia utilizada neste procedimento muito simples e existem dezenas de programas disponveis na Internet, um exemplo o PWLVIEW ou PWLTools (http://lastbit.com/vitas/pwl.asp), que podem resolver este problema para alguns hackers de planto. Em virtude destes fatos, no apropriada a utilizao destes Sistemas Operacionais. Aconselhase utilizar as verses mais modernas do Sistema Operacional Windows, como o 2000 Profissional ou XP Profissional que implementam algoritmos criptogrficos mais eficientes.

92

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

5.1.2 Anlise da Aplicao verso WEB


No final da Tabela 5.1, foram apresentadas algumas caractersticas da verso WEB deste mesmo produto, o objetivo agora mostrar com mais detalhes os elementos e o funcionamento desta verso. A Figura 5.3 ilustra um cenrio da verso WEB, colocando o WebServer e os arquivos do Produto em mquinas separadas, no entanto, comum encontrar um ambiente em que as empresas, em geral, instalam toda a parte WEB do Produto em apenas um servidor, escolhendo como WebServer o servio web nativo da Microsoft denominado IIS1. Outro motivo que leva a esta configurao o fato da customizao dos servios do produto, muito mais fcil que na verso com Unix/Apache, por exemplo.

Cenrio de iterao da verso WEB do Produto


Rede B Rede A

Internet
Cliente com Browser (adequado)

WebServer (com IIS ou Apache)

Servidor de Arquivos WEB do Produto

Figura 5.3 Cenrio do Produto verso WEB

A interao entre cliente e servidor do produto ocorre normalmente com o protocolo http, porm devido a algumas caracterstica e tecnologias utilizadas na construo da verso WEB, tanto o cliente quanto o servidor devem satisfazer algumas premissas que so mostradas na Tabela 5.4.

IIS: Internet Information Service

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

93

Cliente Necessita de browsers que suportam as tecnologias de pginas CCS e controles ActiveX Deve permitir o estabelecimento de conexes FTP de modo ativo para receber os relatrio atravs do browser

Servidor Devem possuir um software para publicao de pgina para Internet, geralmente o IIS da Microsoft ou o Apache (software Livre). Necessita do servio de FTP de modo ativo habilitado, pois esta a maneira como os arquivos de relatrio gerados pelo Produto so transmitidos aos browsers dos Clientes. Armazenam os arquivos do Produto e tambm os temporrios em um diretrio que precisa ser compartilhado para uma rede Windows, pois o programa de atualizao da verso do sistema precisa acessar estes arquivos para substitu-los. Faz o controle da quantidade de instncias ativas de cada mdulo (informado pela empresa e conforme o contrato)
Tabela 5.4 Descrio das atribuies do Cliente e do Servidor no produto para WEB

evidente que o Produto, da maneira como est apresentado para WEB, ter problemas de segurana, mas neste momento o objetivo apenas expor suas caractersticas. A soluo para a verso WEB tambm ser discutida no Captulo 6 deste trabalho.

5.2 Tecnologias viveis para soluo do estudo de caso


Em vista do cenrio apresentado, verifica-se a necessidade pela busca por solues que atendam os seguintes requisitos: Segurana no trfego entre o cliente e o servidor, tanto para a aplicao quanto para o acesso ao banco de dados. Autenticidade da identidade do usurio de forma a garantir o no repdio Transparncia para o uso da aplicao, escondendo-se a complexidade da estrutura montada.

94

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

Atualmente existe uma srie de tecnologias que podem ser empregadas para a soluo deste problema, as principais sero expostas a seguir e sua aplicao efetiva na soluo tratada no Captulo 6 desta dissertao.

5.2.1 VPN (Virtual Private Network)


VPN a sigla das palavras Virtual Private Network. Pode-se definir VPN como uma rede de dados privada que utiliza a infra-estrutura pblica de telecomunicaes, mantendo a confidencialidade e integridade dos dados. Atravs de uma VPN cria-se uma conexo segura entre duas redes ou entre dois hosts, pelo encapsulamento dos pacotes dentro de um outro protocolo, formando um tnel onde os dados so transmitidos criptografados. Em geral, a implementao de uma VPN exige alteraes nos hosts envolvidos. O usurio enxerga como se estivesse conectado diretamente a sua rede privada, embora o servio realmente use a infra-estrutura pblica para implementar a conexo [24]. Em termos prticos, esta tecnologia permite que uma organizao estenda seus servios de rede sobre a Internet para usurios remotos, filiais e companhias associadas. As motivaes para uso de VPNs so inmeras, mas podemos dizer que economia e comunicao segura so as principais. As VPNs devem prover quatro pontos crticos para garantir a segurana dos dados [29]: Autenticao assegurar que os dados se originam da mesma fonte que alegam Controle de acesso restringir usurios no autorizados de acessar a rede Confidencialidade impedir qualquer um de ler ou copiar dados que trafegam pela rede Integridade assegurar que ningum adultere os dados que trafegam pela rede. Para conferir estas caractersticas VPN, foram desenvolvidas diversas tecnologias de conectividade e segurana. Existem muitas maneiras de se definir o que uma VPN; descrever uma VPN baseando-se em seus componentes pode ser muito difcil, uma vez que esta pode ser criada de diversas formas. Uma VPN constituda de equipamentos, software, protocolos de comunicao e algoritmos de criptografia, integridade e autenticao. Tambm constituda de conexes, usurios e polticas de segurana, para realizar a tarefa de criar uma comunicao segura sobre uma rede pblica.

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

95

Talvez a melhor forma de descrever uma VPN seja defini-la a partir de sua funo: estabelecer uma rede privada e confivel de dados entre dois ou mais pontos, sobre uma rede pblica no confivel, de baixo custo operacional. A Internet uma rede pblica e considerada insegura, pois todas as informaes esto sujeitas a interceptao. A VPN vem de encontro a essa necessidade de segurana dentro da rede. Ela permite a interligao das redes locais de uma empresa que esto em regies geogrficas diferentes, utiliza a prpria rede pblica para fazer a interligao, mas o canal seguro e ajustvel as necessidades da empresa em questo. Na Figura 5.4 tem-se um exemplo de uma VPN que pode interligar redes que esto fisicamente em cidades distintas.

Esquema de uma VPN


Campinas Rio de Janeiro

Internet
Rede Local Firewall/ Concentrador VPN Canal virtual seguro Firewall/ Concentrador VPN Rede Local

Figura 5.4 Diagrama esquemtico de uma possvel configurao VPN

5.2.1.1 Tipos de VPN


As VPNs podem ser classificadas de acordo com diversos critrios: segurana, topologia e tecnologia so alguns deles. Quanto a segurana, as VPNs podem ser confiadas, seguras ou hbridas. VPN Confiada Antes de a Internet ser largamente utilizada para trfego de dados pelas empresas, as VPNs eram constitudas de um ou mais circuitos alugados de um provedor de servios de dados. Cada circuito funcionava como parte da rede controlada pelo cliente, o que permitia que eles tivessem suas prprias polticas de administrao de rede, como segurana e endereamento IP. Nessa arquitetura, o cliente confiava ao provedor de acesso a integridade e confidencialidade dos dados. O provedor de servios, por sua vez, deveria garantir que o acesso aos circuitos era restrito apenas aos clientes que os alugavam.

96

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

VPN Segura Com a popularizao da Internet como meio de comunicao de dados, a segurana se tornou uma preocupao muito maior. Por definio, a Internet no tem dono, nem canais ou circuitos que pertenam apenas a um provedor de servios, o que complica a utilizao da VPN confiada. Assim, os fabricantes de equipamentos de telecomunicaes comearam a trabalhar em protocolos que permitissem a encriptao e decriptao dos dados nas pontas, independente de sua transmisso pela Internet. A rede transmitiria o dados como outro qualquer. Esses dados funcionam como um tnel entre as duas pontas: mesmo que um intruso tenha acesso a eles durante a transmisso, no poder l-los e qualquer modificao fraudulenta nos dados ser detectada na recepo. VPN Hbrida Em geral, os mesmos provedores que vendiam servios de VPNs confiadas, vendem tambm acesso Internet. A perda de receita com a migrao dos clientes para VPNs seguras fez com que os provedores passassem a oferecer servios de VPNs seguras sobre a Internet. Nesses casos, a responsabilidade pela segurana dos dados dividida entre o cliente, que deve adotar polticas de segurana (senhas, por exemplo), e o provedor, que deve administrar corretamente seus equipamentos e sistemas de segurana. O cliente confia a segurana de seus dados ao provedor, mas o provedor no tem acesso aos mesmos. As VPNs hbridas recebem esse nome por apresentarem caractersticas tanto de VPNs confiadas quanto de VPNs seguras. Quanto a topologia, as VPNs podem ser LAN-to-LAN, Client-to-LAN ou mistas. LAN-to-LAN VPNs com topologia LAN-to-LAN interligam duas ou mais LANs1 atravs de tneis criados sobre uma rede pblica de dados. So como rotas seguras estabelecidas entre redes locais, e podem ser utilizadas, por exemplo, em substituio a uma WAN2, embora sem as restries geogrficas impostas por esta; as redes locais no precisam estar localizadas na mesma cidade, ou no mesmo pas, para serem interligadas por uma VPN conforme mostrados na Figura 5.4.

1 2

LAN: Local Area Network WAN: Wide Area Network

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

97

Client-to-LAN Nessa topologia, clientes remotos individuais utilizam tneis VPN para se conectarem a rede corporativa. Pode ser usada, por exemplo, por tcnicos, executivos ou vendedores em campo, que precisem de uma conexo com a rede da empresa independentemente de sua localizao. Mistas Nessa topologia, redes locais podem ser interligadas tanto a outras LANs quanto a clientes remotos.

5.2.1.2 Componentes de uma VPN baseada em Internet


So quatro os componentes de uma rede privada baseada em Internet: a prpria Internet, segurana dos gateways, poltica de segurana dos servidores e certificados de autoridades. Internet A Internet providencia o meio de transmisso. Os gateways seguros so posicionados entre as redes pblicas e privadas e so eles: roteadores, firewalls, hardware para VPN ou software para VPN. Roteadores Os roteadores examinam e processam todos os pacotes que saem da LAN, o que os torna candidatos naturais para fazer a criptografia dos pacotes. Os vendedores de servios de VPN baseados em roteadores normalmente oferecem duas solues: ou um componente de software ou uma placa de circuitos adicional, com um co-processador para criptografia. Esta ltima recomendada para situaes que requerem grande fluxo de dados. A utilizao de roteadores para criptografia pode ajudar a manter os custos de uma VPN baixos, se estes equipamentos fazem parte da rede j instalada, entretanto, pode aumentar a severidade dos downtimes se o roteador cair, a VPN tambm cai. Firewalls Muitos fabricantes de firewalls incluem a capacidade de tunelamento em seus produtos. Como os roteadores, os firewalls tambm precisam processar todo o trfego IP, e decidir quais pacotes sero aceitos ou barrados. Essa tarefa j exige muito processamento do firewall, que, portanto no o melhor elemento para fazer o tunelamento em VPNs de grande capacidade. A utilizao de firewalls para fazer VPNs pode ser interessante, principalmente em redes de pequena capacidade, pois diminui custos operacionais e com equipamento, assim como nos roteadores, quando a VPN feita no firewall, uma falha neste ltimo ir afetar tambm VPN.

98

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

Hardware para VPN Outra soluo para VPN a utilizao de hardware especfico, desenhado para fazer tunelamento, criptopgrafia e autenticao dos dados. Esses equipamentos so normalmente inseridos entre os roteadores e os links das WANs e, apesar de a maioria desses produtos ser destinada a VPNs LAN-to-LAN, alguns suportam tambm conexes de clientes. A utilizao de hardware especializado apresenta algumas vantagens sobre as outras solues: em primeiro lugar, elimina-se o ponto nico de falha na rede, caso haja algum problema com o equipamento. Outro ponto o alto desempenho, e a possibilidade de integrao de outros servios ao gateway de segurana, como gerenciamento de banda e priorizao de trfego na VPN. Servidor de polticas de segurana Alm do gateway de segurana, outro componente importante de uma VPN o servidor de polticas de segurana. Esse servidor mantm as listas de controle de acesso e outras informaes relacionadas aos usurios que o gateway de segurana usa para determinar qual trfego autorizado. Autoridades Certificadoras Autoridades certificadoras so necessrias para verificar a autenticidade das chaves compartilhadas entre os sites e podem tambm ser usadas para verificar indivduos, atravs da utilizao de certificados digitais. As instituies/empresas podem utilizar um servidor corporativo de certificados digitais, deste modo ter seu prprio banco de dados de certificados digitais. Se a VPN tambm utilizada como Extranet, pode ser necessria a utilizao de entidades certificadoras externas, para verificar a identidade dos parceiros comerciais que acessam a rede.

5.2.2 Relaes de Confiana (Trust Relationship)


Relao de confiana o nome que se d a tcnica que proporciona ao usurio, devidamente autenticado em um servidor (confivel), ter acesso ao um outro servidor (confiante) sem que esta autenticao seja novamente necessria atravs de uma conta especfica ou um novo login, pois este confia na autenticao realizada pelo confivel [16]. primeira vista parece um pouco confuso, mas a idia simples e aplicada em diversos tipos de ambientes computacionais, principalmente em servidores UNIX e Windows, cada qual com sua particularidade para implementao. uma tcnica que precisa ser realizada com muito cuidado, conforme pode-se perceber, pois se um atacante conseguir, com sucesso, uma autenticao em um servidor vulnervel, ter acesso a todos

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

99

os servidores com os quais possui relao de confiana, e tambm as recursos disponveis deste(s) servidor(es). A diferena entre o modelo de relacionamento de confiana em servidores Unix e Windows est no fato que no Windows NT Server os relacionamentos de confiana so estabelecidos entre domnios, j no Unix podem ser estabelecidos entre hosts [19]. Cada relacionamento de confiana configurado como uma relao unidirecional, no recproca e no transitiva. Isto significa que o fato de um domnio A estar configurado para confiar em um domnio B no implica que o domnio B ir confiar no domnio A. Tal condio exigiria a configurao de um segundo relacionamento de confiana, no qual fossem invertidos, isto , o domnio B confiasse explicitamente no domnio A. Da mesma forma, o relacionamento de confiana estabelecido entre dois domnios no estendido a outros domnios pelo fato de haverem relacionamentos de confiana adicionais. Assim se o domnio A confia em B e supomos que B confie em um terceiro domnio C, no ser estabelecido com isso que A confia em C. Isso s aconteceria se fosse criado um relacionamento de confiana entre os domnios A e C. Uma vantagem do relacionamento de confiana que podem simplificar o gerenciamento de contas e direitos de acesso em redes complexas, proporcionando uma estrutura mais escalvel e possibilitado o emprego de mtodos de administrao distribuda [19].

100

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

Relao de Confiana entre domnios (Windows)


Domnio A Rede
Clientes Windows NT Server Unix com SAMBA Server Clientes

Domnio B

Domnio Confiante

Domnio Confivel

Relao de Confiana entre hosts (UNIX)


Confiana unidirecional rhosts e hosts.equiv Host A
l ciona bidire ana i Conf

Host B

Host C

Figura 5.5 Esquema de Relao de Confiana em ambientes Windows e Unix

Na Figura 5.5 mostra que possvel interligar domnios utilizando servidores Unix com o SAMBA Server instalado com controladores de domnio Windows NT Server. J para se criar uma relao de confiana entre hosts UNIX necessrio alterar alguns arquivos do sistema operacional como os arquivos rhosts e hosts.equiv. Com o surgimento da famlia Windows 2000 Server tambm surgiu um novo modelo da Microsoft para administrao do domnio e seus recursos denominado Active Directory. O Active Directory representa uma iniciativa para estabelecer um gerenciamento integrado de recursos, distinto e aperfeioado em relao quele oferecido pelo Windows NT, que dependia de relao de confiana para

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

101

integrao entre domnios. Com o Active Directory os relacionamentos de confiana so substitudos por uma representao unificada do conjunto de recursos disponveis em vrios domnios [19].

5.2.3 Certificao de Clientes e Servidores


De uma maneira simples, o Certificado Digital a verso eletrnica da sua identificao de usurio na rede (usurio e senha). O Certificado Digital como se fosse a carteira de identidade do usurio na rede. No Windows 2000/2003 Server, o certificado digital do usurio tambm conhecido (na documentao oficial), como um Certificado de chave pblica, uma vez que uma das informaes gravadas no certificado digital do usurio justamente a sua chave pblica [04]. Um certificado de chave pblica, geralmente chamado somente de certificado, uma declarao assinada digitalmente que vincula o valor de uma chave pblica a identidade da pessoa que pode ser a conta do usurio no Diretrio Ativo, dispositivo ou servio que contm a chave privada correspondente. Certificados podem ser emitidos para uma srie de funes, como autenticao de usurio na Internet, autenticao de um servidor web, correio eletrnico seguro (S/MIME), IPSec, para utilizao com o protocolo TLS e assinatura de cdigos. Os certificados digitais tem que ser emitidos por uma Autoridade Certificadora (Certificate Authority). Com o Windows 2000/2003 Server est disponvel o Microsoft Certificate Services, que um servidor que permite criar uma autoridade certificadora na prpria rede da empresa, sem ter que fazer uso de uma entidade certificadora externa. Ao utilizar o Certificate Services para a emisso e gerenciamento de certificados, os certificados digitais podero ser utilizados pelos usurios para fazer o logon na rede. Os certificados tambm so emitidos de uma autoridade de certificao para outra a fim de estabelecer uma hierarquia de certificao [04]. A maioria dos certificados em uso hoje atualmente so baseados no padro X.509. Esta a tecnologia fundamental usada na Public Key Infrastructure (PKI). Normalmente, os certificados contm as seguintes informaes: Chave pblica do usurio Informaes da identificao do usurio (como o nome e o endereo de correio eletrnico) Perodo de validade (o perodo de tempo em que o certificado considerado vlido) Informaes sobre a identificao do emissor do certificado. A assinatura digital do emissor, que atesta a validade da ligao entre a chave pblica do usurio e as informaes de identificao do usurio.

102

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

Um certificado s vlido pelo perodo de tempo nele especificado, ou seja, o certificado tem prazo de validade e tem que ser renovado periodicamente. Esta uma medida importante para garantir aumentar o nvel de segurana, pois a cada renovao, um novo par de chaves gerado [04]. Cada certificado contm datas Vlido de e Vlido at, que limitam o perodo de validade. Depois que o perodo de validade de um certificado terminar, um novo certificado deve ser solicitado pelo usurio do agora expirado certificado. Em situaes em que seja necessrio desabilitar um certificado, este pode ser revogado pelo emissor. Cada emissor mantm uma lista de certificados revogados (CRL Certification Revocation List), a qual usada pelos programas quando a validade de um determinado certificado est sendo verificada. Por exemplo, programas que usam certificados para autenticao, ao receberem uma tentativa de acesso, primeiro entram em contato com a autoridade certificadora (no caso do Windows 2003 Server um servidor com o Microsoft Certificate Service) para verificar se o certificado que est sendo apresentado para logon, no est na lista dos certificados revogados CRL. Se o certificado estiver na CRL, o logon ser negado.

5.2.3.1 Certificados e Autoridades de Certificao


Todo certificado emitido por uma Autoridade de Certificao. A autoridade de certificao, a partir de agora denominada apenas CA, responsvel pela verificao sobre a veracidade dos dados do usurio que est requisitando o certificado [04]. Uma autoridade de certificao uma entidade encarregada de emitir certificados para indivduos, computadores ou organizaes, sendo que os certificados que confirmam a identidade e outros atributos do usurio do certificado, para outras entidades. Ela aceita uma solicitao de certificado, verifica as informaes do solicitador e, em seguida, usa sua chave privada para aplicar a assinatura digital no certificado, caso aprovado, emite ento o certificado para que o usurio do certificado o use como uma credencial de segurana dentro de uma infra-estrutura de chave pblica (PKI). Uma autoridade de certificao tambm responsvel por revogar certificados e publicar uma lista de certificados revogados (CRL), ela pode ser uma empresa que presta o servio de autoridade certificadora ou ser uma autoridade de certificao criada para ser usada pela prpria organizao, instalando os Servios de certificados.

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

103

Cada autoridade de certificao pode ter requisitos diferentes de prova de identidade, como uma conta de domnio do Diretrio Ativo, crach de empregado, carteira de motorista, solicitao autenticada ou endereo fsico dentre outros. Verificaes de identificao como essa geralmente asseguram uma autoridade de certificao no local, de tal modo que as organizaes possam validar seus prprios empregados ou membros. As autoridades de certificao corporativas, como do Windows 2000/2003 Server, usam as credenciais da conta de usurio do Diretrio Ativo de uma pessoa, como prova de identidade. Neste exemplo, se um usurio tiver efetuado logon em um domnio do Windows 2000/2003 Server e solicitar um certificado de uma autoridade de certificao corporativa, a autoridade de certificao saber este usurio atravs do Diretrio Ativo, que vai dizer quem ele . Todas as autoridades de certificao tm um certificado para confirmar sua prpria identidade, emitido por outra autoridade de certificao confivel ou, no caso de autoridades de certificao raiz, emitido por elas mesmas. importante lembrar que qualquer pessoa pode criar uma autoridade de certificao, a questo real se voc, como um usurio ou um administrador, confia naquela autoridade de certificao e, por extenso, nas diretivas e procedimentos que ela emprega para confirmar a identidade dos certificados emitidos para entidades por essa autoridade de certificao. Em uma rede baseada no Windows 2000/2003 Server, o administrador tambm pode utilizar uma CA externa. Porm, com o uso do Microsoft Certificate Services, o administrador pode criar sua prpria autoridade certificadora. Este servio permite a criao de sofisticados ambientes de certificao, com a criao de uma hierarquia de CAs. Com o uso do Certificate Services podem ser criadas os seguintes tipos de autoridades certificadoras: Enterprise Root CA. Enterprise Subordinate CA. Standalone Root CA. Standalone Subordinate CA Enterprise Root CA Autoridade certificadora corporativa raiz: Um nico servidor pode ser configurado como Enterprise root CA em uma floresta de domnios. Este servidor ocupa o topo da hierarquia de autoridades certificadoras. Normalmente no utilizado para emitir certificados para usurios ou computadores, mas sim para autoridades certificadoras corporativas subordinadas. Os certificados para usurios e computadores so emitidos

104

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

pelas autoridades subordinadas. Com isso pode-se criar uma hierarquia de autoridades certificadoras, de tal maneira que a emisso de certificados seja efetuada por um servidor do prprio domnio do usurio. Outro detalhe importante que a autoridade certificadora raiz responsvel por assinar o seu prprio certificado (afinal no h nenhuma autoridade acima dela). Isso que caracteriza esta autoridade como uma autoridade certificadora raiz. Enterprise Subordinate CA Autoridade certificadora Corporativa subordinada: Para instalar uma autoridade certificadora corporativa subordinada, necessrio ter acesso ao certificado da autoridade certificadora corporativa raiz. O uso deste certificado que liga a autoridade certificadora que est sendo instalada, com uma autoridade subordinada a autoridade certificadora raiz, formando uma hierarquia de entidades certificadoras. Este tipo de autoridade pode emitir certificados para usurios e computadores do Diretrio Ativo ou para outras autoridades certificadores subordinadas de nveis mais baixos, aumentando desta maneira, o nmero de nveis da hierarquia de autoridades certificadoras. Stand-alone Root CA Autoridade certificadora autnoma raiz: Este tipo de autoridade certificadora no depende do Diretrio Ativo. Pode ser utilizado, por exemplo, para emitir certificados para parceiros de negcio e prestadores de servio, que precisam de certificados digitais para acessar determinadas reas da Intranet ou da Extranet da instituio. Uma vantagem adicional que um servidor configurado como autoridade certificadora autnoma raiz, pode ser desconectado da rede, como uma garantia adicional de segurana. Este tipo de autoridade certificadora tambm responsvel por emitir os certificados de registro das autoridades certificadoras autnomas subordinadas. Stand-alone Subordinate CA - Autoridade Certificadora Autnoma Subordinada: Este tipo de autoridade certificadora est subordinada a uma autoridade certificadora autnoma raiz. O processo normalmente o mesmo utilizado para o caso das autoridades certificadoras corporativas, ou seja, a autoridade certificadora autnoma raiz no utilizada para emisso de certificados para usurios e computadores, mas sim para a emisso de certificados para as autoridades certificadoras autnomas subordinadas. As autoridades certificadoras autnomas subordinadas que so responsveis pela emisso dos certificados para usurios e computadores. A existncia de uma autoridade certificadora significa que voc tem confiana de que a autoridade de certificao possui as diretivas corretas no local correto e ao avaliar as solicitaes de certificado, ir negar certificados para qualquer entidade que no atender a essas diretivas. Esta uma questo fundamental para garantir a identidade dos usurios.

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

105

Ao fazer uma verificao rigorosa dos dados informados, antes de emitir um certificado para um usurio, servidor ou computador, a CA garante que quem obtm o certificado realmente quem diz ser prova de identidade. Por isso a importncia fundamental de definir uma metodologia clara, simples e de fcil execuo, para a verificao dos dados, antes de emitir os certificados [04]. Para servios, computadores e usurios do Windows 2000/2003 Server, a confiana em uma autoridade de certificao estabelecida quando voc possui uma cpia do certificado raiz no armazenamento das autoridades de certificao raiz confiveis e tem um caminho de certificao vlido, significando que nenhum dos certificados no caminho de certificao foi revogado ou que seus perodos de validade expiraram. O caminho de certificao inclui todos os certificados emitidos para cada CA na hierarquia da certificao de uma CA subordinada para a CA raiz [04].

Concluso
Aps o surgimento dos protocolos seguros, o prximo passo seria dado se fosse encontrada uma maneira de considerar os canais pblicos ou abertos como um caminho de rede tambm seguro. E as instituies de pesquisa e esforos pessoais conseguiram uma maneira para soluo deste problema. Como principal resultado destas pesquisas e a que melhor representa este esforo a criao da tecnologia de VPNs. Podemos dizer que hoje, o leque de opes disponveis para implantao de uma aplicao Cliente/Servidor muito maior, independente do tipo de plataforma desejada, pois grande parte da soluo encontra-se disponvel como software livre e de cdigo aberto. Somando-se a isso temos o fato que podemos agregar diversas tcnicas para alcanar este objetivo. A exposio de um estudo de caso real, atravs de uma aplicao Cliente/Servidor proprietria, expe as principais caractersticas sobre como so desenvolvidas as aplicaes comerciais, utilizadas principalmente na plataforma MS-Windows. O conhecimento destas caractersticas pode oferecer subsdios suficientes, para que os administradores de sistemas possam tomar decises importantes no que tange aos mecanismos necessrios para implantao de produtos de software de forma integrada, transparente ao usurio e segura.

106

Captulo 5 Solues de segurana para aplicaes Cliente/Servidor

Em resumo, hoje existem mtodos, tecnologias e condies para se cumprir todos os requisitos que regem uma comunicao segura como disponibilidade, integridade, confidencialidade, autenticidade, no repdio e controle de acesso aos recursos.

Captulo 6
Propostas de solues para o estudo de caso
A proposta deste Captulo apresentar as diversas formas para solucionar os problemas relativos a segurana, escalabilidade e compatibilidade para a execuo da aplicao Cliente/Servidor, mostrada anteriormente em nosso caso de estudo no Capitulo 5. Os conceitos e mtodos seguros apresentados nos captulos 4 e 5 foram colocados em prtica. Algumas solues no puderam ser adequadas devido as particularidades da aplicao, outras se mostraram insuficientes ou de difcil administrao e, desta maneira, prejudicavam a utilizao da aplicao mesmo em ambientes homogneos (solues totalmente proprietrias ou software livre). Ao longo do desenvolvimento deste Captulo, sero apresentadas as propostas implementadas e analisadas, com a exposio da soluo adotada justificando-se suas razes, bem como os fatores que levaram a eliminao de algumas propostas.

6.1 Anlise das solues viveis


Devido as caractersticas da aplicao e seu modelo de construo, que no permite uma soluo completa com a utilizao de software livre, foi necessria uma srie de pesquisas e testes prticos. O objetivo foi avaliar, dentre as possveis solues, a que melhor pode ser aplicada, levando-se em considerao aspectos fundamentais para prover a segurana, a escalabilidade, a compatibilidade e a administrao do sistema.

107

108

Captulo 6 Propostas de solues para o estudo de caso

Para compreender como pde-se chegar a uma soluo necessrio rever alguns conceitos bsicos sobre autenticidade e segurana na plataforma MS-Windows. Deste modo, buscou-se solues existentes para esta plataforma, sem descartar a possibilidade da utilizao de outras. Ao longo dos ltimos 11 anos a Microsoft vem desenvolvendo seus sistemas operacionais para ambientes corporativos e servidores de grande porte. Uma prova disso a evoluo da famlia Windows NT Server at a concepo da famlia 2003 Server. Neste caminho muitas falhas de segurana e bugs na construo deste software desafiaram a capacidade desta plataforma de garantir a privacidade e a segurana da informao administrada por estes sistemas. Alm disso a famlia Windows NT no possui ferramentas nativas capazes de oferecer aos administradores recursos mais avanados para atender a demanda das novas aplicaes, muito mais abrangentes e que, em sua maioria, utilizam como protocolo padro TCP/IP e no mais protocolos proprietrios. Somando-se a isso tm o aspecto da mobilidade: a tendncia que os usurios do sistema estejam fisicamente fora de suas empresas/instituies e, portanto no estaro utilizando redes seguras. O acesso pode partir de qualquer parte onde exista um ponto de rede conectado a Internet. Em vista deste novo cenrio, a Microsoft incorporou a nova famlia de Sistemas Operacionais, funcionalidades e ferramentas capazes de aumentar o leque de opes para atender os requisitos de segurana e autenticidade. A partir da verso MS-Windows 2000 j possvel utilizar protocolos seguros, criar entidades certificadoras, utilizar e administrar informaes de um diretrio ativo e muito mais. com base nestas ferramentas novas, que se chegou a soluo do problema de implantao da nossa aplicao em estudo, contudo importante ressaltar algumas caractersticas que diferem esta plataforma das demais, incluindo principalmente o processo de autenticao do usurio e sua identificao na rede.

6.1.1 Provendo a autenticidade na plataforma MS-Windows


Para entendermos como podemos garantir a autenticidade de um usurio em redes organizadas atravs de domnios Windows, ou mesmo diretrio ativo, precisamos saber como realizado o processo para armazenar e autenticar os dados dos usurios do domnio ou do diretrio ativo. Todo acesso aos recursos do sistema (domnio, diretrio ativo ou na mquina local) baseado nas permisses do usurio. Esta conta pode pertencer a uma srie de grupos criados pelo administrador do sistema, diferentemente do que ocorre em sistemas UNIX [22]. Cada conta recebe uma identificao denominada SID (Security Identifier) com 28 bytes, gerenciado e armazenado pelo controlador do

Captulo 6 Propostas de solues para o estudo de caso

109

domnio ou diretrio ativo. A informao armazenada no registro da mquina controladora ou mesmo localmente, nos casos em que no est ligada a nenhum domnio ou diretrio ativo. Um algoritmo criptogrfico utilizado para codificar a informao, o padro para servidores Windows NT o protocolo NTLM1 e para servidores Windows 2000 Server o kerberos v5. Desta maneira temos conforme [22]: Campo Revision Count Top Level Auth. Subauth. Subauth. Subauth. Bytes 1 1 6 4 12 4 Valor 0x01 5 0x05 0x15 SECURITY_NT_AUTHORITY SECURITY_NT_NON_UNIQUE Identificador da mquina Identificador do usurio Observao Revision Number

Tabela 6.1 Distribuio dos 28 bits do SID

Uma cadeia alfanumrica armazenada no registro como abaixo. S-1-5-21-1179599015-1994013950-622671684 Sendo assim, quando um usurio faz o procedimento de logon na rede existe a interao mostrada na Figura 6.1 entre o cliente e o servidor do domnio ou diretrio ativo.
Winlogon
1

MSGINA
LPC 2

RPC 3

Netlogon

MSV1_0

rede
RPC
Base de usurios

Logon na rede Windows

LSASS MSV1_0 Mquina Local


Netlogon

Mquina Remota

Onde: LPC, Local Procedure Call MSGINA, Microsoft Graphical Identification and Authentication LSASS, Local Security Authority Subsystem Service RPC, Remote Procedure Call MSV1_0, chave armazenada no registro com informaes sobre segurana do computador.

Figura 6.1 Interao para autenticao de usurios em domnios Windows


1

NTLM: NTLanMan (Windows NT Lan Manager, Protocolo de Autenticao)

110

Captulo 6 Propostas de solues para o estudo de caso

Se a aplicao estiver em um ambiente integrado a um domnio Windows 2000, o esquema de autenticao utilizar novas bibliotecas e novos algoritmos para autenticar a informao, como por exemplo, o protocolo kerberos (Captulo 4, item 4.2.2). A base de dados de usurios, neste caso, passa a ser um objeto do Sistema Operacional.

6.1.2 Utilizao de protocolos seguros na plataforma MS-Windows


O meio mais eficaz para se garantir a segurana das informaes, que so trocadas entre o cliente da aplicao e o servidor, implementar um protocolo seguro, neste caso o protocolo adequado para esta finalidade o IPSec (item 4.1.6), devido as suas caractersticas e sua integrao com protocolo IP. Contudo no se pode esquecer que as estaes clientes so dotadas de sistemas operacionais desenvolvidos pela Microsoft, com suas caractersticas e limitaes. Sendo assim temos que levar em considerao todas as verses desenvolvidas para a plataforma IBM-PC de 32 bits que so: MS-Windows 95/98/Millennium e os derivados da plataforma Windows NT Server e Workstation, Windows 2000 Server/Professional, Windows XP Professional e Windows 2003 Server. Evidentemente nem todos os Sistemas Operacionais testados podem ser utilizados na soluo, pois a implementao do protocolo IPSec ocorre apenas nas verses para desktop do Windows 2000 em diante. Entretanto existem no mercado empresas que desenvolvem mecanismos para se implantar o protocolo IPSec em estaes de trabalho com Sistemas Operacionais mais antigos, porm no de forma nativa. Atravs do uso do protocolo IPSec, todo o trfego entre o cliente e o servidor ocorre de forma criptografada, incluindo os comandos utilizados no transporte SMB para acessar o diretrio remoto no servidor.

6.2 Anlise da soluo com a utilizao de VPN Microsoft


Uma das melhores maneiras para se agregar, ao mesmo tempo, segurana e autenticidade atravs do uso da VPN. Porm existe uma diferena fundamental entre o conceito de VPN para a plataforma da Microsoft e redes TCP/IP. A soluo de VPN da Microsoft um produto integrado ao Sistema Operacional, que atua na camada de enlace da arquitetura TCP/IP e, desta maneira, os clientes da VPN estabelecem um tnel atravs da rede utilizando o conjunto de protocolos L2TP/IPSec e PPTP da seguinte forma [41]:

Captulo 6 Propostas de solues para o estudo de caso

111

L2TP/IPsec, utilizado mtodos de autenticao PPP em nvel de usurio e autenticao IPSec em nvel de kernel para certificados e autenticao de dados, tambm integridade e criptografia PPTP, usando mtodo de autenticao PPTP em nvel de usurio e MPPE (Microsoft Point-toPoint Encryption) para criptografia de dados. Devido a estas caractersticas o uso da VPN torna-se limitado. Tipicamente os clientes da VPN so de acordo com [41]: Usurios com laptop que precisam conectar-se a Intranet da organizao para acessar e-mail e outros recursos atravs de redes externas ou inseguras. Pessoas que precisam utilizar a Internet para acessar os recursos da organizao atravs de redes domsticas. Administradores remotos que utilizam a Internet para conectar-se a uma rede da organizao e configurar redes, servios e aplicaes. Para se permitir o uso de aplicaes Cliente/Servidor em ambientes de VPN, todos os elementos envolvidos na comunicao devem fazer parte deste cenrio, ou seja, possuir endereos de rede distribudos pelo concentrador da VPN, conforme mostrado na Figura 6.2, pois o acesso aos recursos do servidor pelo cliente verificado atravs do seu SID.
Conexo VPN e Relacionamento de Confiana Unidirecional
Usurio autenticado na estao Maria Silva S-1-5-21-...-622671684

Servidor do Domnio

Servidor de Domnio Local

Servidor de arquivos

Internet
Canal virtual seguro Firewall/ Concentrador VPN

/aplicativo

Logon na VPN

Servidor de WEB

Figura 6.2 Cenrio da Soluo utilizando VPN Microsoft

112

Captulo 6 Propostas de solues para o estudo de caso

Do ponto de vista da segurana e da autenticidade o problema todo resolvido. Comprovadamente os protocolos e mtodos utilizados numa VPN atendem perfeitamente, entretanto existe a questo da administrao deste ambiente e tambm a escalabilidade. A adio de novos usurios ou grupos de usurios que podem acessar o recurso de disco /Aplicativo no servidor de arquivos, no ser problema, desde que o servidor de domnio/diretrio ativo esteja integrado a VPN. Faixas de endereos destinados a VPN devem ser reservados e conhecidos dos administradores, pois em caso de perda da conexo, o servidor local pode ser autenticado novamente na VPN com seu endereo de rede conhecido. Outro cuidado que se deve tomar com redes locais que utilizam classes reservadas de endereos da arquitetura TCP/IP atravs de NAT (Network Address Translation), uma vez que a maioria das VPNs so formadas por endereos de classe semelhante, o que no impede o uso de endereos reais, quando for o caso. Em virtude destes fatos, a administrao desta soluo torna-se algo complexo a medida em que novos clientes e servidores so adicionados. A questo da escalabilidade est intimamente ligada a questo da quantidade de clientes que utilizaro o Sistema, evidentemente existe um limite tanto de hardware quanto de software que deve ser levado em considerao na montagem desta soluo. O elevado nmero de usurios e conexes podem degradar a utilizao da aplicao [29].

6.3 Anlise da soluo VPN com IPSec nativo da plataforma Microsoft


A segunda alternativa para a soluo do problema a utilizao do protocolo seguro IPSec de forma nativa na plataforma MS-Windows, criando uma VPN de facto, utilizando ferramentas disponveis na plataforma onde executada a aplicao, observando-se em garantir que todos os princpios que regem a comunicao (item 3.2.4) sejam cumpridos, independente do caminho que a informao percorre de uma origem ao seu destino. Tecnicamente esta uma soluo simples de ser adotada em aplicaes do tipo cliente/servidor desenvolvidas com as mesmas caractersticas e finalidades do nosso estudo de caso. Utiliza-se a combinao de duas tcnicas: Relao de Confiana entre os servidores de domnio/diretrio ativo e utilizao do IPSec como protocolo de comunicao. O principal problema encontrado garantir que apenas usurios credenciados tenham acesso a um diretrio compartilhado em um servidor corporativo, em muitos casos no apenas para leitura, mas tambm para escrita, alm disso, necessrio compreender o limite imposto para a instalao nos

Captulo 6 Propostas de solues para o estudo de caso

113

clientes, pois aceita apenas estaes com Sistema Operacional padro MS-Windows, devido as caractersticas de construo da aplicao (na verso cliente/servidor). A Figura 6.3 demonstra o primeiro passo da soluo, que a autenticao do usurio por um servidor de domnios Windows NT/Samba Server ou Windows 2000/2003 Server (Diretrio Ativo).

Domnio Cliente

Usurio

Servidor Domnio

Maria Silva S-1-5-21-...-622671684

Base de Usurios

Figura 6.3 Autenticao do usurio em um domnio local Windows

Neste exemplo o usurio Maria Silva est se autenticando em um servidor que controla um Diretrio Ativo, portanto ela possui uma conta neste domnio que a identifica unicamente. Nesse tipo de ambiente o usurio deve pertencer (no mnimo) ao grupo de usurios do sistema, porm o Administrador pode criar uma srie de outros grupos, agrupando os usurios de acordo com sua poltica de administrao, inclusive recebendo novos usurios de domnios diferentes, em que possa confiar. Esse o prximo passo, ou seja, criar uma relao de confiana entre domnios.

114

Captulo 6 Propostas de solues para o estudo de caso

Domnio Cliente
Servidor Domnio Confivel

Domnio Servidor da Aplicao


Autenticao do Relacionamento do Confiana Servidor Domnio Confiante

Confiana Unidirecional

/shared /aplicativo
Diretrio compartilhado para a aplicao

Figura 6.4 Relacionamento de Confiana para acesso ao diretrio compartilhado por usurios da aplicao

Atravs da relao de confiana unidirecional, mostrada na Figura 6.4, o administrador do domnio confiante poder escolher quais usurios ou grupos do domnio confivel tero acesso ao diretrio compartilhado, bem como definir as permisses de acesso destes usurios e mtodos de auditoria. Deste modo cria-se uma rede de servidores confiveis com a administrao de usurios de forma descentralizada, ao contrrio das VPNs que necessitam do concentrador de VPN e dos usurios cadastrados no servidor. Vale lembrar que as conexes entre as estaes clientes e o servidor utilizam o protocolo IPSec nas comunicaes. A Figura 6.5 apresenta o esquema utilizado para disponibilizar o diretrio /aplicativo para domnios clientes, neste diretrio esto instalados os arquivos da verso SERVER da aplicao, alm dos programas que possibilitam a instalao remota da verso CLIENTE nas estaes. Pode-se encontrar tambm os arquivos que so gerados pelos clientes e armazenados temporariamente no servidor como relatrios, grficos, documentos e imagens.

Captulo 6 Propostas de solues para o estudo de caso

115

Domnios Clientes (Confivel)


Servidor Domnio

Domnio Servidor (Confiante)


Servidor da Aplicao

Domnio A

SID Usurio S-1-5-21-...-622671684 Maria Silva S-1-5-21--622671685 Oswaldo Mendes S-1-5-21--622451690 Danilo Alves : S-1-5-21--623542 2567 Juliana Sousa

/aplicativo

Permisses de Acesso ao diretrio


Domnio A B A A B B SID S-1-5-21-...-622671684 S-1-6-40-...-375565006 S-1-5-21--622671685 S-1-5-21--622451690 S-1-6-40--375565045 S-1-6-40--650093009 Acesso Leitura/Escrita Leitura/Escrita Leitura Listar Leitura Leitura/Escrita

Servidor Domnio

Domnio B

SID S-1-6-40-...-375565006 S-1-6-40--375565045 S-1-6-40--650093009 : S-1-6-40--766532847

Usurio Carlos Moura Daniela Cravo Jose Lima Amanda Chaves

Figura 6.5 Definindo usurios e permisses de acesso ao diretrio compartilhado

Uma vez garantida a identidade dos usurios, no se deve esquecer que estas aplicaes utilizam bancos de dados clientes, neste caso o banco Oracle 9i. Sendo assim necessrio definir parmetros na BDE que possibilitem a comunicao nativa entre o servidor do banco de dados e o cliente, alm de alterar parmetros na configurao cliente de forma a habilitar autenticao e criptografia. Por sua vez o administrador do banco de dados deve possuir regras que protejam a base de dados. Isso inclui controle de acesso, integridade dos dados, criptografia e auditoria. O banco Oracle possui suporte para uma srie de algoritmos criptogrficos como: RSA Data Security RC4: este algoritmo permite a criptografia dos dados de forma rpida, utilizando uma chave privada gerada randomicamente em cada sesso com o banco. Todo o trfego ocorre de maneira segura, incluindo os comandos SQL, os valores associados a estes comandos, resultados e chamadas de procedimentos (stored procedure call). O cliente, servidor ou ambos, podem requisitar ou requerer o uso do mdulo criptogrfico para garantir a proteo dos dados. Data Encryption Standard (DES): este algoritmo utiliza criptografia de chaves simtricas para proteger as comunicaes atravs da rede.

116

Captulo 6 Propostas de solues para o estudo de caso

Triple DES (3DES): esta variante, criptografa a mensagem com trs passos do algoritmo DES. Ele prov um alto grau de segurana na mensagem, porm tem como ponto negativo a perda de performance devido ao processamento adicional. Em geral trs vezes mais lento que o DES. Para verificar a integridade dos dados, o banco Oracle utiliza os seguintes algoritmos: MD5 Checksum: este algoritmo prov a integridade dos dados atravs do hash e da seqncia para garantir que o dado no foi alterado ou roubado quando transmitido pela rede. Secure Hash Algorithm (SHA): similar ao MD5, porm indicado para grandes mensagens que necessitam de alta segurana. Na Figura 6.6 demonstrado como se pode configurar uma BDE para acesso nativo ao banco de dados utilizando os parmetros definidos no servidor para comunicao.

Figura 6.6 Definindo parmetros na BDE para Banco de Dados Oracle 9i

Captulo 6 Propostas de solues para o estudo de caso

117

Uma vez que todos os elementos envolvidos na comunicao esto definidos e conhecidos, bem como os mtodos que se pode utilizar para garantir a integridade dos dados e sua origem, tem-se na Figura 6.7 todo o cenrio da utilizao da aplicao Cliente/Servidor atravs de uma rede pblica.
Cenrio completo do ambiente de execuo da Aplicao

Rede Local dos Clientes


Cliente da Aplicao com banco Oracle Client

Servidor Domnio ou Diretrio Ativo

Roteador e firewall

Internet
Maria Silva S-1-5-21-...-622671684

Rede Local do Servidor


Servidor da Aplicao Servidor Domnio ou Diretrio Ativo Roteador e firewall Relao de confiana
Domnio A B C : Z Senha xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx

/aplicativo

Permisses de Acesso ao diretrio


Domnio A B A A B B SID S-1-5-21-...-622671684 S-1-6-40-...-375565006 S-1-5-21--622671685 S-1-5-21--622451690 S-1-6-40--375565045 S-1-6-40--650093009 Acesso Leitura/Escrita Leitura/Escrita Leitura Listar Leitura Leitura/Escrita

Oracle 9i

Legendas: : Relao de Confiana Unidirecional : Autenticao Local e acesso ao diretrio compartilhado : Conexo com o banco de dados Oracle

Figura 6.7 Cenrio da soluo com Relacionamento de Confiana e IPSec

118

Captulo 6 Propostas de solues para o estudo de caso

As portas TCP e UDP utilizadas no cenrio apresentado na Figura 6.7 esto listadas na Tabela 6.2 a seguir. Porta Transporte Finalidade ESP1 88 135 138-139 389 445 500 UDP TCP TCP TCP UDP Prov a confidencialidade para o payload IP. ESP no modo transporte no criptografa todo o pacote IP, e sim apenas o payload Kerberos PortMapper Porta fixa do Netlogon NetBEUI Mapear diretrios remotos SMB Estabelecimento do Relacionamento de Confiana Utilizado nas comunicaes em IPSec
Tabela 6.2 Portas utilizadas na comunicao cliente/servidor do cenrio da figura 6.7

TCP e UDP LDAP Utilizado pelos servidores com Windows 2000/2003 Server

Atravs do conhecimento das portas de comunicao utilizadas pelos servios, tanto na origem quanto no destino, podemos definir regras nos firewalls que permitam a passagem de pacotes apenas de redes conhecidas, adicionando-se mais um fator para garantir a segurana. Neste cenrio a administrao do acesso dividida em duas partes, os clientes so administrados pelos administradores locais, eles definem quais so os usurios que faro parte dos grupos e, portanto podem definir quem pode utilizar ou no os recursos no servidor. A segunda parte fica a cargo do administrador do servidor de arquivos que precisa confiar na informao que busca no domnio/diretrio ativo remoto.

6.4 Anlise da soluo com Certificao Digital


Outra opo avaliada com a utilizao de certificados digitais. Estes certificados podem ser gerados e administrados atravs de entidades certificadoras dentro da prpria organizao, criando uma hierarquia de certificados e um ambiente computacional mais seguro. No caso de aplicaes cliente/servidor, os certificados no so utilizados para garantir o acesso aos recursos compartilhados, por tratar-se da plataforma MS-Windows. Apenas o SID usado para esta finalidade, entretanto, seu uso bastante til na verso para WEB da aplicao, pois h possibilidade de

Encapsulating Security Payload

Captulo 6 Propostas de solues para o estudo de caso

119

certificar tanto o usurio do sistema, quanto a sua estao de trabalho, provendo autenticidade e criptografia no canal de comunicao entre o cliente e o servidor da aplicao.
Utilizando Certificao Digital
Entidade Certificadora

Cliente da verso WEB

Servidor de arquivos da Aplicao 10.0.1.12

Internet
192.168.1.10 Roteador e firewall Servidor do Banco de Dados 10.0.1.11

192.168.2.15

Figura 6.8 Cenrio da soluo com Certificao Digital

A implementao da estrutura bastante facilitada pelo servio de Certificao Digital. Existem duas opes para se adquirir um certificado: via uma pgina web ou utilizando a estrutura do diretrio ativo. O administrador mantm uma lista dos certificados vlidos e tambm dos certificados revogados. Esta lista deve ser publicada para que todos envolvidos na soluo tenham conhecimento. O algoritmo RSA utilizado para criar a assinatura digital [42] e em seguida anexado aos dados originais da mensagem. Este procedimento ilustrado na Figura 6.9.

10.0.1.0

Servidor de WEB da Aplicao 10.0.1.10

120

Captulo 6 Propostas de solues para o estudo de caso


Processo de assinatura digital com algoritmo RSA

Mensagem

Mensagem

Funo de cifragem da mensagem

Funo de cifragem da mensagem Mensagem Dados transmitidos Decriptografa com a chave pblica

Cifragem

Criptografia com a Chave Privada

Assinatura

Cifragem esperada Assinatura

Cifragem obtida

Destinatrio Origem

Figura 6.9 Utilizao do algoritmo RSA para assinatura digital

Uma vez realizado o processo para assinatura digital a informao pode ser transmitida pela rede atravs de um canal seguro, utilizando o protocolo IPSec, por exemplo. Na Figura 6.10 baseada em [43] pode-se perceber os elementos envolvidos para utilizao do servio de Certificados Digitais e a infraestrutura de chaves pblicas aplicadas por servidores MS-Windows 2000/2003 Server.

Captulo 6 Propostas de solues para o estudo de caso

121

MS-Windows Servio de Certificados e Infraestrutura de chave pblica


Cripto API
Local protegido

Chave privada Prov a trigem para auditoria e a lista de revogados

CPSs Prov servios criptogrficos e gerenciamento de chaves privadas

Banco de Dados de certificados

Chave pblica Mdulo de entrada Processa as requisies de certificados com padro PKCS 10 Servio de Certificados Gera os certificados padro X.509 atravs de modelos especficados pela poltica adotada. Gera tambm a lista de certificados revogados Mdulo de sada Envia os certificados vlidos e a lista dos revogados aos pontos de distribuio

Modelos de Certificados

Mdulo de Polticas Processa as requisies dos certificados

CPS: Cryptographic Service Providers PKCS 10: Public Key Cryptography Standard 10 certificate requests

Figura 6.10 Implementao do Servio de Certificados Digitais na plataforma MS-Windows

6.5 Proposta de soluo com Proxy Reverso


De maneira geral as aplicaes desenvolvidas para execuo em ambiente WEB tendem, por uma questo sobrevivncia, a serem compatveis com pelo menos dois dos principais WEBServers existentes e bem conhecidos no mercado. O APACHE, de domnio pblico e cdigo aberto e o MS-IIS (Microsoft Internet Information Service) desenvolvido pela Microsoft e disponvel a partir das verses Server do Windows NT. Evidentemente existem casos, como aplicaes desenvolvidas na linguagem Java, por exemplo, que necessitam alm do APACHE tambm do software TOMCAT e um runtime Java instalados no servidor para que funcionem.

122

Captulo 6 Propostas de solues para o estudo de caso

A implementao de segurana para aplicaes disponvel via Internet ocorre atravs do protocolo https ao invs do tradicional http, ou seja, utiliza-se o protocolo SSL (vide item 4.1.3). Desta maneira agrega-se criptografia na comunicao, gerando um canal seguro entre o cliente e o servidor da aplicao, todavia, como o caso da aplicao em estudo, freqente o uso do servidor de pginas MSIIS, que conhecidamente alvo de diversos tipos de ataque que podem causar a indisponibilidade do servio de WEB ou a troca de pginas da empresa, por exemplo. Apesar do grande empenho da Microsoft para eliminar as falhas, detectadas desde o desenvolvimento do produto e a implementao do protocolo SSL nas verses mais recentes, muitos administradores procuram solues que evitam o acesso direto as pginas neste servidor, pois tratam-se de dados crticos e muitas vezes sigilosos, neste caso existe uma outra maneira de prover uma camada de segurana e evitar o acesso direto a estes servidores web. Esta tcnica denominada proxy reverso. O proxy reverso funciona como um receptor de pginas para um ou mais domnios Internet registrados no DNS, ou seja, ele pode receber todas as solicitaes enviadas ao servidor de pginas original como um front-end do site, e somente atravs dele estas solicitaes chegam ao servidor real da aplicao [03]. Pode-se somar a esta proposta as vantagens obtidas atravs do uso dos certificados digitais. No entanto a estrutura computacional (com a adio de um servio de certificao interno ou externo) e a administrao do ambiente, tendem a se tornarem mais complexos. A Figura 6.11 demonstra o esquema da comunicao entre o cliente e o servidor da aplicao web, bem como a ao do proxy reverso. O proxy reverso pode atuar como um filtro de acesso ao servidor da aplicao. Em geral utilizado o software APACHE, devido a facilidade de instalao e configurao dos arquivos para atuar como um proxy reverso [03].

Captulo 6 Propostas de solues para o estudo de caso

123

Utilizando Proxy Reverso


Cliente da verso WEB Cliente da verso WEB

192.168.1.10

192.168.2.15

Internet

10.0.0.0

Roteador e firewall Proxy Reverso 10.0.0.10

10.0.1.0

Servidor de WEB da Aplicao 10.0.1.10

Servidor de ARQUIVOS da Aplicao 10.0.1.12

Figura 6.11 Utilizando Proxy Reverso para proteger o servidor WEB interno

6.6 Comparao entre as solues


Uma vez conhecidas as propostas para soluo do problema, importante analisar com mais detalhes os aspectos positivos e negativos de cada proposta. A Tabela 6.3 apresenta um resumo com estas informaes.

124

Captulo 6 Propostas de solues para o estudo de caso

Proposta VPN Microsoft

Aspectos Positivos Integrada ao Sistema Operacional do servidor e dos usurios centralizado cliente e o servidor software livre Operacional Windows de 32 bits nativo Gerenciamento dos usurios descentralizado nos domnios centralizado cliente e o servidor No necessita da criao da VPN de camada de enlace; a autenticao na rede local utilizada para prover autenticidade

Aspectos Negativos Administrao Complexa da performance com crescimento de usurios (escalabilidade) no servidor para realizao da VPN Oracle com endereos de VPN em devem domnios/diretrios possuir Sistema

Gerenciamento do acesso aos recursos Degradao

Prov autenticidade e segurana entre o Implementao complexa no cliente e Pode ser substituda por VPN de Protocolos adicionais so utilizados Cliente pode possuir qualquer Sistema Problemas para configurao do Banco VPN com IPSec Implementao simples com protocolo Confiana ativos remotos Clientes Operacional que implemente IPSec polticas de segurana de senha nos

Gerenciamento do acesso ao recurso No possui autonomia para aplicar Prov autenticidade e segurana entre o domnios confiveis

Certificao Digital

Simples implementao do servio WEB chave pblica a identidade

Desnecessrio para acesso aos recursos Necessita criar uma hierarquia de dos Necessita do IIS para implementar de forma integrada ao Sistema Operacional

Implementa conexo segura atravs da compartilhados em ambiente Windows Garante atravs da infra-estrutura de entidades certificadoras participantes na comunicao Pode ser utilizado em conjunto com o servio de diretrio ativo Maior controle e conhecimento dos computadores que acessam o sistema

Captulo 6 Propostas de solues para o estudo de caso

125

Proxy Reverso

Implementa conexo segura atravs da Necessita de mais um servidor WEB WEB WEB da aplicao Pode ser implantada com software livre
Tabela 6.3 Quadro comparativo entre as propostas de soluo

Implementao requer conhecimento na firewalls

No permite acesso direto ao servidor tcnica de proxy reverso em conjunto com

6.7 Anlise da soluo adotada para estudo de caso


Atravs da comparao obtida nos estudos e testes realizados em cada uma das propostas, pdese adotar uma soluo adequada para resolver os problemas de comunicao segurana, autenticidade, compatibilidade e escalabilidade para aplicaes do tipo cliente/servidor com caractersticas semelhantes de nosso estudo de caso. Deve-se ressaltar contudo, que todas as propostas so viveis para resolver o problema. A adoo de uma em particular no exclui sua aplicao em outros casos, dados como nmero de usurios que acessam a aplicao, quantidade e qualidade do trfego gerado na rede e ambiente computacional so fundamentais para a escolha. Em geral, aplicaes cliente/servidor so executadas atravs de redes geograficamente distantes, e no difcil encontrar empresas/instituies que utilizam as redes pblicas ou inseguras para a troca de informaes, sendo assim, a soluo a ser adotada necessita, alm de fornecer os servios fundamentais para garantir a autenticidade e a segurana da informao entre os integrantes da comunicao, tambm, e principalmente, mecanismos que possam prover a facilidade de implementao, tendo o cliente como foco principal e, a administrao do sistema como um todo. Outra questo de grande importncia a escalabilidade, a tendncia que estes sistemas cresam atravs de suas manutenes e aprimoramentos, bem como a quantidade de usurios que utilizam a aplicao para suas rotinas dirias, por conseqncia o aumento gradativo dos computadores que necessitam acessar os recursos compartilhados pelo servidor. Somando-se a isso deve-se pensar na questo da evoluo tecnolgica e dos novos Sistemas Operacionais, permitindo que as implementaes possam ser compatveis com estas novas tecnologias.

126

Captulo 6 Propostas de solues para o estudo de caso

6.7.1 Fatores para adoo da proposta de VPN com IPSec nativo


Dentre as propostas analisadas, a montagem de uma VPN entre o cliente e o servidor da aplicao apresentou-se mais vantajosa para a verso cliente/servidor, desde que no seja utilizada nenhuma soluo com o modelo de VPN implementada como um servio do Sistema Operacional. Isso se deve ao fato das caractersticas do modelo de rede local implementado pelo Microsoft, que utiliza as funes do protocolo NetBIOS/NetBEUI, encapsuladas em pacotes TCP/IP para implementao de recursos compartilhados e o mtodo de identificao do usurio (SID) como um passaporte para acesso a estes recursos. Com estas restries, torna-se inevitvel o uso da tcnica de Relao de Confiana entre domnios ou Diretrios Ativo para integrar usurios de redes fisicamente distintas. Sem este recurso, os usurios que necessitam mapear uma unidade de disco remoto precisam ser autenticados novamente a cada nova sesso, como pode ser visto na Figura 6.12 ou, mapear o recurso atravs de comandos na janela de prompt do MS-DOS, como exemplificado na Figura 6.13, antes de iniciar o uso da aplicao.

Figura 6.12 Janela de autenticao do usurio para acesso a recurso remoto

Figura 6.13 Comando no prompt do MS-DOS para mapear um disco remoto

Estes procedimentos so um incmodo para quem utiliza a aplicao. Com o uso do relacionamento de confiana, o administrador do recurso compartilhado pode escolher os

Captulo 6 Propostas de solues para o estudo de caso

127

usurios/grupos, bem como os privilgios de acesso personalizados, eliminando a necessidade de novas autenticaes. Portanto o uso do recurso passa a ser transparente para o usurio. O uso do protocolo IPSec nativo implementado nos Sistemas Operacionais MS-Windows 2000 Profissional em diante, torna segura a comunicao entre o cliente e os servidores com os quais interage, isto tambm proporciona que Sistemas Operacionais obsoletos, como MS-Windows 95/98/98SE e Millenium, sejam substitudos para atender a este requisito, eliminado desta maneira a possibilidade de ataques a estas verses que no possuem suporte para os protocolos seguros. A simplicidade e a facilidade para implementao da soluo outra vantagem com relao as demais solues, relacionamentos de confiana so simples de se fazer at mesmo utilizando software de domnio pblico, como o SAMBA1. O fato de ser unidirecional no interfere na poltica de administrao dos usurios locais, pois os usurios so apenas exportados, no tendo nenhuma interferncia externa ou necessidade de modificao em grupos, privilgios e outros aspectos no domnio confivel. Este processo realizado apenas uma vez entre os domnios confiantes e confiveis, pois uma vez estabelecida a relao de confiana, os sistemas operacionais possuem mecanismos para verificar os estados desta relao e alertar em caso de falhas, desta maneira a administrao torna-se descentralizada, pois os administradores locais conhecem melhor sua realidade que o administrador do ambiente servidor. Isso proporciona a escalabilidade necessria para adicionar novas redes para acesso a aplicao, independente de sua localizao geogrfica, de maneira organizada e mensurvel. Para a soluo da verso WEB a implementao de um proxy reverso mostrou-se mais eficaz. Apesar de adicionar um novo elemento no ambiente computacional, o que tambm ocorre com a soluo utilizando certificados digitais, a performance no foi prejudicada. Mais uma vez a simplicidade da soluo e a transparncia para os usurios foram os fatores determinantes para a escolha, alm, claro, da questo da segurana com o uso do protocolo SSL e tambm a proteo ao acesso direto ao servidor primrio das pginas da aplicao, evitando a exposio para ataques realizados por hackers atravs das vulnerabilidades conhecidas nesse tipo de servio. Em geral verses para WEB de aplicaes desenvolvidas para fins administrativos, tendem a serem amplamente utilizadas para consultas, com pouca entrada de dados. Este o perfil em que nosso estudo de caso se encaixa, no necessitando obrigatoriamente de um esquema complexo de certificados digitais.

Somente a partir da verso 3.0.1 do SAMBA Server possvel fazer relacionamentos de confiana com domnios MS-Windows

128

Captulo 6 Propostas de solues para o estudo de caso

6.7.2 Fatores para eliminao da proposta com VPN Microsoft


Esta soluo possui grandes vantagens com relao a segurana e autenticidade. A criao de um tnel criptogrfico atravs de uma rede insegura torna praticamente invivel a decodificao da informao e conseqentemente o acesso ao texto original a membros no participantes da comunicao. importante esclarecer que a soluo exige um conhecimento avanado no modelo de VPN como servio do Sistema Operacional. Mtodos para cadastramento de usurios e distribuio dos endereos entre os componentes da VPN devem ser estabelecidos. No se pode esquecer que dentro desta VPN, alm dos clientes, devem constar todos os servidores utilizados pela aplicao, isso inclui tambm os servidores nas redes locais destes clientes, que so utilizados para estabelecer a confiana entre os domnios. Por se tratar de uma estrutura complexa, deve-se criar aes e mecanismos para a gesto dos endereos de rede --- em geral uma classe de endereos reservados --- da VPN distribudos pelo concentrador, estes devem ser pr-determinados pelo administrador da VPN aos servidores com o qual so estabelecidas as Relaes de Confiana, para que elas no se quebrem ao desconectar um servidor por qualquer motivo, bem como garantir que os servidores da aplicao e banco de dados possuam sempre o mesmo endereo. Alm disso, os administradores precisam gerar rotinas ou mecanismos que possibilitem a entrada automtica dos servidores na VPN e terem uma preocupao especial no caso de manutenes, a fim de que no haja perda de informaes desta Relao de Confiana, evitando que todo o esquema de comunicao com o servidor central necessite ser refeito. A questo da administrao do ambiente torna-se complexa, tanto para os clientes, quanto para os administradores, pois deve-se levar em considerao que a medida em que novos clientes so adicionados a VPN, bem como os novos servidores, adiciona-se uma nova carga de processamento nos elementos envolvidos na soluo. As contas dos clientes so centralizadas no concentrador de VPN e todo o processo de autenticao e definio dos endereos ocorre neste equipamento. Em virtude destes fatos este hardware deve possuir caractersticas fsicas capazes de atender a demanda crescente sem prejudicar a performance da aplicao, outro fator administrativo de dificulta a implementao est no uso do banco de dados, em geral estes bancos necessitam de uma string de conexo com informaes sobre o nome na rede do servidor do banco de dados e as caractersticas da instncia da base instalada (nome, porta de conexo e outros parmetros para conexo a instncia do banco).

Captulo 6 Propostas de solues para o estudo de caso

129

Uma vez criada esta instncia no servidor os clientes utilizaro estes parmetros para acesso, sendo assim os administradores da base devero fazer suas manutenes integrados a esta rede ou, possurem acesso direto ao console do servidor. Tambm existem problemas para compatibilidade do servio de VPN com sistemas operacionais no-Microsoft ou mesmo proprietrio, em muitos casos difcil, ou mesmo invivel, a conexo do servidor a VPN criada, pode-se citar como exemplo um servidor com banco de dados Oracle9i, instalado sobre uma plataforma HP-Tru64 Unix em uma mquina AlphaServer1. Portanto, a implementao desta soluo menos laboriosa quando se utiliza apenas recurso das redes e dos Sistemas Operacionais da Microsoft, inclui-se nesta proposta o servidor do Banco de Dados. Como compensao pode-se utilizar a aplicao em qualquer um dos Sistemas Operacionais da Microsoft de 32bits, pois estes j possuem suporte para conexo a uma VPN. No se pode esquecer que por se tratar de uma soluo com algoritmos criptogrficos, exige dos clientes e servidores um processamento adicional para a conexo a VPN e tambm para a gerao dos pacotes que so transmitidos pelo tnel, em hardwares mais antigos isso pode ser representativo na performance da aplicao.

6.7.3 Fatores para eliminao da proposta com Certificao Digital


A soluo atravs do uso dos Certificados Digitais prov um grau de segurana e autenticidade irrevogvel, com a utilizao da infra-estrutura de chaves pblicas pode-se certificar todos os elementos envolvidos na comunicao, principalmente os clientes e os servidores da aplicao. Os Certificados Digitais so um mecanismo poderoso, contudo a implementao deste servio requer do administrador um conhecimento das tcnicas criptogrficas utilizadas e, a melhor maneira para seu aproveitamento na soluo. A utilizao deste servio mostrou-se eficiente como soluo para a verso WEB da aplicao, j para a verso cliente/servidor no pde ser aplicada, com exceo dos ambientes em que o servio de Diretrio Ativo pde ser instalado, mesmo assim como um item de segurana adicional. Isto ocorre devido ao fato que em redes Microsoft, os recursos compartilhados so liberados aps a checagem do SID do usurio e esta informao no transmitida juntamente com o Certificado. Desta maneira para implementao desta soluo necessrio, alm da criao da estrutura de entidades certificadoras, tambm todo o esquema envolvendo o Relacionamento de Confiana entre os
1

Plataforma da Antiga Digital Corporation adquirida pela Hewlett Packard (HP), com processadores RISC de 64bits

130

Captulo 6 Propostas de solues para o estudo de caso

domnios do cliente e do servidor da aplicao. Isso torna a soluo administrativamente mais complexa, pois requer a adoo de uma poltica para a solicitao e aprovao dos certificados, sejam elas para usurios ou computadores e, tambm a distribuio da lista dos certificados revogados, pois essa informao precisa ser utilizada pelo administrador para realizar o compartilhamento e a liberao do acesso para o cliente, neste sentido recomendvel a criao de rotinas para automatizar este procedimento. No caso da adoo da soluo, de fundamental importncia a criao de uma entidade certificadora reserva, com a cpia do banco de dados de certificados da entidade principal.

Concluso
Nos ltimos anos a preocupao com a segurana da informao tornou-se fator fundamental para a implantao de sistemas nas empresas. A exposio das vulnerabilidades dos protocolos utilizados e o conhecimento de seus riscos fizeram com que ferramentas para agregar segurana, no somente ao meio de transmisso, mas tambm nos meios de armazenamento, fossem adotadas e amplamente analisadas. Atualmente o que se v um grande mercado oferecendo aplicaes, com as mesmas caractersticas encontradas em nosso estudo de caso, sendo comercializadas, sem que a soluo completa seja apresentada para sua implantao, muitas vezes por falta deste conhecimento dos prprios desenvolvedores. Mecanismos simples de serem adotados na rea de segurana podem trazer grandes benefcios. O uso do protocolo IPSec uma prova disso. No cenrio de rede atual, existem milhares de programas na Internet que facilitam o trabalho dos atacantes, simulam, decodificam e alteram dados e se valem justamente das vulnerabilidades conhecidas e informaes capturadas para realizar um ataque. O conhecimento das principais caractersticas dos Sistemas Operacionais e seus servios disponveis, focados especialmente na segurana e autenticidade, podem fornecer informaes importantes para a deciso de colocar uma aplicao que utiliza a rede para troca de informaes.

Captulo 7
Concluso
O desenvolvimento de aplicaes sofreu grandes modificaes ao longo das ltimas dcadas. O cenrio de execuo transformou-se rapidamente, deixando os antigos ambientes homogneos -em sua maioria composta por mainframes e terminais com tecnologia proprietria das empresas, passando para redes no-proprietrias e protocolos abertos. Pode-se destacar tambm outros fatores como o surgimento e a adoo da Internet pelas empresas e instituies e do estabelecimento do protocolo TCP/IP como padro de facto. Alm disso, a significativa evoluo do hardware que proporcionou a diminuio dos custos com infra-estrutura de comunicao e o aumento da velocidade no processamento das informaes atravs da comutao de pacotes em taxas, antes inimaginveis. Acompanhando a evoluo deste cenrio, foram desenvolvidos no modelo cliente/servidor novas arquiteturas e modelos capazes de atender as necessidades das novas aplicaes, contudo no se pode esquecer que os avanos na rea de segurana permitiram a integrao entre cliente e servidor atendendo os princpios bsicos que regem a comunicao descrita no item 3.2.4. A apresentao do estudo de caso demonstrou, na prtica, os problemas que so encontrados para a implementao e execuo das aplicaes no cenrio da comunicao, bem como as opes disponveis que podem ser aplicadas e adaptadas a fim de solucionar um problema do mundo real.

131

132

Captulo 7 Concluso

Obteve-se com este trabalho importantes contribuies para se compreender melhor o modelo Cliente/Servidor e sua arquitetura, vista em detalhes no Captulo 2, tornando-se uma referncia aos que se interessam e necessitam de mais informaes sobre o assunto. No Captulo 3 desenvolveu-se o cenrio da comunicao, suas nomenclaturas e tendncias utilizadas para a construo de aplicaes voltadas ao mercado e grandes corporaes. Tambm foram expostas informaes com as caractersticas dos protocolos de comunicao e suas particularidades, destacando-se os protocolos TCP/IP, SMB e NetBIOS/NetBEUI. Alm disso, mostrou-se os aspectos importantes da conexo fsica/lgica entre sistemas e informaes sobre sincronismo e passagem de mensagens utilizadas para comunicao. Os Captulos 4 e 5 foram complementares, contendo informaes fundamentais e detalhadas sobre os protocolos seguros, utilizados para interligao dos clientes aos servidores. No captulo 4 destacou-se a exposio de protocolos seguros como SSL e IPSec e mecanismos para fornecer autenticao como KERBEROS. O estudo destes proporcionou sua adoo na proposta de soluo de segurana no estudo de caso, apresentado no Captulo 5. No Captulo 5 foi apresentado um estudo de caso utilizando uma aplicao Cliente/Servidor comercial voltada para rea administrativa. Desenvolvida com ferramentas e linguagens para execuo na plataforma MS-Windows, que sem dvida a plataforma mais comum nas empresas/instituies. Analisando a aplicao e seus requisitos, pode-se constatar que a implementao segura destes produtos, na plataforma para qual foi desenvolvida, requer um estudo mais elaborado, pois o cenrio apresentado repleto de falhas e vulnerabilidades que podem ser exploradas. Sendo assim, as tecnologias apresentadas no Captulo 5 utilizando tcnicas de tunelamento com a criao de VPNs, Relacionamentos de Confiana e Certificao Digital dos clientes e servidores, em conjunto com os protocolos seguros expostos no Captulo 4, forneceram subsdios para elaborao das propostas de soluo que foram apresentadas no Captulo 6. Neste sentido o presente trabalho contribu aos administradores que necessitam implementar aplicaes com caractersticas semelhantes s encontradas em nosso estudo de caso, de forma segura e que possa garantir a autenticidade dos usurios, mesmo utilizando conexes atravs de redes inseguras. Por fim no captulo 6 foi desenvolvida uma proposta vivel e segura para a implementao da aplicao de nosso estudo de caso. Utilizou-se conhecimentos e tcnicas vistas ao longo deste trabalho e apresentou-se tambm as razes pelas quais solues vlidas no puderam ou no foram recomendadas. Por se tratar de uma aplicao real concebida com um modelo amplamente difundido, pode-se aplicar esta proposta de soluo em diversas aplicaes que possuam o mesmo perfil e funcionalidade.

Captulo 7 Concluso

133

Este trabalho possibilitou uma pesquisa abrangente da arquitetura cliente/servidor e apresentou propostas para adio de camadas de segurana, tendo como cenrio, redes distintas utilizando conexes remotas ou redes inseguras. Como resultado das pesquisas pde-se demonstrar que em muitos casos Sistemas Operacionais e servios de rede - muitas vezes proprietrios, podem ser substitudos, sem perda alguma, por solues no-proprietrias como, por exemplo, UNIX. Servios como WEB, VPN, Arquivos e at servidores de domnios, mesmo para redes Windows, j existem para este ambiente. Deste modo abre-se um novo horizonte para adequao do ambiente corporativo. Com o grande desenvolvimento das aplicaes freeware para UNIX, no ser obrigatrio o uso de apenas um modelo nico para a execuo de aplicaes Cliente/Servidor.

7.1 Trabalhos futuros


Ao longo deste trabalho foram expostos os elementos principais da arquitetura e do modelo cliente/servidor. Como resultado das pesquisas realizadas para resolver um problema comum a plataforma onde executada a Aplicao, descrita em nosso estudo de caso do Captulo 5, foram apresentadas uma srie de propostas viveis, considerando-se todo o ambiente, principalmente o meio de comunicao. Elemento este, conhecido e composto por protocolos de rede amplamente utilizados, porm com restries na rea de segurana. Incluiu-se nestas pesquisas aspectos que abrangem desde o Sistema Operacional utilizado tanto pelos clientes, quanto pelos servidores das aplicaes, at a tecnologia de rede empregada para interconexo, sejam elas institucionais, particulares ou pblicas. Dentre as solues pesquisadas a utilizao de uma VPN como servio do Sistema Operacional, deveria ser considerada uma soluo natural para o problema. Contudo, no se mostrou eficaz devido a complexidade de sua implementao e administrao, tambm por uma particularidade como o processo de autenticao realizado em redes Microsoft. Sendo assim existe um campo a ser explorado, de forma a proporcionar que as autenticaes realizadas atravs do servio de VPN instalado em um servidor --- existente tanto em plataformas proprietrias, quanto em software livre --- possam ser utilizadas para acesso aos recursos compartilhados do Sistema na parte Servidor da aplicao. Desta forma pode-se viabilizar o uso de aplicaes construdas para execuo com tecnologia Cliente/Servidor atravs de tneis seguros, sem a necessidade da criao de mecanismos adicionais, estruturas complexas ou upgrade de software ou

134

Captulo 7 Concluso

hardware em mquinas clientes, diminuindo e simplificando significativamente os custos de implantao de aplicaes cliente/servidor atravs de uma rede de computadores pblica/privada.

Glossrio de siglas
ADSP: Appletalk Data Stream Protocol AH: Authentication Header API: Application Programming Interface APPC: Advanced Program-to-Program Communications (IBM) ATP: Appletalk Transaction Protocol BDE: Borland Database Engine BI: Business Intelligence CA: Certificate Authority CRL: Certification Revocation List CSS: Cascading Style Sheets DDP: Datagram Delivery Protocol DES: Data Encryption Standard DES-CBC: Data Encryption Standard-Cipher Block Chaining DSS: Decision Support System DSS: Digital Signature Standard EIS: Executive Information System ERP: Enterprise Resource Planning ESP: Encapsulated Security Payload FS DRIVERS: File System Drivers GRE: Generic Routing Encapsulation GUI: Graphical User Interface HMAC: Keyed-Hashing Message Authentication Code IDEA: International Data Encryption Algorithm IDP: Internet Datagram Protocol IEEE: Institute of Electrical Engineers IETF: Internet Engineering Task Force IIS: Internet Information Service (Microsoft Web Server) IKE: Internet Key Exchange IP: Internet Protocol

135

Glossrio de Siglas

136

IPC: InterProcess Comunication IPX: Internet Protocol Exchange ISAKMP: Internet Security Association and Key Management Protocol ISDN: Integrated Services Digital Network ISP: Internet Service Provider LDAP: Lightweight Directory Access Protocol LLC: Logical Link Control LPC: Local Procedure Call LSASS: Local Security Authority Subsystem Service LU: Logical Unit LU: Logical Unit (IBM) MAC: Message Authentication Code MD5: Message Digest Five MSGINA: Microsoft Graphical Identification and Authentication NBDD: NetBIOS Datagram Distribution NBNS: NetBIOS Name Server NCSA: National Center for Supercomputing Applications NTLM: NTLanMan (Windows NT Lan Manager Authentication Protocol) OLAP: OnLine Analytical Processing OS2: Operation System Two (IBM) OSI: Open System Interconnection PC: Personal Computer PPP: Point to Point Protocol PPTP: Point to Point Tunneling Protocol PU: Physical Unit (IBM) RADIUS: Remote Authentication Dial-In User Service RAS: Remote Access Service RFC: Request for Comments RPC: Remote Procedure Call SDLC: Synchronous Data Link Control SGDB: Sistema Gerenciador de Banco de Dados SHA: Secure Hash Algorithm

Referncias

137

SID: Security Identifier SMB: Server Message Block Protocol SNA: System Network Architecture SO: Sistema Operacional SOR: Sistema Operacional de Rede SPI: Security Parameter Index SPP: Sequenced Packet Protocol SPX: Sequential Packet Exchange SQL: Structured Query Language SSL: Secure Socket Layer TGS: Ticket-Granting Service TGT: Ticket-Granting Ticket TI: Technologic of Information TLS: Transaction Layer Security VPN: Virtual Private Network W3C: World Wide Web Consortium XDR: External Data Representation XNS: Xerox Network Service

Referncias
[01] - AMARAL, Wilson Henriques do, Arquitetura Cliente/Servidor Orientada a Objeto, Tese de Mestrado, DES-IME - Departamento de Engenharia de Sistemas, Instituto Militar de Engenharia, 1993. [02] - ANDREWS, Gregory R., Concurrent Programming: Principles and Practice, AddisonWesley, 1991. [03] - Reverse Proxy Documentation. Disponvel em: http://www.apache.org. Acesso em: 10/06/2004 [04] - BATTISTI, Julio, Windows Server 2003: Curso Completo, Editora Axcel Books, 2003 [05] - LEVACHOF, Alessandro, Uma proposta de extenso da camada de transporte (TLS) para uso sobre datagramas de usurios (UDP), Tese de Mestrado, UFRJ, 2004 [06] - COMER, Douglas E. & STEVENS, David L. Internetworking With TCP/IP Vol.III: Client/Server Programming and Application (Socket Version). Prentice Hall, Englewood Cliffs, New Jersey, USA, 1993. [07] - SOFIA, Helena Rute E. C., Estudo do Protocolo ISAKMP/Oakley como Norma de Gesto de Chaves da Arquitetura de Segurana IPSec. Tese de Mestrado, FCUL - Faculdade de Cincias da Universidade de Lisboa/ Departamento de Informtica, 1999. [08] - DANSEGLIO, Mike. MOWERS, David and CRALL, Chris. SSL/TLS in Windows Server 2003. Disponvel em: http://technet.microsoft.com. Acesso em: 01/07/2003. [09] - CUSTER, Helen. Windows NT, Microsoft Press, Makron Books, So Paulo, 1993. [10] - DAVIS, Ralph. Windows NT Networking Programming Addison Wesley, 1994 [11] - DUMAS, Arthur Programando WinSock, Axcel Books, Rio de Janeiro, 1995. [12] - HULTQUIST, Steve <ssh@vnet.ibm.com> FAQ about Client/Server. Disponvel em: http://non.com/news.answers/client-server-faq.html. Acesso em: 03/07/1997. [13] - KORB, Alexei, Colaborao Visual: Ferramentas, protocolos e aplicaes para a interao remota entre pessoas, Tese de Mestrado, UFRGS, 2000. [14] - SCHIFFMAN, Allan M., The Secure Sockets Layer Protocol and Applications, Western Institute of Computer Science, Internet Security Course, 02/08/1996. [15] - LEFEBVRE, Alain LArchitecture Client-Serveur: Aspects techniques, enjeux stratgiques, Armand Colin, 2e dition, 1994.

138

139

Referncias

[16] - LOCHER, L. J., Trusted and Trusting Domains in NT 4.0, Windows & .NET Magazine, December 1999. [17] - CARMO, Agnaldo do, et al, Tecnologia da Informao em Governo, Curso de capacitao para executivos pblicos, mdulo 9, FUNDAP. Disponvel em: http://www.fundap.sp.gov.br. Acesso em: 02/06/2003. [18] - MACHADO, Pedro P. Lemos, BEZERRA, Ernani Lopes, LIMA, Jos Ney de O., Fundamentos do Modelo de Segurana da Informao. Disponvel em: http://www.redegoverno.gov.br. Acesso em: 10/08/2000. [19] - FERNANDEZ, Alexandre M., Segurana em redes IP. Monografia de Ps-Graduao, ASIT (Advanded School of Internet Tecnology), 2001. [20] - STEWART, McKie, Everything you wanted to know about Client/Server computing but were afraid to ask Eye on Technology. Disponvel em: http://www.duke.com/controller/Issues/DecJan/Clientse.htm. Acesso em: 11/07/2002. [21] - Microsoft Corporation, Understanding PPTP (Windows NT 4.0), Write Paper 0197 Part n 098-68564, 1996. Disponvel em: http://technet.microsoft.com. Acesso em: 03/03/2003. [22] - Microsoft Corporation, Single Sign-On in Windows 2000 Networks, Microsoft paper,. Disponvel em: http://technet.microsoft.com. Acesso em: 03/03/2001. [23] - Microsoft Corporation, How VPN Works. Disponvel em: http://technet.microsoft.com. Acesso em: 08/04/2003. [24] - MURHAMMER, Martin. BOURNE, Tim. GAIDOSCH, Tamas. KUNZINGER, Charles. RADEMACHER, Laura. WEINFURTER, Andreas. A Compreensive Guide to Virtual Private Networks, Volume I: IBM Firewall, Server and Client Solution. Internacional Business Machines Corporation 1998. Disponvel em: http://www.redbooks.ibm.com. Acesso em: 04/05/2003. [25] - PASTORE, Pablo. Grupo de Teleinformtica e Automao-UFRJ. Disponvel em: http://www.gta.ufrj.br/grad/03_1/http/tls.html. Acesso em: 30/04/2004. [26] - PHAM, Thuam Q. & Garg, Pankaj K. Multithreaded Programming with Windows NT Prentice Hall, 1996. [27] - QUINN, Bob & Shute, Dave Windows Sockets Network Programming Addison Wesley, 1996 [28] - RENAUD, Paul E. Introduo aos Sistemas Cliente/Servidor IBPI Press, RJ 1993. [29] - REZENDE, Edmar Roberto S. de, Segurana no acesso remoto VPN, Dissertao de Mestrado, IC-UNICAMP Instituto de Computao, Universidade Estadual de Campinas, 2004 [30] - ROBERTS, Dave. Developing for the Internet with Winsock Coriolis Group Books, 1995.

140

Referncias

[31] - SALEMI, Joe. Guia para Banco de Dados Cliente/Servidor . IBPI Press, 1993. [32] - SANTOS, Luiz Carlos dos. Como funciona a autenticao, artigo publicado em agosto/2000, Clube das Redes. Disponvel em: http://www.clubedasredes.eti.br/rede0008.htm. Acesso em 07/06/2004. [33] - SENA, Jansen C. Um modelo para proteo do trfego de servios baseado em nveis de segurana. Tese de Mestrado, IC-UNICAMP Instituto de Computao, Universidade Estadual de Campinas, 2002 [34] - SMITH, Randy Franklin. Windows 2000 Security Gains, Windows 2000 Magazine,. Disponvel em: http://www.win2000mag.net/, 2001 e http://technet.microsoft.com, 2002. Acesso em: 04/03/2003. [35] - TANENBAUM, Andrew S. Distributed Operating Systems Prentice Hall, 1995. [36] - TANENBAUM, Andrew S. Computer Networks Prentice Hall, Third Edition, 1996. [37] - TAROUCO, Liane Margarida Rockenbach. Redes de Computadores: Locais e de Longa Distancia. McGraw-Hill ,So Paulo, 1986. [38] - VIDAL, Paulo Csar Salgado. Modelagem para Arquitetura Cliente/Servidor Orientada a Objeto. Tese de Mestrado, DES-IME - Departamento de Engenharia de Sistemas, Instituto Militar de Engenharia, 1994. [39] - BLENT, Yener. Internet Security, Rensselaer Polytechnic University, New York, 2002. [40] - STEVENS, Richard W., TCP/IP Illustrated, Volume 1 the protocols, Addison Wesley, 2001 [41] - Microsoft Corporation, Virtual Private Networks for Windows Server 2003. Disponvel em: http://technet.microsoft.com. Acesso em: 09/06/2004. [42] - Microsoft Corporation, Cryptography for network and information security, Windows 2000 Server Resource Kit Documentation. Disponvel em: http://technet.microsoft.com. Acesso em: 09/06/2004. [43] - Microsoft Corporation, Windows 2000 Certificate Services and Public Key Infrastructure, Windows 2000 Server Resource Kit Documentation. Disponvel em: http://technet.microsoft.com. Acesso em: 10/06/2004. [44] Kurose, James F., Ross, Keith W., Computer Networking: A TopDown Approach Featuring the Internet, Addison Wesley, 3rd Edition [45] Microsoft Corporation, Chapter 1 - Windows NT Networking Architecture, Windows NT Server Documentation. Disponvel em: http://www.microsoft.com/technet/prodtechnol/winntas/support/chptr1.mspx. Acesso em: 27/10/2004.

S-ar putea să vă placă și