【密码学实战】基于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 执行服务端及客户端程序

当服务端开始监听、命令行程序进入阻塞状态后,运行客户端程序,应看到如图所示的输出。

image

4.3 查看 DTLS 数据包

若在服务端与客户端进行通信的过程中抓包并对 SCTP 协议进行过滤,应能捕获到如图所示的数据包流量。

image

4.4 查看代码

vim dtlss.c

image

vim dtlsc.c

image

5. 实验结果分析与思考

通过调用 openHiTLS 功能,实施了对基于 SCTP 的 DTLS 协议的通信测试,验证了其安全通信功能的有效性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值