gpt4 book ai didi

java - 如何检测 HttpServletRequest 的 TLS 版本?

转载 作者:搜寻专家 更新时间:2023-11-01 03:33:12 25 4
gpt4 key购买 nike

我正在逐步停止对 Web 应用程序的 TLS 1.0 和 TLS 1.1 的支持。

我想根据用户与我的服务器建立的连接来检测这将影响的用户。

我正在运行 Tomcat 7 和 Java 8。

如何检测 HttpServletRequest 的 TLS 版本?

最佳答案

这在 Java 中是不切实际的。它需要修改 JSSE 实现或插入替代方案。

我最终通过部署 How's My SSL 解决了这个问题并从客户端使用跨域 AJAX 检查 SSL 状态并将其报告给我的应用服务器。

您需要有来自客户端的未代理的直接请求才能正确评估其 SSL 的状态。不要将 HTTPS 负载平衡器放在 How's My SSL 前面。它会破坏它并给你不正确的结果。

这里是一段客户端 JavaScript,应该可以使用公共(public)的 How's My SSL 服务(我建议部署您自己的):

$.getJson('https://www.howsmyssl.com/a/check')
.done(function (result) {
$.post('/logs', {
name: 'howsmyssl',
level: 'info',
message: result
});
})
.fail(function(err) {
$.post('/logs', {
name: 'howsmyssl',
level: 'error',
message: 'could not reach howsmyssl'
});
});

您需要在您的应用服务器上的 /logs 处运行一个 REST 端点,该端点可以接收 POST 以捕获此信息。您可以根据自己的喜好更改该路径和消息格式。此端点应经过身份验证,并应使用事件时间、经过身份验证的主体(用户)以及可能的其他信息(如 IP 地址)丰富日志。

result 的内容如下所示(经过 pretty-print 以便于阅读):

{
"given_cipher_suites": [
"TLS_GREASE_IS_THE_WORD_8A",
"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_GCM_SHA256",
"TLS_RSA_WITH_AES_256_GCM_SHA384",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_3DES_EDE_CBC_SHA"
],
"ephemeral_keys_supported": true,
"session_ticket_supported": true,
"tls_compression_supported": false,
"unknown_cipher_suite_supported": false,
"beast_vuln": false,
"able_to_detect_n_minus_one_splitting": false,
"insecure_cipher_suites": {
},
"tls_version": "TLS 1.2",
"rating": "Probably Okay"
}

您可以将此记录到日志聚合器或数据库中,以便稍后查询它以找到特定的用户来打电话或发电子邮件。您甚至可以提醒用户您的应用中浏览器的 TLS 存在缺陷,并特别强调即将到来的 TLS 1.2 截止日期以及他们可以采取的更新浏览器以进行补偿的步骤。

关于java - 如何检测 HttpServletRequest 的 TLS 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41813852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com