高安全等级的OTA升级固件的加密方法技术

技术编号:19649249 阅读:28 留言:0更新日期:2018-12-05 21:17
本发明专利技术的高安全等级的OTA升级固件的加密方法,PC机生成固件升级数据步骤为:利用固件头数据和n个block固件数据生成认证码MAC,将未加密的固件头数据、加密的MAC和n个block固件数据作为固件升级数据;IOT终端设备验证和升级步骤为:IOT终端设备利用接收的数据恢复出MAC的值,并判断自身计算的MAC值与接收的MAC值是否相等,只有在相等的情况下才执行升级操作。本发明专利技术的OTA升级固件的加密方法,通过包含侧信道分析在内多种方法很难分析出头部加密算法,从根本上防止了恶意固件的下载,防止了非法人员通过侧信道密码分析方法,将固件升级算法的原理恢复出来,进一步提高了固件升级过程中安全等级。

【技术实现步骤摘要】
高安全等级的OTA升级固件的加密方法
本专利技术涉及一种固件升级的方法,更具体的说,尤其涉及一种高安全等级的OTA升级固件的加密方法。
技术介绍
目前物联网(Internetofthings,简称IOT)已经渗透到各行各业的方方面面,并连接了大量的设备。物联网规模化部署面临着众多挑战。当众多的物联网设备需要功能更新或者修补漏洞,空中下载技术(Over-the-AirTechnology,简称OTA)为无线固件升级提供了一个省时、便捷的途径,OTA固件升级已经成为物联网设备必不可缺少的一个组成部分。物联网设备在固件升级的过程中,存在服务权限验证的安全威胁。在固件升级方面,许多物联网设备的升级固件没有加密和完整性验证处理。如果黑客获得了固件升级的命令格式,将其编写的恶意固件下载到物联网终端设备中,就可以完全控制该设备并执行非法操作。2013年,IOActive安全公司对某品牌的验钞机进行研究,发现其在固件升级时未做签名验证处理,研究人员利用该漏洞将恶意固件下载到验钞机中,验钞机将一张手写假钞识别为真钞。2017年,密码安全的研究人员,对PhilipsHue智能灯进行研究,破解了智能灯无线固件升级的加密/认证密钥,根据密钥将产生的恶意固件下载到智能灯中,智能灯在恶意固件的控制下不停闪烁。在固件升级的过程中,为了防止物联网设备遭受恶意固件的攻击,需要提高固件升级过程中安全等级。升级固件的生成及下载过程需要具备加加/解密、认证操作,用于固件数据的保密和完整性认证,防止固件数据被恶意篡改和恢复;且加/解密、认证操作要具有一定复杂度,以便能够抵抗侧信道等相关的密码分析方法的攻击。
技术实现思路
本专利技术为了克服上述技术问题的缺点,提供了一种高安全等级的OTA升级固件的加密方法。本专利技术的高安全等级的OTA升级固件的加密方法,OTA升级固件的系统由PC机、云服务端、控制终端和IOT终端设备组成,PC机生成升级固件数据并将其上传至云服务端,控制终端控制IOT终端设备接收云服务端的数据并完成升级;设升级固件包含n个block数据;其特征在于,所述OTA升级固件的加密方法包括PC机生成固件升级数据步骤以及IOT终端设备验证和升级步骤,PC机生成固件升级数据步骤为:取m个block数据作为固件头数据,利用m个block固件头数据和n个block固件数据通过加密算法生成认证码MAC,将未加密的m个block固件头数据、加密后的MAC、加密后的n个block固件数据一起作为固件升级数据,上传至云服务端;IOT终端设备验证和升级步骤为:IOT终端设备首先对接收的数据进行解密操作,然后利用接收的m个block固件头数据、解密后的n个block固件数据计算出MAC的值,并判断自身计算的MAC值与接收的MAC值是否相等,只有在相等的情况下才执行升级操作。本专利技术的高安全等级的OTA升级固件的加密方法,设1个block的大小为16个字节,固件头数据为3个block大小,PC机和IOT终端设备中所存储的初始化向量为IV、加密密钥为k;n个block固件数据分别为Pf1、Pf2、…、Pfn;所述PC机生成固件升级数据步骤具体通过以下步骤来实现:a).头数据加密,设3个block固件头数据分别为Ph1、Ph2、Ph3,经加密后的数据分别为P′h1、P′h2、P′h3;b).生成MAC的头部数据的处理,采用如下算法对生成认证码MAC的头部数据进行加密操作:其中,Ek()中的E表示采用的AES算法函数,k为加密秘钥,括号内的参数表示明文数据,为异或运算;c).求取验证码,通过如下计算方法生成验证码MAC:fori=1tonj=i+3认证码为:MAC=CBC(n+3);d).加密处理,对认证码MAC,n个block固件数据Pf1、Pf2、…、Pfn,采用如下的AES-CTR进行加密处理:fori=1ton其中,ctri=Nonce||counteri,Nonce为用户设定的对外保密的常量值,存储于PC机和IOT终端设备中,Nonce为14字节数据,counteri为2字节数据,counter0=0,counter1=1,….,counteri=i,…,countern=n;“||”表示连接运算;e).形成固件升级数据,利用未加密的3个block固件头数据、加密后的认证码MAC、加密后的n个block固件数据组成升级数据Fall:Fall=Ph1||Ph2||Ph3||EMAC||Ef1||Ef2...||Efn||。本专利技术的高安全等级的OTA升级固件的加密方法,步骤a)中采用如下方法对3个block固件头数据Ph1、Ph2、Ph3进行加密:P′h1=Ek(Ph2)P′h2=Ph2·Ph1其中运算符·表示乘法操作。本专利技术的高安全等级的OTA升级固件的加密方法,所述的IOT终端设备验证和升级步骤具体通过以下步骤来实现:1).参数验证,IOT终端设备将下载的固件升级数据保存至外部FLASH存储器中,并读取前3个block固件头数据,判断固件头数据中的参数是否合法,如果合法,则执行步骤2);如果不合法,则执行步骤7);2).加密头数据,采用与步骤a)中相同的加密算法,对获取的3个block固件头数据进行加密处理,设加密后的头数据分别为P′H1、P′H2、P′H3;3).生成MAC的头部数据的处理,采用如下算法对生成认证码MAC的头部数据进行加密操作:其中,Ek()中的E表示采用的AES算法函数,k为加密秘钥,括号内的参数表示明文数据,为异或运算;4).解密固件并求取认证码,通过如下计算方法解密n个block加密固件并求取认证码:fori=1tonj=i+3其中:ctri=Nonce||counteri,P′f1、P′f2、…、P′fn为IOT终端设备获取的解密后的n个block固件数据;IOT终端设备端求取的认证码:MACb=CBC′(n+3);5).检验认证码是否合法,IOT终端设备对获取的认证码MACb进行加密操作:然后将求取的EMACb与接收的固件数据中的EMAC进行比较,判断EMACb与EMAC的值是否相同,如果相同,则验证通过,执行步骤6);如果不同,则执行步骤7);6).固件升级,IOT终端设备获取的解密的固件数据P′f1、P′f2、…、P′fn即为PC机生成的合法固件数据Pf1、Pf2、…、Pfn,将固件数据存储至内部FLASH中并完成升级;7).升级失败,IOT终端设备返回固件升级失败的应答信号本专利技术的高安全等级的OTA升级固件的加密方法,步骤2)中采用如下方法对3个block固件头数据进行加密:P′H1=Ek(PH2)P′H2=PH2·PH1其中,PH1、PH2、PH3为IOT终端设备获取的固件升级数据中前3个block的数据。本专利技术的有益效果是:本专利技术提供了一种高安全等级的OTA升级固件的加密方法,能够保证加密认证固件具有高安全等级,该固件加密方法采用AES-CCM模式,用于固件数据的保密和完整性认证,防止在固件升级的过程中,固件数据被恶意篡改和恢复。侧信道密码分析方法能够在IOT终端设备在进行固件升级过程,分析出固件加/解密、认证算法中所使用的密钥,然后再通过明文相关性分析推测出固件加/解密、认证原理。根据推测的原理方法生成IOT终端设本文档来自技高网
...

