问题标签 [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 投票
2 回答
160 浏览

java - 使用 Java/SpringBoot 为令牌绑定协议协商启用 TLS 扩展

在我的 SpringBoot Web 应用程序中,我希望能够确定在 'client hello-server hello' TLS 协商过程中是否使用了 TLS ' token_binding '扩展( RFC8472 )。

从 SpringBoot 的角度来看,我很确定我必须使用我的自定义 SSLSocketFactory 实例覆盖 restTemplate,类似于这个:Spring Boot AsyncRestTemplate SSLSocketFactory

但是,我不知道如何从中读取/获取 token_binding 扩展。它将欣赏如何提取此内容的示例,或者至少如何使用 java(用于 SSL 客户端)向 TLS/SSL 结构添加任何扩展。

0 投票
0 回答
1304 浏览

linux - fetchmail 警告 imap.gmail.com 服务器证书

我在这里很新,但我想与大家分享我的问题并找到解决方案。
也许这可以帮助某人并节省时间。
我选择了 stackoverflow,因为我经常在这里找到解决问题的方法。

问题:fetchmail 提示 imap.gmail.com 证书的一些警告,并且可能不再获取我的邮件

起点是一些 fetchmail 警告,如下所示

经过简短的测试和 .fetchmailrc 配置更改(例如添加)后,sslproto tls1.2我收到了此警告

现在我已经看到我的本地设备上可能存在一些根 ca 和中间 ca 以及服务器证书问题。
现在你必须现在我运行 debian 拉伸。
是的,它很旧而且有点过时,这可能是问题所在,
我不再调查。因此,我开始对和 google ca 证书
进行更多研究。imap.gmail.com当我运行fetchmail -vfor verbose 命令时,我看到谷歌告诉我,
他们想要进行TLS1.3协议通信。
您还可以通过运行 openssl 连接检查来看到这一点。openssl s_client -showcerts -connect imap.gmail.com:993
所以,我知道 TLS1.2 现在还没有过时,只有在 TLS1.1 之前的所有其他旧协议都被弃用了。
我的 debian stretch fetchmail 也不支持 TLS1.3,这就是为什么我稍后只配置 TLS1.2。

现在我在互联网上搜索了谷歌 pki 证书。所有 Google pki 证书都可以在这里找到Google PKI

现在是我的解决方案。

在我的主目录中创建一个新的 .certs 文件夹

通过 openssl connect 获取 imap.gmail.com 证书。

通过 wget 下载 google pki 证书

然后将所有 *.crt 转换为 *.pem 格式并复制到 certs 目录

Afterwords 运行 openssl 的 c_rehash 以将其用于 fetchmail

像这样在 ~/.fetchmailrc 配置中插入以下行是ssl,sslcertpathsslproto行重要的更改。

现在重新运行您的 fetchmail(可能处于详细模式)以检查警告是否消失。 fetchmail -v

0 投票
1 回答
405 浏览

openssl - 致命错误:openssl/evp.h:没有这样的文件或目录

操作系统:Centos7

我正在尝试构建依赖于 openssl 的无堆栈 python。我需要使用 openssl 1.1.1d 来支持 tls1.3 我在我的 makefile 中添加了 tarball openssl-1.1.1d.tar.gz。

当我做它显示我下面的错误,

从stackoverflow上的其他一些来源我发现它需要openssl-devel包。然而,支持 tls1.3 的 1.1.1d 版本的 openssl-devel 不适用于 Centos7。

谁能指导我解决这个问题?

0 投票
1 回答
816 浏览

ios - 如何解析 x509 证书并提取其密钥的签名算法?

我有一个 x509 证书作为文件/字节数组,我想用它来验证CertificateVerifyTLS 消息中提供的签名。我想我可以SecKeyVerifySignature在确定证书的密钥算法(参数)并从成绩单哈希(连接到上下文字符串等)中SecKeyAlgorithm初始化之后使用。signedData

openssl x509报告证书的密钥,如

我相信我可以使用此处描述的机制解析证书,例如。

我想我可以用它SecCertificateCopyKey来提取密钥,例如。

但是,我无法找到一种方法来提取密钥的签名算法(公钥算法)。我发现SecKeyIsAlgorithmSupported。我是否需要遍历所有可能的SecKeyAlgorithm常量以找到密钥正在使用的常量(即 a SecKeyAlgorithmfor id-ecPublicKey)?

0 投票
0 回答
157 浏览

python - 如何使用 Scapy 从 pcap 中提取 TLS 元数据

我正在尝试编写一个 Python 脚本来使用 Scapy 从 pcap 中提取 TLS 1.3 元数据(记录长度、记录类型...)。我面临两个主要困难:

0 投票
1 回答
2672 浏览

ssl - Python pyOpenssl 服务器不协商 TLS 1.3

我很难与 pyOpenssl 服务器协商 TLS 1.3。我使用openssl s_client(支持1.3)连接到服务器没有运气。但是,服务器适用于 TLS 1.2 及更低版本。你能帮我看看我错过了什么吗?提前致谢!

当我强制客户端仅连接 tls1.3 时,我得到的只是以下错误

并且服务器返回跟踪:

通过成功的 TLS 1.2 连接,我看到服务器返回以下密码以确认 TLS 1.3 支持。

我正在使用的工具版本

0 投票
1 回答
523 浏览

ssl - Enovy 错误 - 以下密码在单独尝试时被拒绝:TLS_AES_128_GCM_SHA256

在1.5.1 中,当我尝试使用以下语法istio将特定密码套装添加到gateway'部分时:tls

我在 istio-ingress pod 的日志中收到以下错误:

如果我cipherSuites从该部分中删除该行tls,则没有错误,并且相同的密码套装出现在有效密码套装列表中。

有什么建议吗?谢谢

0 投票
1 回答
374 浏览

ssl - 对 TLS 1.0 和 1.1 的支持是否已在支持 TLS 1.3 的更高版本的 Jetty 中完全删除?

参考此文档,https: //www.eclipse.org/jetty/documentation/current/configuring-ssl.html#configuring-sslcontextfactory-cipherSuites 顶部有一条注释:

TLS v1.3 发布后,将没有可用于 TLS v1.0 或 v1.1 的解决方法。TLS v1.3 的计划包括禁止具有已知漏洞的密码出现在任何级别。建议尽快升级使用这些密码的任何客户端,否则将面临被锁定到过时版本的 Jetty、Java 甚至操作系统中。

Jetty 9.4.12的更改日志包括以下内容:

2711 TLS 1.3 合规性

是否确认从 Jetty 9.4.12 及更新版本开始,不再可能覆盖默认密码并重新启用对 TLS 1.0 和 1.1 的支持?

0 投票
0 回答
130 浏览

java - 无法使用 JDBC Over TLS 1.3 连接到 PostgreSQL

我在 Windows 10 机器上安装了 PostgreSQL 12.1。我正在尝试使用 PostgreSQL JDBC 42.2.10 连接到服务器,该服务器在使用 jlink 创建的 AdoptOpenJDK 11.0.7 中运行。服务器上使用的自签名证书使用带有 SHA256 签名的 2048 位 RSA。我通过打开证书验证了这一点,该证书将“签名算法”显示为sha256RSA,将“签名哈希算法”显示为sha256,将“公钥”显示为RSA (2048 Bits)

我正在尝试使用 PostgreSQL JDBC 42.2.10 进行连接。ssl_max_protocol_version = 'TLSv1.2'如果我通过添加到postgresql.conf禁用 TLS 1.3 ,那么一切正常。但是,如果没有此行,TLS 握手将失败并出现handshake_failure异常。当我查看 PostgreSQL 日志时,我看到一行内容:

无法接受 SSL 连接:没有合适的密钥共享

我假设这意味着可接受的密码套件与 PostgreSQL 服务器支持的密码套件之间没有重叠。有谁知道如何配置 Java 客户端或 PostgreSQL 服务器以使用 TLS 1.3 启用此类通信?

如果有帮助,这是我的 TLS ClientHello 消息,作为使用-Djavax.net.debug=all命令行参数运行 Java 的输出。我的预感是问题是psk_key_exchange_modes部分中可用的单个选项:

0 投票
1 回答
905 浏览

ssl - 当服务器验证客户端证书失败时,tls 1.3 客户端不报告握手失败

我有一个使用 OpenSSL 的 C 客户端,当在服务器上调用 SSL_do_handshake() 期间使用在服务器端验证失败的证书时,该客户端未通过测试。当应用程序使用 TLS 1.2 时,服务器上的 SSL_do_handshake() 失败会在调用 SSL_do_handshake() 作为失败返回值时报告给客户端。

在将我的应用程序升级到 OpenSSL 1.1.1 和 TLS 1.3 时,我注意到虽然验证错误仍在服务器上发生,但它不再报告给客户端。

我知道握手协议已作为 TLS 1.3 的一部分完全重写,但是似乎有了所有可用的回调,我应该能够在客户端以某种方式确定身份验证失败而不必尝试编写数据到服务器。

有没有其他人遇到过这种情况,他们可以推荐一条前进的道路吗?