1. Mestrado em Engenharia Informática e de Computadores
Segurança de aplicações empresariais
em arquitecturas de serviços
Miguel Filipe Leitão Pardal
13 de Setembro de 2006
2. 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
3. Sumário
• Enquadramento
• Contributos
• Trabalho futuro e conclusão
Segurança de aplicações empresariais em arquitecturas de serviços
4. Sumário
• Enquadramento
• Contributos
• Trabalho futuro e conclusão
Segurança de aplicações empresariais em arquitecturas de serviços
5. 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
6. 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
7. Vinculação por contratos
(binding)
#1 Publicar
Cliente Extremidade
#2 Descobrir
do serviço
XSD Dados
#3 Gerar
SOAP
Adaptadores
para SOAP
Handlers
WSDL Funções
#4 Configurar WS-Policy Política
Processadores
SOAP
Mensagens
Handlers
SOAP
#5 Invocar
#6 Executar
Segurança de aplicações empresariais em arquitecturas de serviços
8. 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
9. Sumário
• Enquadramento
• Contributos
• Trabalho futuro e conclusão
Segurança de aplicações empresariais em arquitecturas de serviços
10. 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
11. Contributo 1:
Normas e implementações
Segurança de aplicações empresariais em arquitecturas de serviços
12. XML Encryption
WS-BPEL (BPEL4WS)
XML Signature
WS-CDL
SAML
ASAP WS-Management
WS-Security
WS-RP WS-DistributedManagement
WS-SecurityPolicy
WS-XL WS-Provisioning
WS-Trust
Normas
WS-SecureConversation
WS-Federation
XACML WS-Coordination
WS-ReliableMessaging
REL
XAdES ? WS-Reliability WS-Composite ?
XKMS ApplicationFramework
Processos de negócio
Mensagens
Segurança Transacções
fiáveis
G
Descoberta e
s
t
Contrato
ã
o
Mensagem
Transporte
Representação de dados
Interoperabilidade
HTTP XML WS-I Basic Profile
SMTP XML Schema WS-I Basic Security Profile
TCP-IP WS-Device Profile
UDP
... Message Queues UDDI
WS-Inspection
WS-Discovery
SOAP
WS-Metadata Exchange
MTOM/XOP
WS-Addressing
WS-Enumeration WSDL
WS-Eventing
WS-Notification
? WS-Policy
WS-Polling
? WS-Transfer
WS-Resource Framework
Segurança de aplicações empresariais em arquitecturas de serviços
13. Implementações
• WSE 3 (Web Services Enhancements 3)
• WSS4J (Web Services Security for Java)
• XWSS (XML and Web Services Security)
Fornecedor Implementação Normas suportadas
Microsoft WSE 3: Dot Net Framework 2.0, Visual WS-Security: Username, X.509, Kerberos
Studio 2005, Web Services WS-Secure Conversation, WS-Trust
Enhancements 3.0 SAML (asserções)
Apache WSS4J: Apache Axis2, Rampart module WS-Security: Username, X.509
of Web Services Security for Java WS-Policy
(WSS4J) SAML
Sun XWSS: Java Web Services Developer WS-Security: Username, X.509
Microsystems Pack 2.0, XML and Web Services SAML
Security 2.0
Segurança de aplicações empresariais em arquitecturas de serviços
14. 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
15. Processo de negócio
• Levantamento de processos e entidades informacionais
PN.1 – Comprar e
vender imóvel EI 1 - Imóvel EI 2 - Vendedor EI 3 - Comprador
EI 1.1 - EI 2.1 - EI 3.1 -
PN.1.1 - Caderneta predial Situação legal Património e rendimentos
Colocar imóvel à venda
EI 2.2 - Situação
EI 1.2 - Certidão de teor EI 3.2 - Testes médicos
financeira
PN.1.4 – Fazer contrato
PN.1.2 – Verificar estado PN.1.3 – Pedir crédito ao
promessa de compra e EI 1.3 - Licença de
legal do imóvel à venda Banco utilização
venda
PN.1.6 – Pagar o Imposto EI 5 - Mediador
PN.1.5 – Proceder aos
sobre Transmissões EI 4 - Notário EI 6 - Banco EI 7 - Seguradora
registos provisórios
Onerosas de Imóveis (IMT)
Imobiliário
EI 10 - Promessa de
PN.1.7 – Efectuar seguro PN.1.8 – Efectuar seguro EI 8 - Mediação EI 9 - Empréstimo EI 11 - Escritura de
compra e venda de
do imóvel pessoal de vida imobiliária para venda para compra de imóvel imóvel
imóvel
EI 12 - Hipoteca de EI 13 - Pagamento de EI 14 - Isenção de
PN.1.9 – Celebrar a PN.1.10 - Pedir a isenção PN.1.11 - Converter em
Imposto sobre EI 15 - Seguro de vida
escritura de compra e de Imposto Municipal definitivo os registos compra e venda de Imposto Municipal sobre
Transmissões Onerosas de Imóveis (IMI)
e de imóvel
venda e de hipoteca sobre Imóveis (IMI) provisórios imóvel
Imóveis (IMT)
PN.1.12 - Cancelar a
hipoteca
Segurança de aplicações empresariais em arquitecturas de serviços
16. Cenários
• Excertos do processo que exemplificam as interacções
Consulta de licença
de habitação
Comprador Câmara
Municipal
Assinatura do
contrato-promessa
Mediador
imobiliário Notário
Validação de
documentos exigidos
para escritura
Vendedor 2: submeterContrato()
Finanças 5: obterContrato()
Vendedor (V) Notário (N) 4: firmarContrato()
1*: negociarContrato()
3: submeterContrato()
6: obterContrato()
Comprador (C)
Segurança de aplicações empresariais em arquitecturas de serviços
17. Ensaios
1. 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;
XWSS
5. Cliente de Web Service Java;
6. Utilização do registo de mensagens SOAP; Vinculação de dados Java com XML através da biblioteca JAX-B 2:
7. Utilização de MTOM para optimizar a transmissão de mensagens Geração de código Java a partir de XML Schema, para leitura e escrita de
com dados binários; documentos;
8. Utilização de configuração declarativa de segurança WS-Security: Utilização do elemento de extensão Any do XML Schema;
9. Autenticação de servidor com certificado digital X.509; Assinatura digital XML com a biblioteca Java XML Digital Signature API
10. Autenticação de cliente com nome e senha; (xmldsig), nas variantes:
11. Autenticação de cliente com certificado digital X.509; ‘Detached’, que assina dados que são externos à assinatura;
12. Utilização de WS-SecureConversation para que o certificado do ‘Enveloping’, que assina dados contidos na estrutura da assinatura;
cliente só fosse enviado na primeira mensagem da sessão; ‘Enveloped’, onde a assinatura está contida na estrutura que está a ser
13. Autorização com base em conta de utilizador Windows; assinada;
14. Selecção programática da configuração WS-Security a usar; Desenvolvimento de clientes e serviços JAX-WS 2:
15. Desenvolvimento de elemento de configuração à medida; A partir de WSDL;
16. Instalação do pacote de extensão SAML Security Token Service
QuickStart.
WSS4J A partir de classes Java;
Em ambas as situações anteriores, utilização de JAX-WS Handlers para
interceptar as mensagens SOAP;
WSE 3 1.
2.
3.
Programas de manipulação XML com a biblioteca AXIOM 1.0:
Criação de novos documentos;
Leitura e validação de documentos existentes;
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;
4. Desenvolvimento de serviços com a biblioteca Axis2 1.0: Colocação e verificação de marcas temporais;
5. Com manipulação directa de XML; Assinatura de mensagens com chave privada e verificação com certificado
6. Com classes Java vinculadas aos dados; digital de chave pública X.509;
7. Desenvolvimento de clientes com a biblioteca Axis2 1.0: Cifra de mensagens com chave privada e decifra com certificado digital de
8. Com manipulação directa de XML; chave pública X.509;
9. Com classes de invocação geradas por ferramenta a partir da Cifra e decifra de mensagem com chave simétrica partilhada;
definição WSDL; Configuração de segurança diferenciada por operação do serviço (cada
10. Invocações síncronas e assíncronas de serviços; operação do serviço tem uma configuração de segurança própria);
11. Operações com políticas WS-Policy usando a biblioteca Commons Utilização e verificação de asserções SAML de autenticação;
Policy 1.0: Combinações das configurações anteriores;
12. Normalização; Invocação de serviço com segurança no transporte usando HTTPS com
13. Junção; certificado digital do servidor Tomcat:
14. Intersecção. Autenticação do cliente com utilizador e senha;
15. Instalação do módulo de segurança WSS4J. Autenticação do cliente com certificado digital.
Segurança de aplicações empresariais em arquitecturas de serviços
19. 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
20. Sumário
• Enquadramento
• Contributos
• Trabalho futuro e conclusão
Segurança de aplicações empresariais em arquitecturas de serviços
21. 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
22. 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
Obrigado
miguel.pardal@dei.ist.utl.pt
Segurança de aplicações empresariais em arquitecturas de serviços
23. 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
Segurança de aplicações empresariais em arquitecturas de serviços