Transports sécurisés avec les interfaces de programmation JSSE et JCE
Cette rubrique fournit des informations détaillées sur la sécurité du transport à l'aide des interfaces de programmation JSSE (Java™ Secure Socket Extension) et JCE (Java Cryptography Extension). Elle décrit la version IBM®de Java Cryptography Extension Federal Information Processing Standard (IBMJCEFIPS).
Java Secure Socket Extension
JSSE fournit les fonctions de sécurité de transport pour WebSphere Application Server. JSSE fournit la structure d'API et l'implémentation des interfaces API pour les protocoles SSL (Secure Sockets Layer) et TLS (Transport Layer Security), y compris la fonctionnalité nécessaire au chiffrement des données, à l'intégrité des messages et à l'authentification.
Les interfaces API JSSE sont intégrées à Java 2 SDK, Standard Edition (J2SDK) version 5. Le package correspondant aux interfaces API JSSE est javax.net.ssl.*. La documentation relative à l'utilisation de ces API est disponible dans la documentation portant sur l'API J2SE 6, accessible à l'adresse http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html.
Plusieurs fournisseurs JSSE sont inclus dans le SDK Java 2 version 5 fourni avec WebSphere Application Server. Le fournisseur IBMJSSE est utilisé dans les éditions précédentes de WebSphere Application Server.
Pour plus d'informations sur le nouveau fournisseur IBMJSSE2, consultez la documentation se trouvant à l'adresse http://www.ibm.com/developerworks/java/jdk/security/60/.
Personnalisation de Java Secure Socket Extension
Elément personnalisable | Valeut par défaut | Méthode de personnalisation |
---|---|---|
X509Certificate | Implémentation de X509Certificate d'IBM | Propriété de sécurité cert.provider.x509v1 |
Protocole HTTPS | Implémentation d'IBM | Propriété système java.protocol.handler.pkgs |
Fournisseur de packages de chiffrement | IBMJSSE2 | Ligne security.provider.n= dans le fichier des propriétés de sécurité. Voir la description. |
Fichier de clés par défaut | Aucun | Propriété système * javax.net.ssl.keyStore |
Fichier de clés certifiées par défaut | jssecacerts, s'il existe. Sinon, cacerts | Propriété système * javax.net.ssl.trustStore |
Fabrique des gestionnaires de clés par défaut | IbmX509 | Propriété de sécurité ssl.KeyManagerFactory.algorithm |
Fabrique des gestionnaires d'accréditation | IbmX509 | Propriété de sécurité ssl.TrustManagerFactory.algorithm |
Pour les aspects pouvant être personnalisés en définissant une propriété système, définissez la propriété système de manière statique à l'aide de l'option -D de la commande Java. Vous pouvez définir la propriété système à l'aide de la console d'administration ou de manière dynamique en appelant la méthode java.lang.System.setProperty dans le code : System.setProperty(nomPropriété,"valeurPropriété").
Pour les aspects pouvant être personnalisés en définissant une propriété de sécurité Java, spécifiez une valeur de propriété de sécurité de manière statique dans le fichier de propriétés java.security. La propriété de sécurité est nomPropriété=valeurPropriété. Définissez de manière dynamique la propriété de sécurité Java en appelant la méthode java.security.Security.setProperty dans le code.
Le fichier de propriétés java.security se trouve dans le répertoire suivant :
répertoire racine_serveur_app/java/jre/lib/security.
répertoire racine_serveur_app/properties.
racine_profil/properties.
Interface de programmation d'application
- les sockets et les sockets SSL
- Les fabriques permettant de créer les sockets et les sockets SSL
- Le contexte de socket sécurisée qui agit en tant que fabrique pour les fabriques de sockets sécurisée.
- Interfaces des gestionnaires de clés et des relations de confiance
- Classes de connexion URL HTTP sécurisées
- API du certificat de clé publique
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
- Version 1.6
- Accédez au site Web http://www.ibm.com/developerworks/java/jdk/security/.
- Cliquez sur Java 1.6.
- Cliquez sur Javadoc HTML documentation dans la section Java Secure Socket Extension (JSSE) Guide.
Exemples utilisant JavaSecure Socket Extension
- Version 1.6
- Accédez au site Web http://www.ibm.com/developerworks/java/jdk/security/.
- Cliquez sur Java 1.6.
- Cliquez sur jssedocs_samples.zip dans la section Java Secure Socket Extension (JSSE) Guide.
Fichiers | Description |
---|---|
ClientJsse.java | Illustre une simple interaction Client/Serveur à l'aide de JSSE. Tous les codes de chiffrement activés sont utilisés. |
OldServerJsse.java | Exemples de versions antérieures |
ServerPKCS12Jsse.java | Illustre une simple interaction Client/Serveur à l'aide de JSSE et du fichier de clés PKCS12. Tous les codes de chiffrement activés sont utilisés. |
ClientPKCS12Jsse.java | Illustre une simple interaction Client/Serveur à l'aide de JSSE et du fichier de clés PKCS12. Tous les codes de chiffrement activés sont utilisés. |
UseHttps.java | Illustre l'accès à un serveur web SSL ou non à l'aide du gestionnaire de protocole Java de la classe com.ibm.net.ssl.www.protocol. L'URL est spécifiée à l'aide du préfixe http ou https. Le fichier HTML renvoyé à partir de ce site s'affiche. |
Autorisations pour la sécurité 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 "${racine.installation.utilisateur}${/}etc${/}.keystore", "read"
- java.io.FilePermission "${racine.installation.utilisateur}${/}etc${/}.truststore", "read"
- java.security.SecurityPermission "putProviderProperty.IBMJSSE"
- java.security.SecurityPermission "insertProvider.IBMJSSE"
- java.security.SecurityPermission "putProviderProperty.SunJSSE"
- java.security.SecurityPermission "insertProvider.SunJSSE"
Débogage
En effectuant la configuration via la propriété système javax.net.debug, JSSE fournit la trace de débogage dynamique suivante : -Djavax.net.debug=true.
La valeur true active la fonction de trace, à condition que la version de débogage de JSSE soit installée.
La valeur true active la fonction de trace. Utilisez la console d'administration pour définir la propriété système permettant de déboguer le serveur d'applications.
Documentation
Pour connaître les références des documentations sur JSSE, voir la rubrique Sécurité : Ressources pour l'apprentissage.
JCE
JCE (Java Cryptography Extension) offre des algorithmes cryptographiques, de clé et de hachage à WebSphere Application Server. Il offre une structure et des implémentations pour les algorithmes de chiffrement, de génération de clés, de concordance de clés et de codes MAC (Message Authentication Code). La prise en charge du chiffrement inclut des codes symétriques, asymétriques, de bloc et de flux.
IBMJCE
- Algorithme de chiffrement (AES, DES, TripleDES, PBEs, Blowfish, etc.)
- Algorithme de signature (SHA1withRSA, MD5withRSA, SHA1withDSA)
- Algorithme de synthèse de message (MD5, MD2, SHA1, SHA-256, SHA-384, SHA-512)
- Code d'authentification de message (HmacSHA1, HmacMD5)
- Algorithme de concordance de clés (DiffieHellman)
- Algorithme de génération par nombre aléatoire (IBMSecureRandom, SHA1PRNG)
- Fichier de clés (JKS, JCEKS, PKCS12, JCERACFKS [z/OS uniquement])
Pour plus d'informations, voir les informations à propos de JCE sur le site Web suivant : http://www.ibm.com/developerworks/java/jdk/security/60/.
IBMJCEFIPS
- Algorithmes de signature (SHA1withDSA, SHA1withRSA)
- Algorithmes de chiffrement (AES, TripleDES, RSA)
- Algorithme de concordance de clés (DiffieHellman)
- Générateur de paires de clés (DSA, AES, TripleDES, HmacSHA1, RSA, DiffieHellman)
- Code d'authentification de message (MAC) (HmacSHA1)
- Algorithme de synthèse de message (MD5, SHA-1, SHA-256, SHA-384, SHA-512)
- Générateur de paramètre d'algorithme (DiffieHellman, DSA)
- Paramètre d'algorithme (AES, DiffieHellman, DES, TripleDES, DSA)
- Fabrique de clés (DiffieHellman, DSA, RSA)
- Fabrique de clés secrètes (AES, TripleDES)
- Certificat (X.509)
- Mécanisme aléatoire sécurisé (IBMSecureRandom)
Interface de programmation d'application
- Le chiffrement de masse par clé symétrique, tel que DES, RC2 et IDEA
- Le chiffrement de flux par clé symétrique, tel que RC4
- Le chiffrement par clé asymétrique, tel que RSA
- Le chiffrement par mot de passe (PBE)
- La concordance de clés
- Les codes d'authentification de message (MAC)
Pour obtenir plus d'informations documentées sur les interfaces API JCE, connectez-vous au site Web http://www.ibm.com/developerworks/java/jdk/security/.
Exemples utilisant JavaCryptography Extension
Fichier | Description |
---|---|
SampleDSASignature.java | Illustre comment générer une paire de clés DSA (une clé publique et une clé privée) et utiliser ces clés pour signer numériquement un message à l'aide de l'algorithme SHA1withDSA |
SampleMarsCrypto.java | Illustre comment générer une clé secrète Mars et comment la chiffrer et la déchiffrer |
SampleMessageDigests.java | Illustre comment utiliser le prétraitement des messages pour les algorithmes MD2 et MD5 |
SampleRSACrypto.java | Illustre comment générer une paire de clés RSA et comment la chiffrer et la déchiffrer |
SampleRSASignatures.java | Illustre comment générer une paire de clés RSA (une clé publique et une clé privée) et utiliser ces clés pour signer numériquement un message à l'aide de l'algorithme SHA1withRSA |
SampleX509Verification.java | Explique comment vérifier les certificats X509. |
Documentation
Pour connaître les références des documentations sur JCE, voir la rubrique Sécurité : Ressources pour l'apprentissage.