【技术保护点】
1.一种高安全等级的OTA升级固件的加密方法,OTA升级固件的系统由PC机、云服务端、控制终端和IOT终端设备组成,PC机生成升级固件数据并将其上传至云服务端,控制终端控制IOT终端设备接收云服务端的数据并完成升级;设升级固件包含n个block数据;其特征在于,所述OTA升级固件的加密方法包括PC机生成固件升级数据步骤以及IOT终端设备验证和升级步骤,PC机生成固件升级数据步骤为:取m个block数据作为固件头数据,利用m个block固件头数据和n个block固件数据通过加密算法生成认证码MAC,将未加密的m个block固件头数据、加密后的MAC、加密后的n个block固件数据一起作为固件升级数据,上传至云服务端;IOT终端设备验证和升级步骤为:IOT终端设备首先对接收的数据进行解密操作,然后利用接收的m个block固件头数据、解密后的n个block固件数据计算出MAC的值,并判断自身计算的MAC值与接收的MAC值是否相等,只有在相等的情况下才执行升级操作。

【技术特征摘要】
1.一种高安全等级的OTA升级固件的加密方法,OTA升级固件的系统由PC机、云服务端、控制终端和IOT终端设备组成,PC机生成升级固件数据并将其上传至云服务端,控制终端控制IOT终端设备接收云服务端的数据并完成升级;设升级固件包含n个block数据;其特征在于,所述OTA升级固件的加密方法包括PC机生成固件升级数据步骤以及IOT终端设备验证和升级步骤,PC机生成固件升级数据步骤为:取m个block数据作为固件头数据,利用m个block固件头数据和n个block固件数据通过加密算法生成认证码MAC,将未加密的m个block固件头数据、加密后的MAC、加密后的n个block固件数据一起作为固件升级数据,上传至云服务端;IOT终端设备验证和升级步骤为:IOT终端设备首先对接收的数据进行解密操作,然后利用接收的m个block固件头数据、解密后的n个block固件数据计算出MAC的值,并判断自身计算的MAC值与接收的MAC值是否相等,只有在相等的情况下才执行升级操作。2.根据权利要求1所述的高安全等级的OTA升级固件的加密方法,其特征在于,设1个block的大小为16个字节,固件头数据为3个block大小,PC机和IOT终端设备中所存储的初始化向量为IV、加密密钥为k;n个block固件数据分别为Pf1、Pf2、…、Pfn;所述PC机生成固件升级数据步骤具体通过以下步骤来实现:a).头数据加密,设3个block固件头数据分别为Ph1、Ph2、Ph3,经加密后的数据分别为P′h1、P′h2、P′h3;b).生成MAC的头部数据的处理,采用如下算法对生成认证码MAC的头部数据进行加密操作:其中,Ek()中的E表示采用的AES算法函数,k为加密秘钥,括号内的参数表示明文数据,为异或运算;c).求取验证码,通过如下计算方法生成验证码MAC:fori=1tonj=i+3认证码为:MAC=CBC(n+3);d).加密处理,对认证码MAC,n个block固件数据Pf1、Pf2、…、Pfn,采用如下的AES-CTR进行加密处理:fori=1ton其中,ctri=Nonce||counteri,Nonce为用户设定的对外保密的常量值,存储于PC机和IOT终端设备中,Nonce为14字节数据,counteri为2字节数据,counter0=0,counter1=1,….,counteri=i,…,countern=n;“||”表示连接运算;e).形成固件升级数据,利用未加密的3个block固件头数据...

【专利技术属性】
技术研发人员:樊燕红付勇王继志杨英陈丽娟陈振娅文立强穆超
申请(专利权)人:山东省计算中心国家超级计算济南中心
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1