(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210701527.1
(22)申请日 2022.06.20
(71)申请人 河海大学
地址 211100 江苏省南京市江宁区佛城西
路8号
申请人 南京安芯物联科技有限公司
(72)发明人 傅晓 徐海 叶枫 潘昊
(74)专利代理 机构 南京经纬专利商标代理有限
公司 32200
专利代理师 周科技
(51)Int.Cl.
H04L 9/08(2006.01)
H04L 9/32(2006.01)
H04L 9/06(2006.01)
H04L 9/40(2022.01)H04L 12/40(2006.01)
(54)发明名称
一种用于现场总线的防重放攻击装置及方
法
(57)摘要
本发明公开了一种用于现场总线的防重放
攻击装置及方法, 通过在现场总线与自动化控制
设备之间部署桥接的防重放攻击装置, 实现重放
攻击报文的识别与防御。 在防重放攻击装置中,
通过设置碰撞队列, 实现真随机数、 散列数据、 时
间戳等特征值的检测, 有效预防未经授权的非法
设备在现场总线信道上实施重放攻击, 对于中间
人等类型的攻击具有较高的抵抗能力, 降低在因
现场总线信道受到侵入而产生的安全风险。 所述
防重放攻击装置能够无缝接入目前现有工业控
制系统的现场总线, 具有较高的设备兼容性和通
用性。
权利要求书3页 说明书6页 附图4页
CN 115296791 A
2022.11.04
CN 115296791 A
1.一种用于现场总 线的防重放攻击装置, 其特征在于: 该装置由两个串口通信模块、 加
密模块、 碰撞队列存储模块、 供电模块组成; 两个串口通信模块分别连接自动化控制设备和
现场总线的网络物理接口; 两个串口通信模块分别通过高速串行数据总线接口与加密 模块
连接; 加密模块为一个单片 机系统SoC, 通过其数据总线与地址总线接口连接碰撞队列存储
模块, 通过其电源线接口连接供电模块。
2.根据权利要求1所述的用于现场总 线的防重放攻击装置, 其特征在于: 所述串口通信
模块使用的网络物理接口包括符合RS485/232标准的电气接口, 串口通信模块使用的高速
串行数据总线接口包括符合UART、 I2C、 SPI标准的总线接口; 所述碰撞队列存储模块的数据
总线与地址总线接口包括符合eM MC、 UFS标准的扩展总线接口。
3.根据权利要求1所述的用于现场总 线的防重放攻击装置, 其特征在于: 所述加密模块
通过内置寄存器的软件代码或算术逻辑单元硬件设备实现真随机数生成算法、 散列算法、
对称加密算法; 其中, 真随机数生成算法为通过符合FIPS 140‑2标准的真随机数产生器
TRNG硬件实现, 散列算法包括SM 3、 MD5、 SHA ‑1算法, 对称加密算法包括SM1、 RC4、 AES算法。
4.根据权利要求1 ‑3任一所述的防重放攻击装置实现的一种用于现场总 线的防重放攻
击方法, 其特 征在于: 该 方法包括以下步骤:
S1, 在连接至现场总线的每一台自动化控制设备与现场总线的网络物理接口之间, 分
别桥接一台防重放 攻击装置;
S2, 防重放攻击装置的供电模块开始工作后, 防重放攻击装置启动, 对防重放攻击装置
的碰撞队列存储模块执行初始化; 若初始化过程完成, 进入步骤S3; 若初始化过程终止, 不
执行后继操作;
S3, 对防重放 攻击装置的碰撞队列存 储模块初始化完成后, 开始执 行监听过程;
S4, 防重放攻击装置开始执行监听过程之后, 当且仅当供电模块停止供电时, 监听过程
终止; 否则, 始终执行监听过程; 供电模块停止供电后, 当且仅当再次进 行供电时, 防重放攻
击装置重新执行步骤S2所述初始化过程, 以及步骤S3所述 监听过程。
5.根据权利要求4所述的用于现场总 线的防重放攻击方法, 其特征在于: 步骤S2所述初
始化过程如下:
(2‑1)查找碰撞队列存储模块中, 所存储的碰撞队列长度是否为0, 队列长度阈值是否
等于默认值; 若碰撞队列长度为0, 且队列长度阈值等于默认值, 初始化过程完成; 否则, 进
入步骤(2 ‑2);
(2‑2)若碰撞队列长度不为0, 删除碰撞队列中所有已存在的元素, 并将碰撞队列长度
设为0, 将队列长度阈值设为默认 值, 初始化过程完成; 其中, 队列长度阈值默认值为用户预
设的值。
6.根据权利要求4所述的用于现场总 线的防重放攻击方法, 其特征在于: 步骤S3所述监
听过程包括两 部分:
其一, 在连接现场总 线端的串口通信模块上对于所有传入防重放攻击装置的串口通信
应用数据单 元ADU进行监听;
其二, 在连接设备端的串口通信模块上对于所有传入防重放攻击装置的串口通信 应用
数据单元ADU进行监听。
7.根据权利要求6所述的用于现场总 线的防重放攻击方法, 其特征在于: 在连接现场总权 利 要 求 书 1/3 页
2
CN 115296791 A
2线端的串口通信模块上对于所有传 入防重放攻击装置的串口通信应用数据单元ADU进行监
听; 步骤如下:
(3‑1‑1)防重放攻击装置连接现场总线端的串口通信模块收到传入的串口通信应用数
据单元ADU时, 向加密模块发送中断请求; 加密模块响应中断, 进入中 断处理过程; 使用应用
数据单元ADU首部的真随机数RNG作为密钥, 通过加密模块中内置的对称加密算法, 解密该
单元中除RNG以外剩余部 分的封装 数据载荷密 文EC, 获得封装 数据载荷EP; 封装 数据载荷EP
由数据明文P D、 散列数据DH、 时间戳STP组成;
(3‑1‑2)使用散列数据DH, 对于数据明文PD进行校验, 校验算法使用加密模块中内部预
置的散列算法;
(3‑1‑3)若校验失败, 加密模块 中断返回, 对于应用数据单元ADU不进行响应; 若校验成
功, 在碰撞队列存储模块中分别对真随机数RNG、 散列数据DH、 时间戳STP 的值进行碰撞检
测;
(3‑1‑4)若真随机数RNG、 散列数据DH、 时间戳STP中, 有任一值与碰撞队列中已存在的
对象发生碰撞, 说明可能发生重放攻击, 加密模块中断返回, 将 应用数据单元ADU舍弃, 不进
行响应; 若未发生碰撞, 将真随机数RNG、 散列数据DH、 时间戳STP作为一个三元组(RNG, DH,
STP), 并检查碰撞队列长度是否小于或等于队列长度阈值;
(3‑1‑5)若碰撞队列长度小于队列长度阈值, 将三元组(RNG, DH, STP)加入碰撞队列尾
部; 若碰撞队列长度等于队列长度阈值, 将碰撞队列首部对象移出队列后, 将三元组(RNG,
DH, STP)加入碰撞队列尾部;
(3‑1‑6)将数据明文P D通过设备端的串口通信模块进行发送。
8.根据权利要求6所述的用于现场总 线的防重放攻击方法, 其特征在于: 在连接设备端
的串口通信模块上对于所有传入防重放攻击装置的串口通信应用数据单元ADU进行监听;
步骤如下:
(3‑2‑1)防重放攻击装置连接设备端的串口通信 模块收到传入的串口通信应用数据单
元ADU时, 向加密模块发送中断请求; 加密模块响应中断, 进入中断处理过程; 通过加密 模块
中内置的真随机数生成算法, 生成真随机数RNG;
(3‑2‑2)将应用数据单元ADU作为数据明文PD, 通过加密模块中内置的散列算法, 计算
数据明文P D的校验码, 作为散列数据DH;
(3‑2‑3)根据防重放 攻击装置加密模块的当前时间, 生成时间戳STP;
(3‑2‑4)在碰撞队列存储模块中对真随机数RNG、 散列数据DH、 时间戳STP进行碰撞检
测;
(3‑2‑5)若真随机数RNG、 散列数据DH、 时间戳STP中, 有任一值与碰撞队列中已存在的
对象发生碰撞, 说明可能发生重放攻击, 加密模块中断返回, 将 应用数据单元ADU舍弃, 不进
行响应; 若未发生碰撞, 将真随机数RNG、 散列数据DH、 时间戳STP作为一个三元组(RNG, DH,
STP), 并检查碰撞队列长度是否小于或等于队列长度阈值;
(3‑2‑6)若碰撞队列长度小于队列长度阈值, 将三元组(RNG, DH, STP)加入碰撞队列尾
部; 若碰撞队列长度等于队列长度阈值, 将碰撞队列首部对象移出队列后, 将三元组(RNG,
DH, STP)加入碰撞队列尾部;
(3‑2‑7)将据明文PD、 散列数据DH、 时间戳STP组成封装数据载荷EP, 使用真随机数RNG权 利 要 求 书 2/3 页
3
CN 115296791 A
3
专利 一种用于现场总线的防重放攻击装置及方法
文档预览
中文文档
14 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共14页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 08:16:49上传分享