msc presentation

Post on 14-Jun-2015

318 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Segurança de aplicações empresariais

em arquitecturas de serviços

Miguel Filipe Leitão Pardal

Mestrado em Engenharia Informática e de Computadores

13 de Setembro de 2006

Segurança de aplicações empresariais em arquitecturas de serviços

Resumo

• Organizações em adaptação permanente

• Tecnologia de serviços– Web Services, Service-Oriented Architectures– Maior flexibilidade, reutilização e interoperabilidade

• Problema– Serviços com valor implicam segurança– Quais as capacidades de protecção da tecnologia disponível?

• Nesta tese fez-se uma avaliação da tecnologia– Caso de estudo “compra e venda de imóvel”

Segurança de aplicações empresariais em arquitecturas de serviços

Sumário

• Enquadramento

• Contributos

• Trabalho futuro e conclusão

Segurança de aplicações empresariais em arquitecturas de serviços

Sumário

• Enquadramento

• Contributos

• Trabalho futuro e conclusão

Segurança de aplicações empresariais em arquitecturas de serviços

Aplicações empresariais

• Características

– Complexidade e quantidade de dados

– Diversidade e quantidade de utilizadores

– Complexidade das regras de negócio

– Necessidades de integração

– Variedade e complexidade das ferramentas

Segurança de aplicações empresariais em arquitecturas de serviços

Serviços

• O serviço é a unidade de acesso a informação e funcionalidade

• Web Services – Tecnologia• Mensagens• Encapsulamento• Autonomia• Composição• Interoperabilidade

• SOA – Arquitectura• Visão global da organização• Orquestração e coreografia de serviços para suportar o

negócio• Papel fulcral da meta-informação (contratos)

Segurança de aplicações empresariais em arquitecturas de serviços

Vinculação por contratos(binding)

SOAPHandlers

ProcessadoresMensagens

SOAP

Extremidade do serviçoXSD

WS-Policy

Cliente

#3 Gerar

#4 Configurar

#5 Invocar

#6 Executar

#1 Publicar

#2 Descobrir

WSDLSOAPHandlers

Adaptadores para SOAP

Dados

Política

Funções

Segurança de aplicações empresariais em arquitecturas de serviços

Segurança de serviços

• Ênfase na integração de tecnologias existentes: X.509, Kerberos, etc.

– Autenticação– Autorização– Protecção das

mensagens– Flexibilidade de

configuração

Segurança de aplicações empresariais em arquitecturas de serviços

Sumário

• Enquadramento

• Contributos

• Trabalho futuro e conclusão

Segurança de aplicações empresariais em arquitecturas de serviços

Contributos da tese

1. Retrato das normas e implementações de serviços

2. Avaliação da tecnologia de segurança através de

ensaios e de protótipo de caso de estudo

3. Identificação dos mecanismos da plataforma de

serviços necessários para implementar segurança

Segurança de aplicações empresariais em arquitecturas de serviços

Contributo 1:Normas e implementações

Segurança de aplicações empresariais em arquitecturas de serviços

Normas

Interoperabilidade

Representação de dados

Descoberta

Contrato

Processos de negócio

Transacções

Transporte

Mensagem

Segurança

HTTPSMTPTCP-IPUDP... Message Queues

SOAPMTOM/XOPWS-AddressingWS-EnumerationWS-EventingWS-NotificationWS-Polling

WSDLWS-PolicyWS-TransferWS-Resource Framework

UDDIWS-InspectionWS-DiscoveryWS-Metadata Exchange

XML EncryptionXML SignatureSAMLWS-SecurityWS-SecurityPolicyWS-TrustWS-SecureConversationWS-FederationXACMLRELXAdESXKMS

WS-BPEL (BPEL4WS)WS-CDLASAPWS-RPWS-XL

WS-ManagementWS-DistributedManagementWS-Provisioning

XMLXML Schema

WS-I Basic ProfileWS-I Basic Security ProfileWS-Device Profile

WS-Coordination

WS-CompositeApplicationFramework

Gestão

WS-ReliableMessagingWS-Reliability

Mensagensfiáveis

?

??

?

Segurança de aplicações empresariais em arquitecturas de serviços

Implementações

• WSE 3 (Web Services Enhancements 3)

• WSS4J (Web Services Security for Java)

• XWSS (XML and Web Services Security)

WS-Security: Username, X.509SAML

XWSS: Java Web Services Developer Pack 2.0, XML and Web Services Security 2.0

Sun Microsystems

WS-Security: Username, X.509WS-PolicySAML

WSS4J: Apache Axis2, Rampart module of Web Services Security for Java (WSS4J)

Apache

WS-Security: Username, X.509, KerberosWS-Secure Conversation, WS-TrustSAML (asserções)

