- O documento discute as tecnologias de segurança para Web Services, incluindo WS-SecurityPolicy e SAML.
- WS-SecurityPolicy permite a configuração automática da segurança entre cliente e serviço com base em contratos.
- SAML fornece um formato para credenciais como autenticação, autorização e atributos entre diferentes domínios.
- As implementações existentes suportam as normas de segurança mais comuns, mas ainda há trabalho a fazer para automatizar completamente a configuração e garantir a integridade das informações trocadas.
1. SINO 2006
Tecnologia de segurança
para Web Services
miguel.pardal@dei.ist.utl.pt
alberto.cunha@link.pt
11 de Outubro de 2006
2. Sumário
• Web Services
• Tecnologias de segurança
– WS-SecurityPolicy
– SAML
• Conclusão
Tecnologia de segurança para Web Services
3. Sumário
• Web Services
• Tecnologias de segurança
– WS-SecurityPolicy
– SAML
• Conclusão
Tecnologia de segurança para Web Services
4. Web Services
• Propostos pela indústria
– Microsoft, IBM, Sun, Oracle, ...
• Objectivos para os sistemas de informação
– Maior flexibilidade
– Reutilização
– Interoperabilidade
• O serviço é a unidade de acesso a
informação e funcionalidade
• Integração baseada em contratos
Tecnologia de segurança para Web Services
5. Invocação de Web Service
#1 Publicar
Cliente Serviço
#2 Descobrir
Dados
XML Schema
#3 Gerar
SOAP
Adaptadores
para SOAP
Handlers Funções
WSDL
#4 Configurar Política
WS-Policy
Processadores
SOAP
mensagens
Handlers
SOAP
#5 Invocar
#6 Executar
Tecnologia de segurança para Web Services
6. Normas e implementações de Web Services
Processos de negócio
Mensagens
Segurança Transacções
fiáveis
Descoberta G
e
s
t
Contrato ã
o
Mensagem
Transporte
Representação de dados
Interoperabilidade
Tecnologia de segurança para Web Services
7. Sumário
• Web Services
• Tecnologias de segurança
– WS-SecurityPolicy
– SAML
• Conclusão
Tecnologia de segurança para Web Services
8. Segurança de Web Services (i)
• Web Services com valor implicam segurança
– Controlo de acessos
– Protecção das mensagens
– Flexibilidade de configuração
Tecnologia de segurança para Web Services
9. Normas de segurança
Processos de negócio
Mensagens
Segurança Transacções
fiáveis
Descoberta G
e
s
t
Contrato ã
o
Mensagem
Transporte
Representação de dados XML Encryption
XML Signature
Interoperabilidade
SAML
WS-Security
WS-SecurityPolicy
WS-Trust
WS-SecureConversation
WS-Federation
XACML
REL
XAdES ?
Tecnologia de segurança para Web Services XKMS
10. Implementações
Fornecedor Implementação Normas suportadas
Microsoft WS-Security: Username, X.509,
WSE 3 (Web Services Enhancements): Kerberos
Dot Net Framework 2.0,
WS-Secure Conversation, WS-Trust
Visual Studio 2005
SAML (asserções)
Apache WS-Security: Username, X.509
WSS4J (Web Services Security for Java):
Java 1.4+, WS-Policy
Apache Axis2 SAML
Sun WS-Security: Username, X.509
XWSS (XML and Web Services Security):
Microsystems SAML
Java 1.5+,
Java Web Services Developer Pack 2.0
Tecnologia de segurança para Web Services
11. Segurança de Web Services (ii)
• Ênfase na utilização de tecnologias existentes:
– X.509
– Kerberos
– outras
• Aspectos inovadores
– Configuração automática baseada em contrato
(WS-SecurityPolicy)
– Troca de informação entre diferentes domínios de
confiança (SAML)
Tecnologia de segurança para Web Services
12. WS-SecurityPolicy
• Contrato de segurança
• Descreve as configurações disponíveis
– Alternativas
• Negociação com o cliente
– Intersecção das alternativas suportadas por cliente e
serviço
• Composição de política
– União das alternativas suportadas pelo serviço e pelo
servidor onde se executa
Tecnologia de segurança para Web Services
14. Security Assertion
Markup Language
• Formato de credenciais
• Credenciais de autenticação, autorização e
atributos
– Válidas entre diferentes domínios de confiança
– Qualquer entidade pode emitir credenciais
– Quem recebe a credencial é que decide se confia nela
ou não
Tecnologia de segurança para Web Services
15. Exemplo de credencial SAML
de Autenticação
<Assertion>
<Conditions NotBefore="2006-07-22T12:02:00Z" NotOnOrAfter="2006-07-
22T13:02:00Z">
<AudienceRestrictionCondition>
<Audience>http:/www.example.com/Members</Audience>
</AudienceRestrictionCondition>
</Conditions>
<Advice>
<AssertionIDReference>id</AssertionIDReference>
<Assertion>...</Assertion>
</Advice>
<AuthenticationStatement AuthenticationMethod="urn:ietf:rfc:2246"
AuthenticationInstant="2006-07-
22T12:02:00Z">
<Subject>
<NameIdentifier
Format="urn:oasis:names:tc:SAML:1.0:assertion#emailAddress">
user@example.com
</NameIdentifier>
</Subject>
</AuthenticationStatement>
<ds:Signature>...</ds:Signature>
</Assertion>
Tecnologia de segurança para Web Services
16. Exemplo de credencial SAML
de Autorização
<Assertion>
<Conditions NotBefore="2006-07-22T12:02:00Z" NotOnOrAfter="2006-07-
22T13:02:00Z">
</Conditions>
<AuthorizationDecisionStatement Resource="http://www.company.com/info"
Decision="Permit">
<Subject>
<NameIdentifier
Format="urn:oasis:names:tc:SAML:1.0:assertion#emailAddress">
user@example.com
</NameIdentifier>
</Subject>
<Action
Namespace="urn:oasis:names:tc:SAML:1.0:action:rwedc">Read</Action>
</AuthorizationDecisionStatement>
<ds:Signature>...</ds:Signature>
</Assertion>
Tecnologia de segurança para Web Services
17. Exemplo de credencial SAML
de Atributos
<Assertion>
<AttributeStatement>
<Subject>
<NameIdentifier
Format="urn:oasis:names:tc:SAML:1.0:assertion#emailAddress">
user@example.com
</NameIdentifier>
</Subject>
<Attribute AttributeName="PaidStatus"
AttributeNamespace="http://company.com">
<AttributeValue>PaidUp</AttributeValue>
</Attribute>
<Attribute AttributeName="CreditLimit"
AttributeNamespace="http://company.com">
<AttributeValue xsi:type="my:type">
<my:amount currency="EUR">500.00<my:amount>
</AttributeValue>
</Attribute>
</AttributeStatement>
<ds:Signature>...</ds:Signature>
</Assertion>
Tecnologia de segurança para Web Services
18. Sumário
• Web Services
• Tecnologias de segurança
– WS-SecurityPolicy
– SAML
• Conclusão
Tecnologia de segurança para Web Services
19. Conclusão (i)
• Avaliação das implementações
disponíveis
• Mais valias dos Web Services:
– Fácil integração entre Java e Dot Net
– Cenários de segurança mais comuns são
suportados por simples configuração
• Nome de utilizador e senha
• Certificados digitais X.509
Tecnologia de segurança para Web Services
20. Conclusão (ii)
• Promessas
– WS-SecurityPolicy para automatizar a configuração da
interacção entre cliente e serviço
– SAML para “abolir” fronteiras organizacionais nos
serviços, mantendo a confiança
• Problemas
– WS-SecurityPolicy ainda não é suportada
• A configuração é realizada durante a instalação e não durante a
execução
– SAML ainda não é segura
• Falta a assinatura digital para garantir a integridade da informação
Tecnologia de segurança para Web Services
21. Perguntas e respostas
Na nossa visão:
As plataformas de Web Services devem permitir
automatizar os mecanismos de segurança, mas dando
contexto às aplicações de negócio, delegando-lhes as
verdadeiras decisões de confiança.
Obrigado
alberto.cunha@link.pt
miguel.pardal@dei.ist.utl.pt
Tecnologia de segurança para Web Services