Você está na página 1de 10

SILVA e CUNHA, 2005

ARQUITETURA DE SEGURANA EM APLICAES BASEADAS EM WEB SERVICES Reginaldo F. Silva1 e Jos A. Cunha2 Gerncia de Tecnologia da Informao CEFET-RN. naldo_ds@yahoo.com.br 2 Professor da Gerncia de Tecnologia da Informao CEFET-RN. jcunha@cefetrn.br
1

Recebido em outubro de 2005 e aceito em dezembro de 2005

RESUMO Este artigo aborda conceitos e aspectos de segurana relativos aos Web Services, uma nova arquitetura de sistemas que permite que programas ofertem suas funcionalidades a outros programas atravs da Internet. O fato de todas as suas operaes estarem baseadas na Internet torna os Web Services muito sensveis quanto segurana: agentes no-autorizados podem interceptar e modificar dados em trfego pela rede, interromper o funcionamento de servios, utilizar recursos sem permisso. Por esse motivo, conceitos, mecanismos e padres de implementao de segurana devem ser aplicados, para que a arquitetura de Web Services seja considerada confivel no que tange segurana da informao. Palavras-chave: segurana, web services, sistemas distribudos.

Holos, Ano 21, dezembro 2005

15

SILVA e CUNHA, 2005

ARQUITETURA DE SEGURANA EM APLICAES BASEADAS EM WEB SERVICES

INTRODUO Informao vem se tornando cada dia mais importante e imprescindvel no cotidiano da sociedade moderna em diversas reas e de inmeras maneiras. A quantidade de novas informaes cresce constantemente, impulsionada pelos avanos tecnolgicos que causam o barateamento e maior acessibilidade a novos meios de comunicao, fazendo com que pessoas e empresas possam interagir entre si mais rpida e facilmente do que antes. Os sistemas de software tambm vm se adequando a esse novo panorama de interatividade global, proporcionando solues acessveis de qualquer parte do mundo a qualquer instante, muitas vezes possuindo uma arquitetura distribuda, portvel, escalonvel e ainda tendo capacidade de prover e requisitar servios, ou seja, troca de informaes entre aplicaes. Dentro desse novo cenrio surgiram tecnologias de computao que se propem ao suporte de todos esses requisitos. Web Services uma dessas propostas. Mas esse panorama tambm traz algumas novas preocupaes para os desenvolvedores de aplicaes. A principal delas relativa segurana dos sistemas, pois toda a funcionalidade dos Web Services feita on-line, e, portanto, sujeita a tentativas de ataques e outras prticas ilcitas do mundo virtual.

SEGURANA DA INFORMAO A segurana da informao um dos mais vastos, complexos e recorrentes temas dentro da tecnologia da informao por envolver diversos componentes e preocupaes diferentes durante sua implantao e produo em um ambiente computacional (Moreira, 2001). Nessas fases desejvel a ocorrncia da menor quantidade possvel de vulnerabilidades e imprescindvel o gerenciamento constante de como e por quem est sendo feito o acesso aos recursos disponibilizados aos usurios que esto cobertos pelo sistema de segurana (Nakamura, 2001). Outro importante fator na aplicao da segurana da informao o prvio conhecimento do que est sendo protegido e quanto custa proteg-lo. Se os gastos com segurana forem maiores do que uma possvel perda dos recursos protegidos, talvez no seja uma boa idia a adoo de medidas de segurana to rgidas ou custosas (Wadlow, 2000). Basicamente, a segurana da informao est fundamentada em sete conceitos que trabalham em conjunto para promover segurana a um sistema (ONeill, 2003): Confidencialidade: garantia, atravs de criptografia, de que as informaes armazenadas ou transmitidas no podero ser vistas ou interpretadas por qualquer outra entidade diferente do usurio original e do destinatrio. 16

Holos, Ano 21, dezembro 2005

SILVA e CUNHA, 2005

Autenticao: validao das credenciais de um cliente junto a uma autoridade certificadora. Autorizao: verificao pelas autoridades certificadoras de que um cliente tem acesso ou no a um recurso que est tentando utilizar aps j ter sido autenticado. Integridade: certificao de que as informaes transmitidas no so alteradas acidental ou maliciosamente em nenhum ponto de seu trajeto entre um emissor e um receptor. No-repdio: garantia, atravs de criptografia, de que um emissor no pode negar que enviou uma mensagem que foi recebida por um receptor. Disponibilidade: garantia de que um servio estar disponvel aos usurios autorizados no momento em que necessitarem dele.

