tecnologia de segurança para web services
TRANSCRIPT
Tecnologia de segurança para Web Services
Sumário
• Web Services
• Tecnologias de segurança
– WS-SecurityPolicy
– SAML
• Conclusão
Tecnologia de segurança para Web Services
Sumário
• Web Services
• Tecnologias de segurança
– WS-SecurityPolicy
– SAML
• Conclusão
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
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
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
Tecnologia de segurança para Web Services
Sumário
• Web Services
• Tecnologias de segurança
– WS-SecurityPolicy
– SAML
• Conclusão
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
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
?
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
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)
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
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>
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
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>
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>
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>
Tecnologia de segurança para Web Services
Sumário
• Web Services
• Tecnologias de segurança
– WS-SecurityPolicy
– SAML
• Conclusão
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
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
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.