借助mbedTLS了解DTLS握手协议
本文旨在通过mbedTLS协议栈的实践操作,解析DTLS的握手过程。DTLS是在UDP层面上为TLS提供安全防护的协议,特别适合资源受限的嵌入式环境,如CoAP在物联网和云端通讯中的应用。
在mbedTLS这个开源且轻量级的ip登记源码SSL/TLS库中,我们利用其自带的dtls_client/dtls_server测试程序来观察握手过程。这个程序虽然在localhost上运行,但可以作为理解DTLS握手的基础。它使用了ECDHE_RSA_WITH_AES__GCM_SHA的加密套件,握手过程与RSA密钥交换有所不同,如多了Server Key Exchange报文。刷pv平台源码
为了深入分析,我们需要在源代码中开启调试信息,如在dtls_client.c和dtls_server.c中设置DEBUG_LEVEL,记录时间戳。然后,通过Wireshark抓包工具分析网络交互,结合调试信息理解握手报文的发送和接收。
DTLS握手流程包括客户端发送Client Hello,可能包含Hello Verify Request(首次连接时有,后续使用Cookie验证),然后是饭店送餐源码服务器回应Server Hello,接着是证书交换、服务器公钥交换、Change Cipher Spec和Finished等报文的交互。验证阶段很重要,如使用Cookie来防止DoS攻击,确保服务器与合法客户端建立连接。
握手结束后,双方利用协商的会话密钥对应用数据进行加密,每个数据包都包含序列号以保证数据顺序。通过mbedTLS的实例,我们可以直观理解DTLS握手协议的在线生成链接源码工作原理。
总结,虽然之前对SSL/TLS有所了解,但实际应用时仍需深入研究,例如mbedTLS的代码。通过实践和记录,我们可以更好地应对相关问题,为后续学习和工作提供参考。
开源ESP Quad-Terminal四足机器人操控终端
ESP四足机器人低成本操控终端开源项目,以Arduino平台为基础,专为仿生机器人设计。其核心功能包括:利用Wi-Fi UDP通信技术,淘宝导航源码下载实现与机器人的双向数据传输,配置文件支持SD卡存储和在线修改。
实时显示机器人关节反馈数据,以及波形绘制功能,便于监测和分析机器人的运行状态。
集成按键控制,支持电机标定和状态标定,便于远程操作和调整。
通过按键实现简单遥控,用户可以直观地控制机器人的行动。
安装教程推荐使用Arduino 2.0 IDE或Vscode,需从Seeed Github下载以下库:Seeed_Arduino_FS, Seeed_Arduino_LIS3DHTR, Seeed_Arduino_mbedtls-dev, Seeed_Arduino_rpcUnified, Seeed_Arduino_rpcWiFi, Seeed_Arduino_SFUD。 该项目支持Wio Terminal主板,但也可移植到其他ESP平台。Wio Terminal需更新至Wi-Fi固件,并参考相关wiki文档进行操作,如getiot.tech/wifi相关内容。 针对遥控精度和供电问题,底板在年8月进行了升级,采用Wio外扩排针串口1与IO板通信,并扩展了电池和按键功能,兼容USB通讯与充电。 使用操作指南如下:首次开机后,可从sd_card目录复制文件至G TF卡,或直接修改代码固定连接Wi-Fi。Wio作为客户端,与机器人主控制器进行通信。主界面分为RC和WIN模式,通过按键切换,RC模式用于摇杆控制,WIN模式则通过摇杆选择功能按键。 源代码中的WiFiUDPClient文件是核心控制部分,开发者可以根据需求进行定制和扩展。这款低成本操控终端为四足机器人操控提供了一个灵活且易于使用的平台。metaRTC5.0新版本支持mbedtls(PolarSSL)
mbed TLS(PolarSSL)是TLS和SSL协议的实现,特别适合小型嵌入式设备,性能优越于openssl。metaRTC5.0版本新增支持openssl与mbed TLS。此版本对mbedtls2.0与3.0版本具有兼容性。
下载mbedtls源码并进行编译,需对mbedtls/mbedtls_config.h(mbedtls3.0)与mbedtls/config.h(mbedtls2.0)中的参数进行修改,去掉#define MBEDTLS_SSL_DTLS_SRTP的注释以激活其功能。
使用CMake文件(CMakeLists.txt)进行编译配置,将ON设置在cmake文件中以支持mbedtls,或者通过编译参数实现支持。
创建build目录并切换至该目录,执行cmake ..命令进行预编译,然后使用make命令进行编译。
对于metaRTC的编译,需调整yang_config.h中的配置,将Yang_Using_Openssl设为1以使用openssl,或设为0使用mbedtls。在qt demo工程中,需注释openssl相关部分,取消mbedtls部分的注释。在cmake工程中,需设置mbedtls静态库的链接。
2024-11-20 16:20
2024-11-20 16:06
2024-11-20 15:53
2024-11-20 15:50
2024-11-20 15:46