WEB SERVICES A arquitetura orientada a servios dos Web Services permite construir aplicaes modulares e independentes que so distribudas facilmente em qualquer estrutura de redes TCP/IP, atravs da criao de servidores e clientes que independem da linguagem de programao e do sistema operacional em que so implementados. Os servidores descrevem seus prprios servios atravs de uma linguagem pr-definida e, dessa forma, os clientes podem facilmente obter informaes sobre estes servidores, tais como: estrutura, mtodos e parmetros exigidos, e, assim, usar seus servios (Rosenberg, 2004). A iniciativa para o desenvolvimento da lgica de Web Services um grande esforo conjunto de gigantes da rea de informtica como IBM, Microsoft, Oracle, Sun, Novell, HP, entre outros, que tenta resolver alguns problemas que tecnologias de sistemas distribudos como CORBA e COM+ possuem, como passagem por firewalls, complexidade dos protocolos e integrao entre plataformas heterogneas (Basiura, 2003). Mas o grande poder existente na arquitetura dos Web Services que, com sua implementao e infra-estrutura, possvel alavancar muitos dos recursos j existentes e funcionais na Internet, como protocolos de segurana e de transporte de pacotes, evitando assim a complexidade existente nos protocolos de outras tecnologias de sistemas distribudos (Hartman, 2003). XML o padro utilizado para serializao e descrio dos dados enviados e recebidos pelos Web Services em um formato de texto plano estruturado, que permite aos documentos no ter a complexidade de um formato de codificao binria usado por CORBA e COM+, alm de ser mais extensvel e legvel (Basiura, 2003). SOAP O protocolo SOAP foi criado como um meio de transmitir mensagens no formato XML sobre protocolos-padro de transporte na Internet como HTTP e SMTP. A prpria estrutura de uma mensagem SOAP definida com o uso de XML (Rosenberg, 2004).

Holos, Ano 21, dezembro 2005

17

SILVA e CUNHA, 2005

SOAP possui um envelope no qual a mensagem XML inserida. Este envelope composto de duas partes: um cabealho que fornece informaes, algumas vezes opcionais, sobre a mensagem SOAP, como, por exemplo, credenciais de segurana, e um corpo que contm o payload da mensagem, que pode ser uma operao a ser executada pelo Web Service e seus parmetros ou um contedo qualquer a ser transmitido. O protocolo SOAP foi projetado de uma maneira que o torna extensvel a futuras necessidades, sendo que a maior rea livre a extenses fica no cabealho do envelope (Rosenberg, 2004). Por razes de segurana as mensagens SOAP devem ter seu contedo mantido secreto dos intermedirios (se forem no-autorizados) at chegarem aos seus destinos, onde o destinatrio de uma mensagem SOAP deve reconhecer quem est enviando os dados e o que o emissor est autorizado a acessar (Rosenberg, 2004). WSDL o padro usado para descrever em formato XML a estrutura lgica e a sinttica de um Web Service. Nessa descrio est exposto aos consumidores o que podem consumir desse Web Service, como devem interagir com ele atravs de mensagens empacotadas no envelope SOAP, e onde procurar e encontrar esse Web Service (Rosenberg, 2004). A utilizao de XML como padro para troca de informaes e referncias para a localizao de servios torna a WSDL mais flexvel e rica que a IDL usada em CORBA e COM+ (Scribner, 2001). Por outro lado, WSDL pode ser o maior problema de segurana dentro de uma arquitetura de Web Services, justamente porque expe ao mundo exterior a interface de um Web Service. Devem ser aplicados mecanismos de segurana para bloquear o acesso de agentes no-autorizados a WSDL, at mesmo para leitura (Rosenberg, 2004). UDDI um repositrio central de localizao conhecida baseado em XML, onde os Web Services podem ser publicados, pesquisados em tempo de execuo e consumidos por clientes interessados em seus servios. UDDI um componente opcional na implementao de uma arquitetura de Web Services, pois o consumidor pode j conhecer a localizao do Web Service desejado e no necessitar do servio de descoberta (Scribner, 2001). Classe Proxy A classe proxy, ou simplesmente proxy, permite estabelecer uma referncia a um Web Service remoto e usar sua funcionalidade dentro de uma aplicao. A funo principal de um proxy abstrair os detalhes de interao com o Web Service, como invocao, codificao, empacotamento SOAP e transmisso, tornando mais natural a implementao da lgica Web Service nas aplicaes. Tambm possuem a capacidade de interpretar WSDL e gerar automaticamente o cdigo-fonte apropriado para chamar qualquer Web Service (Basiura, 2003). A Figura 1 mostra a utilizao de todos os elementos bsicos apresentados acima durante o ciclo de vida de um Web Service: o desenvolvedor cria, testa e disponibiliza um Web Service (1), podendo opcionalmente public-lo em um catlogo UDDI (2), e ento um consumidor de Web Services poder procurar o servio nesse catlogo (3). Aps obter a localizao do Web Service, o consumidor requisita sua descrio WSDL (4). De posse da
Holos, Ano 21, dezembro 2005

