Features and Benefits
JSSE includes the following important features:
- Included as a standard component of the SDK.
- Extensible, provider based architecture.
- Implemented in 100% Java™.
- Provides API support for SSL versions 2.0 and 3.0, and an implementation of SSL version 3.0.
- Provides API support and an implementation for the following TLS versions: 1.0, 1.1, 1.2
, 1.3
. - Includes classes that can be instantiated to create secure channels
(
SSLSocket,SSLServerSocket, andSSLEngine). - Provides support for cipher suite negotiation, which is part of the SSL handshaking used to initiate or verify secure communications.
- Provides support for client and server authentication, which is part of the normal SSL handshaking.
- Provides support for Hypertext Transfer Protocol (HTTP) encapsulated in the SSL protocol (HTTPS), which allows access to data such as web pages using HTTPS.
- Provides server session management APIs to manage memory-resident SSL sessions.
Provides support for the certificate status request extension
(OCSP stapling), which saves client certificate validation round-trips and resources.
- Provides support for the Server Name Indication (SNI) extension, which extends the TLS protocols to indicate what server name the client is attempting to connect to during handshaking.
- Provides support for endpoint identification during handshaking, which prevents man-in-the-middle attacks.
- Provides support for cryptographic algorithm constraints, which provides fine-grained control over algorithms negotiated by JSSE.
- Provides support for several cryptographic algorithms commonly used in cipher suites, including those listed in the following table:
Cryptographic Functionality Available With JSSE
| Cryptographic Algorithm * | Cryptographic Process | Key Lengths (Bits) |
|---|---|---|
| RSA | Authentication and key exchange | 512 and larger |
| RC4 | Bulk encryption | 128 128 (40 effective) |
| DES | Bulk encryption | 64 (56 effective) 64 (40 effective) |
| Triple DES | Bulk encryption | 192 (112 effective) |
| AES | Bulk encryption | 256 ** 128 |
| AES_GCM | Bulk encryption | 256 ** 128 |
| Diffie-Hellman | Key agreement | 1024 512 |
| DSA | Authentication | 1024 |
Note: * The IBMJSSE2 implementation uses the IBM Java Cryptography
Extension (JCE) family of providers for all of its cryptographic algorithms.
Note: ** Cipher suites that use AES_256 require the JCE Unlimited Strength Jurisdiction Policy
Files.