工业物联网芯片的安全功能实现方法

文档序号:7816460阅读:299来源:国知局
工业物联网芯片的安全功能实现方法
【专利摘要】本发明公开了一种工业物联网芯片利用硬件实现安全处理功能的方法,本发明基于IEEE802.15.4、WIA-PA网络和ISA100.11a网络中的安全处理共性技术,在MAC层、数据链路层以及更高层通过硬件技术实现AES-CCM*模式下安全处理功能;在此基础上,本发明提出在WIA-PA和ISA100.11a模式下的数据安全预处理并在期望的未来时间将数据发送出去的安全处理机制、ISA100.11a模式下全自动安全处理模式及硬件构造Nonce方法、硬件全自动和半自动回复确认帧的方法。该发明中的方法在实现过程中配置简单、易操作,可提高工业无线网络中安全处理效率,增强可靠性,减少安全处理对时间同步的影响,同时减轻软件负担。
【专利说明】工业物联网芯片的安全功能实现方法

【技术领域】
[0001]本发明属于工业无线通信【技术领域】,具体涉及工业物联网芯片安全预处理,数据链路层数据加密、完整性校验技术的硬件实现方法。

【背景技术】
[0002]近些年,工业物联网作为无线通信技术的一个分支取得了突飞猛进的发展。工业无线传感网络技术是一种面向设备间短程、低速率信息交互的无线通信技术,其网络具有低功耗、安装维护成本低等特点,已成为工业自动化领域的又一发展趋势。在工业环境下建立高可靠性,高实时性,高安全性的无线传感网络成为人们迫切的需求。
[0003]工业无线网络对时间同步的精度要求很高。ISA100.1la利用广告帧和确认帧携带时间?目息完成时间同步,WIA-PA利用彳目标巾贞和时间同步命令巾贞完成时间同步。这些巾贞需要进行加密、完整性校验等安全处理,以保证网络安全。上述帧携带的时间信息需是射频芯片发送时刻的准确时间,以便接收方收到后进行精确时间同步,若在添加时间后再对这些帧进行安全处理,射频芯片的发送时间和携带的同步时间即会出现较大偏差,影响时间同步。
[0004]工业无线网络对确定性要求很高,对全网的资源进行了调度,设备需在确定的时隙(一般为1ms)发送数据给确定的对象,设备的安全处理能力和速度将极大的影响确定性的实现。
[0005]传统的安全处理是采用软件方式来实现的,代码移植性较差,并不能适应任何应用场景;采用利用软件方式实现安全处理速度比较慢,不能严格满足时间精度要求,保证时间同步;复杂的算法还会加大软件的负担,增加网络开销及后期维护成本。
[0006]现阶段,大部分的无线传感网芯片是基于ΙΕΕΕ802.15.4协议,用硬件只能实现MAC层点到点的安全,而ISA100.1la和WIA-PA均支持在数据链路层的安全,无法用硬件实现数据链路层安全处理功能。
[0007]本发明针对上述问题,提出了一种利用芯片的硬件进行安全处理的方法。不仅能够满足ΙΕΕΕ802.15.4下MAC层的安全,而且安全预处理功能和硬件实现数据链路层安全的方法,保证了 WIA-PA协议和ISA100.1la协议下数据链路层的安全。本发明能够针对不同的应用环境,为工业无线网络中的数据提供高效、可靠的保密性和完整性服务,在满足时间同步精度要求的前提下实现信息的安全传输。


【发明内容】