18

SILVA e CUNHA, 2005

estrutura lgica e sinttica do Web Service, o consumidor pode criar um proxy e um cliente para acessar a interface (5) e, finalmente, chamar algum mtodo do Web Service (6). Todas as operaes so feitas utilizando o formato XML (Basiura, 2003).

Figura 1. Ciclo de vida de um Web Service.

SEGURANA DE WEB SERVICES Como j descrito anteriormente, os Web Services expem suas funcionalidades atravs de uma arquitetura orientada a servios que bem mais aberta em virtude de sua caracterstica distribuda e de sua natureza heterognea quanto a plataformas de execuo. Por prover essas facilidades de acesso e integrao, a arquitetura de Web Services frgil em relao segurana, que deve ser ento considerada o foco principal durante o projeto de um sistema baseado em Web Services. O desafio manter a eficincia dessas funcionalidades e ainda proporcionar um ambiente seguro (Hartman, 2003).

Desafios da segurana de Web Services 1. Segurana baseada no usurio final de um Web Service Web Services foram criados para serem consumidos por aplicaes e no diretamente por usurios finais, isto , humanos. Porm a permisso de acesso a um Web Service pode ser decida a partir de informaes a respeito de um usurio final. O desafio, ento, como embutir de forma segura as informaes credenciais do usurio final dentro das mensagens SOAP que trafegam nas requisies a Web Services (ONeill, 2003). 2. Manuteno da segurana enquanto roteando entre mltiplos Web Services Dependendo da infra-estrutura do sistema distribudo, uma mensagem SOAP pode rotear entre diversos Web Services para atender a uma requisio de um cliente. Assim, por questes de confidencialidade, a informao contida na mensagem no deve ser acessvel aos Web Services intermedirios do roteiro, apenas ao Web Service que foi consumido pelo cliente e pelo Web Service que atendeu a requisio encadeada (ONeill, 2003). 19

Holos, Ano 21, dezembro 2005

SILVA e CUNHA, 2005

