Aprimoramentos do Web Services Security
O WebSphere Application Server inclui um número de aprimoramentos para proteção dos serviços da Web. Por exemplo, os conjuntos de política são suportados no WebSphere Application Server Versão 6.1 Feature Pack for Web Services e posterior, para simplificar a configuração de segurança para serviços da Web.
Construindo seus Aplicativos
A implementação do tempo de execução do Web Services Security usada pelo WebSphere Application Server Versão 8 é baseada no modelo de programação do Java™ API for XML Web Services (JAX-WS). O ambiente de tempo de execução do JAX-WS é baseado no Apache Open Source Axis2 e o modelo de dados é AXIOM. Em vez do descritor de implementação e das ligações, um conjunto de política é usado para configuração. É possível usar o console administrativo do WebSphere Application Server para editar os arquivos de ligação de aplicativos associados aos conjuntos de política. O ambiente de tempo de execução do JAX-WS é suportado para o WebSphere Application Server V6.1 Feature Pack for Web Services e posterior.
O modelo de programação JAX-RPC, que utiliza descritores de implementação e ligações, continua sendo suportado. Consulte o tópico Protegendo Serviços da Web do JAX-RPC Utilizando a Segurança em Nível de Mensagem para obter informações adicionais.
Usando os Conjuntos de Políticas
Use conjuntos de política para simplificar sua configuração de Qualidade de Serviço do serviço da Web.
Os conjuntos de políticas combinam as definições de configuração, incluindo aquelas para configuração no nível de transporte e mensagem, como WS-Addressing (Web Services Addressing), WS-ReliableMessaging (Web Services Reliable Messaging) e WS-Security (Web Services Security), que inclui o WS-SecureConversation (Secure Conversation).
Gerenciando Políticas de Confiança
O WS-Trust (Web Services Security Trust) fornece a capacidade de um terminal emitir um token do contexto de segurança para o WS-SecureConversation (Web Services Secure Conversation). O token que emite suporte está limitado ao token de contexto de segurança. O gerenciamento de política de confiança define uma política para cada operação de serviço de trust, como emissão, cancelamento, validação e renovação de um token. As políticas de autoinicialização de um cliente devem corresponder às políticas de serviço de confiança do WebSphere Application Server.
Protegendo Mensagens Baseadas em Sessão
O Web Services Secure Conversation fornece uma sessão segura para trocas de mensagem de execução longa e potencialização do algoritmo criptográfico simétrico. O WS-SecureConversation fornece uma segurança básica para proteger os padrões de troca de mensagens com base na sessão, como WS-ReliableMessaging (Web Services Security Reliable Messaging).
Atualizando a Segurança do Nível de Mensagem
- Confirmação de assinatura
- Cabeçalhos Criptografados
A confirmação de assinatura aprimora a proteção da segurança da assinatura digital do XML. O elemento <SignatureConfirmation> indica que o responsável pela resposta processou a assinatura no pedido e a confirmação de assinatura assegura que a assinatura realmente foi processada pelo destinatário pretendido. Para processar a confirmação de assinatura corretamente, o iniciador deve preservar as assinaturas durante o processamento do gerador de solicitação e, posteriormente, deve recuperar as assinaturas para verificações de confirmação com a natureza stateless de serviços da Web e os diferentes padrões de troca de mensagens. Ative a confirmação de assinatura configurando a política.
O elemento de cabeçalho criptografado fornece uma maneira padrão de criptografar cabeçalhos SOAP, o que ajuda a interoperabilidade. Conforme definido na especificação de segurança da mensagem SOAP, o elemento <EncryptedHeader> indica que um cabeçalho (ou conjunto de cabeçalhos) SOAP específico deve ser protegido. A criptografia dos cabeçalhos e das partes SOAP ajuda a fornecer segurança de nível mais eficiente. O elemento EncryptedHeader assegura a conformidade com as diretrizes de processamento mustaUnderstand SOAP e impede a divulgação de informações contidas nos atributos em um bloco de cabeçalho SOAP.
Utilizando Asserção de Identidade
- Um token de nome do usuário sem senha
- Um Token X.509 para um certificado X.509
Para obter informações adicionais sobre asserção de identidade, leia o tópico sobre avaliador de ID confiável.
Assinando ou Criptografando Dados com um Token Personalizado
No modelo de programação JAX-RPC, o localizador de chaves, ou a interface Java com.ibm.wsspi.wssecurity.keyinfo.KeyLocator, foi aprimorado para suportar a flexibilidade da especificação. O localizador de chaves é responsável pela localização da chave. O assunto do JAAS local é transmitido para o método KeyLocator.getKey() no contexto. A implementação do localizador de chaves pode derivar a chave do token, que é criado pelo gerador de token ou o consumidor de token, para assinar uma mensagem, para verificar a assinatura em uma mensagem, para criptografar ou decriptografar uma mensagem. A interface com.ibm.wsspi.wssecurity.keyinfo.KeyLocator Java é diferente da versão no WebSphere Application Server Versão 5.x. A interface com.ibm.wsspi.wssecurity.config.KeyLocator da Versão 5.x é reprovada. Não há migração automática do localizador de chaves da Versão 5.x para as Versões 6 e posteriores. Você deve migrar o código-fonte da implementação do localizador de chaves da Versão 5.x para o modelo de programação do localizador de chaves da Versão 6 e posterior.
- O JAAS CallbackHandler e o Módulo de Login JAAS criam tokens de segurança do lado do gerador e validam, ou autenticam, tokens de segurança no lado do consumidor.
- A interface de Token de segurança com.ibm.websphere.wssecurity.wssapi.token.SecurityToken representa o token de segurança que possui métodos para obter a identidade, o formato XML e as chaves criptográficas.
- Gerador de Token (com.ibm.wsspi.wssecurity.token.TokenGeneratorComponent)
- Consumidor de Token (com.ibm.wsspi.wssecurity.token.TokenConsumerComponent)
- Localizador de Chaves (com.ibm.wsspi.wssecurity.keyinfo.KeyLocator)
Assinando ou Criptografando Qualquer Elemento XML
Uma expressão XPath é utilizada para selecionar qual elemento XML será assinado ou criptografado. Entretanto, uma assinatura de envelope é usada ao assinar o envelope SOAP, o cabeçalho SOAP ou o cabeçalho Web Services Security. Nos serviços da Web JAX-RPC, a expressão XPath é especificada no descritor de implementação do aplicativo. Em serviços da Web JAX-WS, a expressão XPath é especificada na política de WS-Security do conjunto de políticas.
O modelo de programação JAX-WS utiliza conjuntos de política para indicar as partes da mensagem nas quais a segurança deve ser aplicada. Por exemplo, a asserção <Corpo> é usada para indicar que o corpo da mensagem SOAP está assinado ou criptografado. Outro exemplo é a asserção <Cabeçalho>, em que o QName do cabeçalho SOAP a ser assinado ou criptografado é especificado.
Assinando ou Criptografando Cabeçalhos SOAP
O suporte do OASIS Web Services Security (WS-Security) Versão 1.1 fornece uma maneira padrão de criptografia e assinatura de cabeçalhos SOAP. Para assinar ou criptografar as mensagens SOAP, especifique o QName para selecionar os elementos do cabeçalho no cabeçalho SOAP da mensagem SOAP.
É possível configurar os conjuntos de política para assinatura ou criptografia utilizando-se o console administrativo ou o WSS APIs (Web Services Security APIs). Para obter mais detalhes, consulte o tópico Protegendo Partes da Mensagem Utilizando o Console Administrativo.
- Nome
- Esse atributo opcional indica o nome local do cabeçalho SOAP cuja integridade será protegida. Se esse atributo não for especificado, todos os cabeçalhos SOAP cujo espaço de nomes corresponda ao atributo Namespace serão protegidos.
- Namespace
- Esse atributo necessário indica o espaço de nomes dos cabeçalhos SOAP cuja integridade será protegida.
- Nome
- Esse atributo opcional indica o nome local do cabeçalho SOAP a ser protegido com confidencialidade. Se esse atributo não for especificado, todos os cabeçalhos SOAP cujo espaço de nomes corresponda ao atributo Namespace serão protegidos.
- Namespace
- Esse atributo necessário indica o espaço de nomes do(s) cabeçalho(s) SOAP a ser(em) protegido(s) com confidencialidade.
Para o comportamento do Web Services Security Versão 1.0, especifique a propriedade com.ibm.wsspi.wssecurity.encryptedHeader.generate.WSS1.0 com um valor de true em EncryptionInfo nas ligações. A especificação dessa propriedade resulta em um elemento <EncryptedData>.
Para o comportamento do Web Services Security Versão 1.1 que é equivalente às versões anteriores do to WebSphere Application Servera versão 7.0, especifique a propriedade com.ibm.wsspi.wssecurity.encryptedHeader.generate.WSS1.1.pre.V7 com um valor de true no elemento<encryptionInfo> na ligação. Quando esta propriedade for especificada, o elemento <EncryptedHeader> incluirá um parâmetro wsu:Id e o elemento <EncryptedData> omitirá o parâmetro Id. Essa propriedade deve ser usada apenas se a conformidade com o Basic Security Profile 1.1 não for necessária e ela for necessária para enviar os elementos <EncryptedHeader> para um cliente ou servidor que utilize o WebSphere Application Server Versão 5.1 Feature Pack for Web Services.
Suportando LTPA
O Lightweight Third Party Authentication (LTPA) é suportado como um token de segurança binário no Web Services Security. O Web Services Security suporta os tokens LTPA (versão 1) e LTPA versão 2. O token LTPA versão 2, que é mais seguro que o da versão 1, é suportado no WebSphere Application Server versão 7.0 e posterior.
Estendendo o Suporte para Registros de Data e Hora
É possível inserir um registro de data e hora em outros elementos durante o processo de assinatura, além do cabeçalho do Web Services Security. Esse registro de data e hora fornece um mecanismo para incluir um limite de tempo a um elemento. Esse suporte é uma extensão para WebSphere Application Server. Outras implementações do fornecedor podem não ter a capacidade de assimilar uma mensagem gerada com um registro de data e hora adicional inserido na mensagem.
Estendendo o Suporte para Nonce
É possível inserir um nonce, que é um valor gerado aleatoriamente, em outros elementos, além do token Username. O nonce é utilizado para reduzir a chance de um ataque de reprodução. Esse suporte é uma extensão para WebSphere Application Server. Outras implementações do fornecedor podem não ter a capacidade de assimilar mensagens com um nonce inserido nos elementos que não sejam um token Username.
Suportando o Armazenamento em Cache de Nonce Distribuído
O armazenamento em cache nonce distribuído é um novo recurso para serviços da Web no WebSphere Application Server Versões 6 e posterior que permite replicar dados nonce entre servidores em um cluster. Por exemplo, você pode ter um servidor de aplicativos A e um servidor de aplicativos B em um cluster C. Se o servidor de aplicativos A aceitar um nonce com um valor X, o servidor de aplicativos B criará um SoapSecurityException, se ele receber o nonce com o mesmo valor em um período especificado.
Armazenando o Certificado X.509 em Cache
O WebSphere Application Server armazena em cache os certificados X.509 que recebe, por padrão, para evitar a validação do caminho do certificado e melhorar seu desempenho. No entanto, esta alteração pode conduzir à exposição da segurança. Você pode desativar o armazenamento em cache do certificado X.509 utilizando as seguintes etapas:
- Clique em Segurança > Serviços da Web.
- Em Propriedades Adicionais, clique em Propriedades > Novo.
- No campo Nome da Propriedade, digite com.ibm.ws.wssecurity.config.token.certificate.useCache.
- No campo Valor da Propriedade, digite false.
- Clique em Servidores > Servidores de Aplicativos > server_name .
- Em Segurança, clique em Serviços da Web: Ligações padrão para Web Services Security.
- Em Propriedades Adicionais, clique em Propriedades > Novo.
- No campo Nome da Propriedade, digite com.ibm.ws.wssecurity.config.token.certificate.useCache.
- No campo Valor da Propriedade, digite false.