WSE 3: Dot Net Framework 2.0, Visual Studio 2005, Web Services Enhancements 3.0

Microsoft

Normas suportadasImplementaçãoFornecedor

Segurança de aplicações empresariais em arquitecturas de serviços

Contributo 2:Avaliação

• Caso de estudo– Real, complexo, familiar– “Compra e venda de imóvel”

• Processo de negócio– Cenários exemplificativos

• Protótipo

Segurança de aplicações empresariais em arquitecturas de serviços

Processo de negócio

• Levantamento de processos e entidades informacionais

PN.1 – Comprar e vender imóvel

PN.1.1 - Colocar imóvel à venda

PN.1.2 – Verificar estado legal do imóvel à venda

PN.1.3 – Pedir crédito ao Banco

PN.1.4 – Fazer contrato promessa de compra e venda

PN.1.5 – Proceder aos registos provisórios

PN.1.6 – Pagar o Imposto sobre Transmissões Onerosas de Imóveis (IMT)

PN.1.9 – Celebrar a escritura de compra e venda e de hipoteca

PN.1.7 – Efectuar seguro do imóvel

PN.1.8 – Efectuar seguro pessoal de vida

PN.1.10 - Pedir a isenção de Imposto Municipal sobre Imóveis (IMI)

PN.1.11 - Converter em definitivo os registos provisórios

PN.1.12 - Cancelar a hipoteca

EI 1 - Imóvel

EI 1.1 - Caderneta predial

EI 1.2 - Certidão de teor

EI 1.3 - Licença de utilização

EI 2 - Vendedor

EI 2.1 - Situação legal

EI 2.2 - Situação financeira

EI 3 - Comprador

EI 3.1 - Património e rendimentos

EI 3.2 - Testes médicos

EI 4 - Notário EI 5 - Mediador Imobiliário EI 6 - Banco EI 7 - Seguradora

EI 8 - Mediação imobiliária para venda

EI 9 - Empréstimo para compra de imóvel

EI 10 - Promessa de compra e venda de

imóvel

EI 11 - Escritura de imóvel

EI 12 - Hipoteca de compra e venda de

imóvel

EI 13 - Pagamento de Imposto sobre

Transmissões Onerosas de Imóveis (IMT)

EI 14 - Isenção de Imposto Municipal sobre

Imóveis (IMI)

EI 15 - Seguro de vida e de imóvel

Segurança de aplicações empresariais em arquitecturas de serviços

Cenários• Excertos do processo que exemplificam as interacções

Notário

Consulta de licença de habitação

Assinatura do contrato-promessa

Validação de documentos exigidos

para escritura

Vendedor

Comprador CâmaraMunicipal

Mediadorimobiliário

Finanças

4: firmarContrato()Vendedor (V) Notário (N)

2: submeterContrato()5: obterContrato()

Comprador (C)

1*: negociarContrato()

3: submeterContrato()6: obterContrato()

Segurança de aplicações empresariais em arquitecturas de serviços

Ensaios1. Utilização da biblioteca System.Security.Cryptography para cifra e

decifra de dados;2. Cliente e servidor Web Services simples, tipo HelloWorld;3. Cliente e servidor Web Service assíncronos;4. Cliente e servidor Web Service com invocação de método

unidireccional;5. Cliente de Web Service Java;6. Utilização do registo de mensagens SOAP;7. Utilização de MTOM para optimizar a transmissão de mensagens

com dados binários;8. Utilização de configuração declarativa de segurança WS-Security:9. Autenticação de servidor com certificado digital X.509;10. Autenticação de cliente com nome e senha;11. Autenticação de cliente com certificado digital X.509;12. Utilização de WS-SecureConversation para que o certificado do

cliente só fosse enviado na primeira mensagem da sessão;13. Autorização com base em conta de utilizador Windows;14. Selecção programática da configuração WS-Security a usar;15. Desenvolvimento de elemento de configuração à medida;16. Instalação do pacote de extensão SAML Security Token Service

QuickStart.

1. Programas de manipulação XML com a biblioteca AXIOM 1.0:2. Criação de novos documentos;3. Leitura e validação de documentos existentes;4. Desenvolvimento de serviços com a biblioteca Axis2 1.0:5. Com manipulação directa de XML; 6. Com classes Java vinculadas aos dados;7. Desenvolvimento de clientes com a biblioteca Axis2 1.0:8. Com manipulação directa de XML;9. Com classes de invocação geradas por ferramenta a partir da

definição WSDL;10. Invocações síncronas e assíncronas de serviços;11. Operações com políticas WS-Policy usando a biblioteca Commons

Policy 1.0:12. Normalização;13. Junção;14. Intersecção.15. Instalação do módulo de segurança WSS4J.