[0008]针对以上现有技术中的不足,本发明的目的在于提供一种基于硬件的能够满足工业无线网络应用需求的安全处理方法。本发明的技术方案如下:
[0009]一种工业物联网芯片的安全功能实现方法,其包括以下步骤:
[0010]101、用户配置物联网芯片的协议选取PR0T0CAL寄存器,选择ffiEE802.15.4、WIA-PA.1SA100.1Ia三种模式中的一种模式,当选择IEEE802.15.4模式时跳转至步骤102 ;当选择WIA-PA模式时,跳转至步骤104 ;当选择ISA100.1la模式时跳转至步骤106 ;
[0011]102、当步骤101中选择IEEE802.15.4模式时,发送方配置寄存器SECCRO所需要的安全等级,然后配置待发送帧的MAC头的长度和帧的长度;构造待发送的帧,存储在Tx-Buff发送缓存器中等待安全处理;所述物联网芯片读取RF_N0RMAL_KEY密钥存储寄存器中的密钥信息和UPN0NCE O随机数存储寄存器中的Nonce值;由芯片安全引擎在TX-FIFO中自动实现数据的加密、完整性校验;配置TXNTRIG发送寄存器,直接发送安全处理后的数据;接收方进入安全中断,跳转至步骤103 ;
[0012]103、接收方读取寄存器RF_RX_FLEN中接收报文的长度,并解析包头信息,添加安全辅助头;然后根据安全辅助头的信息,读取芯片寄存器RF_RX_KEY中的密钥信息和寄存器UPN0NCE0中的Nonce值;接收方通过安全引擎重新生成完整性校验码MIC ’,与发送方的MIC码做比较,如果MIC丨=MIC,则校验通过;否则,校验失败;MIC码校验后,接收方进行CRC校验,如果校验成功,进入接收中断,否则直接丢弃报文。进入接收中断后,芯片通知上层接收成功还是失败,完成择IEEE802.15.4模式下的安全处理,结束;
[0013]104、当步骤101中选择WIA-PA模式时,发送方实现时间同步后,计算出数据期望发送的时刻并存储到寄存器TXTAIR2中;配置寄存器SECCR2,选择在上层FIFO中完成加密、完整性校验;配置寄存器SECCR0,选择需要的安全等级;配置要发送帧的MAC头的长度和帧的长度;芯片读取寄存器RF_N0RMAL_KEY中的密钥信息和寄存器UPN0NCE0里的Nonce值;由芯片安全引擎实现加密、完整性校验,并将结果存储到TX-FIFO中;配置调度表,等待数据发送时刻的到来;芯片时钟到达寄存器TXTAIR2存放的未来时间启动发送引擎自动将TX-FIFO密文发送;更新FIFO中的数据和寄存器TXTAIR2的TAI时间,跳转至步骤105 ;
[0014]105、接收方进入安全中断,读取寄存器RF_RX_FLEN中接收报文的长度;解析包头信息,添加安全辅助头;根据安全辅助头的信息,读取芯片读取寄存器RF_RX_KEY中的密钥信息和寄存器UPN0NCE0中的Nonce值;接收方在RX-FIFO中通过芯片安全引擎重新生成的完整性校验码MIC,与发送方的MIC码做比较,如果MIC =MIC,则校验通过,否则,校验失败;MIC码校验后,接收方进行CRC校验,如果校验成功,进入接收中断;否则直接丢弃报文。进入接收中断后,判断是否需要回复确认帧,如果需要,则在同一个时隙中回复确认帧,如果不需要,接收方安全处理完成,完成WIA-PA模式下的安全处理,结束;
[0015]106、当步骤101中选择ISA100.1la模式时,发送方有两种安全处理机制。一种是使用芯片的上层FIFO进行安全预处理,即芯片将安全处理过后的数据存储到TX-FIFO中,等待发送时隙的到来;一种是全自动安全处理模式,即在数据发送的瞬间,芯片自动对数据进行安全处理/,跳转至步骤107 ;
[0016]107、接收方的安全处理也有两种模式。一种是接收方进入安全中断后通过读取接收时隙的起始时间,用程序构造出接收方Nonce后开始解密、完整性校验;一种是接收方进入安全中断后,由芯片硬件自动捕获接收时刻的准确时间,利用硬件自动生成Nonce后开始解密、完整性校验;完成ISA100.1la模式的安全处理,结束。
[0017]进一步的,步骤106中选择ISA100.1la模式时,使用芯片的上层FIFO进行安全处理的发送步骤如下所述:发送方实现时间同步后,计算出数据要发送的未来时间并存储到寄存器TXTAIR2中,该未来时间为数据将要发送时隙的起始时间;配置寄存器SECCR2,选择在上层FIFO中完成加密、完整性校验;配置寄存器SECCR0,选择需要的安全等级;配置要发送帧的MAC头的长度和帧的长度;
[0018]芯片读取寄存器RF_RX_KEY中的密钥信息;利用程序构造Nonce,读取寄存器TXTAIR2存储的未来时间,通过程序转化为4字节的时间信息,读取发送方的8字节的EUI地址和信道与帧序列号共同构成的I字节信息,构成13字节的Nonce,存到寄存器UPN0NCE0里;由芯片安全引擎自动完成加密、完整性校验,并将密文存储到TX-FIFO中;配置调度表,等待发送时隙的到来;当芯片内部时钟运行到寄存器TXTAIR2存储的时间,启动发送引擎自动将FIFO里的数据发送出去;更新寄存器TXTAIR2中的时间信息。
[0019]本发明的优点及有益效果如下:
[0020]本发明提出了一种利用芯片的硬件进行安全处理的方法。通过配置需要安全处理的帧头和帧长度,选择安全等级后,硬件就可以自动实现AES-CCM*中的七种安全模式,不仅能够满足IEEE802.15.4下MAC层的安全,而且安全预处理功能和硬件实现数据链路层安全的方法,能够在不影响时间同步精度的前提下,保证WIA-PA协议和ISA100.1Ia协议下数据链路层的安全。本发明能够针对不同的应用环境,为工业无线网络中的数据提供高效、可靠的保密性和完整性服务,在满足时间同步精度要求的前提下实现信息的安全传输。

