Escolhendo Métodos de Decriptografia para a Ligação de Consumidor

Para configurar o cliente para decriptografia de resposta para ligação do consumidor, especifique quais métodos de algoritmo de transformação e dados usar quando o cliente decriptografar as mensagens SOAP.

Antes de Iniciar

Antes de concluir estas etapas, leia as informações de criptografia XML para familiarizar-se com a criptografia e a decriptografia das mensagens SOAP.

Para concluir a configuração da decriptografia para proteger as mensagens SOAP, é necessário concluir as seguintes tarefas:

  • Configurar a decriptografia das partes da mensagem SOAP
  • Especificar os métodos de decriptografia.

É possível configurar os métodos de decriptografia utilizando as APIs WSSDecryption e WSSDecryptPart. Ou, também é possível configurar os conjuntos de política utilizando o console administrativo para configurar os métodos de decriptografia.

Sobre Esta Tarefa

Algumas das definições relacionadas à criptografia são baseadas na especificação XML-Encryption. As seguintes informações definem alguns termos relacionados à criptografia de dados.

Algoritmo do Método de Criptografia de Dados
Os algoritmos de criptografia de dados especificam o URI (Identificador Uniforme de Recursos) do algoritmo do método de criptografia de dados. Este algoritmo criptografa e decriptografa os dados em blocos de tamanho fixo de vários octetos.

Por padrão, o JCE (Java™ Cryptography Extension) é fornecido com criptografias de força restritas ou limitadas. Para utilizar algoritmos de criptografia AES (Advanced Encryption Standard) de 192 bits e 256 bits, aplique arquivos de políticas de jurisdição limitada.

Para os algoritmos AES256-cbc e AES192-cbc, você deve fazer download dos arquivos de política Java™ Cryptography Extension (JCE) irrestritos a partir do seguinte website: http://www.ibm.com/developerworks/java/jdk/security/index.html.

Algoritmo do Método de Criptografia de Chaves
Os algoritmos de criptografia de chave especificam o URI (Identificador Uniforme de Recursos) do algoritmo do método de criptografia de chave. O algoritmo representa os algoritmos de criptografia de chave pública que são especificados para criptografar e decriptografar as chaves.
Por padrão, o algoritmo RSA_OAEP utiliza o algoritmo de compilação de mensagens SHA1 para computar uma compilação de mensagens como parte da operação de criptografia. Opcionalmente, você pode utilizar o algoritmo de compilação de mensagem SHA256 ou SHA512 ao especificar uma propriedade do algoritmo de criptografia de chave. O nome da propriedade é: com.ibm.wsspi.wssecurity.enc.rsaoaep.DigestMethod. O valor da propriedade é um dos seguintes URIs do método de compilação:
  • http://www.w3.org/2001/04/xmlenc#sha256
  • http://www.w3.org/2001/04/xmlenc#sha512

Por padrão, o algoritmo RSA_OAEP utiliza uma cadeia nula para a cadeia em octeto com codificação opcional para o OAEPParams. É possível fornecer uma cadeia em octeto com codificação explícita ao especificar uma propriedade de algoritmo de criptografia de chave. Para o nome da propriedade, é possível especificar com.ibm.wsspi.wssecurity.enc.rsaoaep.OAEPparams. O valor da propriedade é o valor codificado na base 64 da cadeia em octeto.

Importante: É possível configurar este método de compilação e as propriedades OAEPParams apenas no lado do gerador. Do lado do consumidor, estas propriedades são lidas a partir da mensagem SOAP recebida.

Para os algoritmos de criptografia KW_AES256 e KW_AES192, você deve fazer download dos arquivos de políticas irrestrito do JCE a partir do seguinte website: http://www.ibm.com/developerworks/java/jdk/security/index.html.

Importante: O país de origem pode restringir a importação, posse, uso ou a reexportação para outro país de software de criptografia. Antes de fazer o download ou de usar os arquivos de políticas não-restritas, você deverá consultar as leis do seu país, as regulamentações e as políticas referentes à importação, posse, uso e reexportação do software criptografado para determinar se ele é permitido.

Para concluir a configuração de decriptografia, você deve especificar o URI (Identificador Uniforme de Recursos) do algoritmo e seu tipo de uso. Se o URI for utilizado para vários tipos de uso, você terá que definir o URI para cada tipo de uso. O WebSphere Application Server suporta os seguintes tipos de uso de decriptografia:

Tabela 1. Tipos de Uso de Decriptografia. Estes tipos de decriptografia são suportados pelo WebSphere Application Server.
Tipos de Uso Description
Criptografia de Dados Especifica o URI do algoritmo utilizado para criptografia e decriptografia de dados. Criptografa e decriptografa os dados em blocos de tamanho fixo de vários octetos.
Criptografia de Chave Especifica o URI do algoritmo utilizado para criptografia e decriptografia da chave de criptografia.

Para configurar os algoritmos de parte decriptografada e de decriptografia, utilize as APIs WSSDecryption e WSSDecryptPart ou configure os conjuntos de política utilizando o console administrativo.

Nota: Os conjuntos de política não suportam criptografia de chave simétricas. Se estiver usando a API WSS para criptografia de chave simétrica, você não conseguirá interoperar com os terminais de serviços da Web que usam conjuntos de política.
Se você estiver utilizando as WSS APIs, as APIs WSSDecryption e WSSDecryptPart especificam quais métodos de algoritmo serão utilizados quando o cliente decriptografar as mensagens SOAP.
  • Utilize a API WSSDecryption para configurar o algoritmo de criptografia de dados e os métodos do algoritmo de criptografia de chave.
  • Utilize a API WSSDecryptPart para configurar um método do algoritmo de transfomação.

O processo WSS API conclui as seguintes etapas de alto nível para especificar quais métodos de algoritmo de parte criptografada e decriptografada usar ao configurar o cliente para decriptografia de resposta:

Procedimento

  1. Utilizar a API WSSDecryption, inclui o algoritmo de criptografia de dados necessário. O algoritmo de criptografia de dados é utilizado para criptografar ou decriptografar partes de uma mensagem SOAP. Os algoritmos de decriptografia de dados especificam o URI (Identificador Uniforme de Recursos) do algoritmo do método de criptografia de dados.

    O algoritmo de criptografia de dados padrão é AES 128. O nome da criptografia de dados é AES128, e o URI do algoritmo de criptografia de dados é http://www.w3.org/2001/04/xmlenc#aes128-cbc. O WebSphere Application Server suporta os seguintes algoritmos de decriptografia de dados pré-configurados:

    • AES128: http://www.w3.org/2001/04/xmlenc#aes128-cbc

      O algoritmo AES 128 é o método do algoritmo de dados padrão.

    • AES256: http://www.w3.org/2001/04/xmlenc#aes256-cbc

      Para usar esse algoritmo AES 256-cbc, você deve fazer o download do arquivo de políticas irrestrito do Java Cryptography Extension (JCE) a partir do seguinte website: http://www.ibm.com/developerworks/java/jdk/security/index.html.

    • AES192: http://www.w3.org/2001/04/xmlenc#aes192-cbc

      Não utilize o algoritmo de criptografia de chave de 192 bits se quiser que seu aplicativo configurado seja compatível com o BSP (Basic Security Profile).

      Para usar esse algoritmo AES 192-cbc, você deve fazer o download do arquivo de políticas irrestrito do Java Cryptography Extension (JCE) a partir do seguinte website: http://www.ibm.com/developerworks/java/jdk/security/index.html.

    • TRIPLE_DES: http://www.w3.org/2001/04/xmlenc#tripledes-cbc
  2. Conforme necessário, altera o método da API WSSEncryption para especificar outro algoritmo de criptografia de dados. Por exemplo, você pode incluir o seguinte código para alterar do algoritmo AES 128 padrão para o algoritmo Triple DES:
    dec.addAllowedKeyEncryptionMethod(WSSDecryption.TRIPLE_DES); 
  3. Utilizando a API WSSDecryption, inclui o algoritmo de criptografia de chave necessário. O algoritmo de criptografia de chave é utilizado para criptografar a chave utilizada para criptografar as partes da mensagem na mensagem SOAP. Se nenhuma chave for necessária para criptografar os dados, você terá que especificar WSSDecryption.encryptKey(false).

    O algoritmo de criptografia de chave selecionado para o lado do consumidor deve corresponder ao método de criptografia de chave selecionado para o lado do gerador.

    O valor do algoritmo de criptografia de chave padrão é o agrupamento de chave RSA_OAEP. O nome da criptografia de chave é KW_RSA_OAEP, e o URI do algoritmo de criptografia de chave é http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p. O WebSphere Application Server suporta os seguintes algoritmos de criptografia de chaves pré-configurados:

    • KW_AES128: http://www.w3.org/2001/04/xmlenc#kw-aes128
    • KW_AES192: http://www.w3.org/2001/04/xmlenc#kw-aes192

      Para usar esse algoritmo AES 192 de agrupamento de chave, você deve fazer download do arquivo de políticas irrestrito do Java Cryptography Extension (JCE) a partir do seguinte website: http://www.ibm.com/developerworks/java/jdk/security/index.html.

      Restrição: Não utilize o algoritmo de criptografia de chave de 192 bits se quiser que seu aplicativo configurado seja compatível com o BSP (Basic Security Profile).
    • KW_AES256: http://www.w3.org/2001/04/xmlenc#kw-aes256

      Para usar esse algoritmo AES 256-cbc de agrupamento de chave, você deve fazer download do arquivo de políticas irrestrito do Java Cryptography Extension (JCE) a partir do seguinte website: http://www.ibm.com/developerworks/java/jdk/security/index.html.

    • KW_RSA_OAEP: http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p.

      O algoritmo KW_RSA_OAEP é o método do algoritmo de chave padrão.

      Ao executar com o SDK (Software Development Kit) Versão 1.4, a lista de algoritmos de transporte de chaves suportados não inclui este algoritmo. Esse algoritmo aparece na lista de algoritmos de transporte de chaves suportados na execução do SDK Versão 1.5. Consulte as informações adicionais em http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p

    • KW_RSA_15: http://www.w3.org/2001/04/xmlenc#rsa-1_5
    • KW_TRIPLE_DES: http://www.w3.org/2001/04/xmlenc#kw-tripledes
    Nota: Para Web Services Secure Conversation, a API WSSEncryption pode especificar informações adicionais relacionadas à chave, como:
    • algorithmName
    • keyLength
  4. Conforme necessário, utiliza o método da API WSSDecryption para alterar para outros algoritmos de criptografia de chave. Por exemplo, você pode incluir o seguinte código para alterar do algoritmo de criptografia de chave padrão KW_RSA_OAEP para o algoritmo TRIPLE_DES:
    dec.addAllowedKeyEncryptionMethod(WSSDecryption.KW_TRIPLE_DES);
  5. Utilizando a API WSSDecryptPart, inclui o algoritmo de transformação, conforme necessário. Não existe algoritmo de transformação padrão. Entretanto, o WebSphere Application Server fornece uma parte decriptografada pré-configurada, WSSDecryptPart.TRANSFORM_ATTACHMENT_CIPHERTEXT, que pode ser incluída.