3. Abstrair a segurana da rede subjacente A segurana aos Web Services no pode ser fixada nos mecanismos de segurana Web existentes atualmente. Deve ser flexvel e dinmica o bastante para se adaptar a qualquer novo protocolo de troca de mensagem que venha a surgir (ONeill, 2003). Como toda a comunicao com Web Services feita atravs do protocolo SOAP em formato XML, suas mensagens so perfeitamente legveis. Alm disso SOAP no implementa segurana por questes de manuteno da simplicidade e portabilidade do protocolo. Ento para que a comunicao seja segura implementaes de segurana devem ser feitas ao nvel de sistema (nas camadas de rede e de transporte) e ao nvel de aplicao (atravs de processos e configuraes personalizadas e pela aplicao de padres de segurana em XML) (Scribner, 2001). Segurana na camada de rede A segurana nessa camada se reflete atravs dos mecanismos de comunicao e de segregao das redes interna e externa de uma organizao (Ferreira, 2005). 1. Firewall Conseguem bloquear ou liberar acessos partindo de determinados computadores ou aplicaes aos Web Services, mas no possuem capacidade de anlise da integridade do contedo das mensagens SOAP (Ferreira, 2005). 2. VPN Permite proteger a confidencialidade e integridade dos dados trafegados e estabelecer permetros que podem definir conjuntos de clientes confiveis que tm acesso aos mtodos dos Web Services. Por outro lado, uma VPN no controla o consumo inadvertido de Web Services por aplicaes disparadas de computadores de dentro de seu domnio (Ferreira, 2005). Segurana na camada de transporte Dentro da camada de transporte a segurana de Web Services pode ser aplicada atravs da implementao de protocolos e mecanismos de segurana j existentes (Ferreira, 2005). 1. Certificados digitais Validaes digitais atribudas por empresas certificadoras independentes e confiveis a clientes web, sites ou usurios finais, atravs do uso de chaves de criptografia, para que possam ser autenticados em outras entidades da Internet (Basiura, 2003). 2. PKI uma implementao do conceito de criptografia assimtrica baseada em pares de chaves, uma pblica, outra privada. A chave privada armazenada no lado servidor e a chave pblica est disponvel no lado cliente. O servidor envia dados na forma codificada usando sua chave privada e o cliente recebe os dados e os decodifica usando sua chave pblica. Se algum entre o cliente e o servidor apanhar os dados, no conseguir decifrlos sem a chave pblica da chave privada codificada. Da mesma maneira, o cliente envia os dados codificados usando a chave pblica e o servidor a decodifica usando sua chave privada. Ningum no meio do caminho pode decodificar os dados sem a chave privada (Basiura, 2003). 3. SSL Permite a transmisso de dados com garantia da proteo de sua integridade e confidencialidade atravs de criptografia PKI e da autenticao de usurios e servidores por meio de certificados digitais. Essa segurana obtida atravs da abertura de um canal
Holos, Ano 21, dezembro 2005

20

SILVA e CUNHA, 2005

de comunicao seguro pelo cliente que o utiliza para trocar mensagens SOAP. Mas o grande problema existente em SSL que no fornece uma segurana fim-a-fim. Em sistemas onde o servidor que armazena as informaes sigilosas diferente do servidor onde esto os Web Services, a vulnerabilidade alta (Ferreira, 2005). Segurana na camada de aplicao Na camada de aplicao possvel levar a segurana ao nvel da anlise de integridade de cada mensagem SOAP enviada ou recebida por um Web Service, alm do reconhecimento do usurio responsvel por cada uma delas, atravs da autenticao de credenciais, certificados ou outras informaes contidas nas mensagens (Ferreira, 2005). 1. Nativa em sistemas operacionais Atravs da poltica de segurana nativa de um sistema operacional pode-se autorizar os privilgios de uma conta ou grupo de usurio em relao a um Web Service ou a seu diretrio (Basiura, 2003). 2. IP e DNS Restries feitas sobre IP e DNS permitem ceder ou negar acesso requisitado ao Web Service a partir de um endereo IP especfico e de nomes DNS simples ou mltiplos (Basiura, 2003). 3. HTTP a. Basic Authentication O cliente de um Web Service deve fornecer ao servidor web as credenciais de um usurio autorizado. Os pontos positivos desse tipo de autenticao so a facilidade de implementao, a compatibilidade com a maioria dos servidores web e navegadores, a rapidez da autenticao e o suporte por todos os proxies e firewalls. Os aspectos negativos so a forma no segura de envio das credenciais, a necessidade de reenvio dessas credenciais a cada solicitao feita e a impossibilidade do uso em conjunto com uma autorizadora certificadora personalizada (Basiura, 2003). b. Basic Authentication com SSL O problema do envio de nome e senha de usurio em formato no seguro existente em Basic Authentication pode ser corrigido atravs do uso de um canal seguro SSL (Basiura, 2003). c. Digest Authentication Tem as mesmas caractersticas da Basic Authentication, mas transmite as credenciais de uma maneira diferente e mais segura, atravs de um processo chamado hashing de via nica. Nesse processo so acrescentadas outras informaes a senha com a finalidade de impedir a captura e posterior reutilizao da senha hash por um agente no autorizado. As vantagens so as mesmas da Basic Authentication, alm do nome do usurio e da senha nunca serem enviados como texto limpo. Porm s suportada pelo Windows 2000 com Active Directory, IIS 5, Internet Explorer 4, Netscape 4 (e suas verses posteriores) e tambm no pode ser usada com uma autorizadora certificadora personalizada (Basiura, 2003). d. Integrated Windows Authentication Similar a Digest Authentication, utiliza um hashing mais sofisticado, atravs do suporte ao protocolo de autenticao Kerberos V5 (se o Active Directory estiver instalado e o navegador for compatvel) ou do protocolo challenge/response. Os pontos positivos so os mesmos da Basic e Digest Authentication, com a vantagem da senha nunca ser enviada na mesma mensagem. Porm s suportada pelo navegador Internet Explorer, no funciona com servidores proxy, necessita da abertura de portas TCP adicionais no firewall e
Holos, Ano 21, dezembro 2005