Vinculação de dados Java com XML através da biblioteca JAX-B 2:Geração de código Java a partir de XML Schema, para leitura e escrita de

documentos;Utilização do elemento de extensão Any do XML Schema;Assinatura digital XML com a biblioteca Java XML Digital Signature API

(xmldsig), nas variantes:‘Detached’, que assina dados que são externos à assinatura;‘Enveloping’, que assina dados contidos na estrutura da assinatura;‘Enveloped’, onde a assinatura está contida na estrutura que está a ser

assinada;Desenvolvimento de clientes e serviços JAX-WS 2:A partir de WSDL;A partir de classes Java;Em ambas as situações anteriores, utilização de JAX-WS Handlers para

interceptar as mensagens SOAP;Desenvolvimento de clientes e serviços JAX-WS 2 com segurança XWSS, nas

seguintes configurações:Autenticação e autorização com utilizador e senha;Colocação e verificação de marcas temporais;Assinatura de mensagens com chave privada e verificação com certificado

digital de chave pública X.509;Cifra de mensagens com chave privada e decifra com certificado digital de

chave pública X.509;Cifra e decifra de mensagem com chave simétrica partilhada;Configuração de segurança diferenciada por operação do serviço (cada

operação do serviço tem uma configuração de segurança própria);Utilização e verificação de asserções SAML de autenticação;Combinações das configurações anteriores;Invocação de serviço com segurança no transporte usando HTTPS com

certificado digital do servidor Tomcat:Autenticação do cliente com utilizador e senha;Autenticação do cliente com certificado digital.

WSE 3WSS4J

XWSS

Segurança de aplicações empresariais em arquitecturas de serviços

Protótipo

• Assinatura de contrato-promessa de compra e venda– Modelação dos serviços

• Incluíndo vinculação

– Distribuição de chaves

Vendedor (V) Notário (N)

3: ?wsdl

Comprador (C)

1: ?xsd2: ?wsdl

4: ?wsdl

3.1: ?xsd

XSD Contrato Compra-Venda

WSDL WSDL

4: firmarContrato()Vendedor (V) Notário (N)

2: submeterContrato()5: obterContrato()

Comprador (C)

1*: negociarContrato()

3: submeterContrato()6: obterContrato()

Finanças (F)

Registo Civil (RC)

2.1: autenticação

3.1: autenticação

Vendedor (V) Notário (N)

Comprador (C)

Finanças (F)

Registo Civil (RC)

KpubF

KpubRC

KprivRC

KpubN

KpubN

Kv

Kc

KprivF

Kc

Kv

KprivN

Segurança de aplicações empresariais em arquitecturas de serviços

Contributo 3:Mecanismos para segurança

• A plataforma tem que permitir:– Declaração de requisitos (política)– Especificação da configuração– Gestão de contextos de execução– Intercepção do processamento de mensagens– Intercepção do processamento de operações

Segurança de aplicações empresariais em arquitecturas de serviços

Sumário

• Enquadramento

• Contributos

• Trabalho futuro e conclusão

Segurança de aplicações empresariais em arquitecturas de serviços

Trabalho futuro

• Normas e implementações– Manter actualização– Avaliar extensões

• Mensagens fiáveis• Transacções distribuídas

• Metodologias– Dos requisitos, à especificação à implementação

• Ferramentas– Centradas nos contratos XML– Separar plataforma/segurança da aplicação/negócio

Segurança de aplicações empresariais em arquitecturas de serviços

Conclusão

• No presente, os serviços simplificam a integração Java - Dot Net e suportam os cenários de segurança mais comuns por configuração, mas apenas em tempo de instalação

• No futuro, o suporte para políticas vai ser melhorado, mas vai continuar a faltar a ligação do modelo de negócio ao modelo tecnológico

• Os mecanismos de segurança devem ser realizados pela plataforma, mas devem dar contexto às aplicações e delegar-lhes as decisões de confiança

Obrigadomiguel.pardal@dei.ist.utl.pt

Segurança de aplicações empresariais em arquitecturas de serviços

Publicações

Pardal, M., Em construção: uma análise ao estado actual da plataforma de Serviços Web para negócio electrónico, XATA2006, XML: Aplicações e Tecnologias Associadas, 2006

Pardal M., Cunha A., Building multi-services in personal mobile devices based on partially trusted domains, Proc. of International IADIS Conference e-Society 2004

Guerra, M.; Pardal, M. & da Silva, M.M., An Integration Methodology based on the Enterprise Architecture, Proc. of the 2004 Conference of the UK Academy for Information Systems (UKAIS 2004), 2004

Artigos disponíveis em:http://mflpar.googlepages.com

top related