Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
dtls — DTLS 1.2 和 1.3 的原生 Go 实现,支持 ECDHE 和 PSK 密钥交换、AEAD 密码套件、连接 ID、会话恢复、0-RTT 以及加密客户端问候(Encrypted Client Hello)。 | Kitploit
工具/GitHubGitHub/pion/dtls
通用工具数据包嗅探与分析加密/解密工具网络安全密码学实用工具与框架身份验证
GitHubpion/dtls

dtls

DTLS 1.2 和 1.3 的原生 Go 实现,支持 ECDHE 和 PSK 密钥交换、AEAD 密码套件、连接 ID、会话恢复、0-RTT 以及加密客户端问候(Encrypted Client Hello)。

查看仓库
71121699小时14分前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站


Pion DTLS

DTLS 的 Go 语言实现

Pion DTLS Sourcegraph Widget join us on Discord Follow us on Bluesky
GitHub Workflow Status Go Reference Coverage Status Go Report Card License: MIT


使用 Go 编程语言原生实现的 DTLS 1.2 和 DTLS 1.3。

一个长期目标是进行专业的安全审查,或许还能被纳入标准库。

RFC

已实现

  • RFC 6347:数据报传输层安全版本 1.2
  • RFC 9146:DTLS 1.2 的连接标识符
  • RFC 9147:数据报传输层安全(DTLS)协议版本 1.3
  • RFC 9849:TLS 加密客户端问候
  • RFC 9853:DTLS 1.2 和 1.3 的可达性返回检查
  • RFC 5705:传输层安全(TLS)的密钥材料导出器
  • RFC 7627:传输层安全(TLS)- 会话哈希和扩展主密钥扩展
  • RFC 7301:传输层安全(TLS)- 应用层协议协商扩展

特性

Pion DTLS 支持 DTLS 1.2 和 DTLS 1.3。我们欢迎贡献和错误修复。

当前特性

  • DTLS 1.2 和 DTLS 1.3 客户端/服务器
  • 通过 ECDHE(curve25519、nistp256、nistp384)和 PSK 进行密钥交换
  • DTLS 1.3 外部 PSK,支持 psk_ke 和 psk_dhe_ke,支持 SHA-256 和 SHA-384
  • DTLS 1.3 每次握手提供多个 PSK 身份供服务器选择
  • 握手期间处理丢包和乱序
  • 密钥导出(RFC 5705)
  • 使用 Resume 进行 DTLS 1.2 和 DTLS 1.3 连接状态序列化与恢复
  • DTLS 1.3 会话票据恢复和可选的 0-RTT 早期数据
  • DTLS 1.3 加密客户端问候(ECH),通过 WithECH 配置(RFC 9849)
  • 扩展主密钥扩展(RFC 7627)
  • ALPN 扩展(RFC 7301)
  • DTLS 1.2 和 DTLS 1.3 的连接 ID(CID),包括对端地址变化时的监听器路由
  • DTLS 1.3 握手后 CID 更新和用于路径迁移的备用 CID
  • DTLS 1.2 和 DTLS 1.3 的返回可达性检查(RRC)(RFC 9853)
  • DTLS 1.3 本地路径探测与迁移,使用 Conn.AddPath、Path.Probe 和 Path.Switch
  • DTLS 1.3 流量密钥更新,使用 Conn.UpdateKeys

支持的密码套件

DTLS 1.3:证书与 PSK
  • TLS_AES_128_GCM_SHA256(RFC 8446)
  • TLS_AES_256_GCM_SHA384(RFC 8446)
  • TLS_CHACHA20_POLY1305_SHA256(RFC 8446)
DTLS 1.2:ECDHE
  • TLS_ECDHE_ECDSA_WITH_AES_128_CCM(RFC 6655)
  • TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8(RFC 6655)
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256(RFC 5289)
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(RFC 5289)
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(RFC 5289)
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(RFC 5289)
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA(RFC 8422)
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(RFC 8422)
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256(RFC 7905)
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256(RFC 7905)
DTLS 1.2:PSK
  • TLS_PSK_WITH_AES_128_CCM(RFC 6655)
  • TLS_PSK_WITH_AES_128_CCM_8(RFC 6655)
  • TLS_PSK_WITH_AES_256_CCM_8(RFC 6655)
  • TLS_PSK_WITH_AES_128_GCM_SHA256(RFC 5487)
  • TLS_PSK_WITH_AES_128_CBC_SHA256(RFC 5487)
  • TLS_PSK_WITH_CHACHA20_POLY1305_SHA256(RFC 7905)
DTLS 1.2:ECDHE 与 PSK
  • TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256(RFC 5489)
  • TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256(RFC 7905)

排除的功能

  • DTLS 1.0
  • 重新协商
  • 压缩

Pion DTLS

该库默认启用 DTLS 1.2 和 DTLS 1.3,并优先使用 DTLS 1.3。 使用 WithMaxVersion(protocol.Version1_2) 将连接限制为 DTLS 1.2, 或使用 WithMinVersion(protocol.Version1_3) 要求使用 DTLS 1.3。

对于监听 127.0.0.1:4444 的 DTLS 服务器

go run examples/listen/selfsign/main.go

对于连接到 127.0.0.1:4444 的 DTLS 客户端

go run examples/dial/selfsign/main.go

OpenSSL

Pion DTLS 可以连接到自身以及 OpenSSL。

  // Generate a certificate
  openssl ecparam -out key.pem -name prime256v1 -genkey
  openssl req -new -sha256 -key key.pem -out server.csr
  openssl x509 -req -sha256 -days 365 -in server.csr -signkey key.pem -out cert.pem

  // Use with examples/dial/selfsign/main.go
  openssl s_server -dtls1_2 -cert cert.pem -key key.pem -accept 4444

  // Use with examples/listen/selfsign/main.go
  openssl s_client -dtls1_2 -connect 127.0.0.1:4444 -debug -cert cert.pem -key key.pem

DTLS 1.3 会话恢复与早期数据

DTLS 1.3 支持带可选 0-RTT 早期数据的会话票据恢复。 恢复仅允许使用 psk_dhe_ke(带临时 ECDHE 的 PSK)。

恢复示例 演示了证书认证的 首次连接、加密的会话存储,以及后续带恢复和可选早期数据的连接。 有关运行说明以及会话存储对 0-RTT 的单次使用 Claim 要求,请参阅其 README。

State/Resume API 还支持在无需新握手的情况下恢复已建立的 DTLS 1.3 连接。请参阅 Resume。

与 PSK 配合使用

DTLS 1.3 支持使用 SHA-256 或 SHA-384 的外部 PSK,包括 psk_ke(仅 PSK)和 psk_dhe_ke (带临时 ECDHE 的 PSK)。客户端可在每次握手中提供多个 PSK 身份,供服务器选择。

PSK 示例默认使用 DTLS 1.3,并采用 TLS_AES_128_GCM_SHA256。

Pion DTLS

go run examples/listen/psk/main.go
go run examples/dial/psk/main.go

要将 DTLS 1.2 与 TLS_PSK_WITH_AES_128_CCM_8 配合使用,请向两者都传入 -dtls12:

go run examples/listen/psk/main.go -dtls12
go run examples/dial/psk/main.go -dtls12

OpenSSL

使用这些 OpenSSL DTLS 1.2 命令时,请以 -dtls12 参数运行 Pion 示例。

  // Use with examples/dial/psk/main.go -dtls12
  openssl s_server -dtls1_2 -accept 4444 -nocert -psk abc123 -cipher PSK-AES128-CCM8

  // Use with examples/listen/psk/main.go -dtls12
  openssl s_client -dtls1_2 -connect 127.0.0.1:4444 -psk abc123 -cipher PSK-AES128-CCM8

社区

Pion 在 Discord 上拥有活跃的社区。

关注 Pion Bluesky 或 Pion Twitter 以获取项目更新和重要的 WebRTC 新闻。

我们始终乐于支持你的项目。如果你有想要构建的东西,请联系我们! 如果你需要商业支持,或不想使用公开渠道,可以通过 [email protected] 联系我们。

贡献

查看贡献 wiki,加入让这个项目成为可能的优秀人群。

资助

NLnet foundation logo NLnet foundation logo

下载工具