21

SILVA e CUNHA, 2005

tambm no trabalha em conjunto com uma autorizadora certificadora personalizada (Basiura, 2003). e. Client Certification Authentication Os certificados de cliente so emitidos por empresas certificadoras autorizadas com a finalidade de validar um cliente junto a um servidor que tenha suporte a certificados. A grande vantagem do certificado de cliente que existe a garantia de que o certificado vlido, pois as certificadoras autorizadas verificam a identidade do usurio antes de emiti-lo (Basiura, 2003). 4. ASP.NET a. Forms Authentication Atualmente a forma de autenticao mais utilizada por permitir gerenciamento mais facilitado de um grande nmero de usurios e ser totalmente personalizvel. Mas suas desvantagens so a necessidade de mais memria e poder de processamento para tratamento das autoridades personalizadas, e a obrigatoriedade de o usurio ter que aceitar cookies para poder se autenticar (Basiura, 2003). b. Passport Authentication uma proposta da Microsoft para um sistema centralizado de login. semelhante a Forms Authentication, mas com a diferena de que as credenciais ficam armazenadas em servidores prprios da Microsoft (Hartman, 2003). O ponto forte a possibilidade de se manter apenas uma credencial de usurio para autenticao em diversos sites que suportem Passport. A desvantagem que muitos usurios no confiam no servio, por se tratar de um sistema proprietrio centralizado que pode falhar e deixar todos sem condies de autenticao (ONeill, 2003). c. Controle de acesso O ASP.NET pode decidir se um usurio autenticado pode ou no acessar determinado Web Service ou outro recurso atravs da configurao do XML web.config (Basiura, 2003). 5. XML O protocolo SOAP no implementa nenhum mecanismo segurana, apenas alavanca mecanismos j existentes na infra-estrutura de rede que desempenhem essa funo. SSL o principal desses mecanismos, mas o fato de no prover segurana fim-afim, criptografia seletiva, autenticao, integridade de dados e no-rejeio, o torna noaplicvel a todas as situaes em que Web Services precisem ser seguros. Por essas razes novas especificaes de segurana tm sido propostas com o intuito de promover segurana especfica a Web Services. Mas falta ainda um acordo sobre qual desses mecanismos devem ser adotados como padro (Ferreira, 2005). a. XML Signature um padro aberto que permite especificar regras de processamento para criao e representao de assinaturas digitais em pores selecionadas de um documento XML, atravs de tags XML especficas e de criptografia assimtrica, com o intuito de promover integridade e no-repdio a uma mensagem SOAP (Potts, 2003). b. XML Encryption Especifica um processo para criptografia de dados e sua representao em formato XML. Os dados podem ser arbitrrios (incluindo um documento XML completo), elementos XML, ou contedos de elementos XML. Um documento XML que utiliza a XML Encryption pode ser visto por qualquer utilizador, mas apenas o proprietrio da chave de decodificao conseguir compreender o contedo do que foi criptografado (Potts, 2003). c. SAML um padro emergente para a troca de informao sobre autenticao e autorizao, solucionando um importante problema das aplicaes, que a
Holos, Ano 21, dezembro 2005

22

SILVA e CUNHA, 2005

