msc presentation
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
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