Especificação do Web Services Security - Uma Cronologia
O desenvolvimento da especificação do Web Services Security inclui informações sobre a especificação do Advancement of Structured Information Standards (OASIS) Web Services Security. A especificação do OASIS Web Services Security serve como uma base para a proteção de serviços da Web em WebSphere Application Server.
- A configuração do QoS (Qualities of Service) é simplificada ao utilizar conjuntos de políticas. Os conjuntos de políticas combinam definições de configuração, incluindo aquelas para configuração em nível de transporte e mensagem. Conjuntos de políticas e ligações gerais podem ser reutilizados em diversos aplicativos, tornando a QoS dos serviços da Web mais consumíveis.
- O WS-Security para JAX-WS é suportado em um ambiente gerenciado, como um contêiner do Java EE e em ambientes não gerenciados, como o Java SE (Java Platform, Standard Edition) 6. Além disso, há uma API para ativar o WS-Security no cliente JAX-WS.
Atividades Não-OASIS
- Web Service Security
- Esta especificação define como anexar uma assinatura digital, utilizar criptografia e utilizar tokens de segurança em mensagens SOAP.
- WS-Policy
- Esta especificação define o idioma utilizado para descrever limitações de segurança e a política de intermediários ou nós de extremidade.
- WS-Trust
- Essa especificação define uma estrutura para modelos confiáveis para estabelecer a confiança entre os serviços da Web.
- WS-Privacy
- Essa especificação define um modelo de como expressar uma política de privacidade para um serviço da Web e um solicitante.
- WS-SecureConversation
- Essa especificação define como trocar e estabelecer um contexto assegurado, que deriva de chaves de sessão entre os serviços da Web.
- WS-Authorization
Esta especificação define a política de autorização para um serviço da Web. Entretanto, a especificação WS-Authorization não foi publicada. A implementação existente do Web Services Security baseia-se nos Serviços da Web para Java Platform, Enterprise Edition (Java EE) ou na especificação do Java Specification Requirements (JSR) 109. A implementação do Web Services Security usufrui das verificações de autorização baseadas em função do Java EE. Para obter informações conceituais, consulte autorização baseada em função. Se você desenvolver um serviço da Web que exija verificações de autorização de nível do método, deverá usar beans de sessão stateless para implementar seu serviço da Web. Para obter informações adicionais, leia sobre segurança de aplicativos enterprise bean.
Se você desenvolver um serviço da Web que seja implementado como um servlet, poderá usar autorização de alta granularidade ou baseada em URL no contêiner da Web. Entretanto, nessa situação, não é possível usar a identidade do Web Services Security para verificações de autorização. Em vez disso, a identidade do transporte pode ser utilizada. Se você utilizar SOAP sobre HTTP, a identidade estará no transporte HTTP.
A figura a seguir mostra o relacionamento entre estas especificações:
- A especificação exige que os processadores do Web Services Security compreendam o esquema corretamente de modo que o processador distinga entre o atributo ID para assinatura digital XML e a criptografia XML.
- A atualidade da mensagem, que indica se a mensagem respeita restrições de tempo predefinidas, não pode ser determinada.
- Cadeias de senhas compiladas não fortalecem a segurança.
- Requerer um atributo de ID global para assinatura XML e criptografia XML.
- Utilizar elementos de cabeçalho de time stamp que indiquem a hora da criação, recebimento ou expiração da mensagem.
- Utilizar cadeias de senha que sejam compiladas com um time stamp e nonce, que é um token gerado aleatoriamente.
As especificações para as caixas azuis na figura anterior foram propostas por fornecedores de vários segmentos de mercado e vários eventos de interoperabilidade foram organizados pelos fornecedores para verificar e refinar as especificações propostas.
Atividades da OASIS
Em junho de 2002, a OASIS recebeu uma especificação proposta do Web Services Security da IBM, Microsoft e VeriSign. O WSS TC (Web Services Security Technical Committee) foi organizado na OASIS logo após a submissão. O comitê técnico incluiu muitas empresas, inclusive IBM, Microsoft, VeriSign, Sun Microsystems e BEA Systems.
Em setembro de 2002, o WSS TC publicou sua primeira especificação, Web Services Security Core Specification, Working Draft 01. Essa especificação incluía o conteúdo da especificação original do Web Services Security e de seu anexo.
A abrangência do comitê técnico tornou-se maior conforme a discussão prosseguia. Como a Web Services Security Core Specification permite tipos arbitrários de tokens de segurança, as propostas foram publicadas como perfis. Os perfis descreviam o método para tokens integrados, incluindo tokens Security Assertion Markup Language (SAML) e tokens do Kerberos integrados nas mensagens do Web Services Security. Subseqüentemente, as definições do uso para tokens de nome de usuário e tokens de segurança binários X.509, que foram definidas na Especificação de Segurança de Serviços da Web original, foram divididas nos perfis.
- Segurança de Serviços da Web: Segurança de Mensagens SOAP Rascunho 13 (anteriormente Especificação Principal de Segurança de Serviços da Web)
- Segurança de Serviços da Web: Perfil de Token de Nome de Usuário Rascunho 2
- OASIS: Web Services Security: SOAP Message Security 1.1 (WS-Security 2004) OASIS Standard Specification, 1 de fevereiro de 2006
- Especificação do Padrão do OASIS: Web Services Security UsernameToken Profile 1.1, 1º de fevereiro de 2006
- Especificação do Padrão do OASIS: Web Services Security X.509 Certificate Token Profile 1.1, 1º de fevereiro de 2006
A especificação a seguir descreve o uso de tokens do Kerberos com relação às especificações de segurança da mensagem do Web Services Security. A especificação define como usar um token Kerberos para suportar autenticação e proteção de mensagens: OASIS: Especificação do Padrão do OASIS: Web Services Security Kerberos Token Profile 1.1, de 1 de fevereiro de 2006.
A figura a seguir mostra as várias especificações relacionadas ao Web Services Security.
O WebSphere Application Server fornece também recurso de plug-in para permitir que provedores de segurança estendam o recurso de tempo de execução e implementem algumas das especificações mais altas na pilha do Web Service Security. Os pontos de plug-in são expostos como SPIs (Service Provider Programming Interfaces). Para obter informações adicionais sobre estas SPIs, consulte Implementações Padrão da Interface de Programação do Provedor de Serviço de Segurança dos Serviços da Web.
Desenvolvimento da especificação 1.0 do Web Services Security
- XML-Signature
Syntax and Processing
W3C recommendation, February 2002 (Also, IETF RFC 3275, March 2002)
- Canonical
XML Version 1.0
W3C recommendation, March 2001
- Exclusive
XML Canonicalization Versão 1.0
W3C recommendation, July 2002
- XML-Signature
XPath Filter Versão 2.0
W3C Recommendation, November 2002
- Sintaxe de Criptografia XML e Processamento
W3C Recommendation, December 2002
- Decryption Transform for XML Signature
W3C Recommendation, December 2002
Essas especificações são suportadas no WebSphere Application Server no contexto do Web Services Security. Por exemplo, você pode assinar uma mensagem SOAP especificando a opção de integridade nos descritores de implementação. Existe uma interface de programação de aplicativos (API) do lado do cliente que pode ser usada para ativar o Web Services Security para proteger uma mensagem SOAP.
A especificação do OASIS Web Services Security Versão 1.0 define os aprimoramentos usados para fornecer integridade e confidencialidade à mensagem. Também fornece uma estrutura geral para associar os tokens de segurança com uma mensagem SOAP. A especificação foi projetada para ser extensível para suportar vários formatos de tokens de segurança. O uso do token de segurança específico é abordado com o perfil do token de segurança.
Suporte de Especificação e Perfil no WebSphere Application Server
A OASIS está funcionando em vários perfis. Para obter informações adicionais, consulte Organization for the Advancement of Structured Information Standards Committees.
A lista a seguir inclui os perfis de rascunho publicados e o trabalho em andamento do comitê técnico do OASIS Web Services Security.
O WebSphere Application Server não suporta estes perfis:
- Web Services Security: Perfil de Token SAML 1.0
- Web Services Security: Perfil de Token REL (Rights Expression Language) 1.0
- Web Services Security: Perfil SwA (SOAP Messages with Attachments) 1.0
O formato de ligação da mensagem SOAP com Web Services Security no Web Services Security Versão 1.0 foi alterado e não é compatível com rascunhos anteriores da especificação do OASIS Web Services Security. A interoperabilidade entre o OASIS Web Services Security Versão 1.0 e rascunhos anteriores do Web Services Security não é suportada. Entretanto, é possível executar um aplicativo baseado no rascunho 13 do Web Services Security no WebSphere Application Server Versão 6 e posterior. O aplicativo pode interoperar com um aplicativo baseado no rascunho 13 do Web Services Security no WebSphere Application Server Versão 5.0.2, 5.1 ou 5.1.1.
O WebSphere Application Server suporta o rascunho 13 do OASIS Web Services Security e a especificação do OASIS Web Services Security 1.0. Mas no WebSphere Application Server Versão 6 e posterior, o suporte do rascunho 13 do OASIS Web Services Security foi descontinuado. Entretanto, aplicativos que foram desenvolvidos usando o rascunho 13 do OASIS Web Services Security no WebSphere Application Server 5.0.2, 5.1.0 e 5.1.1 podem ser executados no WebSphere Application Server Versão 6 e posterior. O suporte do OASIS Web Services Security Versão 1.0 está disponível apenas para aplicativos Java Platform, Enterprise Edition (Java EE) Versão 1.4 e posterior. O formato de configuração para o descritor de implementação e a ligação é diferente de versões anteriores do WebSphere Application Server. Você deve migrar os aplicativos existentes para Java EE 1.4 e migrar a configuração do Web Services Security para o formato WebSphere Application Server Versão 6.
Outro Desenvolvimento de Especificações do Web Services Security
- WS-Trust Versão 1.3
O Web Services Trust Language (WS-Trust) usa os mecanismos de sistema de mensagens do Web Services Security para definir as extensões e primitivas adicionais para a emissão, a troca e a validação de tokens de segurança. O WS-Trust ativa a emissão e a divulgação de credenciais em diferentes domínios de confiança. Essa especificação define maneiras de estabelecer, avaliar a presença de e intermediar relacionamentos confiáveis.
- WS-SecureConversation Versão 1.3
O Web Services Secure Conversation Language (WS-SecureConversation) é construído nos modelos WS-Security e WS-Policy para fornecer comunicação segura entre serviços. A WS-Security prioriza o modelo de autenticação de mensagem, mas não em um contexto de segurança e, portanto, está sujeita a várias formas de ataques à segurança. Essa especificação define mecanismos para estabelecer e compartilhar contextos de segurança e derivar chaves com base nos contextos de segurança para permitir uma conversação segura. Ao usar o modelo de extensibilidade SOAP, as especificações modulares baseadas em SOAP se destinam a serem compostas entre si para fornecer um ambiente de mensagem harmonioso.
- WS-SecurityPolicy Versão 1.2
O Web Services Security Policy (WS-Policy) fornece um modelo de propósito geral e uma sintaxe para descrever e comunicar as políticas de um serviço da Web. As asserções do WS-Policy expressam os recursos e as restrições de um serviço da Web específico. O WS-PolicyAttachments define vários métodos para associação das expressões de WS-Policy com serviços da Web (como WSDL). As especificações do Web Services Security foram atualizadas de acordo com a republicação do WS-Security Policy em julho de 2005, para refletir as restrições e os recursos de serviços da Web que estão usando WS-Security, WSTrust e WS-SecureConversation. WS-ReliableMessaging Policy também foi republicado em 2005 para expressar os recursos e as restrições de serviços da Web que implementam o WS-ReliableMessaging.
Atividades de WS-I (Web Services Interoperability Organization)
O Web Services Interoperability Organization (WS-I) é um esforço do segmento de mercado aberto para promover a interoperabilidade de serviços da Web entre fornecedores, plataformas, linguagens de programação e aplicativos. A organização é um consórcio de empresas em vários segmentos de mercado, incluindo IBM, Microsoft, Oracle, Sun, Novell, VeriSign e Daimler Chrysler. O WS-I desenvolveu o Basic Security Profile (BSP) versões 1.0 e 1.1. As versões BSP 1.0 e 1.1 consistem em um conjunto de especificações de serviços da web não proprietárias que esclarece e amplifica essas especificações para promover a interoperabilidade do Web Services Security em implementações de fornecedores diferentes.
- Basic Profile Versão 1.2 (BP 1.2): http://ws-i.org/profiles/basicprofile-1.2-2010-11-09.html
- Basic Profile Versão 2.0 (BP 2.0): http://ws-i.org/profiles/basicprofile-2.0-2010-11-09.html
- Basic Security Profile Versão 1.0 (BSP 1.0): http://www.ws-i.org/profiles/basicsecurityprofile-1.0.html
- Basic Security Profile Versão 1.1 (BSP 1.1): http://www.ws-i.org/profiles/basicsecurityprofile-1.1.html
- Reliable Secure Profile 1.0 (RSP 1.0): http://www.ws-i.org/profiles/ReliableSecureProfile-1.0-2010-11-09.html