问题标签 [tls1.3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
98 浏览

ssl - 在一个握手消息中发送“加密扩展”和“服务器完成”。在 TLS1.3 中是强制性的吗?

根据RFC 8446(TLSv1.3) [https://www.rfc-editor.org/rfc/rfc8446]

Encrypted Extension并且Finished是两个不同的握手消息。

但在 RFC 8448(TLS 1.3 握手跟踪示例)[https://www.rfc-editor.org/rfc/rfc8448]

在此跟踪文档的所有示例中,Encrypted Extension(消息类型 0x08)和Server Finished (消息类型 0x14)消息被连接在一起并一起发送。

请参阅 RFC 8446 的第 23 和 24 页。

我知道通过将两个握手消息(如果它们由一个实体一个接一个地立即发送)一起添加将提高性能,并且 RFC 8446 提供了这一规定。

但这真的是任何服务器实现都必须一起发送Encrypted ExtensionServer Finished消息的吗?

或者服务器和客户端应该支持这两种实现,即

a) 分别发送Encrypted ExtensionServer Finished消息。

b) 在一个握手消息中同时发送Encrypted ExtensionServer Finished消息。

0 投票
1 回答
684 浏览

ssl - TLS 1.3 不适用于 Nginx 1.17.6 / Ubuntu 18.04 / OpenSSL 1.1.1

我在 Digital Ocean 上使用 Ubuntu 18.04、Nginx 版本 1.17.6、OpenSSL 版本 1.1.1 进行托管。- 我相信那些满足 TLS 1.3 的要求。

在我的/etc/nginx/nginx.conf文件中,我添加了 TLSv1.3,如下所示: ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

我没有更改/etc/nginx/sites-available/website.com中的任何内容。

当我在 SSL 实验室和其他地方测试我的网站时,TLSv1.3 无法正常工作。它仍在使用 TLSv1.2。

我检查了nginx -V--with-openSSL参数没有列出。不确定我是否必须使用该标志重建我的 nginx。

任何指针将不胜感激

更新: 我使用 OpenSSL 1.1.1 从源代码重建了 Nginx。还是行不通。

0 投票
1 回答
2919 浏览

apache-httpclient-4.x - 是否可以使用 Apache HTTPClient 4.2.5 发出 HTTP/2 请求?

我正在尝试使用 apache 客户端发出 HTTP/2 请求。以下版本可以吗?

迁移我的 Web 应用程序中的版本花费了我大量的代码更改。是否有任何解决方法可以在 httpclient-4.2.5.jar 中支持带有 TLSv1.3 的 HTTP/2?

我正在使用的 Apache 库:
httpclient-4.2.5.jar
httpcore-4.2.4.jar
httpmime-4.2.5.jar

提前致谢。

0 投票
0 回答
749 浏览

ssl - 使用 Wireshark 解密 EAP-TLS 1.3 流量

我正在使用 EAP-TLS v1.3 协议对我的 radius 服务器进行身份验证。根据 TLSv1.3 的要求,使用的所有证书都是椭圆曲线 ( secp256-r1)。但是,Wireshark 的 SSL 选项卡目前仅支持 RSA 密钥。

我想解密我的请求者(对等方)的流量。有没有办法可以做到?(在某种程度上类似于用于 Web 浏览器的 Master Shared Secret 方法)。

还有其他可以帮助我分析流量的程序吗?

如果我在这里遗漏了什么,请提前致谢并道歉。我在对等体上使用 wpa_supplicant v2.9。

0 投票
1 回答
1262 浏览

node.js - Node.js 说它在 minVersion 设置为 1.3 并使用 1.3 连接客户端时使用 tls1.2

我正在使用 .net 核心的 HttpClient 与:

在节点端(我有节点版本 v12.8.0)我设置服务器选项如下:

这是 tls 跟踪:

c#端的错误是:客户端和服务器无法通信,因为它们没有共同的算法。

当我将 minVersion 设置为 1.3 时,为什么节点使用 tls1.2?

0 投票
1 回答
934 浏览

apache - TLS1.3 会话的 SSLSessionID 等效项是什么

在 TLSv1.2 中,客户端能够使用 SSLSessionID 恢复。此 ID 在多个恢复的会话中保持不变。

在我修改过的 apache 网络服务器中,我有一个逻辑,可以根据 SSLSessionID 检查会话 cookie。如果 SSLSessionID 更改为相同的 cookie,我会放弃该请求。

现在我如何在 TLSv1.3 中实现这一点。(会话的恢复不是问题,这是可行的。)

问题是,每个请求的 SSLSessionID 都会发生变化,在恢复的会话中也是如此。

显然我的机制不再起作用,所以我需要一个在恢复的会话中保持不变的标识符。

0 投票
1 回答
1527 浏览

openssl - socat openssl-listen - 确保 TLSv1.3 正在使用中

我有一个使用socat以下命令的工作客户端/服务器场景:

服务器

客户

这是一个更大系统的一部分,但是上面的命令对于我们想要实现的效果很好。但是,我需要确保 TLS v1.3 正在使用中,并确保它是唯一使用的加密版本。我可以通过以下方式确保使用 1.2 版:

socat - OPENSSL-LISTEN:443,method=TLS1.2,verify=0,cert=cert.pem,key=key.pem

openssl 是最新的(1.1.1 版本),应该支持 TLS1.3

在撰写本文时(2020 年 2 月),我能找到的几乎所有关于 socat 的文档都只提及设置 TLS1.2,而没有提及 TLS1.3。对于openssl命令行,您可以设置-tls1_3,例如:

openssl s_server -accept 443 -tls1_3 -ciphersuites TLS_AES_256_GCM_SHA384 -key key.pem -cert cert.pem

[1] https://8gwifi.org/docs/tlsv13.jsp

此命令有效(与相关s_client命令一起),但我无法获得通过 socat 传入的相同参数。

0 投票
1 回答
305 浏览

java - 如何在 TLSv1.3 中将 certificate_authorities 添加到 CertificateRequest 消息中

我正在使用 TLS 1.3 设置相互身份验证,使用 spring boot 服务器和 curl 客户端进行测试。我的信任库包含两个正确加载的证书链 - 事实上,相互身份验证在此测试设置中有效。

但是,基于RFC8446规范,我试图CertificateRequest在 SSL 握手中获取消息以包含 certificate_authorities扩展名。

日志 ( -Djavax.net.debug=all) 显示来自服务器的证书请求消息,没有certificate_authorities.

这个扩展是可选的CertificateRequest,但我想把它包含在这个消息中,以便真正的客户端设备能够根据这个向服务器发送正确的证书。

0 投票
1 回答
1134 浏览

certificate - 在 TLS1.3 握手捕获中哪里可以找到服务器证书

我使用wireshark 捕获了在都支持TLSv1.3 的客户端和服务器之间建立的TLSv1.3 握手。我知道证书是以加密形式发送的,但我找不到任何表明我们在这里找到加密证书的字段。请问有什么帮助吗?

0 投票
0 回答
604 浏览

.net - .NET 框架 4.8 的传输层安全性 (TLS 1.3)

我们正在使用两个项目

  1. CommonInterFaces(使用 .NET 4 开发)
  2. InterfaceImplementation(使用 .NET 4.8 重新编译)

之前我们使用的是 TLS 1.2,但最终会被最新发布的标准 TLS 1.3 取代。出于同样的原因,我们将 InterfaceImplementation 编译到 .NET 框架 4.8,但不是 CommonInterfaces(仅减速)。

所以我的问题是,我是否需要将 CommonInterface 项目重新编译为 .NET 4.8 版本,或者如果实现符合 4.8 就可以了。

请提供指导。

谢谢你。