Métodos de Criptografia

Para configurações de ligação do gerador de pedidos, os métodos de criptografia incluem a especificação dos algoritmos de criptografia de chave e de dados a ser utilizada para criptografar a mensagem de SOAP. A WSS API para criptografia (WSSEncryption) especifica o nome do algoritmo e o URI (Identificador Uniforme de Recursos) do algoritmo correspondente para os métodos de criptografia de chave e de dados. Se os algoritmos de criptografia de chave e de dados estiverem especificados, somente os elementos criptografados com esses algoritmos serão aceitos.

Algoritmos de Criptografia de Dados

O algoritmo de criptografia de dados é utilizado para criptografar partes da mensagem, inclusive o corpo e a assinatura. Os algoritmos de criptografia de dados especificam o URI do algoritmo para cada tipo de algoritmos de criptografia de dados.

Os seguintes algoritmos pré-configurados de criptografia de dados são suportados:
Tabela 1. Algoritmos de Criptografia de Dados. Os algoritmos são usados para criptografar mensagens SOAP.
Nome do algoritmo 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 de algoritmo de criptografia de dados, TRIPLE DES: http://www.w3.org/2001/04/xmlenc#tripledes-cbc

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.

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 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.

O algoritmo de criptografia de dados configurado para a criptografia do gerador deve corresponder ao algoritmo de criptografia de dados configurado para decriptografia do consumidor.

Algoritmos de Criptografia de Chaves

Esse algoritmo é utilizado para criptografar e decriptografar chaves. Estas informações chave são utilizadas para especificar a configuração necessária para gerar a chave para assinatura digital e criptografia. As configurações de informações sobre assinatura e de informações sobre criptografia podem compartilhar as informações chave. As informações chave no consumidor são utilizadas para especificar as informações sobre a chave utilizada para validar a assinatura digital na mensagem recebida ou para decriptografar as partes criptografadas da mensagem. O gerador de pedidos é configurado para o cliente.

Nota: Os conjuntos de política não suportam criptografia de chave simétricas. Se você estiver usando o WSS API para criptografia de chave simétrica, você não poderá interoperar com os terminais de serviços da Web usando os conjuntos de política.

Os algoritmos de criptografia de chave especificam o URI (Identificador Uniforme de Recursos) do algoritmo do método de criptografia de chave. Os seguintes algoritmos pré-configurados de criptografia de chave são suportados:

Tabela 2. Algoritmos Suportados Pré-configurados de Criptografia de Chaves. Os algoritmos são usados para criptografar e decriptografar chaves.
WSS API URI
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 Um URI de algoritmo de criptografia de chave, agrupamento de chave TRIPLE DES: http://www.w3.org/2001/04/xmlenc#kw-tripledes
Para Conversação Segura, informações adicionais relacionadas às chaves devem ser especificadas, como:
  • algorithmName
  • keyLength
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.

O algoritmo de criptografia de chave para o gerador deve corresponder ao algoritmo de criptografia de chave configurado para o consumidor.

Este exemplo fornece um código de amostra para a criptografia para utilizar Triple DES para o método de criptografia de dados e RSA1.5 para o método de criptografia de chave:

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

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

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

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

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

	  // gera a instância WSSEncryption para criptografar o conteúdo do corpo de SOAP
	  WSSEncryption enc = factory.newWSSEncryption(token);
	  enc.addEncryptPart(WSSEncryption.BODY_CONTENT);

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

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

	  // inclui a WSSEncryption na WSSGenerationContext
	  gencont.add(enc);

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

Ícone que indica o tipo de tópico Tópico de Referência



Í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=rwbs_wssencryptalgorithms
Nome do arquivo: rwbs_wssencryptalgorithms.html