质量外联提示 - JDK 28:TLSHandshake JFR事件中捕获的命名组信息

质量外联提示 - JDK 28:TLSHandshake JFR事件中捕获的命名组信息

💡 原文英文,约300词,阅读约需2分钟。
📝

内容提要

JDK 28新增功能:jdk.TLSHandshake JFR事件现可记录TLS握手期间协商的命名组信息(如X25519MLKEM768),帮助分析密钥交换细节。该事件默认禁用,需通过JFR配置或启动参数启用,并用jfr print查看。Oracle鼓励用户下载早期版本测试并反馈。

🔎

延伸解读

默认关闭,需显式启用

jdk.TLSHandshake事件在JDK默认的default.jfc和profile.jfc配置中默认禁用,必须通过JFR配置文件、jfr configure命令或启动参数显式启用。例如,可使用jfr configure jdk.TLSHandshake#enabled=true或启动时添加-XX:StartFlightRecording:settings=default,duration=60s,+jdk.TLSHandshake#enabled=true。启用后,事件才会记录TLS握手细节,包括新增的命名组

新增命名组字段的用途

JDK 28为jdk.TLSHandshake事件新增了namedGroup字段,用于记录TLS握手期间协商的密钥交换组,如示例中的X25519MLKEM768。该信息有助于分析连接使用的密钥交换算法,尤其在混合后量子密码学场景下,可确认是否采用了后量子安全组。通过jfr print命令可查看该字段,便于安全审计和故障排查。

如何查看事件详情

启用事件并录制后,可使用jfr print --events "jdk.TLSHandshake" recording.jfr命令查看事件内容。输出包含时间戳、协议版本、密码套件、命名组、证书ID及堆栈跟踪等字段。示例输出展示了TLSv1.3和TLS_AES_128_GCM_SHA256,以及命名组X25519MLKEM768,帮助理解握手过程。

Q&A

JDK 28中jdk.TLSHandshake JFR事件新增了什么功能?

JDK 28中,jdk.TLSHandshake JFR事件新增了记录TLS握手期间协商的命名组信息(如X25519MLKEM768)的功能,帮助分析密钥交换细节。

如何启用jdk.TLSHandshake JFR事件?

该事件默认禁用,可以通过JFR配置文件(*.jfc)、jfr configure命令或启动参数启用。例如:使用jfr configure jdk.TLSHandshake#enabled=true,或在启动时使用-XX:StartFlightRecording:settings=default,duration=60s,+jdk.TLSHandshake#enabled=true。

如何查看jdk.TLSHandshake事件中记录的命名组信息?

使用jfr print命令,例如:jfr print --events "jdk.TLSHandshake" recording.jfr,输出中会包含namedGroup字段,显示协商的命名组。

jdk.TLSHandshake事件默认是启用还是禁用?

默认禁用。在JDK自带的default.jfc和profile.jfc配置中,该事件是禁用的,需要显式启用。

jdk.TLSHandshake事件记录哪些信息?

该事件记录成功TLS握手的详细信息,包括协议版本、密码套件、命名组(如X25519MLKEM768)、证书ID、事件线程和堆栈跟踪等。

JDK 28中如何反馈关于此新功能的意见?

可以下载JDK 28早期访问版本进行测试,并通过OpenJDK security-dev邮件列表(需注册)分享反馈。

🏷️

标签

➡️

继续阅读