避免碎片化的ClientHellos with OpenSSL (DTLS)
Avoiding fragmented ClientHellos with OpenSSL (DTLS)
我一直在尝试使用 OpenSSL 编写 DTLS 服务器/客户端,但我遇到了这个问题,DTLSv1_listen
失败,因为ClientHello
消息是碎片化的(我读到这是因为DTLSv1_listen
必须保持无状态以防止 DDoS 攻击(。
如何避免碎片化的ClientHello
?
请注意: 碎片化的ClientHello
似乎只发生在Mac上。当我在 ubuntu 上运行我的代码时,它可以正常工作,但由于ClientHello
碎片化,我的 mac 构建崩溃了。
更新:事实证明,除了分段的ClientHello
之外,由于某种原因,poll
的超时时间为0ms。修复后,我再次尝试。
在客户端,有一个
error:14102410:SSL routines:dtls1_read_bytes:sslv3 alert handshake failure
在服务器端(碎片客户端你好仍然在那里(:
error:1415E191:SSL routines:DTLSv1_listen:fragmented client hello
error:14209134:SSL routines:tls_early_post_process_client_hello:cookie mismatch
我是一个线鲨菜鸟,但我做了这个捕获(希望有帮助(: https://drive.google.com/file/d/1mieHlZa8zG7Yvd8M615X6AIpdOet8uXv/view?usp=sharing
在许多情况下,openssl附带了许多密码套件和其他算法,这些算法被放入HELLO_CLIENT中。如果这对于您的消息大小来说太大了,请尝试将 openssl 配置为使用密码套件的子集(也许您知道服务器支持的内容(。在许多情况下,这有助于将CLIENT_HELLO放入一条消息中。
相关文章:
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 如何在openssl-ecc中获取十六进制格式的私钥
- LINK 尝试使用 OpenSSL evp aes 256 c++ 时出错
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- OpenSSL TLS服务器-使用客户端证书白名单
- 通过 Openssl 命令行加密,通过 c++ 解密
- 使用已使用 java 编码的 openssl 解码数据
- OpenSSL没有共享密码
- OpenSSL 解密功能无法正常工作
- OpenSSL BIO and SSL_read
- 如何在OpenSSL库的名称中添加后缀'd'?
- 避免碎片化的ClientHellos with OpenSSL (DTLS)
- Boost.Asio/OpenSSL HTTPS GET certificate trouble
- 使用 OpenSSL 从内存中读取原始 SSL/TLS 证书
- 验证openssl c++中的签名,这是由JAVA DSA签名的?
- OpenSSL: EC_POINT_set_compressed_coordinates_GFp segfault
- 在 C/C++ 中加载 OpenSSL 自定义引擎
- 我的应用程序无法在安卓上使用OpenSSL进行链接
- WebRTC DTLS-SRTP OpenSSL服务器握手失败
- 使用OpenSSL的SCTP上的DTLS