possibilidade de consumidores transportarem seus direitos entre diferentes Web Services. Isto importante para aplicaes que integrem um nmero de Web Services para formar uma aplicao unificada (Ferreira, 2005). d. XKMS Fornece um protocolo, baseado em SOAP, para gerenciamento de chaves pblicas, incluindo funes para obteno de informaes sobre chaves, registro, verificao e revogao de permisses. O XKMS tem a funo principal de fornecer suporte ao gerenciamento de chaves para tecnologias como XML Signature e XML Encryption, mas tambm pode ser utilizado para suportar outras tecnologias de chaves pblicas (Potts, 2003). e. WS-Security WS-Security prope um conjunto de extenses no cabealho do envelope SOAP para inserir dados relativos a segurana atravs de especificaes como XML Signature e XML Encryption, bem como os padres que surgirem futuramente. O objetivo do WS-Security fornecer a estrutura de uma soluo de segurana de Web Services completa, que possa ser instanciada s necessidades do implementador (ONeill, 2003). Mas o maior valor que a especificao WSSecurity traz a organizao do cabealho SOAP, imprescindvel para o estabelecimento de um padro que transforme a segurana de Web Services de uma srie de solues personalizadas em um mtodo mais unificado de transferir informaes com segurana por meio da Internet (Potts, 2003).

CONCLUSO Em mecanismos de segurana nativos de sistemas operacionais, como permisses de usurios e grupos e controle de acesso por IP e DNS, a soluo de segurana fica totalmente dependente do sistema operacional e somente a autorizao de acesso para usurios pode ser implementada. Na segurana aplicada ao protocolo HTTP e sobre o ASP.NET existem problemas de incompatibilidade com alguns servidores web, navegadores e sistemas operacionais, alm de s permitirem a implementao de autenticao e autorizao. Padres de segurana baseados na camada de transporte sobre protocolos j estabelecidos, como SSL e PKI, fornecem confiabilidade na transmisso das mensagens, atravs de segurana bsica ponto-a-ponto entre um cliente e um servidor, mas no garantem a integridade de uma comunicao fim-a-fim, nem provm recursos para autenticao e autorizao. Nos padres baseados em XML no existe o problema de dependncia de plataforma, servidores web ou navegadores, pois XML um padro aberto e totalmente compatvel com os Web Services. Alm disso, os padres de segurana baseados em XML oferecem segurana fim-a-fim, fornecendo mecanismos para confidencialidade e integridade do contedo das mensagens e capacidade de autenticao e autorizao de usurios, o que possibilita uma soluo completa para comunicao segura entre consumidor, intermedirios e provedor.

Holos, Ano 21, dezembro 2005

23

SILVA e CUNHA, 2005

REFERNCIAS Basiura, Russ et al. Professional ASP.NET Web Services. 1. ed. So Paulo: Pearson Education, 2003. 701p. Ferreira, Lucas de Carvalho. Relatrio Tcnico Segurana de Web Services. 1. ed. Rio de Janeiro: Cipher Segurana da Informao, 2005. 12p. Hartman, Bret et al. Mastering Web Services Security. 1. ed. Indianapolis: Wiley, 2003. 436p. Moreira, Nilton Stringasci. Segurana Mnima: uma viso corporativa da segurana de informaes. 1. ed. Rio de Janeiro: Axcel, 2001. 211p. Nakamura, Rodolfo Reijiro. E-commerce na Internet: fcil de entender. 1. ed. So Paulo: rica, 2001. 240p. ONeill, Mark et al. Web Services Security. 1. ed. Berkeley: McGraw-Hill, 2003. 312p. Potts, Stephen et al. Aprenda em 24 horas Web Services. 1. ed. Rio de Janeiro: Campus, 2003. 367p. Rosenberg, Jothy; REMY, David L. Securing Web Services with WS-Security. 1. ed. Indianapolis: Sams, 2004. 408p. Scribner, Kenn; STIVER, Mark C. Applied SOAP: implementing .NET XML Web Services. 1. ed. Indianapolis: Sams, 2001. 432p. Wadlow, Thomas A. Segurana de Redes: projeto e gerenciamento de redes seguras. 1. ed. Rio de Janeiro: Campus, 2000. 269p.

Holos, Ano 21, dezembro 2005

24

Você também pode gostar