【专利附图】

【附图说明】
[0021]图1所示为本发明优选实施例WIA-PA模式下安全预处理时隙安排示意图;
[0022]图2ISA100.1la模式下安全预处理时隙安排示意图;
[0023]图3ISA100.1la模式下全自动安全处理时隙安排示意图;
[0024]图4为IEEE802.15.4模式下数据安全处理流程图;
[0025]图5为WIA-PA模式下进行安全处理的发送流程图;
[0026]图6为WIA-PA模式下进行安全处理的接收流程图;
[0027]图7为ISA100.1la模式下在上层FIFO中实现安全处理的发送端流程图;
[0028]图8为ISA100.1la模式下数据帧在发送时刻实现安全处理的发送流程图;
[0029]图9为ISA100.1la模式下接收端安全处理流程图;
[0030]图10为接收端自动和半自动回复确认帧安全处理流程图;
[0031]图11为发送端收到确认帧安全处理流程图。

【具体实施方式】
[0032]下面结合附图给出一个非限定的实施例对本发明作进一步的阐述。但是应该理解,这些描述只是示例的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
[0033]用户配置芯片的协议选取寄存器PR0T0CAL,选取IEEE802.15.4、WIA-PA,ISA100.1la中的一种模式。配置芯片寄存器SECCR0,选择所需要的安全等级,芯片安全引擎读取寄存器中的密钥和Nonce信息后自动实现AES-CCM*模式下数据的加密、解密、完整性校验。
[0034]1.1EEE802.15.4的安全处理硬件实现的方法
[0035]配置芯片PR0T0CAL寄存器,选择ffiEE 802.15.4模式。
[0036]在IEEE802.15.4模式下,发送方通过软件配置寄存器SECCR0,选择所需要的安全等级,读取密钥和Nonce信息后,用户通过软件写寄存器设置要发送帧的长度和该帧帧头的长度,芯片安全引擎就可以准确识别校验和加密校验这两种安全处理模式,自动实现AES-CCM*安全处理,并将结果放入发送缓存TX-FIFO中,发送方通过配置寄存器TXNTRIG将数据发送出去。
[0037]2.WIA-PA模式下的数据安全预处理机制
[0038]配置芯片PR0T0CAL寄存器,选择WIA-PA模式。
[0039]WIA-PA模式下,发送方通过发送信标帧和时间同步命令帧进行时间同步后,对于要发送的数据帧,利用芯片安全引擎对其进行安全预处理后,在未来确定的时间将其发送出去。按照WIA-PA网络管理者的调度要求,发送方路由Rl在时隙η内可将安全处理后的帧发送给节点NI,该帧需携带发送时刻Τ2的时间信息。
[0040]如图1所示,根据超帧调度的要求,发送方在当前国际原子时间(TAI)的Ttl时刻配置帧期望发送的准确时间T2,芯片安全引擎在T1时刻完成安全处理后将密文放入发送缓存器TX-FIFO中,在T2时刻到来时芯片启动发送引擎,自动将该帧发出,这样不会因为在发送时刻进行安全处理而影响时间同步。
[0041]3.1SA100.1la模式下的安全处理机制
[0042]在ISA100.1la模式下,本发明提出数据安全预处理并在期望的未来时间将数据发送出去的安全处理机制;同时提出全自动安全处理模式及硬件构造Nonce方法、全自动和半自动回复ACK帧的方法,用户可以根据实际需求切换不同的模式,增加了芯片应用的灵活性。
[0043]配置芯片PR0T0CAL寄存器,选择ISA100.1la模式。
[0044]Α.发送方:
[0045]发送方在数据链路层进行的安全处理需要用到Key、Nonce及明文等安全材料。
[0046]其中的Nonce的长度为13个字节,包括发送方的8个字节的ΕΠ地址、发送时刻的4个字节TAI时间信息和发送方选择的帧发送信道与帧序列号共同构成的I个字节信息。
[0047]其中,发送时刻的4个字节TAI时间信息可由两种方式获取:
[0048]一种方式是通过软件计算出来,芯片读取TXTAIR2寄存器中的6个字节当前时隙的起始时刻信息,该6个字节时间信息精确到2~ (-15)秒,然后通过一定的算法将其转化为所需要的4个字节TAI时间信息,即精确到2~ (-10)秒。如果选择软件构造Nonce,在缓存器中读取发送方寄存器中的8个字节ΕΠ地址和信道与帧序列号共同构成的I字节信息,同软件计算出来的4字节时间信息共同构成13字节的Nonce,用来对发送帧进行完整性校验。
[0049]另一种方式是通过硬件计算出来,芯片自动捕获发送时刻的6个字节TAI时间信息,通过芯片硬件逻辑门自动将其转化为所需要的4个字节TAI的时间信息。如果选择硬件构造Nonce,芯片的安全引擎自动捕获发送方的8个字节ΕΠ地址、信道与帧序列号共同构成的I个字节信息和4个字节当前发送时刻的准确TAI时间信息,将其组合成13个字节的Nonce,用来对发送帧进行完整性校验。由于芯片硬件自动捕获当前发送时刻的准确TAI时间,不仅减轻了软件的负担,而且计算出来的Nonce值更加准确,使安全处理变的更加简单、高效。
[0050]按照ISA100.1la网络管理者的调度要求,发送方的路由设备R1在时隙η内将用于时间同步的广告帧发给节点设备N1,该广告帧需要携带发送时刻T2的时间信息。
[0051]可利用下述2种方式对将要发送的广告帧进行安全处理:
[0052]I)芯片利用硬件实现安全预处理,将帧在未来确定的时间发送
[0053]如图2所示,根据超帧调度的要求,芯片发送方在当前的时间Ttl将时间信息T2装载在待发送的帧中,芯片安全引擎读取明文、密钥和Nonce等信息后在T1时刻对该帧进行安全处理,处理完成后,将密文放入发送缓存器TX-FIFO中,在T2时刻到来时芯片启动发送引擎,自动将该帧发送出去,这样不会因在发送时刻对帧进行安全处理而影响时间同步。
[0054]2)全自动安全处理模式
[0055]全自动安全处理模式是芯片在广告帧发送时刻到来时,通过安全引擎对其自动进行安全处理,在一个时隙内,由硬件完成自动构造Nonce、安全处理和发送等动作。
[0056]如图3所示,根据超帧调度的要求,芯片在发送缓存TX-FIFO中存储需要进行安全处理的明文,等待发送时隙η的到来。当时隙η到来时,在Ttl时刻硬件自动构造Nonce,并读取FIFO中的明文和寄存器RF_N0RMAL_KEY中的密钥,在T1时刻通过安全引擎对明文进行安全处理,处理完成后在T2将其发送出去。
[0057]在时间同步完成后,对将要发送的数据帧进行安全处理,其处理过程同广告帧的安全处理过程一样。
[0058]B.接收方:
[0059]在ISA100.1la模式下,接收方进入安全中断后,接收方在数据链路层进行安全处理。解密和校验处理需要的安全材料包括密钥Key、Nonce以及接收到的密文。通过密钥Key解密接收到的密文,得出明后后利用明文和Nonce,重新构造出接收方的校验码MIC丨,与发送方的校验码MIC做比较,如果MIC ’ = MIC,则校验通过,否则,校验失败。
[0060]其中接收方的Nonce是由发送方的8个字节的ΕΠ地址、接收方4个字节的时间信息和接收方选择的帧接收信道与接收到的帧序列号共同构成的I个字节信息构成。
[0061]在安全处理过程中,Nonce的构造过程可以分为软件构造和硬件构造两种方式,用户可以通过配置芯片寄存器SlotExtR3来选择其构造方式。
[0062]当发送方采用软件构造Nonce模式时,首先通过接收到的帧的2个字节短地址查找发送方8个字节ΕΠ长地址,然后读取寄存器存储的收到的帧所在时隙的起始时刻,通过一定的算法将6个字节的TAI时间转化为对应的4个字节的时间信息,最后读取由信道信息和帧序列号共同构成的I个字节信息,构造出13个字节的Nonce,在数据链路层实现解密、完整性校验。
[0063]当选择硬件构造Nonce模式时,芯片直接通过接收到的巾贞的2个字节短地址查找发送方8个字节ΕΠ长地址,芯片获取发送方的长地址后,安全引擎捕获接收时刻的准确TAI时间信息,自动生成13个字节的Nonce,在数据链路层实现解密、完整性校验。
[0064]C.确认帧的发送:
[0065]接收方接收数据帧后,回复的安全确认帧方式分为全自动和半自动两种模式。
[0066]半自动确认巾贞的Buffer由软件控制构造,当接收方进入安全中断后,芯片准备对确认巾贞进行安全处理的安全材料,包括接收方的Key、Nonce和确认巾贞载荷。其中Nonce可由上述的两种方式构造,确认帧载荷是利用接收到帧的4字节校验码MIC构成的虚拟载荷。构造完成后,启动芯片安全引擎,对确认帧进行完整性校验,生成4个字节的完整性校验码DMIC,添加到确认帧的后面放入ACK-FIFO等待发送。当接收中断到来时,启动发送引擎,将安全处理后的不包含虚拟载荷的确认帧自动发送出去。
[0067]全自动确认帧在构造和安全处理的过程中,直接由芯片硬件完成,不需要软件的参与,硬件自动捕获接收巾贞的4个字节的校验码MIC、Key和安全中断中硬件构造的Nonce,通过芯片安全引擎生成带有完整性校验码DMIC的确认帧,并在当前时隙将不包含虚拟载荷的确认帧直接发送出去。
[0068]D.确认帧的接收:
[0069]发送方收到确认帧,首先进入安全中断,读取发送方寄存器存储的发送帧的4个字节的完整性校验码MIC,作为接收到的确认帧的虚拟载荷部分,安全引擎利用密钥Key和接收到的添加了虚拟载荷的确认帧构造出发送方的DMIC丨,其中Nonce根据前面选择的软件构造或者硬件构造。然后比较发送方计算的DMIC'和接收方发送的确认帧的DMIC是否一致,如果DMIC丨=DMIC,则校验成功,说明接收方成功接收了前面发送的帧;否则,校验失败,说明接收方没有成功接收前面发送的帧。
[0070]一、在IEEE802.15.4模式下数据的安全处理
[0071]在IEEE802.15.4模式下,安全处理过程如下所述。
[0072]发送方的安全处理过程如下:
[0073]1.配置寄存器SECCRO选择所需要的安全等级;
[0074]2.配置要发送帧的MAC头的长度和帧的长度;
[0075]3.构造要发送的帧,存储在Tx-Buff中等待安全处理;
[0076]4.芯片读取寄存器RF_N0RMAL_KEY中的密钥信息和寄存器UPN0NCE0中的Nonce值;
[0077]5.由芯片安全引擎在TX-FIFO中自动实现数据的加密、完整性校验;
[0078]6.配置寄存器TXNTRIG直接发送安全处理后的数据。
[0079]接收方的安全处理过程如下:
[0080]1.进入安全中断;
[0081]2.读取寄存器RF_RX_FLEN中接收报文的长度;
[0082]3.解析包头信息,添加安全辅助头;
[0083]4.根据安全辅助头的信息,读取芯片寄存器RF_RX_KEY中的密钥信息和寄存器UPN0NCE0 中的 Nonce 值;
[0084]5.接收方通过安全引擎重新生成完整性校验码MIC ',与发送方的MIC码做比较,如果MIC ’ = MIC,则校验通过;否则,校验失败;
[0085]6.MIC码校验后,接收方进行CRC校验,如果校验成功,进入接收中断,否则直接丢弃报文;
[0086]7.CRC校验后进入接收中断,通知上层接收成功还是失败。
[0087]二、WIA-PA模式下数据的安全处理
[0088]在WIA-PA模式下,芯片利用4个TX-FIF0和I个RX-FIF0来实现AES-CCM*模式下数据的加密、解密、完整性校验。
[0089]发送方的安全处理过程如下所述:
[0090]1.实现时间同步后,计算出数据期望发送的未来时间并存储到寄存器TXTAIR2中;
[0091]2.配置寄存器SECCR2,选择在上层FIFO中完成加密、完整性校验;
[0092]3.配置寄存器SECCR0,选择需要的安全等级;
[0093]4.配置要发送帧的MAC头的长度和帧的长度;
[0094]5.芯片读取寄存器RF_N0RMAL_KEY中的密钥信息和寄存器UPN0NCE0里的Nonce值;
[0095]6.由芯片安全引擎自动实现加密、完整性校验,并将结果存储到TX-FIFO中;
[0096]7.配置调度表,等待数据发送时刻的到来;
[0097]8.芯片时钟到达寄存器TXTAIR2存放的未来时间启动发送引擎自动将TX-FIFO密文发送;
[0098]9.更新FIFO中的数据和寄存器TXTAIR2的TAI时间。
[0099]接收方的安全处理过程如下所述:
[0100]1.进入安全中断;
[0101]2.读取寄存器RF_RX_FLEN中接收报文的长度;
[0102]3.解析包头信息,添加安全辅助头;
[0103]4.根据安全辅助头的信息,读取芯片读取寄存器RF_RX_KEY中的密钥信息和寄存器 UPN0NCE0 中的 Nonce 值;
[0104]5.接收方在RX-FIFO中通过芯片安全引擎重新生成的完整性校验码MIC ',与发送方的MIC码做比较,如果MIC丨=MIC,则校验通过,否则,校验失败;
[0105]6.MIC码校验后,接收方进行CRC校验,如果校验成功,进入接收中断,否则直接丢弃报文;
[0106]7.CRC校验后进入接收中断后,判断是否需要回复确认帧,如果需要,则在同一个时隙中回复确认帧,如果不需要,接收方安全处理完成。
[0107]三、ISA100.1la模式下发送方的安全处理
[0108]在ISA100.1la模式下发送方有两种安全处理机制。一种是使用芯片的上层FIFO进行安全预处理,即芯片将安全处理过后的数据存储到TX-FIFO中,等待发送时隙的到来;一种是全自动安全处理模式,即在数据发送的瞬间,芯片自动对数据进行安全处理。
[0109]a)使用芯片的上层FIFO进行安全处理的发送流程如下所述:
[0110]1.实现时间同步后,计算出数据要发送的未来时间并存储到寄存器TXTAIR2中,该未来时间为数据将要发送时隙的起始时间;
[0111]2.配置寄存器SECCR2,选择在上层FIFO中完成加密、完整性校验;
[0112]3.配置寄存器SECCR0,选择需要的安全等级;
[0113]4.配置要发送帧的MAC头的长度和帧的长度;
[0114]5.芯片读取寄存器RF_RX_KEY中的密钥信息;
[0115]6.利用程序构造Nonce,读取寄存器TXTAIR2存储的未来时间,通过程序转化为4字节的时间信息,读取发送方的8字节的ΕΠ地址和信道与帧序列号共同构成的I字节信息,构成13字节的Nonce,存到寄存器UPN0NCE0里;
[0116]7.由芯片安全引擎自动完成加密、完整性校验,并将密文存储到TX-FIFO中;
[0117]8.配置调度表,等待发送时隙的到来;
[0118]9.当芯片内部时钟运行到寄存器TXTAIR2存储的时间,启动发送引擎自动将FIFO里的数据发送出去;
[0119]10.更新寄存器TXTAIR2中的时间信息。
[0120]b)芯片在发送时刻进行全自动安全处理的发送流程如下所述:
[0121]1.配置寄存器PR0T0CAL实现时间同步;
[0122]2.配置寄存器SlotExtR35,选择硬件自动加密过程;
[0123]3.配置寄存器SECCR0,选择需要的安全等级;
[0124]4.构造需要安全处理的明文,存入Tx-FIFO ;
[0125]11.配置要发送帧的MAC头的长度和帧的长度;
[0126]5.配置调度表,等待发送时隙;
[0127]6.到达数据发送时隙,利用硬件构造Nonce并进行安全处理;硬件捕获当前发送时刻的准确时间,并自动将其转化为4字节的时间信息,捕获发送设备的8字节的ΕΠ地址和信道与帧序列号共同构成的I字节信息,构成13字节的Nonce,存储到寄存器UPN0NCE0中;
[0128]7.芯片通过内部安全引擎用硬件实现加密、生成完整性校验码MIC,并将密文发送出去;
[0129]8.更新FIFO中数据和寄存器TXTAIR2的TAI时间。
[0130]四、ISA100.1la模式下接收方的安全处理
[0131]在ISA100.1la模式下,接收方的安全处理也有两种模式。一种是接收方进入安全中断后通过读取接收时隙的起始时间,用程序构造出接收方Nonce后开始解密、完整性校验;一种是接收方进入安全中断后,由芯片硬件自动捕获接收时刻的准确时间,利用硬件自动生成Nonce后开始解密、完整性校验;具体流程如下所述。
[0132]a)芯片启动自动构造Nonce模式时,接收方的安全处理流程
[0133]1.配置寄存器SlotExtR35,选择硬件自动构造Nonce模式;
[0134]2.进入安全中断;
[0135]3.读取寄存器RF_RX_FLEN中接收报文的长度;
[0136]4.解析包头信息,添加安全辅助头;
[0137]5.读取RF_RX_KEY中密钥信息,开始构造Nonce ;
[0138]6.芯片自动捕获接收时刻的准确时间,利用硬件自动转化为4字节的时间信息,读取数据包中2字节的源地址信息,用硬件自动转为8字节的源ΕΠ地址信息,读取信道与帧序列号共同构成的I字节信息,构造出13字节的Nonce值,存储在寄存器UPN0NCE0中;
[0139]7.芯片通过安全引擎进行解密,计算接收方生成的完整性校验码MIC ',与发送方的校验码MIC作比较,如果MIC ’ = MIC,则完整性校验通过;否则,校验失败;
[0140]8.MIC码校验后,接收方进行CRC校验,如果校验成功,进入接收中断,否则直接丢弃报文;
[0141]9.CRC校验后进入接收中断;
[0142]10.判断是否需要回复确认帧,如果需要,则接收方开始构造确认帧并进行安全处理,否则接收方完成安全处理。
[0143]b)芯片不启动自动构造Nonce模式时,接收方的安全处理流程
[0144]1.配置寄存器SlotExtR35,选择半自动构造Nonce模式;
[0145]2.进入安全中断;
[0146]3.读取寄存器RF_RX_FLEN中接收报文的长度;
[0147]4.解析包头信息,添加安全辅助头;
[0148]5.读取RF_RX_KEY中密钥信息,开始构造Nonce ;
[0149]6.程序读取接收时隙的起始时间,利用程序转化为4字节的时间信息,读取数据包中2字节的源地址信息,通过程序查表转化为8字节的源ΕΠ地址信息,读取信道与帧序列号共同构成的I字节信息,构造出13字节的Nonce值,存储在寄存器UPN0NCE0中;
[0150]7.芯片通过安全引擎进行解密,计算接收方生成的完整性校验码MIC ',与发送方的校验码MIC作比较,如果MIC ’ = MIC,则完整性校验通过;否则,校验失败;
[0151]8.MIC码校验后,接收方进行CRC校验,如果校验成功,进入接收中断,否则直接丢弃报文;
[0152]9.CRC校验后进入接收中断;判断是否需要回复确认帧,如果需要,则接收方开始构造确认帧并进行安全处理,否则接收方完成安全处理。
[0153]五、ISA100.1la模式下接收方发送安全确认帧处理过程
[0154]接收方在数据帧接收后,回复的安全确认帧的方式分为自动和半自动两种模式,其发送流程如下所述。
[0155]a)接收方自动回复安全处理过后的确认帧ACK流程:
[0156]1.配置寄存器ISAACKCTR,选择自动回复ACK模式;
[0157]2.接收方接收到数据帧,安全处理、CRC校验后,进入接收中断;
[0158]3.芯片硬件自动构造ACK巾贞,并读取RF_RX_KEY中的密钥信息UPN0NCE0中构造的Nonce,利用接收到的帧中的4字节的MIC码作为确认帧的虚拟载荷字段,用来生成完整性校验码DMIC ;
[0159]4.将生成的DMIC添加到确认帧的后面作为完整性校验码,由硬件直接发送出去,虚拟字段不发送。
[0160]b)接收方半自动回复确认帧ACK流程:
[0161]1.配置寄存器ISAACKCTR,选择半自动回复ACK模式;
[0162]2.接收方在收到数据帧,安全处理、CRC校验后,进入接收中断,通过主程序构造确认帧,读取RF_RX_KEY中的密钥信息和UPN0NCE0中构造的Nonce ;
[0163]3.利用接收到的帧中的4字节的MIC码作为确认帧的虚拟载荷字段,在ACK-FIFO中生成带完整性校验码DMIC添加到确认帧后面,并存放到ACK-FIFO中;
[0164]4.配置寄存器ISAACKCTR,将安全处理后的确认帧发送出去,虚拟载荷字段不发送。
[0165]六、ISA100.1la模式下发送方接收到确认帧的安全处理
[0166]发送方收到安全确认帧ACK的处理流程,如下所述:
[0167]1.进入安全中断;
[0168]2.读取寄存器RF_RX_FLEN中接收报文的长度;
[0169]3.读取芯片寄存器RF_RX_KEY中的密钥信息和寄存器UPN0NCE0中的Nonce值;
[0170]4.将发送方安全处理后的数据帧中4字节完整性校验码MIC作为收到确认帧的虚拟载荷部分,利用芯片安全引擎生成确认帧的完整性校验码DMIC丨;
[0171]5.比较发送方重新生成的DMIC和接收端发送的DMIC是否一致,如果DMIC =DMIC,则校验通过,否则,校验失败;
[0172]6.DMIC码校验后,接收方进行CRC校验,如果校验成功,进入接收中断,否则直接丢弃报文;
[0173]7.CRC校验后发送方进入接收中断,通知上层接收方是否成功接收发送方发送的数据。
[0174]以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明方法权利要求所限定的范围。
【权利要求】
1.一种工业物联网芯片的安全功能实现方法,其特征在于:包括以下步骤: 101、用户配置物联网芯片的协议选取PROTOCAL寄存器,选择ffiEE802.15.4、WIA-PA,ISA100.1la三种模式中的一种模式,当选择IEEE802.15.4模式时跳转至步骤102 ;当选择WIA-PA模式时,跳转至步骤104 ;当选择ISA100.1la模式时跳转至步骤106 ; 102、当步骤101中选择IEEE802.15.4模式时,发送方配置寄存器SECCRO所需要的安全等级,然后配置待发送帧的MAC头的长度和帧的长度;构造待发送的帧,存储在Tx-Buff发送缓存器中等待安全处理;所述物联网芯片读取RF_NORMAL_KEY密钥存储寄存器中的密钥信息和UPNONCE O随机数存储寄存器中的Nonce值;由芯片安全引擎在TX-FIFO中自动实现数据的加密、完整性校验;配置TXNTRIG发送寄存器,直接发送安全处理后的数据;接收方进入安全中断,跳转至步骤103 ; 103、接收方读取寄存器RF_RX_FLEN中接收报文的长度,并解析包头信息,添加安全辅助头;然后根据安全辅助头的信息,读取芯片寄存器RF_RX_KEY中的密钥信息和寄存器UPN0NCE0中的Nonce值;接收方通过安全引擎重新生成完整性校验码MIC ’,与发送方的MIC码做比较,如果MIC丨=MIC,则校验通过;否则,校验失败;MIC码校验后,接收方进行CRC校验,如果校验成功,进入接收中断,否则直接丢弃报文。进入接收中断后,芯片通知上层接收成功还是失败,完成择IEEE802.15.4模式下的安全处理,结束; 104、当步骤101中选择WIA-PA模式时,发送方实现时间同步后,计算出数据期望发送的时刻并存储到寄存器TXTAIR2中;配置寄存器SECCR2,选择在上层FIFO中完成加密、完整性校验;配置寄存器SECCR0,选择需要的安全等级;配置要发送帧的MAC头的长度和帧的长度;芯片读取寄存器RF_N0RMAL_KEY中的密钥信息和寄存器UPN0NCE0里的Nonce值;由芯片安全引擎实现加密、完整性校验,并将结果存储到TX-FIFO中;配置调度表,等待数据发送时刻的到来;芯片时钟到达寄存器TXTAIR2存放的未来时间启动发送引擎自动将TX-FIFO密文发送;更新FIFO中的数据和寄存器TXTAIR2的TAI时间,跳转至步骤105 ; 105、接收方进入安全中断,读取寄存器RF_RX_FLEN中接收报文的长度;解析包头信息,添加安全辅助头;根据安全辅助头的信息,读取芯片读取寄存器RF_RX_KEY中的密钥信息和寄存器UPN0NCE0中的Nonce值;接收方在RX-FIFO中通过芯片安全引擎重新生成的完整性校验码MIC,与发送方的MIC码做比较,如果MIC = MIC,则校验通过,否则,校验失败;MIC码校验后,接收方进行CRC校验,如果校验成功,进入接收中断;否则直接丢弃报文。进入接收中断后,判断是否需要回复确认帧,如果需要,则在同一个时隙中回复确认帧,如果不需要,接收方安全处理完成,完成WIA-PA模式下的安全处理,结束; 106、当步骤101中选择ISA100.1la模式时,发送方有两种安全处理机制。一种是使用芯片的上层FIFO进行安全预处理,即芯片将安全处理过后的数据存储到TX-FIFO中,等待发送时隙的到来;一种是全自动安全处理模式,即在数据发送的瞬间,芯片自动对数据进行安全处理/,跳转至步骤107; 107、接收方的安全处理也有两种模式。一种是接收方进入安全中断后通过读取接收时隙的起始时间,用程序构造出接收方Nonce后开始解密、完整性校验;一种是接收方进入安全中断后,由芯片硬件自动捕获接收时刻的准确时间,利用硬件自动生成Nonce后开始解密、完整性校验;完成ISA100.1la模式的安全处理,结束。
2.根据权利要求1所述的工业物联网芯片的安全功能实现方法,其特征在于:步骤106中选择ISA100.1la模式时,使用芯片的上层FIFO进行安全处理的发送步骤如下所述:发送方实现时间同步后,计算出数据要发送的未来时间并存储到寄存器TXTAIR2中,该未来时间为数据将要发送时隙的起始时间;配置寄存器SECCR2,选择在上层FIFO中完成加密、完整性校验;配置寄存器SECCR0,选择需要的安全等级;配置要发送帧的MAC头的长度和帧的长度;芯片读取寄存器RF_RX_KEY中的密钥信息;利用程序构造Nonce,读取寄存器TXTAIR2存储的未来时间,通过程序转化为4字节的时间信息,读取发送方的8字节的ΕΠ地址和信道与帧序列号共同构成的I字节信息,构成13字节的Nonce,存到寄存器UPN0NCE0里;由芯片安全引擎自动完成加密、完整性校验,并将密文存储到TX-FIFO中;配置调度表,等待发送时隙的到来;当芯片内部时钟运行到寄存器TXTAIR2存储的时间,启动发送引擎自动将FIFO里的数据发送出去;更新寄存器TXTAIR2中的时间信息。
【文档编号】H04L9/06GK104270243SQ201410531251
【公开日】2015年1月7日 申请日期:2014年10月10日 优先权日:2014年10月10日
【发明者】魏旻, 王平, 寇伟, 陈豪 申请人:重庆邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1