1.一种保障固件安全的多因子物联网设备群组认证方法,其特征在于:该方法包括以下三个阶段:
(1)初始化阶段:设备进行初始化时生成对应初始化请求并结合自身身份ID,经由网关后发送给服务器,服务器根据消息,将设备和网关的身份注册到自身数据库,并产生PUF的激励,发送给设备;设备根据激励使用PUF计算得到响应并将其发回给服务器;服务器根据响应信息,利用产生的随机数和主密钥,计算得到对应密钥和伪身份,并将其发送给网关;
网关存储对应伪身份和密钥,并转发给设备存储;至此,设备网关和服务器均存储对应的认证信息;
(2)群组设备认证阶段:完成多设备在网关帮助下与服务器基于 PUF、固件完整性的多因子相互认证与密钥协商;网关在接收到一定数量的设备认证请求后,将请求消息聚合发送给服务器,服务器返回的认证消息也由网关分发给不同的设备;在群组设备认证阶段,设备首先在注册的伪身份和密钥对中选择一对并计算验证信息发送给网关;网关在接收到一定数量消息或到达等待时间后,将通过验证的设备消息转发给服务器;服务器接收消息后,通过验证信息验证设备的身份,如验证通过则在存储的激励响应对CRPs中选择一个激励信息,而后产生一个随机数,并将其发送给网关;网关收到消息后,产生一个随机数,将其连同收到的消息转发给设备;设备收到消息后,验证网关和服务器的真实性,如不通过则拒绝认证并删除对应信息,而后产生一个随机数,并根据网关发送过来的激励计算对应的PUF响应,而后利用PUF的响应和分区哈希值计算自身的固件完整性值,并将以上信息通过异或哈希方式加密后发送给网关;网关得到消息后,验证设备的身份,通过后附带上自己产生的随机数发送给服务器;服务器通过查询响应并计算得到设备固件完整性值,而后验证设备的身份,如通过则根据设备、网关和服务器产生的随机数和PUF计算会话密钥,并将认证结果发送给设备;设备得到认证结果,并相应计算得到与服务器的会话密钥,完成与服务器的相互认证与密钥协商;
(3)设备间通信协商阶段:在网关聚合器的帮助下,双方设备完成与网关的认证以及设备间的密钥协商,同时,在网关中间路由对设备透明的情况下,本方案也适用于不同局域网间的设备相互通信的场景;当设备1需要与设备2相互通信时,设备1首先将自身和设备2的伪身份发送给网关;网关接收消息后对设备1的身份进行认证,认证通过后分别从设备1和设备2存储的伪身份密钥对中选择设备1和2的新伪身份和密钥,并计算两个新密钥的异或值K,而后分别向设备1和设备2发送对应新的伪身份和K以及产生的随机数N;设备1和设备2接收到消息后,均首先验证网关的身份,通过验证后,根据伪身份和K计算得到自身密钥和对方密钥以及随机数N,通过双方的新密钥和随机数N计算得到与对方的会话密钥,并向对方发送确认消息,进而完成设备双方会话密钥的协商。
2.根据权利要求1所述的一种保障固件安全的多因子物联网设备群组认证方法,其特征在于:设备和服务器双方在群组认证阶段完成基于密钥、PUF和设备固件完整性的多因子认证,其中设备根据服务器发来的激励信息Ci通过Ri=PUF(Ci)计算得到响应,并利用模糊提取器减少PUF在实际使用过程中易受环境噪声影响的问题,计算得到(hd,k)=FE.Gen(Ri),从而得到PUF的密钥k,服务器借助此密钥完成对设备PUF的认证。
3.根据权利要求2所述的一种保障固件安全的多因子物联网设备群组认证方法,其特征在于:服务器在群组设备认证阶段完成了对设备的固件完整性验证,设备首先根据自身固件和分区信息计算得到各个分区的哈希值,而后借助本次认证中使用的PUF密钥k和各分区哈希值作为HMAC的输入进而计算得到固件完整性值F;服务器则根据网关发送过来的设备分区信息结合自身存储的全局分区表以及本次认证使用的PUF密钥k计算得到固件完整性值,通过比较两值对设备的固件完整性进行验证,同时固件完整性值通过作为哈希函数的输入产生的验证消息V反映,服务器计算同样的V与接收的数值比较。
4.根据权利要求3所述的一种保障固件安全的多因子物联网设备群组认证方法,其特征在于:所述设备固件完整性的验证的具体包括以下两个阶段:
(1)设备部署阶段:网络拥有者根据设备固件大小和功能对设备固件进行分区,分别计算各个分区的哈希值,而后服务器根据网络中所有设备的各个分区的哈希值构建全局分区表,内容包括分区编号和分区对应的哈希值,网关则在认证协议的初始化阶段,根据设备发送的固件信息构建局域网内的设备分区表,内容包括设备的身份ID和设备分区编号的集合;
(2)固件完整性验证阶段:服务器根据网关发送过来的设备分区表,结合自身存储的全局分区表,借助PUF的响应计算得到具体设备的固件完整性值,并与设备发送过来的完整性值比较,对设备的固件完整性进行验证,包含设备固件完整性信息的设备分区表和全局分区表被分别存储在网关和服务器当中,能够保证在网关或服务器被劫持时,单独一方均无法得到正确的设备固件完整性值,无法完成认证过程。