Métodos de Decriptografia
Os algoritmos de decriptografia especificam os dados e os algoritmos de criptografia de chave que são utilizados para decriptografar a mensagem SOAP. A WSS API para decriptografia (WSSDecryption) especifica o URI (Identificador Uniforme de Recursos) de algoritmo dos dados e dos métodos de criptografia de chave. A interface WSSDecryption faz parte do pacote com.ibm.websphere.wssecurity.wssapi.decryption.
Algoritmos de Criptografia de Dados
Os algoritmos de criptografia de dados são os algoritmos utilizados para criptografar e decriptografar dados. Esse tipo de algoritmo é utilizado na criptografia de dados para criptografar e decriptografar várias partes da mensagem, incluindo o conteúdo do corpo e a assinatura.
Os algoritmos de decriptografia de dados especificam o URI (Identificador Uniforme de Recursos) do algoritmo do método de criptografia de dados. O WebSphere Application Server suporta os seguintes algoritmos de decriptografia de dados pré-configurados:
WSS API | URI |
---|---|
WSSDecryption.AES128 (o valor padrão) | Um URI do algoritmo de criptografia de dados, AES 128: http://www.w3.org/2001/04/xmlenc#aes128-cbc |
WSSDecryption.AES192 | Um URI do algoritmo de criptografia de dados, AES 192: http://www.w3.org/2001/04/xmlenc#aes192-cbc |
WSSDecryption.AES256 | Um URI do algoritmo de criptografia de dados, AES 256: http://www.w3.org/2001/04/xmlenc#aes256-cbc |
WSSDecryption.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.
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 deve corresponder ao algoritmo de decriptografia de dados configurado para o consumidor.
Algoritmos de Criptografia de Chaves
Os algoritmos de criptografia de chaves são os algoritmos utilizados 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.
Os algoritmos de criptografia de chave especificam o URI (Identificador Uniforme de Recursos) do algoritmo do método de criptografia de chave. O WebSphere Application Server suporta os seguintes algoritmos de criptografia de chaves pré-configurados:
WSS API | URI |
---|---|
WSSDecryption.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 |
WSSDecryption.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).
|
WSSDecryption.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 |
WSSDecryption.KW_RSA_OAEP (o 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 |
WSSDecryption.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 |
WSSDecryption.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 |
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.
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 chaves para o gerador e o consumidor devem corresponder.
O exemplo a seguir fornece uma amostra do código de WSS API para os algoritmos padrão utilizados para a decriptografia do WebSphere Application Server:
WSSFactory factory = WSSFactory.getInstance();
WSSConsumingContext concont = factory.newWSSConsumingContext();
// Necessário para anexar o token de nome do usuário à mensagem.
X509ConsumeCallbackHandler callbackHandler =
new X509ConsumeCallbackHandler("",
"enc-sender.jceks",
"JCEKS",
"storepass".toCharArray(),
"alice",
"keypass".toCharArray(),
"CN=Alice, O=IBM, C=US");
// Configurar o componente de decriptografia.
// Parte criptografada padrão: Body-Content
// Algoritmo de criptografia de dados padrão: AES128
// Algoritmo de criptografia de chave padrão: KW-RSA-OAEP
WSSDecryption dec = factory.newWSSDecryption(X509Token.Type,
callbackHandler);
concont.add(dec);
// validar o cabeçalho de WS-Security.
concont.process(msgctx);