Skip to content

Build1 publisher2 min readPublished

Upgrading to JDK 27 switches TLS 1.3 handshakes to hybrid post-quantum key exchange

Oracle's JDK 27 release notes put hybrid post-quantum key exchange for TLS 1.3 into the default configuration. The migration now belongs to whoever schedules the runtime upgrade.

The Engineer · Build desk

Illustration accompanying Upgrading to JDK 27 switches TLS 1.3 handshakes to hybrid post-quantum key exchange

What happened

  • Applications that use the javax.net.ssl APIs pick up hybrid key exchange for TLS 1.3 by default, with no change to existing code, according to the release announcement.
  • G1 becomes the default garbage collector in all environments, and HotSpot will always select it unless the command line names another collector.
  • JDK Flight Recorder now redacts command-line arguments and the initial values of environment variables and system properties in its recordings.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • decision Whoever owns the base image and the JDK version now makes the call on post-quantum readiness for TLS.
  • constraint Services that pin their own named groups or SSL parameters opt themselves out, so an upgrade alone does not demonstrate that any handshake changed.
  • cost Anyone running where the JVM used to pick Serial has to verify Oracle's no-significant-degradation claim against their own startup time and footprint numbers before trusting it.
  • capability Flight Recorder output can be handed to a support engineer without hand-scrubbing the process arguments first.

Oracle's wording is specific about who does nothing. Applications that use the javax.net.ssl APIs "will benefit from these improved algorithms by default, without change to existing code" [4]. The diff under review is a version number in a base image.

The announcement describes hybrid key exchange as combining a quantum-resistant algorithm with a traditional algorithm, and gives defence against future quantum computing attacks as the reason [3]. Both halves run in the same key exchange.

For the no-code-change claim to transfer to a given service, that service has to be taking the default. An application that sets its own named groups or its own SSL parameters keeps the behaviour it configured and picks up nothing from the upgrade [11].

The second default flip in this release affects deployments where the JVM used to choose for you. G1 becomes the default collector in all environments, and HotSpot will always select G1 unless the command line names another collector [5]. For the cases where the JVM previously selected Serial, Oracle says throughput, latency, memory footprint and startup time "should not degrade significantly" [6]. It is a prediction about a population of workloads, and it holds on yours only if your heap and startup path resemble the ones that were measured. Command-line selection still works, so pinning Serial remains available [5].

JDK Flight Recorder's new redaction covers command-line arguments and the initial values of environment variables and system properties [8]. A credential supplied as a system property is therefore absent from those initial values in a recording [13]. Separately, a new encoding API converts cryptographic keys, certificates and certificate revocation lists to and from PEM text and back into objects [9].

Four of the nine feature descriptions reach for AI: primitive types in patterns, lazy constants, structured concurrency and the vector API [10]. For the vector API the connection is concrete, since the point of it is compiling vector computations to vector instructions on supported CPU architectures [12]. Pattern matching on primitives easing AI integration is a sentence about the marketing calendar. The announcement does not identify which of the nine JEPs are the four preview features and which is the incubator feature [14].

What to watch

  • Reports of handshake failures after JDK 27 upgrades against peers that do not offer the hybrid groups.
  • Per-JEP documentation identifying which of the nine features are preview and which is the incubator one.
  • Measured startup time and memory footprint comparisons from deployments where the JVM previously selected Serial.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories