【技术实现步骤摘要】
一种基于国密算法的时间敏感网络安全通信方法
[0001]本专利技术属于通信
,涉及一种基于国密算法的时间敏感网络安全通信方法。
技术介绍
[0002]TSN在优化工业网络通信性能的同时,安全性也成为了制约时间敏感网络通信应用普及的关键问题,TSN标准作为一套不断发展并走向成熟的工业网络协议,亟需建立一套自主可控的安全机制,从根本上保障工业通信过程中的安全问题。
[0003]目前关于时间敏感网络安全的研究主要在着眼于TSN关键协议的配置与调度等问题,并未在安全领域有过多的深入。同时由于安全功能实现的复杂性,时间敏感网标准中并未指定具体的安全方案或密码技术来保障时间敏感网络安全通信,所以需要一套适合时间敏感网络的安全体系架构,针对时间敏感网络的身份认证、密钥管理以及安全数据流传输,并利用相关的加密算法和哈希算法,实现端到端的安全数据传输,并在数据加密校验过程中定义密钥管理机制,完成密钥的分发和更新,以此来保障时间敏感网络的安全通信。
[0004]密码算法是保障信息安全的核心技术,在保障工业网络安全数据传输的过程中起着关键性作用。国家密码管理局公布了多种国密算法,分别适用于不同的应用场景,其中SM2公钥密码算法可以用来进行数字签名及安全认证,SM3杂凑算法可以用来验证消息认证码与随机数的生成,SM4分组密码算法可以用来实现数据的加密/解密,以保证数据的机密性。将国密算法SM2与SM3相结合,既可以有效地进行身份认证与密钥协商,同时拥有较高的安全性;将国密算法SM3与SM4相结合,既可以进行消息认证码的 ...
【技术保护点】
【技术特征摘要】
1.一种基于国密算法的时间敏感网络安全通信方法,其特征在于:该方法包括以下步骤:S1:时间敏感网络初始化;时间敏感网络部署一个由时间敏感网络流量发生器及多台TSN交换机通过有线连接组成的时间敏感有线网络;同时配置一个时间敏感网络CNC,CNC会加载设备状态控制单元所需参数;首先TSN交换机需要利用LLDP协议获取相邻设备的拓扑相关的信息,这些信息会以LLDP报文的形式保存在一个管理信息库MIB中,然后TSN CNC通过SNMP协议获取存储在MIB中的拓扑相关信息,包括各个TSN交换机的对象标识符OID信息,包括设备系统名和设备IP地址;将这些OID信息作为TSN交换机的身份标识ID
i
,1≤i≤n为接入网络的所有TSN交换机总和;SNMPv3定义新的报文格式,报文格式包括IP首部、UDP首部、版本、报头数据、安全参数、Context Engine ID、Context name和SNMP PDU;SNMP报文中的字段定义如下:版本:表示SNMP的版本,SNMPv3报文则对应字段值为2;报头数据:包含消息发送者所能支持的最大消息尺寸、消息采用的安全模式的描述内容;安全参数:包含SNMP实体引擎的相关信息、用户名、认证参数和加密参数的安全信息;Context EngineID:SNMP唯一标识符,和PDU类型一起决定应该发往哪个应用程序;Context Name:用于确定Context EngineID对被管理设备的MIB视图;SNMPv3 PDU:包含PDU类型、请求标识符和变量绑定列表;其中SNMPv3 PDU包括GetRequest PDU、GetNextRequest PDU、SetRequest PDU、Response PDU、Trap PDU、GetBulkRequest*PDU和InformRequest PDU;标识不同PDU的命令名称、对应的编码及功能为:GetRequest编码为0,功能为:管理站至代理,查询指定变量的值;GetNextRequest编码为1,功能为:管理站至代理,查询下一变量的值;Response编码为2,功能为:代理至管理站,回送执行结果;SetRequest编码为3,功能为:管理站至代理,设置代理维护的某个变量的值;GetBulkRequest编码为4,功能为:管理站至代理,传递批量信息;InformRequest编码为5,功能为:管理站至管理站,传递参数处理请求;Trap编码为6,功能为:代理至管理站的警告消息;Report编码为7,功能为:Snmpv2未定义;snmpv3定义为在消息的PDU部分不能解密时,发起报告;报头包括:msgID:消息标识符,用来标识PDU;取值范围是0~2
31
‑
1;msgMaxSize:表示消息发送器支持的最大消息尺寸,取值范围是484~2
31
‑
1;msgFlags:包含若干标志的8位位组字符串,有3个特征位:reportableFlag、privFlag、authFlag;msgSecurityModel:消息安全模型,用于标识发送方用于生成该消息的安全模型,发送方和接收方必须采用相同的安全模型;
msgSecurityParamters:安全参数,由发送方的安全子系统生成的安全参数,用户名、消息鉴别码MAC、加密参数,用于保护消息传输的安全,并由接收方安全子系统来对消息进行解密和鉴别等安全处理;contextEngineID:唯一识别SNMP实体的标识符;对于流入消息,该字段用于确定将PDU递交给哪个应用进行处理;对于流出消息,该值由上层应用提供,并代表那个应用程序;contextName:携带的管理对象所在的上下文的名称;PDU:带有对象绑定列表的PDU;其中最后三个字段contextEngineID、contextName和PDU合起来称为scoped PDU;管理端与代理端进行数据交互时需要调用的函数名及其作用为:函数名为snmp_pdu_create,用于创建SNMP报文;函数名为snmp_add_var,用于填充SNMP报文;函数名为snmp_send,用于发送SNMP报文;函数名为snmp_synch_response,用于接收并读取SNMP报文;函数名为snmp_close,用于关闭会话并释放PDU占用的空间;S2:身份认证;S21:TSN CNC向TSN交换机发送get
‑
request数据包获取MIB信息,解析MIB中的OID信息,利用SM2公钥算法生成公私钥对(KeyD,KeyB),并发送给TSN交换机;S22:TSN交换机端调用snmp_pdu_create函数创建SNMP报文,通过随机数生成器生成随机数N
i
,使用认证公钥Key
D
通过SM2加密认证算法对身份标识ID
i
以及随机数N
i
进行加密,生成身份认证信息C
i
=SM2
KeyD
(ID
i
||N
i
),调用snmp_add_var函数向PDU中填充加密后的身份认证信息;S23:使用认证公钥Key
D
通过SM3杂凑算法对身份标识ID
i
与随机数N
i
进行处理,生成一个消息认证码TAG=SM3
KeyD
(ID
i
||N
i
),调用snmp_add_var函数将生成的消息认证码插入到msgAuthen...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。