问题标签 [dtls]

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

snmp - 无法使用 DTLS 设置配置 snmpd

清理 ubuntu 16.04 OpenSSL 1.0.2g 下载 net-snmp5.7.3 并运行 ./configure 以配置 TLSTCP、DTLSUDP

根据本教程生成并移动必要的文件(.crt、.csr 和 .key)后,我开始编辑snmpd.conf文件。编辑后,我重新启动了 snmpd 服务并检查了状态。所以 snmpd 正在运行,但它报告了错误和一些警告,它无法识别令牌: 在此处输入图像描述 所以,它抱怨我在/etc/snmp/snmpd.conf文件开头添加到文件中的三行(这些行应该放在哪里重要吗? ):

任何想法那里有什么问题?

0 投票
1 回答
500 浏览

openssl - 如何配置 DTLS 回显服务器和客户端代码?

我找到了 DTLS SCTP 示例代码的网络档案。 http://web.archive.org/web/20150617012520/http://sctp.fh-muenster.de/dtls-samples.html

我想运行 DTLS 回显服务器和客户端。但是,我无法编译。以下是错误内容:

谢谢!。

0 投票
1 回答
634 浏览

c++ - OpenSSL 的 DTLSv1_Listen() 在运行时暂停程序

我正在尝试通过创建一个创建客户端和服务器套接字以在套接字之间回显字符串的程序来使用 OpenSSL DTLS 进行测试;但是,当我尝试测试 DTLSv1_Listen() 函数时,即使我没有尝试在套接字之间连接或发送数据,我的程序似乎也会暂停。注意:我使用的是在 DTLSv1_Listen() 被重写之后发布的 1.0.2 OpenSSL。

这是我完整的 C++ winsock 特定代码:

我希望结果如下:

但是,在运行程序时,它从不打印最后一行。该程序似乎做出了响应,因为我可以通过 ctrl+c 取消可执行文件,所以我假设它没有崩溃或冻结,但除此之外我不知所措。我的理解是,如果什么都没发生,该方法应该返回 0,如果听到 clienthello,则返回 >1,如果发生错误,则返回 <0。

另外,一个有点相关的问题:由于 DTLSv1_Listen() 需要 BIO_ADDR 来存储传入的请求地址,这是否意味着单独的客户端和服务器程序都需要 2 个套接字才能同时发送和监听?通常 UDP 客户端和服务器只需要一个套接字,但我似乎无法想出一个设计来使用 OpenSSL 的 DTLS 保留它。

我感谢你的时间。

0 投票
2 回答
793 浏览

windows - 使用 Schannel 的 DTLS

我正在尝试在 Windows 下使用 Schannel 创建 DTLS“连接”(我正在最近的 Windows 10 版本下进行测试,因此 Schannel 支持的所有 DTLS 版本都应该可用)

我尝试按照文档从工作代码开始建立常规 TLS 连接:

  1. 在第一次通过时使用空输入初始化SecurityContext,在输出时使用 SECBUFFER_TOKEN 和 SECBUFFER_ALERT
  2. AcceptSecurityContext,输入为 SECBUFFER_TOKEN 和 SECBUFFER_EMPTY,输出为 SECBUFFER_TOKEN 和 SECBUFFER_ALERT。
  3. 重复这两个步骤直到成功,然后继续使用 Encrypt/DecryptMessage

这在流模式下工作得非常好(ISC_REQ_SEQUENCE_DETECT | ISC_REQ_REPLAY_DETECT | ISC_REQ_CONFIDENTIALITY | ISC_RET_EXTENDED_ERROR | ISC_REQ_ALLOCATE_MEMORY | ISC_REQ_STREAM

如果我尝试用 ISC/ASC_REQ_DATAGRAM 替换 STREAM,我的 InitializeSecurityContext 会按预期以 SEC_I_CONTINUE_NEEDED 成功,但我的第一个 AcceptSecurityContext 然后以 SEC_E_INVALID_PARAMETER 失败。

我尝试将我的 SCHANNEL_CRED 的 grbitEnabledProtocols 设置为 0 以使用双方记录的默认值,我还尝试将其设置为 SP_PROT_DTLS1_X,但我仍然从我的第一个 ASC 获得无效参数返回。为了以防万一,我还尝试了 DTLS_1_0 常量。

此外,我的注册表设置中默认启用所有安全协议。

根据我对 DTLS RFC 的理解,我的代码在 HelloVerifyRequest 步骤中失败了,并且再次根据我对 RFC 的理解,这部分要求安全提供程序从 ClientHello 消息的几个部分以及源的IP地址。但是,我找不到任何记录方式将此信息传递给 ASC 函数。

(我认为?:))我已经在整个互联网上搜索了 Schannel 下 DTLS 的任何工作示例用法,但没有任何运气。在stackoverflow上,我发现这个问题只是简单地提到它受支持的: Windows 7上的Schannel是否支持DTLS?,而链接的 MSDN 文章只是一个高级概述。

