【密码学实战】基于SCTP的DTLS协议实验
【免费下载链接】openHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
项目地址:https://gitcode.com/openHiTLS/openhitls
1. 实验目的
通过调用 openHiTLS 功能,实施了对基于 SCTP 的 DTLS 协议的通信测试,以验证其安全通信功能的有效性。
2. 实验相关知识
openHiTLS 是一款高度安全的全面自研密码套件,旨在打造极全特性、极致性能、极高信任的技术领先的密码套件,通过轻量级、可剪裁的软件技术架构,满足各行业不同场景的多样化要求,让应用安全更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座。
3. 实验环境
系统环境:
安装了 sctp 依赖的 Ubuntu 20.04
密码库:
openHiTLS
环境准备
1)部署安装 openHiTLS,准备源码
sh
git clone --recurse-submodules https://gitcode.com/openhitls/openhitls.git
2)安装依赖,配置编译选项
sh
# 由于DTLS特性依赖sctp,默认sctp是关闭,如需开启,需要提前预装sctp依赖。
sudo apt install libsctp-dev # Ubuntu
cd openHiTLS
mkdir -p ./build
cd ./build
python3 ../configure.py --add_options="-O0 -g" --enable-sctp --enable uio_sctp # 默认情况下sctp选项关闭,需要在配置项中开启
cmake ..
make -j
3)构建结果安装
make install
4. 实验步骤
4.1 编译代码
1)将附件dtls.zip解压到 dtls 目录下
2)cd dtls 进入目录
3)修改代码中的宏定义 CERTS_PATH 为证书路径
4)编译服务端和客户端测试代码
sh
gcc -I<openHiTLS头文件安装路径>/crypto -I<openHiTLS头文件安装路径>/bsl -I<openHiTLS头文件安装路径>/tls -I/path/to/openhitls-dev/platform/Secure_C/include dtlss.c -g -o dtlss -pthread -lhitls_tls -lhitls_x509 -lhitls_crypto -lhitls_bsl -lboundscheck -lsctp -L<openHiTLS动态库安装路径>
gcc -I<openHiTLS头文件安装路径>/crypto -I<openHiTLS头文件安装路径>/bsl -I<openHiTLS头文件安装路径>/tls -I/path/to/openhitls-dev/platform/Secure_C/include dtlsc.c -g -o dtlsc -pthread -lhitls_tls -lhitls_x509 -lhitls_crypto -lhitls_bsl -lboundscheck -lsctp -L<openHiTLS动态库安装路径>
4.2 执行服务端及客户端程序
当服务端开始监听、命令行程序进入阻塞状态后,运行客户端程序,应看到如图所示的输出。
4.3 查看 DTLS 数据包
若在服务端与客户端进行通信的过程中抓包并对 SCTP 协议进行过滤,应能捕获到如图所示的数据包流量。
4.4 查看代码
vim dtlss.c
vim dtlsc.c
5. 实验结果分析与思考
通过调用 openHiTLS 功能,实施了对基于 SCTP 的 DTLS 协议的通信测试,验证了其安全通信功能的有效性。