Transportes seguros con las interfaces de programas JSSE y JCE
Puede obtener información detallada sobre la seguridad de transporte utilizando las interfaces de programas JSS (Java™ Secure Socket Extension) y JCE (Java Cryptography Extension). En este tema, hay una descripción de la versión de IBM® del estándar IBMJCEFIPS (Java Cryptography Extension Federal Information Processing Standard).
JSSE (Java Secure Socket Extension)
JSSE proporciona seguridad de transporte para WebSphere Application Server. JSSE proporciona la infraestructura de interfaces de programas de aplicación (API) y la implementación de las API para los protocolos SSL (Secure Sockets Layer) y TLS (Transport Layer Security), incluidas las funciones de cifrado de datos, integridad de mensajes y autenticación.
Las API de JSSE se integran en Java 2 SDK, Standard Edition (J2SDK), Versión 5. El paquete de API para las API de JSSE es javax.net.ssl.*. Puede encontrar la documentación para utilizar las API de JSSE en la documentación de la API J2SE 6 que encontrará en http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html.
Se entregan varios proveedores JSSE con el Java 2 SDK Versión 5 que se proporciona con WebSphere Application Server. El proveedor IBMJSSE se utiliza en los releases anteriores de WebSphere Application Server.
Para obtener más información sobre el nuevo proveedor IBMJSSE2, revise la documentación que se encuentra en http://www.ibm.com/developerworks/java/jdk/security/60/.
Personalización de JSSE (Java Secure Socket Extension)
Elemento personalizable | Valor predeterminado | Cómo se personaliza |
---|---|---|
X509Certificate | Implementación de X509Certificate de IBM | Propiedad de seguridad cert.provider.x509v1 |
Protocolo HTTPS | Implementación de IBM | Propiedad del sistema java.protocol.handler.pkgs |
Proveedor de paquetes criptográficos | IBMJSSE2 | Una línea security.provider.n= en el archivo de propiedades de seguridad. Consulte la descripción. |
Almacén de claves predeterminado | Ninguno | * Propiedad del sistema javax.net.ssl.keyStore |
Almacén de confianza predeterminado | jssecacerts, si existe. De lo contrario, cacerts | * Propiedad del sistema javax.net.ssl.trustStore |
Fábrica de gestor de claves predeterminada | IbmX509 | Propiedad de seguridad ssl.KeyManagerFactory.algorithm |
Fábrica de gestor de confianza predeterminada | IbmX509 | Propiedad de seguridad ssl.TrustManagerFactory.algorithm |
Para los aspectos que pueden personalizarse estableciendo una propiedad del sistema, puede establecer de forma estática la propiedad del sistema con la opción -D del mandato Java. Puede establecer la propiedad del sistema con la consola administrativa o, establecer la propiedad del sistema de forma dinámica llamando al método java.lang.System.setProperty en el código: System.setProperty(propertyName,"propertyValue").
En cuanto a los aspectos que pueden personalizarse definiendo una propiedad de seguridad Java, especifique de forma estática un valor de propiedad de seguridad en el archivo de propiedades java.security. La propiedad de seguridad es propertyName=propertyValue. Establezca de forma dinámica la propiedad de seguridad Java llamando al método java.security.Security.setProperty en el código.
El archivo de propiedades java.security se encuentra en el siguiente directorio:
directorio raíz_servidor_apl/java/jre/lib/security.
Directorio raíz_servidor_apl/properties.
directorio
raíz_perfil/properties.
Interfaz de programas de aplicación
- Sockets y SSL sockets SSL
- Fábricas para crear los sockets y sockets SSL
- El contexto de socket seguro que actúa como fábrica para las fábricas de sockets seguros
- Interfaces del gestor de claves y confianza
- Clases de conexión URL HTTP segura
- API de certificado de clave pública
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
- Versión 1.6
- Acceda al sitio web http://www.ibm.com/developerworks/java/jdk/security/.
- Pulse Java 1.6.
- Pulse Documentación HTML de Javadoc en la sección Guía de JSSE (Java Secure Socket Extension).
Ejemplos de utilización de JSSE (Java Secure Socket Extension)
- Versión 1.6
- Acceda al sitio web http://www.ibm.com/developerworks/java/jdk/security/.
- Pulse Java 1.6.
- Pulse jssedocs_samples.zip en la sección Java Secure Socket Extension (JSSE) Guide.
Archivos | Descripción |
---|---|
ClientJsse.java | Demuestra una interacción simple de cliente y servidor utilizando JSSE. Se utilizarán todas los suites de cifrado. |
OldServerJsse.java | Ejemplos antiguos |
ServerPKCS12Jsse.java | Demuestra una interacción simple de cliente y servidor utilizando JSSE con el archivo de almacén de claves PKCS12. Se utilizarán todas los suites de cifrado. |
ClientPKCS12Jsse.java | Demuestra una interacción simple de cliente y servidor utilizando JSSE con el archivo de almacén de claves PKCS12. Se utilizarán todas los suites de cifrado. |
UseHttps.java | Demuestra el acceso a un servidor web SSL o no SSL utilizando el manejador de protocolos Java de la clase com.ibm.net.ssl.www.protocol. El URL se especifica con el prefijo http o https. Se visualizará el HTML devuelto desde este sitio. |
Permisos para la seguridad de Java 2
- java.util.PropertyPermission "java.protocol.handler.pkgs", "write"
- java.lang.RuntimePermission "writeFileDescriptor"
- java.lang.RuntimePermission "readFileDescriptor"
- java.lang.RuntimePermission "accessClassInPackage.sun.security.x509"
- java.io.FilePermission "${user.install.root}${/}etc${/}.keystore", "read"
- java.io.FilePermission "${user.install.root}${/}etc${/}.truststore", "read"
- java.security.SecurityPermission "putProviderProperty.IBMJSSE"
- java.security.SecurityPermission "insertProvider.IBMJSSE"
- java.security.SecurityPermission "putProviderProperty.SunJSSE"
- java.security.SecurityPermission "insertProvider.SunJSSE"
Depuración
Si se realiza la configuración a través de la propiedad del sistema javax.net.debug, JSSE proporciona el siguiente rastreo de depuración dinámico: -Djavax.net.debug=true.
Un valor de true activa el
recurso de rastreo, a condición de que esté instalada la versión de
depuración de JSSE.
Un valor de true activa el recurso de rastreo. Utilice la consola administrativa para establecer la propiedad del
sistema con objeto de depurar el servidor de aplicaciones.
Documentación
Consulte el tema Seguridad: Recursos para el aprendizaje para ver referencias de documentación a JSSE.
JCE
JCE (Java Cryptography Extension) proporciona algoritmos hash, de claves y criptográficos para WebSphere Application Server. JCE proporciona una infraestructura e implementaciones para el cifrado, la generación de claves, el acuerdo de claves y los algoritmos MAC (Message Authentication Code). El soporte para el cifrado incluye el bloqueo simétrico, asimétrico y cifrado continuo.
IBMJCE
- Algoritmo de cifra (AES, DES, TripleDES, PBEs, Blowfish, etc.)
- Algoritmo de firma (SHA1withRSA, MD5withRSA, SHA1withDSA)
- Algoritmo de resumen de mensajes (MD5, MD2, SHA1, SHA-256, SHA-384, SHA-512)
- Código de autenticación de mensajes (HmacSHA1, HmacMD5)
- Algoritmo de gestión de claves (DiffieHellman)
- Algoritmo de generación de números aleatorios (IBMSecureRandom, SHA1PRNG)
- Almacén de claves (JKS, JCEKS, PKCS12, JCERACFKS [z/OS sólo])
Para obtener más información, consulte la información sobre JCE en el siguiente sitio web: http://www.ibm.com/developerworks/java/jdk/security/60/.
IBMJCEFIPS
- Algoritmos de firma (SHA1withDSA, SHA1withRSA)
- Algoritmos de cifrado (AES, TripleDES, RSA)
- Algoritmo de gestión de claves (DiffieHellman)
- Generador de claves (pares) (DSA, AES, TripleDES, HmacSHA1, RSA, DiffieHellman)
- Código de autenticación de mensajes (MAC) (HmacSHA1)
- Resumen de mensajes (MD5, SHA-1, SHA-256, SHA-384, SHA-512)
- Generador de parámetros de algoritmo (DiffieHellman, DSA)
- Parámetro de algoritmo (AES, DiffieHellman, DES, TripleDES, DSA)
- Fábrica de claves (DiffieHellman, DSA, RSA)
- Fábrica de claves secretas (AES, TripleDES)
- Certificado (X.509)
- Aleatorio seguro (IBMSecureRandom)
Interfaz de programas de aplicación
- Cifrado simétrico masivo, como DES, RC2 e IDEA
- Cifrado simétrico continuo, como RC4
- Cifrado asimétrico, como RSA
- Cifrado basado en contraseña (PBE)
- Gestión de claves
- Códigos de autenticación de mensajes
En el
sitio web
http://www.ibm.com/developerworks/java/jdk/security/
se documenta más información sobre las API de JCE.
Ejemplos de utilización de JCE (Java Cryptography Extension)
Archivo | Descripción |
---|---|
SampleDSASignature.java | Demuestra cómo generar un par de claves DSA (una clave pública y una clave privada) y utilizar la clave para firmar digitalmente un mensaje con el algoritmo SHA1withDSA. |
SampleMarsCrypto.java | Muestra cómo generar una clave secreta Mars y cómo llevar a cabo el cifrado y descifrado Mars. |
SampleMessageDigests.java | Demuestra cómo utilizar los algoritmos de compendios de mensajes para MD2 y MD5. |
SampleRSACrypto.java | Demuestra cómo generar un par de claves RSA y cómo llevar a cabo el cifrado y descifrado RSA. |
SampleRSASignatures.java | Demuestra cómo generar un par de claves RSA (una clave pública y una clave privada) y utilizar la clave para firmar digitalmente un mensaje con el algoritmo SHA1withRSA. |
SampleX509Verification.java | Demuestra cómo verificar certificados X509 |
Documentación
Consulte el tema Seguridad: Recursos para el aprendizaje para ver documentación sobre JCE.