我搜索了与此功能相关的常量的任何使用...我能想到的所有搜索引擎要么是 sspi.h 的副本,要么是索引 Windows API 中的常量的网站......

我知道其他实现(OpenSSL 等)很好地支持 DTLS,但我真的更喜欢使用 Schannel,因为我的代码的其他部分目前在 TLS 模式下与 Schannel 一起工作得很好。

0 投票
1 回答
1294 浏览

dtls - 检查 DTLS 连接的示例 url

谁能建议一个 URL 来检查 DTLS 连接。例如。https://www.howsmyssl.com/用于测试 TLS 协议。

提前致谢

0 投票
1 回答
535 浏览

python - webRTC - 正确使用 SIP 并寻找 Python 库

我正在尝试使用 DTLS 和 SIP 完成握手。该网站 [0] 告诉我,我需要向传入请求发送 SIP 响应,其中包含我的 SDP 文件和用于完成 DTLS 握手的指纹。我目前正在使用客户端 <--> 服务器模型。客户端正在请求调用,而我已经有了 RTP 数据包,但我需要在建立连接时将它们发送回客户端。我很难建立连接。

作为 DTLS 握手的参考,我有一个我在使用 webRTC 库的浏览器-浏览器调用期间使用wireshark 找到的数据包的屏幕截图。https://imgur.com/a/00bi7

我在哪里可以找到用于这些目的的好的 python 库?

[0] https://www.rfc-editor.org/rfc/rfc5763

0 投票
3 回答
4617 浏览

java - JSSE 中是否有 DTLS 实现

我想在 Java 中实现一个 DTLS 1.0 客户端,经过一番谷歌搜索后,发现JSSERefGuide显示以下内容:

JSSE API 能够支持 SSL 版本 2.0 和 3.0 以及 TLS 版本 1.0。这些安全协议封装了一个普通的双向流套接字,JSSE API 增加了对身份验证、加密和完整性保护的透明支持。JDK 附带的 JSSE 实现支持 SSL 3.0、TLS(1.0、1.1 和 1.2)和 DTLS(1.0 和 1.2 版)。它没有实现 SSL 2.0。

所以我认为我可以在不使用任何库的情况下用纯 Java 实现它(例如 BouncyCastle)

但是当我尝试运行时(以及其他一些,如 DTLSv1.2、DTLSv1 ...):

它抛出:

而例如以下作品:

列出所有安全提供程序我根本找不到 DTLS 的东西。

那么实际上是否有 DTLS 实现?如果是这样,你应该如何使用它?

0 投票
1 回答
485 浏览

tls1.2 - 哪个是 DTLS 1.2 实施中最容易使用、维护良好且稳定的 API?

有几种支持 DTLS 1.2 的 TLS 实现。维基百科在这里有一个详尽的链接。

我的阅读指向经典的 openssl、libressl、boringssl 和 mbed TLS 作为可行的选择。我只对 DTLS 1.2 API 感兴趣,仅此而已。我对在其他地方使用 API 没有兴趣。

openssl 似乎陷入了许多旧协议和使用包袱中。mbed TLS 的实现方法看起来不错,但在任何比较中都很少出现。我想知道为什么?它在任何方面都不完整吗?

如果有人评估了上述或任何其他 TSL 实现,纯粹是针对 DTLS 1.2 API,您会建议哪一个?

0 投票
1 回答
662 浏览

networking - 使用“Philips Hue Entertainment”的飞利浦 HUE 没有响应(通过 DTLS)

我正在尝试使用“Philips Hue Entertainment”来制作 Philips Hue。我遵循飞利浦的手册(我使用 OpenSSL): https ://developers.meethue.com/documentation/hue-entertainment-api#DTLS

我像描述的那样提供了 PSK 密钥和用户名。证书交换是可选的。

看一下 Wireshark 的截图——DTLS 握手看起来不错,但是一旦我发送了加密的应用程序数据,我就没有得到 Philips Hue 的任何响应。

--> Wireshark 截图

任何提示什么可能是错的?

0 投票
1 回答
3045 浏览

java - SSLEngine 在解开服务器问候完成后给出 NEED_UNWRAP

我使用DTLS1.0的是 java 9 提供的。它成功生成Client Hello并返回服务器响应

然后 SSLEngine 给出NEED_UNWRAP. 在打开包含它的数据包后,Server Hello Done它再次给出NEED_UNWRAP。展开下一次重新传输后Server Hello Done,它再次给出NEED_UNWRAP。它一次又一次地发生。但我认为它应该通过给产生下一个握手信号NEED_WRAP

如果我错了,请纠正我。否则为什么会这样?

信托经理:

SSL引擎:

握手: