Tecnologia de segurança para Web Services

21
Tecnologia de segurança para Web Services [email protected] [email protected] SINO 2006 11 de Outubro de 2006

Transcript of Tecnologia de segurança para Web Services

Page 1: Tecnologia de segurança para Web Services

Tecnologia de segurançapara Web Services

[email protected]@link.pt

SINO 2006

11 de Outubro de 2006

Page 2: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

Sumário

• Web Services

• Tecnologias de segurança

– WS-SecurityPolicy

– SAML

• Conclusão

Page 3: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

Sumário

• Web Services

• Tecnologias de segurança

– WS-SecurityPolicy

– SAML

• Conclusão

Page 4: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

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

Page 5: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

Invocação de Web Service

SOAPHandlers

Processadoresmensagens

SOAP

Cliente

#3 Gerar

#4 Configurar

#5 Invocar

#6 Executar

#1 Publicar

#2 Descobrir

SOAPHandlers

Adaptadores para SOAP

DadosXML Schema

PolíticaWS-Policy

FunçõesWSDL

Serviço

Page 6: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

Normas e implementações de Web Services

Interoperabilidade

Representação de dados

Descoberta

Contrato

Processos de negócio

Gestão

Transacções

Transporte

Mensagem

Segurança Mensagens fiáveis

Page 7: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

Sumário

• Web Services

• Tecnologias de segurança

– WS-SecurityPolicy

– SAML

• Conclusão

Page 8: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

Segurança de Web Services (i)

• Web Services com valor implicam segurança– Controlo de acessos– Protecção das mensagens– Flexibilidade de configuração

Page 9: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

Normas de segurança

Interoperabilidade

Representação de dados

Descoberta

Contrato

Processos de negócio

Gestão

Transacções

Transporte

Mensagem

Segurança Mensagens fiáveis

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

?

Page 10: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

Implementações

WS-Security: Username, X.509

SAMLXWSS (XML and Web Services Security):Java 1.5+,Java Web Services Developer Pack 2.0

Sun Microsystems

WS-Security: Username, X.509

WS-Policy

SAML

WSS4J (Web Services Security for Java):Java 1.4+,Apache Axis2

Apache

WS-Security: Username, X.509, Kerberos

WS-Secure Conversation, WS-Trust

SAML (asserções)

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

Microsoft

Normas suportadasImplementaçãoFornecedor

Page 11: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

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)

Page 12: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

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

Page 13: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

Exemplo WS-Policy<wsp:Policy>

<sp:SymmetricBinding><wsp:Policy>

<sp:ProtectionToken><wsp:Policy>

<sp:KerberosV5APREQToken sp:IncludeToken=".../Once" /></wsp:Policy>

</sp:ProtectionToken><sp:SignBeforeEncrypting /><sp:EncryptSignature />

</wsp:Policy></sp:SymmetricBinding><sp:SignedParts>

<sp:Body/><sp:Header Namespace="http://xmlsoap.org/ws/2004/08/addressing" />

</sp:SignedParts><sp:EncryptedParts>

<sp:Body/></sp:EncryptedParts>

</wsp:Policy>

Page 14: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

Security AssertionMarkup 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

Page 15: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

Exemplo de credencial SAMLde 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">[email protected]</NameIdentifier>

</Subject></AuthenticationStatement><ds:Signature>...</ds:Signature>

</Assertion>

Page 16: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

Exemplo de credencial SAMLde 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">

[email protected]</NameIdentifier>

</Subject><Action

Namespace="urn:oasis:names:tc:SAML:1.0:action:rwedc">Read</Action></AuthorizationDecisionStatement>

<ds:Signature>...</ds:Signature></Assertion>

Page 17: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

Exemplo de credencial SAMLde Atributos<Assertion>

<AttributeStatement><Subject>

<NameIdentifier Format="urn:oasis:names:tc:SAML:1.0:assertion#emailAddress">

[email protected]</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>

Page 18: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

Sumário

• Web Services

• Tecnologias de segurança

– WS-SecurityPolicy

– SAML

• Conclusão

Page 19: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

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

Page 20: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

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

Page 21: Tecnologia de segurança para Web Services

Tecnologia de segurança para Web Services

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.

[email protected]

[email protected]