msc presentation

23
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

Upload: miguel-pardal

Post on 14-Jun-2015

316 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: MSc presentation

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

Page 2: MSc presentation

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”

Page 3: MSc presentation

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

Sumário

• Enquadramento

• Contributos

• Trabalho futuro e conclusão

Page 4: MSc presentation

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

Sumário

• Enquadramento

• Contributos

• Trabalho futuro e conclusão

Page 5: MSc presentation

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

Page 6: MSc presentation

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)

Page 7: MSc presentation

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

Page 8: MSc presentation

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

Page 9: MSc presentation

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

Sumário

• Enquadramento

• Contributos

• Trabalho futuro e conclusão

Page 10: MSc presentation

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

Page 11: MSc presentation

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

Contributo 1:Normas e implementações

Page 12: MSc presentation

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

?

??

?

Page 13: MSc presentation

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

Page 14: MSc presentation

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

Page 15: MSc presentation

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

Page 16: MSc presentation

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()

Page 17: MSc presentation

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

Page 18: MSc presentation

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

Page 19: MSc presentation

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

Page 20: MSc presentation

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

Sumário

• Enquadramento

• Contributos

• Trabalho futuro e conclusão

Page 21: MSc presentation

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

Page 22: MSc presentation

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

[email protected]

Page 23: MSc presentation

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