Resultados

Se houver uma condição de erro, uma WSSException será fornecida. Se ocorrer êxito, a API chamará o WSSConsumingContext.process(), o cabeçalho WS-Security será validado e a mensagem SOAP agora estará protegida usando o Web Services Security.

Exemplo

O seguinte exemplo fornece o código da WSS API de amostra para decriptografar o conteúdo do corpo bem como alterar a criptografia de dados e os algoritmos de criptografia de chave dos valores padrão:

// Obter o contexto da mensagem
   Object msgcontext = getMessageContext();

// Gerar a instância do WSSFactory 
   WSSFactory factory = WSSFactory.getInstance();

// Gerar a instância do WSSConsumingContext 
   WSSConsumingContext gencont = factory.newWSSConsumingContext();

// Gerar o manipulador de retorno de chamada
   X509ConsumeCallbackHandler callbackHandler = new 
      X509ConsumeCallbackHandler(
                                 "",
                                 "enc-sender.jceks",
                                 "jceks", 
                                 "storepass".toCharArray(), 
                                 "alice", 
                                 "keypass".toCharArray(), 
                                 "CN=Alice, O=IBM, C=US");

// Gerar a instância do WSSDecryption 
   WSSDecryption dec = factory.newWSSDecryption(X509Token.class, 
                                                callbackHandler);

// Configurar os candidatos para o método de criptografia de dados
// DEFAULT : WSSDecryption.AES128
   dec.addAllowedEncryptionMethod(WSSDecryption.AES128);
   dec.addAllowedEncryptionMethod(WSSDecryption.AES192);

// Configurar os candidatos para o método de criptografia de chave
// DEFAULT : WSSDecryption.KW_RSA_OAEP
   dec.addAllowedKeyEncryptionMethod(WSSDecryption.KW_TRIPLE_DES);

// Incluir o WSSDecryption no WSSConsumingContext 
   concont.add(dec);

// Validar o cabeçalho do WS-Security
concont.process(msgcontext);

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_confwssdecryptalgorithms
Nome do arquivo: twbs_confwssdecryptalgorithms.html