Escolhendo Métodos de Criptografia para Ligações de Gerador

Para configurar o cliente para criptografia de pedido para a ligação do gerador, é necessário especificar quais métodos de criptografia utilizar quando o cliente criptografar 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 especificar quais métodos de algoritmo devem ser utilizados quando o cliente criptografar as mensagens SOAP, conclua as seguintes tarefas:
  • Utilize a API WSSEncryption para configurar o algoritmo de criptografia de dados e os métodos do algoritmo de criptografia de chave.
  • Utilize a API WSSEncryptPart para configurar o método de algoritmo de transformação, se necessário. O padrão é nenhum algoritmo de transformação.

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 para criptografar a chave que é utilizada para criptografar os dados. O algoritmo representa os algoritmos de criptografia de chave públicas 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 de chave KW-AES256 e KW-AES192, você deve fazer download dos arquivos de política JCE irrestritos 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.
Tabela 1. Tipos de Uso de Criptografia. Os tipos de uso de criptografia descrevem métodos de criptografia.
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.

Criptografia de Dados

O WebSphere Application Server suporta os seguintes algoritmos de criptografia de dados pré-configurados:

Tabela 2. Algoritmos de Criptografia de Dados. Esses algoritmos de criptografia pré-configurados são suportados pelo WebSphere Application Server.
Nome de Criptografia de Dados URI de Algoritmo
WSSEncryption.AES128 (valor padrão) Um URI do algoritmo de criptografia de dados, AES 128: http://www.w3.org/2001/04/xmlenc#aes128-cbc
WSSEncryption.AES192 Um URI do algoritmo de criptografia de dados, AES 192: http://www.w3.org/2001/04/xmlenc#aes192-cbc
WSSEncryption.AES256 Um URI do algoritmo de criptografia de dados, AES 256: http://www.w3.org/2001/04/xmlenc#aes256-cbc
WSSEncryption.TRIPLE_DES Um URI do algoritmo de criptografia de dados, 3DES: http://www.w3.org.2001/04/xmlenc#tripledes-cbc

Criptografia de Chave

O WebSphere Application Server suporta os seguintes algoritmos de criptografia de chaves pré-configurados:

Tabela 3. Algoritmos de Criptografia de Chaves. Esses algoritmos de criptografia pré-configurados são suportados pelo WebSphere Application Server.
Nome de Criptografia de Chave URI de Algoritmo
WSSEncryption.KW_AES128 Um URI de algoritmo de criptografia de chave, AES 128 de agrupamento de chave: http://www.w3.org/2001/04/xmlenc#kw-aes128
WSSEncryption.KW_AES192 Um URI de algoritmo de criptografia de chave, AES 192 de agrupamento de chave: http://www.w3.org/2001/04/xmlenc#kw-aes192
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).
WSSEncryption.KW_AES256 Um URI de algoritmo de criptografia de chave, AES 256 de agrupamento de chave: http://www.w3.org/2001/04/xmlenc#kw-aes256
WSSEncryption.KW_RSA_OAEP (valor padrão) Um URI de algoritmo de criptografia de chave, RSA OAEP de agrupamento de chave: http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
WSSEncryption.KW_RSA15 Um URI de algoritmo de criptografia de chave, RSA 1.5 de agrupamento de chave: http://www.w3.org/2001/04/xmlenc#rsa-1_5
WSSEncryption.KW_TRIPLE_DES http://www.w3.org/2001/04/xmlenc#kw-tripledes

Para configurar os métodos de algoritmo da parte criptografada e de criptografia, utilize a API WSSEncryption 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.

O processo WSS API conclui as seguintes etapas de alto nível para especificar quais métodos de criptografia utilizar ao configurar o cliente para criptografia de pedido:

Procedimento

  1. Utilizando a API WSSEncryption, 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 criptografia de dados especificam o URI (Identificador Uniforme de Recursos) do algoritmo do método de criptografia de dados.

    A configuração do gerador cliente deve corresponder à configuração do consumidor fornecedor.

    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 criptografia de dados pré-configurados:

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

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

    • AES 192: 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.

    • AES 256: 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.

    • TRIPLEDES: 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:
    // Default data encryption algorithm: AES128
    WSSEncryption enc = factory.newWSSEncryption(x509t); 
       enc.setEncryptionMethod(EncryptionMethod.TRIPLEDES_CBC);
    gencont.add(enc); 
  3. Utilizando a API WSSEncryption, 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 a chave de criptografia, que é a chave utilizada para criptografar as partes da mensagem, não for criptografada, a API de decriptografia selecionará false para corresponder à chave de criptografia.

    A configuração do gerador cliente deve corresponder à configuração do consumidor fornecedor.

    O valor do algoritmo de criptografia de chave padrão é o agrupamento de chave RSA OAP. 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.

      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 AES 256: 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 RSA15: 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

Resultados

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

Exemplo

O seguinte exemplo fornece o código WSS API de amostra utilizando WSSEncryption.setEncryptionMethod() e WSSEncryption.setKeyEncryptionMethod().

// Get the message context
   Object msgcontext = getMessageContext();

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

// Gerar a instância do WSSGenerationContext
   WSSGenerationContext gencont = factory.newWSSGenerationContext();

// Gerar o manipulador de retorno de chamada
   X509GenerateCallbackHandler callbackHandler = new 
       X509GenerateCallbackHandler(
                                   "",
                                   "enc-sender.jceks",
                                   "jceks", 
                                   "storepass".toCharArray(), 
                                   "bob", 
                                   null, 
                                   "CN=Bob, O=IBM, C=US", 
                                   null);

// Gerar o token de segurança utilizado para criptografia
   SecurityToken token = factory.newSecurityToken(X509Token.class , callbackHandler);

// Gerar a instância do WSSEncryption 
   WSSEncryption enc = factory.newWSSEncryption(token);

// Configurar o método de criptografia de dados 
// DEFAULT: WSSEncryption.AES128
      enc.setEncryptionMethod(WSSEncryption.TRIPLE_DES);

// Configurar o método de criptografia de chave
// DEFAULT: WSSEncryption.KW_RSA_OAEP
      enc.setEncryptionMethod(WSSEncryption.KW_RSA15);

// Incluir o WSSEncryption no WSSGenerationContext
   gencont.add(enc);

// Gerar o cabeçalho WS-Security
gencont.process(msgcontext);

O que Fazer Depois

Em seguida, se você deseja incluir um algoritmo de transformação, reveja a tarefa do processo de API WSSEncryptPart.


Í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_confwssencryptalgorithms
Nome do arquivo: twbs_confwssencryptalgorithms.html