问题标签 [tls-psk]

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 回答
319 浏览

ssl - openSSL 1.1.1 API 疑点

我想为我的项目使用 openSSL 1.1.1 设置和运行带有 TLS 1.2 的 SSL 客户端和服务器。

我对 openSSL 有一些疑问和/或要求:

  1. 选择 TLS 1.2 作为版本的正确方法是什么?目前我正在使用 TLS_client_method()。其他方法似乎已被弃用。是否有用于选择特定版本的特定 API?

  2. 我需要运行具有以下握手扩展的 SSL 客户端。

    • ec_point_formats 以“未压缩”为值
    • supported_groups 列表为 "secp521r","secp384r1","secp256r1","secp224r1","secp192r1","secp160r1","ffdhe2048"
    • encrypt_then_mac 值为 0
    • 服务器名称
    • extended_master_secret 没有任何值和长度设置为 0
  3. 我需要运行具有以下握手扩展的 SSL 服务器

    • encrypt_then_mac 值为 0
    • extended_master_secret 没有任何值和长度设置为 0
  4. 除了上述标题扩展字段之外,我还想禁用其他所有内容。如何做到这一点?

  5. 从客户端我只想提供“TLS_PSK_WITH_AES_128_CBC_SHA256”密码套件作为选项。

  6. 使用 PSK 密码时,成功建立连接和通信是否需要客户端证书和密钥文件 (pem)?

  7. 是否有任何带有 PSK 身份验证的示例或开源客户端-服务器实现?

0 投票
0 回答
49 浏览

openssl - OpenSSL 可以在同一个 SSL 上下文中处理多个身份验证机制吗?

我们正在尝试支持使用 TLS1.2 支持 PSK 和 SRP 身份验证机制的服务器。但是,当我们尝试在同一上下文中为两者运行回调时,只会检测到 PSK 回调:

SSL_CTX_set_psk_server_callback(m_ctx, psk_out_of_bound_serv_cb);

SSL_CTX_set_srp_username_callback(m_ctx, srp_server_param_cb);

如果您只设置一个回调或另一个,SRP 和 PSK 目前在我们的代码中工作。我尝试先注册 SRP,但这样做并没有改变唯一的 PSK 正在工作的事实。因此,另一种方法是在 SSL 上下文中单独设置这些。我还确认 SRP 和 PSK 密码套件在设置时组合起来不是问题。

以下是我们拥有的测试场景的快速摘要:

  1. 仅具有 SRP 回调的 SRP 客户端 - 有效
  2. 仅具有 PSK 回调的 PSK 客户端 - 有效
  3. 带有 SRP+PSK 回调的 SRP 客户端 - 不起作用
  4. 具有 SRP+PSK 回调的 PSK 客户端 - 有效

不同机制的多个回调会在同一个 SSL 上下文上同时工作吗?

0 投票
0 回答
124 浏览

node.js - 通过 Node.js 中的预共享密钥 (PSK) 恢复 TLS 会话

目前,Node.js 的TLS 会话恢复文档仅涵盖两种方法(会话 ID 和会话票证),这两种方法在 TLS 1.3 规范中都已过时。在实践中,我发现当服务器配置为处理它们时,Filezilla 并没有通过 TLS 1.3 使用这些方法中的任何一种。

Filezilla 团队成员向我证实了这一点,他们只使用 TLS 1.3 中指定的预共享密钥方法。

这让我看到了PSK 文档,可悲的是,这些文档比会话恢复文档更加稀疏和过时。他们甚至不包括在握手期间交换 PSK,而是专注于带外 PSK。我一直在挖掘 Node 源代码,但没有发现任何有用的东西,因为这些东西大部分都在 deps -> OpenSSL 中,而且我在破译 C 方面的技能不是很好。

我的问题很可能不适合这种媒体,如果是这样,我了解它是否已关闭。也就是说,我的问题很简单:此时是否可以在 Node.js 中实现基于 PSK 的会话恢复,如果可以,该流程会是什么样子?

0 投票
1 回答
230 浏览

openssl - OpenSSL 1.1.1 PSK TLS1.3 - TLS_256_GCM_SHA384 密码套件没有合适的签名算法错误

我正在使用 OpenSSL 1.1.1l 2021 年 8 月 24 日在 Windows 中运行一些测试,对 PSK TLS_128_GCM_SHA256 和 TLS_256_GCM_SHA384 使用 s_client 和 s_server。

对于 PSK TLS_128_GCM_SHA256我能够成功建立连接:

服务器:

客户

但是,我无法成功建立密码套件TLS_AES_256_GCM_384的连接

服务器

客户

我错过了什么?谢谢!

0 投票
0 回答
25 浏览

java - netty ssl 密钥交换模式,如何在 netty 中使用 TLS-PSK 模式

我们用的是Netty4,打算扩展Netty的SSL安全模式,不确定Netty4是否支持PSK密钥交换模式,有知道这方面的人指导一下,非常感谢