Monday, 26 September 2011

Java™ SE 7 Release Security Enhancements


The Java SE 7 release adds the following features:
  • Elliptic Curve Cryptography (ECC)
    A new native provider has been added to the Java SE 7 release that provides several ECC-based algorithms (ECDSA/ECDH). See Sun PKCS#11 Provider's Supported Algorithms in Java PKCS#11 Reference Guide for more information.

  • CertPath Algorithm Disabling
    Weak cryptographic algorithms can now be disabled. For example, the MD2 digest algorithm is no longer considered secure. The Java SE 7 release provides a mechanism for denying the use of specific algorithms in certification path processing and TLS handshaking. See Appendix D: Disabling Cryptographic Algorithms in Java PKI Programmer's Guide and Disabled Cryptographic Algorithms in Java Secure Socket Extension (JSSE) Reference Guide for more information.

  • JSSE (SSL/TLS)
    • TLS 1.1
      The SunJSSE provider now supports TLS 1.1 as described in RFC 4346. The most important update is protection against cipher block chaining (CBC) attacks.

    • TLS 1.2
      The SunJSSE provider now supports TLS 1.2 as described in RFC 5246. Among other things, it specifies different internal hashing algorithms, adds new cipher suites, and contains improved flexibility, particularly for negotiation of cryptographic algorithms.

    • Weak cipher suites deprecated
      Per RFC 4346RFC 5246, and RFC 5469, some cipher suites have been made obsolete and should not be used. These obsolete suites are all disabled by default in SunJSSE. For details, consult the cipher suite lists in the documentation about the SunJSSE provider.

    • Connection-sensitive trust management
      Both trust managers and key managers now have the ability to examine parameters of the TLS connection, specifically theSSLSession under construction, during the handshake. For example, a trust manager might restrict the types of certificates used based on the list of valid signature algorithms.

    • Endpoint verification
      An endpoint identification algorithm can be specified to verify that a remote computer's host address matches its supplied certificate. Although this type of verification was previously performed for the HTTPS protocol (see HttpsURLConnection andHostnameVerifier), such verification can now be optionally performed at the TLS level.

    • TLS renegotiation
      Java SE supports RFC 5746, which fixes a renegotiation issue in the TLS protocol.

    • SSLv2Hello disabled by default
      In Java SE 7, SSLv2Hello is removed from the default enabled protocol list.

    • Algorithm disabling
      Weak cryptographic algorithms can now be disabled, as previously described.

    • Server Name Indication (SNI) for JSSE client
      The Java SE 7 release supports the Server Name Indication (SNI) extension in the JSSE client. SNI is described in RFC 4366. This enables TLS clients to connect to virtual servers.

    • Tighter checking of EncryptedPreMasterSecret version numbers
      Java SE 7 tightens version number checking during TLS 1.1 and TLS 1.2 handshaking. See the JSSE Reference Guide for more information.


No comments:

Post a Comment